aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@infradead.org>2009-07-18 18:14:57 -0400
committerFelix Blyakher <felixb@sgi.com>2009-08-11 10:47:32 -0500
commitea78cd5e6b6ebe123641382d5040252d19829332 (patch)
treeab7760aa71677bd4951f48a8185c196e09f77349
parenteeb6f67ba1176a141b6802b2ec8505835482f631 (diff)
downloadkernel_samsung_espresso10-ea78cd5e6b6ebe123641382d5040252d19829332.zip
kernel_samsung_espresso10-ea78cd5e6b6ebe123641382d5040252d19829332.tar.gz
kernel_samsung_espresso10-ea78cd5e6b6ebe123641382d5040252d19829332.tar.bz2
xfs: switch to NOFS allocation under i_lock in xfs_dir_cilookup_result
xfs_dir_cilookup_result is always called with i_lock held, but i_lock is taken in reclaim context so all allocations under it must avoid recursions into the filesystem. Reported by the new reclaim context tracing in lockdep. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Felix Blyakher <felixb@sgi.com> Signed-off-by: Felix Blyakher <felixb@sgi.com>
-rw-r--r--fs/xfs/xfs_dir2.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/xfs/xfs_dir2.c b/fs/xfs/xfs_dir2.c
index c657bec..bb1d58e 100644
--- a/fs/xfs/xfs_dir2.c
+++ b/fs/xfs/xfs_dir2.c
@@ -256,7 +256,7 @@ xfs_dir_cilookup_result(
!(args->op_flags & XFS_DA_OP_CILOOKUP))
return EEXIST;
- args->value = kmem_alloc(len, KM_MAYFAIL);
+ args->value = kmem_alloc(len, KM_NOFS | KM_MAYFAIL);
if (!args->value)
return ENOMEM;