aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_inode.c
diff options
context:
space:
mode:
authorDavid Chinner <dgc@sgi.com>2008-05-19 02:29:34 -0400
committerLachlan McIlroy <lachlan@redback.melbourne.sgi.com>2008-05-23 01:26:03 -0400
commit49383b0e98ad1f69ff4c816eb1961f703df12318 (patch)
treee99cd87ff5d2b104682b04e470f01f79ac84996b /fs/xfs/xfs_inode.c
parent978b7237123d007b9fa983af6e0e2fa8f97f9934 (diff)
[XFS] Don't allow memory reclaim to wait on the filesystem in inode
writeback If we allow memory reclaim to wait on the pages under writeback in inode cluster writeback we could deadlock because we are currently holding the ILOCK on the initial writeback inode which is needed in data I/O completion to change the file size or do unwritten extent conversion before the pages are taken out of writeback state. SGI-PV: 981091 SGI-Modid: xfs-linux-melb:xfs-kern:31015a Signed-off-by: David Chinner <dgc@sgi.com> Signed-off-by: Christoph Hellwig <hch@infradead.org> Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_inode.c')
-rw-r--r--fs/xfs/xfs_inode.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
index cf0bb9c1d621..739ea45a9d10 100644
--- a/fs/xfs/xfs_inode.c
+++ b/fs/xfs/xfs_inode.c
@@ -2986,7 +2986,7 @@ xfs_iflush_cluster(
2986 ASSERT(pag->pag_ici_init); 2986 ASSERT(pag->pag_ici_init);
2987 2987
2988 ilist_size = XFS_INODE_CLUSTER_SIZE(mp) * sizeof(xfs_inode_t *); 2988 ilist_size = XFS_INODE_CLUSTER_SIZE(mp) * sizeof(xfs_inode_t *);
2989 ilist = kmem_alloc(ilist_size, KM_MAYFAIL); 2989 ilist = kmem_alloc(ilist_size, KM_MAYFAIL|KM_NOFS);
2990 if (!ilist) 2990 if (!ilist)
2991 return 0; 2991 return 0;
2992 2992