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>
このコミットが含まれているのは:
@@ -432,7 +432,7 @@ static int gfs2_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf)
|
||||
if (ret)
|
||||
goto out_unlock;
|
||||
gfs2_write_calc_reserv(ip, PAGE_CACHE_SIZE, &data_blocks, &ind_blocks);
|
||||
ret = gfs2_inplace_reserve(ip, data_blocks + ind_blocks);
|
||||
ret = gfs2_inplace_reserve(ip, data_blocks + ind_blocks, 0);
|
||||
if (ret)
|
||||
goto out_quota_unlock;
|
||||
|
||||
@@ -825,7 +825,7 @@ static long gfs2_fallocate(struct file *file, int mode, loff_t offset,
|
||||
retry:
|
||||
gfs2_write_calc_reserv(ip, bytes, &data_blocks, &ind_blocks);
|
||||
|
||||
error = gfs2_inplace_reserve(ip, data_blocks + ind_blocks);
|
||||
error = gfs2_inplace_reserve(ip, data_blocks + ind_blocks, 0);
|
||||
if (error) {
|
||||
if (error == -ENOSPC && bytes > sdp->sd_sb.sb_bsize) {
|
||||
bytes >>= 1;
|
||||
|
新しいイシューから参照
ユーザーをブロックする