xfs: use KM_NOFS for allocations during attribute list operations
commit622d81494fa32343a4b97b607619656c7a4a6d1a
authorDave Chinner <dchinner@redhat.com>
Thu, 23 Dec 2010 00:57:37 +0000 (23 11:57 +1100)
committerDave Chinner <david@fromorbit.com>
Thu, 23 Dec 2010 00:57:37 +0000 (23 11:57 +1100)
treeb8a004167d57b577c5da563474f8eb32eff83393
parentdcfcf20512cb517ac18b9433b676183fa1257911
xfs: use KM_NOFS for allocations during attribute list operations

When listing attributes, we are doiing memory allocations under the
inode ilock using only KM_SLEEP. This allows memory allocation to
recurse back into the filesystem and do writeback, which may the
ilock we already hold on the current inode. THis will deadlock.
Hence use KM_NOFS for such allocations outside of transaction
context to ensure that reclaim recursion does not occur.

Reported-by: Nick Piggin <npiggin@gmail.com>
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
fs/xfs/xfs_attr_leaf.c