Re: [PATCH 8/8] gfs2: use lockref_init for qd_lockref

Christoph Hellwig
2025-01-16T04:32:31Z

On Wed, Jan 15, 2025 at 02:35:03PM +0100, Andreas Gruenbacher wrote:
> > +++ b/fs/gfs2/quota.c
> > @@ -236,8 +236,7 @@ static struct gfs2_quota_data *qd_alloc(unsigned hash, struct gfs2_sbd *sdp, str
> > return NULL;
> >
> > qd->qd_sbd = sdp;
> > - qd->qd_lockref.count = 0;
> > - spin_lock_init(&qd->qd_lockref.lock);
> > + lockref_init(&qd->qd_lockref, 0);
>
> Hmm, initializing count to 0 seems to be the odd case and it's fairly
> simple to change gfs2 to work with an initial value of 1. I wonder if
> lockref_init() should really have a count argument.

Well, if you can fix it to start with 1 we could start out with 1
as the default. FYI, I also didn't touch the other gfs2 lockref
because it initialize the lock in the slab init_once callback and
the count on every initialization.