summary refs log tree commit diff
path: root/fs/ocfs2/suballoc.c
diff options
context:
space:
mode:
authorJoel Becker <joel.becker@oracle.com>2010-03-26 10:10:08 +0800
committerTao Ma <tao.ma@oracle.com>2010-03-26 10:10:08 +0800
commit95ec0adf0b56d6a3f0ca1ec87173311898486b2e (patch)
treed1f0567655385ceb47c9d9169a6616f15876f6b9 /fs/ocfs2/suballoc.c
parent8b06bc592ebc5a31e8d0b9c2ab17c6e78dde1f86 (diff)
downloadlinux-95ec0adf0b56d6a3f0ca1ec87173311898486b2e.tar.gz
ocfs2: Don't relink cluster groups when allocating discontig block groups
We don't have enough credits, and the filesystem is in a full state
anyway.

Signed-off-by: Joel Becker <joel.becker@oracle.com>
Diffstat (limited to 'fs/ocfs2/suballoc.c')
-rw-r--r--fs/ocfs2/suballoc.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/fs/ocfs2/suballoc.c b/fs/ocfs2/suballoc.c
index e5403acdb3f5..5852a46647a2 100644
--- a/fs/ocfs2/suballoc.c
+++ b/fs/ocfs2/suballoc.c
@@ -606,6 +606,14 @@ ocfs2_block_group_alloc_discontig(handle_t *handle,
 		goto bail;
 	}
 
+	/*
+	 * We're going to be grabbing from multiple cluster groups.
+	 * We don't have enough credits to relink them all, and the
+	 * cluster groups will be staying in cache for the duration of
+	 * this operation.
+	 */
+	ac->ac_allow_chain_relink = 0;
+
 	/* Claim the first region */
 	status = ocfs2_block_group_claim_bits(osb, handle, ac, min_bits,
 					      &bit_off, &num_bits);