diff options
author | Jan Kara <jack@suse.com> | 2015-07-14 14:36:02 +0300 |
---|---|---|
committer | Jan Kara <jack@suse.com> | 2015-07-23 21:59:38 +0300 |
commit | 9c89fe0af826bfff36d8019ea6fd78db09b3c478 (patch) | |
tree | a125877d6aa2e18bb452a5f86cc633a303a9fadb /fs/ocfs2/file.c | |
parent | a7cdadee0e89486ad072be7b91e477105784e0bb (diff) | |
download | linux-9c89fe0af826bfff36d8019ea6fd78db09b3c478.tar.xz |
ocfs2: Handle error from dquot_initialize()
dquot_initialize() can now return error. Handle it where possible.
Reviewed-by: Junxiao Bi <junxiao.bi@oracle.com>
Signed-off-by: Jan Kara <jack@suse.com>
Diffstat (limited to 'fs/ocfs2/file.c')
-rw-r--r-- | fs/ocfs2/file.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c index 4d9e8275ed99..7210583b472f 100644 --- a/fs/ocfs2/file.c +++ b/fs/ocfs2/file.c @@ -105,8 +105,11 @@ static int ocfs2_file_open(struct inode *inode, struct file *file) file->f_path.dentry->d_name.len, file->f_path.dentry->d_name.name, mode); - if (file->f_mode & FMODE_WRITE) - dquot_initialize(inode); + if (file->f_mode & FMODE_WRITE) { + status = dquot_initialize(inode); + if (status) + goto leave; + } spin_lock(&oi->ip_lock); @@ -1155,8 +1158,11 @@ int ocfs2_setattr(struct dentry *dentry, struct iattr *attr) if (status) return status; - if (is_quota_modification(inode, attr)) - dquot_initialize(inode); + if (is_quota_modification(inode, attr)) { + status = dquot_initialize(inode); + if (status) + return status; + } size_change = S_ISREG(inode->i_mode) && attr->ia_valid & ATTR_SIZE; if (size_change) { status = ocfs2_rw_lock(inode, 1); |