diff options
author | Jeff Layton <jlayton@kernel.org> | 2021-04-05 12:19:35 -0400 |
---|---|---|
committer | Ilya Dryomov <idryomov@gmail.com> | 2021-04-27 23:52:23 +0200 |
commit | e72968e15b297a51dcefe93a95e875dcefe6c4aa (patch) | |
tree | 026a5bad827793090e0dc66f0fdd28dc6310f530 /fs/ceph/caps.c | |
parent | 1775c7ddacfcea29051c67409087578f8f4d751b (diff) | |
download | linux-e72968e15b297a51dcefe93a95e875dcefe6c4aa.tar.bz2 |
ceph: drop pinned_page parameter from ceph_get_caps
All of the existing callers that don't set this to NULL just drop the
page reference at some arbitrary point later in processing. There's no
point in keeping a page reference that we don't use, so just drop the
reference immediately after checking the Uptodate flag.
Signed-off-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Diffstat (limited to 'fs/ceph/caps.c')
-rw-r--r-- | fs/ceph/caps.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c index e12e4cdefac1..010621d095f5 100644 --- a/fs/ceph/caps.c +++ b/fs/ceph/caps.c @@ -2855,8 +2855,7 @@ int ceph_try_get_caps(struct inode *inode, int need, int want, * due to a small max_size, make sure we check_max_size (and possibly * ask the mds) so we don't get hung up indefinitely. */ -int ceph_get_caps(struct file *filp, int need, int want, - loff_t endoff, int *got, struct page **pinned_page) +int ceph_get_caps(struct file *filp, int need, int want, loff_t endoff, int *got) { struct ceph_file_info *fi = filp->private_data; struct inode *inode = file_inode(filp); @@ -2954,11 +2953,11 @@ int ceph_get_caps(struct file *filp, int need, int want, struct page *page = find_get_page(inode->i_mapping, 0); if (page) { - if (PageUptodate(page)) { - *pinned_page = page; - break; - } + bool uptodate = PageUptodate(page); + put_page(page); + if (uptodate) + break; } /* * drop cap refs first because getattr while |