summaryrefslogtreecommitdiffstats
path: root/fs/gfs2/xattr.c
diff options
context:
space:
mode:
authorAbhi Das2015-03-18 18:03:41 +0100
committerBob Peterson2015-03-18 18:46:54 +0100
commitb8fbf471edb3dbf441716fd2a52a7ca76c381381 (patch)
treea5a2132cc29397dd1f1d8892497dbf18b2fb125f /fs/gfs2/xattr.c
parentGFS2: Move gfs2_file_splice_write outside of #ifdef (diff)
downloadkernel-qcow2-linux-b8fbf471edb3dbf441716fd2a52a7ca76c381381.tar.gz
kernel-qcow2-linux-b8fbf471edb3dbf441716fd2a52a7ca76c381381.tar.xz
kernel-qcow2-linux-b8fbf471edb3dbf441716fd2a52a7ca76c381381.zip
gfs2: perform quota checks against allocation parameters
Use struct gfs2_alloc_parms as an argument to gfs2_quota_check() and gfs2_quota_lock_check() to check for quota violations while accounting for the new blocks requested by the current operation in ap->target. Previously, the number of new blocks requested during an operation were not accounted for during quota_check and would allow these operations to exceed quota. This was not very apparent since most operations allocated only 1 block at a time and quotas would get violated in the next operation. i.e. quota excess would only be by 1 block or so. With fallocate, (where we allocate a bunch of blocks at once) the quota excess is non-trivial and is addressed by this patch. 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/xattr.c')
-rw-r--r--fs/gfs2/xattr.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/gfs2/xattr.c b/fs/gfs2/xattr.c
index 0b81f783f787..fd260ce8869a 100644
--- a/fs/gfs2/xattr.c
+++ b/fs/gfs2/xattr.c
@@ -732,7 +732,7 @@ static int ea_alloc_skeleton(struct gfs2_inode *ip, struct gfs2_ea_request *er,
if (error)
return error;
- error = gfs2_quota_lock_check(ip);
+ error = gfs2_quota_lock_check(ip, &ap);
if (error)
return error;