Re: [PATCH 04/13] ceph: Tell the VFS that readpage was synchronous

From: Jeff Layton
Date: Thu Sep 17 2020 - 12:51:32 EST


On Thu, 2020-09-17 at 16:10 +0100, Matthew Wilcox (Oracle) wrote:
> The ceph readpage implementation was already synchronous, so use
> AOP_UPDATED_PAGE to avoid cycling the page lock.
>
> Signed-off-by: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx>
> ---
> fs/ceph/addr.c | 9 +++++----
> 1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c
> index 6ea761c84494..b2bf8bf7a312 100644
> --- a/fs/ceph/addr.c
> +++ b/fs/ceph/addr.c
> @@ -291,10 +291,11 @@ static int ceph_do_readpage(struct file *filp, struct page *page)
> static int ceph_readpage(struct file *filp, struct page *page)
> {
> int r = ceph_do_readpage(filp, page);
> - if (r != -EINPROGRESS)
> - unlock_page(page);
> - else
> - r = 0;
> + if (r == -EINPROGRESS)
> + return 0;
> + if (r == 0)
> + return AOP_UPDATED_PAGE;
> + unlock_page(page);
> return r;
> }
>

Looks good to me. I assume you'll merge all of these as a set since the
early ones are a prerequisite?

Reviewed-by: Jeff Layton <jlayton@xxxxxxxxxx>