summaryrefslogtreecommitdiff
path: root/fs/gfs2/file.c
diff options
context:
space:
mode:
authorAndreas Gruenbacher <agruenba@redhat.com>2020-10-21 17:37:54 +0300
committerAndreas Gruenbacher <agruenba@redhat.com>2021-02-17 21:26:05 +0300
commit0ec9b9ea4f83303bfd8f052a3d8b2bd179b002e1 (patch)
treea711fbabeadc02e8ced75544e2ec280a31a2cbf0 /fs/gfs2/file.c
parentb2598965dc84bbcf8dd54accc80f60820e5d4965 (diff)
downloadlinux-0ec9b9ea4f83303bfd8f052a3d8b2bd179b002e1.tar.xz
gfs2: Check for active reservation in gfs2_release
In gfs2_release, check if the inode has an active reservation to avoid unnecessary lock taking. Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
Diffstat (limited to 'fs/gfs2/file.c')
-rw-r--r--fs/gfs2/file.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/gfs2/file.c b/fs/gfs2/file.c
index b39b339feddc..177c4d74ca30 100644
--- a/fs/gfs2/file.c
+++ b/fs/gfs2/file.c
@@ -716,10 +716,10 @@ static int gfs2_release(struct inode *inode, struct file *file)
kfree(file->private_data);
file->private_data = NULL;
- if (file->f_mode & FMODE_WRITE) {
+ if (gfs2_rs_active(&ip->i_res))
gfs2_rs_delete(ip, &inode->i_writecount);
+ if (file->f_mode & FMODE_WRITE)
gfs2_qa_put(ip);
- }
return 0;
}