diff options
author | Steven Whitehouse <swhiteho@redhat.com> | 2012-10-31 10:37:10 +0000 |
---|---|---|
committer | Steven Whitehouse <swhiteho@redhat.com> | 2012-11-07 13:33:17 +0000 |
commit | 9dbe9610b9df4efe0946299804ed46bb8f91dec2 (patch) | |
tree | 8d54797420ed9d0aef1c6bdd8f3b8dd5e9938d0a /fs/gfs2/quota.c | |
parent | c9aecf73717f55e41ac11682a50bef8594547025 (diff) | |
download | linux-9dbe9610b9df4efe0946299804ed46bb8f91dec2.tar.gz linux-9dbe9610b9df4efe0946299804ed46bb8f91dec2.tar.bz2 linux-9dbe9610b9df4efe0946299804ed46bb8f91dec2.zip |
GFS2: Add Orlov allocator
Just like ext3, this works on the root directory and any directory
with the +T flag set. Also, just like ext3, any subdirectory created
in one of the just mentioned cases will be allocated to a random
resource group (GFS2 equivalent of a block group).
If you are creating a set of directories, each of which will contain a
job running on a different node, then by setting +T on the parent
directory before creating the subdirectories, each will land up in a
different resource group, and thus resource group contention between
nodes will be kept to a minimum.
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs/gfs2/quota.c')
-rw-r--r-- | fs/gfs2/quota.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/gfs2/quota.c b/fs/gfs2/quota.c index c5af8e18f27a..6bbf64f0f5b6 100644 --- a/fs/gfs2/quota.c +++ b/fs/gfs2/quota.c @@ -816,7 +816,7 @@ static int do_sync(unsigned int num_qd, struct gfs2_quota_data **qda) blocks = num_qd * data_blocks + RES_DINODE + num_qd + 3; reserved = 1 + (nalloc * (data_blocks + ind_blocks)); - error = gfs2_inplace_reserve(ip, reserved); + error = gfs2_inplace_reserve(ip, reserved, 0); if (error) goto out_alloc; @@ -1605,7 +1605,7 @@ static int gfs2_set_dqblk(struct super_block *sb, struct kqid qid, gfs2_write_calc_reserv(ip, sizeof(struct gfs2_quota), &data_blocks, &ind_blocks); blocks = 1 + data_blocks + ind_blocks; - error = gfs2_inplace_reserve(ip, blocks); + error = gfs2_inplace_reserve(ip, blocks, 0); if (error) goto out_i; blocks += gfs2_rg_blocks(ip, blocks); |