linux/fs/xfs
Lachlan McIlroy 5695ef46ef [XFS] Use KM_NOFS for debug trace buffers
Use KM_NOFS to prevent recursion back into the filesystem which can cause
deadlocks.

In the case of xfs_iread() we hold the lock on the inode cluster buffer
while allocating memory for the trace buffers. If we recurse back into XFS
to flush data that may require a transaction to allocate extents which
needs log space. This can deadlock with the xfsaild thread which can't
push the tail of the log because it is trying to get the inode cluster
buffer lock.

SGI-PV: 981498

SGI-Modid: xfs-linux-melb:xfs-kern:31838a

Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
Signed-off-by: David Chinner <david@fromorbit.com>
2008-08-13 16:51:57 +10:00
..
linux-2.6 [XFS] Use KM_NOFS for debug trace buffers 2008-08-13 16:51:57 +10:00
quota [XFS] Use KM_NOFS for debug trace buffers 2008-08-13 16:51:57 +10:00
support [XFS] streamline init/exit path 2008-07-28 16:59:25 +10:00
Kconfig
Makefile [XFS] Use the generic xattr methods. 2008-07-28 16:58:49 +10:00
xfs_acl.c [XFS] kill bhv_vnode_t 2008-08-13 16:22:40 +10:00
xfs_acl.h [XFS] kill bhv_vnode_t 2008-08-13 16:22:40 +10:00
xfs_ag.h
xfs_alloc_btree.c
xfs_alloc_btree.h
xfs_alloc.c
xfs_alloc.h
xfs_arch.h [XFS] remove INT_GET and friends 2008-08-13 16:07:53 +10:00
xfs_attr_leaf.c [XFS] Move xfs_attr_rolltrans to xfs_trans_roll 2008-08-13 16:05:49 +10:00
xfs_attr_leaf.h [XFS] Move xfs_attr_rolltrans to xfs_trans_roll 2008-08-13 16:05:49 +10:00
xfs_attr_sf.h
xfs_attr.c [XFS] Move xfs_attr_rolltrans to xfs_trans_roll 2008-08-13 16:05:49 +10:00
xfs_attr.h [XFS] Move attr log alloc size calculator to another function. 2008-08-13 16:03:35 +10:00
xfs_bit.c [XFS] Use the generic bitops rather than implementing them ourselves. 2008-08-13 15:41:12 +10:00
xfs_bit.h [XFS] Use the generic bitops rather than implementing them ourselves. 2008-08-13 15:41:12 +10:00
xfs_bmap_btree.c [XFS] Allow xfs_bmbt_split() to fallback to the lowspace allocator 2008-07-28 16:59:13 +10:00
xfs_bmap_btree.h
xfs_bmap.c [XFS] remove remaining VN_HOLD calls 2008-08-13 16:13:09 +10:00
xfs_bmap.h [XFS] Restore the lowspace extent allocator algorithm 2008-07-28 16:59:11 +10:00
xfs_btree.c [XFS] Use the same btree_cur union member for alloc and inobt trees. 2008-08-13 16:25:27 +10:00
xfs_btree.h [XFS] Use the same btree_cur union member for alloc and inobt trees. 2008-08-13 16:25:27 +10:00
xfs_buf_item.c [XFS] Use KM_NOFS for debug trace buffers 2008-08-13 16:51:57 +10:00
xfs_buf_item.h
xfs_clnt.h
xfs_da_btree.c [XFS] streamline init/exit path 2008-07-28 16:59:25 +10:00
xfs_da_btree.h
xfs_dfrag.c [XFS] remove some easy bhv_vnode_t instances 2008-08-13 16:22:09 +10:00
xfs_dfrag.h
xfs_dinode.h
xfs_dir2_block.c
xfs_dir2_block.h
xfs_dir2_data.c
xfs_dir2_data.h
xfs_dir2_leaf.c [XFS] Fix CI lookup in leaf-form directories 2008-07-28 16:59:06 +10:00
xfs_dir2_leaf.h
xfs_dir2_node.c [XFS] Fix returning case-preserved name with CI node form directories 2008-07-28 16:59:01 +10:00
xfs_dir2_node.h
xfs_dir2_sf.c
xfs_dir2_sf.h [XFS] Pack some shortform dir2 structures for the ARM old ABI 2008-07-28 16:58:50 +10:00
xfs_dir2_trace.c
xfs_dir2_trace.h
xfs_dir2.c [XFS] Zero uninitialised xfs_da_args structure in xfs_dir2.c 2008-07-28 16:58:46 +10:00
xfs_dir2.h
xfs_dmapi.h [XFS] Now that xfs_setattr is only used for attributes set from ->setattr 2008-07-28 16:59:37 +10:00
xfs_dmops.c
xfs_error.c [XFS] kill INDUCE_IO_ERROR 2008-08-13 16:17:37 +10:00
xfs_error.h [XFS] kill INDUCE_IO_ERROR 2008-08-13 16:17:37 +10:00
xfs_extfree_item.c
xfs_extfree_item.h
xfs_filestream.c [XFS] Use KM_NOFS for debug trace buffers 2008-08-13 16:51:57 +10:00
xfs_filestream.h
xfs_fs.h [XFS] attrmulti cleanup 2008-07-28 16:59:09 +10:00
xfs_fsops.c [XFS] XFS: ASCII case-insensitive support 2008-07-28 16:58:42 +10:00
xfs_fsops.h
xfs_ialloc_btree.c [XFS] Use the same btree_cur union member for alloc and inobt trees. 2008-08-13 16:25:27 +10:00
xfs_ialloc_btree.h
xfs_ialloc.c
xfs_ialloc.h
xfs_iget.c [XFS] replace inode flush semaphore with a completion 2008-08-13 16:41:16 +10:00
xfs_imap.h
xfs_inode_item.c [XFS] replace inode flush semaphore with a completion 2008-08-13 16:41:16 +10:00
xfs_inode_item.h
xfs_inode.c [XFS] Use KM_NOFS for debug trace buffers 2008-08-13 16:51:57 +10:00
xfs_inode.h [XFS] update timestamp in xfs_ialloc manually 2008-08-13 16:44:15 +10:00
xfs_inum.h
xfs_iomap.c [XFS] use minleft when allocating in xfs_bmbt_split() 2008-07-28 16:59:10 +10:00
xfs_iomap.h
xfs_itable.c [XFS] remove some easy bhv_vnode_t instances 2008-08-13 16:22:09 +10:00
xfs_itable.h
xfs_log_priv.h [XFS] cleanup xfs_mountfs 2008-08-13 16:49:32 +10:00
xfs_log_recover.c [XFS] cleanup xfs_mountfs 2008-08-13 16:49:32 +10:00
xfs_log_recover.h
xfs_log.c [XFS] Use KM_NOFS for debug trace buffers 2008-08-13 16:51:57 +10:00
xfs_log.h [XFS] cleanup xfs_mountfs 2008-08-13 16:49:32 +10:00
xfs_mount.c [XFS] use KM_MAYFAIL in xfs_mountfs 2008-08-13 16:51:29 +10:00
xfs_mount.h [XFS] xfs_unmountfs should return void 2008-08-13 16:49:57 +10:00
xfs_mru_cache.c [XFS] streamline init/exit path 2008-07-28 16:59:25 +10:00
xfs_mru_cache.h
xfs_qmops.c
xfs_quota.h
xfs_refcache.h
xfs_rename.c [XFS] Don't update mtime on rename source 2008-07-28 16:59:14 +10:00
xfs_rtalloc.c [XFS] Use the generic bitops rather than implementing them ourselves. 2008-08-13 15:41:12 +10:00
xfs_rtalloc.h
xfs_rw.c [XFS] replace the XFS buf iodone semaphore with a completion 2008-08-13 16:36:11 +10:00
xfs_rw.h
xfs_sb.h [XFS] XFS: ASCII case-insensitive support 2008-07-28 16:58:42 +10:00
xfs_trans_ail.c
xfs_trans_buf.c [XFS] remove shouting-indirection macros from xfs_trans.h 2008-08-13 16:10:52 +10:00
xfs_trans_extfree.c
xfs_trans_inode.c
xfs_trans_item.c [XFS] remove shouting-indirection macros from xfs_trans.h 2008-08-13 16:10:52 +10:00
xfs_trans_priv.h
xfs_trans_space.h
xfs_trans.c [XFS] remove shouting-indirection macros from xfs_trans.h 2008-08-13 16:10:52 +10:00
xfs_trans.h [XFS] remove shouting-indirection macros from xfs_trans.h 2008-08-13 16:10:52 +10:00
xfs_types.h
xfs_utils.c [XFS] Avoid directly referencing the VFS inode. 2008-08-13 15:45:15 +10:00
xfs_utils.h [XFS] implement IHOLD/IRELE directly 2008-08-13 16:13:45 +10:00
xfs_vfsops.c [XFS] kill bhv_vnode_t 2008-08-13 16:22:40 +10:00
xfs_vfsops.h
xfs_vnodeops.c [XFS] update timestamp in xfs_ialloc manually 2008-08-13 16:44:15 +10:00
xfs_vnodeops.h [XFS] Now that xfs_setattr is only used for attributes set from ->setattr 2008-07-28 16:59:37 +10:00
xfs.h