mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-26 13:44:15 +08:00
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>
This commit is contained in:
parent
1595548fe7
commit
4bd684bc01
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user