diff options
author | David Chinner <dgc@sgi.com> | 2008-05-19 02:29:34 -0400 |
---|---|---|
committer | Lachlan McIlroy <lachlan@redback.melbourne.sgi.com> | 2008-05-23 01:26:03 -0400 |
commit | 49383b0e98ad1f69ff4c816eb1961f703df12318 (patch) | |
tree | e99cd87ff5d2b104682b04e470f01f79ac84996b /fs/xfs | |
parent | 978b7237123d007b9fa983af6e0e2fa8f97f9934 (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')
-rw-r--r-- | fs/xfs/xfs_inode.c | 2 |
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 | ||