From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bob Peterson Date: Mon, 3 Aug 2020 08:17:08 -0400 (EDT) Subject: [Cluster-devel] [PATCH] gfs2: Fix refcount leak in gfs2_glock_poke In-Reply-To: <20200803115213.432367-1-agruenba@redhat.com> References: <20200803115213.432367-1-agruenba@redhat.com> Message-ID: <1760387650.10412850.1596457028715.JavaMail.zimbra@redhat.com> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit ----- Original Message ----- > In gfs2_glock_poke, make sure gfs2_holder_uninit is called on the local > glock holder. Without that, we're leaking a glock and a pid reference. > > Fixes: 9e8990dea926 ("gfs2: Smarter iopen glock waiting") > Cc: stable at vger.kernel.org # v5.8+ > Signed-off-by: Andreas Gruenbacher > --- > fs/gfs2/glock.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c > index 57134d326cfa..f13b136654ca 100644 > --- a/fs/gfs2/glock.c > +++ b/fs/gfs2/glock.c > @@ -790,9 +790,11 @@ static void gfs2_glock_poke(struct gfs2_glock *gl) > struct gfs2_holder gh; > int error; > > - error = gfs2_glock_nq_init(gl, LM_ST_SHARED, flags, &gh); > + gfs2_holder_init(gl, LM_ST_SHARED, flags, &gh); > + error = gfs2_glock_nq(&gh); > if (!error) > gfs2_glock_dq(&gh); > + gfs2_holder_uninit(&gh); > } > > static bool gfs2_try_evict(struct gfs2_glock *gl) > -- > 2.26.2 Hi, Looks okay. I'd rather use nq_init and dq_uninit (and change similar code throughout to use it more consistently) but in the past you've expressed a concern that the compiler generates less efficient code. Maybe it makes more sense to rework gfs2_glock_nq_init and dq_uninit so the compiler does a more reasonable job? Or I suppose we could delay that work for later. Regards, Bob Peterson