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.