diff options
author | Christoph Hellwig | 2009-07-19 00:14:57 +0200 |
---|---|---|
committer | Felix Blyakher | 2009-08-11 17:47:32 +0200 |
commit | ea78cd5e6b6ebe123641382d5040252d19829332 (patch) | |
tree | ab7760aa71677bd4951f48a8185c196e09f77349 | |
parent | xfs: switch to NOFS allocation under i_lock in xfs_da_buf_make (diff) | |
download | kernel-qcow2-linux-ea78cd5e6b6ebe123641382d5040252d19829332.tar.gz kernel-qcow2-linux-ea78cd5e6b6ebe123641382d5040252d19829332.tar.xz kernel-qcow2-linux-ea78cd5e6b6ebe123641382d5040252d19829332.zip |
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.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/xfs/xfs_dir2.c b/fs/xfs/xfs_dir2.c index c657bec6d951..bb1d58eb3982 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; |