aboutsummaryrefslogtreecommitdiffstats
path: root/fs/gfs2/incore.h
diff options
context:
space:
mode:
authorAbhi Das <adas@redhat.com>2015-03-18 12:04:37 -0500
committerBob Peterson <rpeterso@redhat.com>2015-03-18 12:47:10 -0500
commit25435e5ed611f310dda889940cbc4c45b3ecd9ec (patch)
tree9610acd909a2a48a01f092a58c163af4cac1aad2 /fs/gfs2/incore.h
parentgfs2: perform quota checks against allocation parameters (diff)
downloadlinux-dev-25435e5ed611f310dda889940cbc4c45b3ecd9ec.tar.xz
linux-dev-25435e5ed611f310dda889940cbc4c45b3ecd9ec.zip
gfs2: allow quota_check and inplace_reserve to return available blocks
struct gfs2_alloc_parms is passed to gfs2_quota_check() and gfs2_inplace_reserve() with ap->target containing the number of blocks being requested for allocation in the current operation. We add a new field to struct gfs2_alloc_parms called 'allowed'. gfs2_quota_check() and gfs2_inplace_reserve() return the max blocks allowed by quota and the max blocks allowed by the chosen rgrp respectively in 'allowed'. A new field 'min_target', when non-zero, tells gfs2_quota_check() and gfs2_inplace_reserve() to not return -EDQUOT/-ENOSPC when there are atleast 'min_target' blocks allowable/available. The assumption is that the caller is ok with just 'min_target' blocks and will likely proceed with allocating them. Signed-off-by: Abhi Das <adas@redhat.com> Signed-off-by: Bob Peterson <rpeterso@redhat.com> Acked-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs/gfs2/incore.h')
-rw-r--r--fs/gfs2/incore.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/gfs2/incore.h b/fs/gfs2/incore.h
index 3a4ea50c9113..58b75abf6ab2 100644
--- a/fs/gfs2/incore.h
+++ b/fs/gfs2/incore.h
@@ -302,7 +302,9 @@ struct gfs2_blkreserv {
*/
struct gfs2_alloc_parms {
u64 target;
+ u32 min_target;
u32 aflags;
+ u64 allowed;
};
enum {