On Thu, Sep 5, 2024 at 4:00 AM <xiubli@xxxxxxxxxx> wrote: > > From: Xiubo Li <xiubli@xxxxxxxxxx> > > When doing the direct-io reads it will also try to mark pages dirty, > but for the read path it won't hold the Fw caps and there is case > will it get the Fw reference. > > Fixes: 5dda377cf0a6 ("ceph: set i_head_snapc when getting CEPH_CAP_FILE_WR reference") > Signed-off-by: Xiubo Li <xiubli@xxxxxxxxxx> > --- > fs/ceph/addr.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c > index c4744a02db75..0df4623785dd 100644 > --- a/fs/ceph/addr.c > +++ b/fs/ceph/addr.c > @@ -95,7 +95,6 @@ static bool ceph_dirty_folio(struct address_space *mapping, struct folio *folio) > > /* dirty the head */ > spin_lock(&ci->i_ceph_lock); > - BUG_ON(ci->i_wr_ref == 0); // caller should hold Fw reference > if (__ceph_have_pending_cap_snap(ci)) { > struct ceph_cap_snap *capsnap = > list_last_entry(&ci->i_cap_snaps, > -- > 2.45.1 > Reviewed-by: Venky Shankar <vshankar@xxxxxxxxxx> Tested-by: Venky Shankar <vshankar@xxxxxxxxxx> -- Cheers, Venky