HomeFreeBSD

vdev_file_io_start() to use taskq_dispatch(TQ_PUSHPAGE)

Description

vdev_file_io_start() to use taskq_dispatch(TQ_PUSHPAGE)

The vdev_file_io_start() function may be processing a zio that the
txg_sync thread is waiting on. In this case it is not safe to perform
memory allocations that may generate new I/O since this could cause a
deadlock. To avoid this, call taskq_dispatch() with TQ_PUSHPAGE
instead of TQ_SLEEP.

Signed-off-by: Ned Bass <bass6@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #1928

Details

Provenance
Ned Bass <bass6@llnl.gov>Authored on Jan 15 2014, 9:52 PM
Brian Behlendorf <behlendorf1@llnl.gov>Committed on Jan 23 2014, 5:58 PM
Parents
rG3566d5c7c3cb: Remove incorrect use of EXTRA_DIST for man pages
Branches
Unknown
Tags
Unknown

Event Timeline

Brian Behlendorf <behlendorf1@llnl.gov> committed rG04aa2de8f788: vdev_file_io_start() to use taskq_dispatch(TQ_PUSHPAGE) (authored by Ned Bass <bass6@llnl.gov>).Jan 23 2014, 5:58 PM