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) <wi...@infradead.org>
> ---
>  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 <jlay...@kernel.org>

Reply via email to