]> git.baikalelectronics.ru Git - kernel.git/commit
[XFS] Use KM_NOFS for debug trace buffers
authorLachlan McIlroy <lachlan@sgi.com>
Wed, 13 Aug 2008 06:51:57 +0000 (16:51 +1000)
committerLachlan McIlroy <lachlan@redback.melbourne.sgi.com>
Wed, 13 Aug 2008 06:51:57 +0000 (16:51 +1000)
commit2bf4da2aae47d79a73997301f9ec87a9e7a49a03
tree885687ac9cdbba4717f01eef26195fd4eef2ee90
parent9cc8628c69378a079521093bcc2a35d95cad3a41
[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>
fs/xfs/linux-2.6/xfs_buf.c
fs/xfs/quota/xfs_dquot.c
fs/xfs/xfs_buf_item.c
fs/xfs/xfs_filestream.c
fs/xfs/xfs_inode.c
fs/xfs/xfs_log.c