]> git.baikalelectronics.ru Git - kernel.git/commit
xfs: prevent unwritten extent conversion from blocking I/O completion
authorDave Chinner <david@fromorbit.com>
Mon, 6 Apr 2009 16:42:11 +0000 (18:42 +0200)
committerChristoph Hellwig <hch@brick.lst.de>
Mon, 6 Apr 2009 16:42:11 +0000 (18:42 +0200)
commit851c57ecb6e3c638d4885bb9455376274863e7b8
tree8f7dfa34a77bc415d9dc604d79fbae98ffe47a14
parentb351adca90b2e22338ef8c9b278b95242f53a2b0
xfs: prevent unwritten extent conversion from blocking I/O completion

Unwritten extent conversion can recurse back into the filesystem due
to memory allocation. Memory reclaim requires I/O completions to be
processed to allow the callers to make progress. If the I/O
completion workqueue thread is doing the recursion, then we have a
deadlock situation.

Move unwritten extent completion into it's own workqueue so it
doesn't block I/O completions for normal delayed allocation or
overwrite data.

Signed-off-by: Dave Chinner <david@fromorbit.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
fs/xfs/linux-2.6/xfs_aops.c
fs/xfs/linux-2.6/xfs_aops.h
fs/xfs/linux-2.6/xfs_buf.c