Re: [PATCH] ceph: properly put ceph_string reference after async create attempt

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jan 26, 2022 at 5:25 PM Jeff Layton <jlayton@xxxxxxxxxx> wrote:
>
> On Wed, 2022-01-26 at 17:22 +0100, Ilya Dryomov wrote:
> > On Tue, Jan 25, 2022 at 10:08 PM Jeff Layton <jlayton@xxxxxxxxxx> wrote:
> > >
> > > The reference acquired by try_prep_async_create is currently leaked.
> > > Ensure we put it.
> > >
> > > Fixes: 9a8d03ca2e2c ("ceph: attempt to do async create when possible")
> > > Signed-off-by: Jeff Layton <jlayton@xxxxxxxxxx>
> > > ---
> > >  fs/ceph/file.c | 2 ++
> > >  1 file changed, 2 insertions(+)
> > >
> > > diff --git a/fs/ceph/file.c b/fs/ceph/file.c
> > > index ea1e9ac6c465..cbe4d5a5cde5 100644
> > > --- a/fs/ceph/file.c
> > > +++ b/fs/ceph/file.c
> > > @@ -766,8 +766,10 @@ int ceph_atomic_open(struct inode *dir, struct dentry *dentry,
> > >                                 restore_deleg_ino(dir, req->r_deleg_ino);
> > >                                 ceph_mdsc_put_request(req);
> > >                                 try_async = false;
> > > +                               ceph_put_string(rcu_dereference_raw(lo.pool_ns));
> > >                                 goto retry;
> > >                         }
> > > +                       ceph_put_string(rcu_dereference_raw(lo.pool_ns));
> > >                         goto out_req;
> > >                 }
> > >         }
> > > --
> > > 2.34.1
> > >
> >
> > Hi Jeff,
> >
> > Where is the try_prep_async_create() reference put in case of success?
> > It doesn't look like ceph_finish_async_create() actually consumes it.
> >
>
> The second call above puts it in the case of success, or in the case of
> any error that isn't -EJUKEBOX.

Reviewed-by: Ilya Dryomov <idryomov@xxxxxxxxx>

Thanks,

                Ilya



[Index of Archives]     [CEPH Users]     [Ceph Large]     [Ceph Dev]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux