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. Thanks, Ilya