diff options
Diffstat (limited to 'fs/gfs2/ops_inode.c')
-rw-r--r-- | fs/gfs2/ops_inode.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/fs/gfs2/ops_inode.c b/fs/gfs2/ops_inode.c index 6cbbb5b46ce4..34fe571e15ee 100644 --- a/fs/gfs2/ops_inode.c +++ b/fs/gfs2/ops_inode.c | |||
@@ -200,6 +200,10 @@ static int gfs2_link(struct dentry *old_dentry, struct inode *dir, | |||
200 | 200 | ||
201 | if (alloc_required) { | 201 | if (alloc_required) { |
202 | struct gfs2_alloc *al = gfs2_alloc_get(dip); | 202 | struct gfs2_alloc *al = gfs2_alloc_get(dip); |
203 | if (!al) { | ||
204 | error = -ENOMEM; | ||
205 | goto out_gunlock; | ||
206 | } | ||
203 | 207 | ||
204 | error = gfs2_quota_lock(dip, NO_QUOTA_CHANGE, NO_QUOTA_CHANGE); | 208 | error = gfs2_quota_lock(dip, NO_QUOTA_CHANGE, NO_QUOTA_CHANGE); |
205 | if (error) | 209 | if (error) |
@@ -716,6 +720,10 @@ static int gfs2_rename(struct inode *odir, struct dentry *odentry, | |||
716 | 720 | ||
717 | if (alloc_required) { | 721 | if (alloc_required) { |
718 | struct gfs2_alloc *al = gfs2_alloc_get(ndip); | 722 | struct gfs2_alloc *al = gfs2_alloc_get(ndip); |
723 | if (!al) { | ||
724 | error = -ENOMEM; | ||
725 | goto out_gunlock; | ||
726 | } | ||
719 | 727 | ||
720 | error = gfs2_quota_lock(ndip, NO_QUOTA_CHANGE, NO_QUOTA_CHANGE); | 728 | error = gfs2_quota_lock(ndip, NO_QUOTA_CHANGE, NO_QUOTA_CHANGE); |
721 | if (error) | 729 | if (error) |
@@ -953,7 +961,8 @@ static int setattr_chown(struct inode *inode, struct iattr *attr) | |||
953 | if (!(attr->ia_valid & ATTR_GID) || ogid == ngid) | 961 | if (!(attr->ia_valid & ATTR_GID) || ogid == ngid) |
954 | ogid = ngid = NO_QUOTA_CHANGE; | 962 | ogid = ngid = NO_QUOTA_CHANGE; |
955 | 963 | ||
956 | gfs2_alloc_get(ip); | 964 | if (!gfs2_alloc_get(ip)) |
965 | return -ENOMEM; | ||
957 | 966 | ||
958 | error = gfs2_quota_lock(ip, nuid, ngid); | 967 | error = gfs2_quota_lock(ip, nuid, ngid); |
959 | if (error) | 968 | if (error) |