diff options
author | Andreas Gruenbacher <agruenba@redhat.com> | 2020-03-06 19:51:41 +0300 |
---|---|---|
committer | Bob Peterson <rpeterso@redhat.com> | 2020-03-27 22:08:05 +0300 |
commit | 4bd684bc0143b46eea6dcf4dd3a73dfd6dc7247c (patch) | |
tree | 39c7938cc6fb0bd2e3e7fb3993d44e190af25525 /fs/gfs2/file.c | |
parent | 1595548fe72ca834abe75fb3df47e300a087d563 (diff) | |
download | linux-4bd684bc0143b46eea6dcf4dd3a73dfd6dc7247c.tar.xz |
gfs2: Remove unnecessary gfs2_qa_{get,put} pairs
We now get the quota data structure when opening a file writable and put it
when closing that writable file descriptor, so there no longer is a need for
gfs2_qa_{get,put} while we're holding a writable file descriptor.
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Diffstat (limited to 'fs/gfs2/file.c')
-rw-r--r-- | fs/gfs2/file.c | 28 |
1 files changed, 1 insertions, 27 deletions
diff --git a/fs/gfs2/file.c b/fs/gfs2/file.c index 99a75e779ac0..fe305e4bfd37 100644 --- a/fs/gfs2/file.c +++ b/fs/gfs2/file.c @@ -458,10 +458,6 @@ static vm_fault_t gfs2_page_mkwrite(struct vm_fault *vmf) sb_start_pagefault(inode->i_sb); - ret = gfs2_qa_get(ip); - if (ret) - goto out; - gfs2_holder_init(ip->i_gl, LM_ST_EXCLUSIVE, 0, &gh); ret = gfs2_glock_nq(&gh); if (ret) @@ -553,13 +549,11 @@ out_quota_unlock: out_unlock: gfs2_glock_dq(&gh); out_uninit: - gfs2_qa_put(ip); gfs2_holder_uninit(&gh); if (ret == 0) { set_page_dirty(page); wait_for_stable_page(page); } -out: sb_end_pagefault(inode->i_sb); return block_page_mkwrite_return(ret); } @@ -860,10 +854,6 @@ static ssize_t gfs2_file_write_iter(struct kiocb *iocb, struct iov_iter *from) struct gfs2_inode *ip = GFS2_I(inode); ssize_t ret; - ret = gfs2_qa_get(ip); - if (ret) - return ret; - gfs2_size_hint(file, iocb->ki_pos, iov_iter_count(from)); if (iocb->ki_flags & IOCB_APPEND) { @@ -871,7 +861,7 @@ static ssize_t gfs2_file_write_iter(struct kiocb *iocb, struct iov_iter *from) ret = gfs2_glock_nq_init(ip->i_gl, LM_ST_SHARED, 0, &gh); if (ret) - goto out; + return ret; gfs2_glock_dq_uninit(&gh); } @@ -929,8 +919,6 @@ static ssize_t gfs2_file_write_iter(struct kiocb *iocb, struct iov_iter *from) out_unlock: inode_unlock(inode); -out: - gfs2_qa_put(ip); return ret; } @@ -1162,18 +1150,11 @@ static long gfs2_fallocate(struct file *file, int mode, loff_t offset, loff_t le if (mode & FALLOC_FL_PUNCH_HOLE) { ret = __gfs2_punch_hole(file, offset, len); } else { - ret = gfs2_qa_get(ip); - if (ret) - goto out_putw; - ret = __gfs2_fallocate(file, mode, offset, len); - if (ret) gfs2_rs_deltree(&ip->i_res); - gfs2_qa_put(ip); } -out_putw: put_write_access(inode); out_unlock: gfs2_glock_dq(&gh); @@ -1187,18 +1168,11 @@ static ssize_t gfs2_file_splice_write(struct pipe_inode_info *pipe, struct file *out, loff_t *ppos, size_t len, unsigned int flags) { - int error; - struct gfs2_inode *ip = GFS2_I(out->f_mapping->host); ssize_t ret; - error = gfs2_qa_get(ip); - if (error) - return (ssize_t)error; - gfs2_size_hint(out, *ppos, len); ret = iter_file_splice_write(pipe, out, ppos, len, flags); - gfs2_qa_put(ip); return ret; } |