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>