Message ID | 20250129143353.1892423-4-agruenba@redhat.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | further lockref cleanups | expand |
Maybe the lockref_init kerneldoc now needs to say that it's initialized
to a hold count of 1?
Otherwise looks good:
Reviewed-by: Christoph Hellwig <hch@lst.de>
On Wed, Jan 29, 2025 at 4:44 PM Christoph Hellwig <hch@lst.de> wrote: > Maybe the lockref_init kerneldoc now needs to say that it's initialized > to a hold count of 1? I always feel a bit guilty when adding a comment like "Initializes @lockref->count to 1" and five lines further down in the code, it says 'lockref->count = 1'. But okay. > Otherwise looks good: > > Reviewed-by: Christoph Hellwig <hch@lst.de> > Thanks, Andreas
On Wed, Jan 29, 2025 at 06:19:39PM +0100, Andreas Gruenbacher wrote: > On Wed, Jan 29, 2025 at 4:44 PM Christoph Hellwig <hch@lst.de> wrote: > > Maybe the lockref_init kerneldoc now needs to say that it's initialized > > to a hold count of 1? > > I always feel a bit guilty when adding a comment like "Initializes > @lockref->count to 1" and five lines further down in the code, it says > 'lockref->count = 1'. But okay. It reads a bit odd, but kerneldoc comments aren't just for the reader of the code - they also get extraced into rendered documentation.
diff --git a/fs/dcache.c b/fs/dcache.c index 1a01d7a6a7a9..973a66dd3adf 100644 --- a/fs/dcache.c +++ b/fs/dcache.c @@ -1682,7 +1682,7 @@ static struct dentry *__d_alloc(struct super_block *sb, const struct qstr *name) smp_store_release(&dentry->d_name.name, dname); /* ^^^ */ dentry->d_flags = 0; - lockref_init(&dentry->d_lockref, 1); + lockref_init(&dentry->d_lockref); seqcount_spinlock_init(&dentry->d_seq, &dentry->d_lock); dentry->d_inode = NULL; dentry->d_parent = dentry; diff --git a/fs/erofs/zdata.c b/fs/erofs/zdata.c index 254f6ad2c336..85a08230d7c2 100644 --- a/fs/erofs/zdata.c +++ b/fs/erofs/zdata.c @@ -747,7 +747,7 @@ static int z_erofs_register_pcluster(struct z_erofs_decompress_frontend *fe) if (IS_ERR(pcl)) return PTR_ERR(pcl); - lockref_init(&pcl->lockref, 1); /* one ref for this request */ + lockref_init(&pcl->lockref); /* one ref for this request */ pcl->algorithmformat = map->m_algorithmformat; pcl->length = 0; pcl->partial = true; diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c index b29eb71e3e29..65c07aa95718 100644 --- a/fs/gfs2/glock.c +++ b/fs/gfs2/glock.c @@ -1201,7 +1201,7 @@ int gfs2_glock_get(struct gfs2_sbd *sdp, u64 number, if (glops->go_instantiate) gl->gl_flags |= BIT(GLF_INSTANTIATE_NEEDED); gl->gl_name = name; - lockref_init(&gl->gl_lockref, 1); + lockref_init(&gl->gl_lockref); lockdep_set_subclass(&gl->gl_lockref.lock, glops->go_subclass); gl->gl_state = LM_ST_UNLOCKED; gl->gl_target = LM_ST_UNLOCKED; diff --git a/fs/gfs2/quota.c b/fs/gfs2/quota.c index 6ae529a5388b..2298e06797ac 100644 --- a/fs/gfs2/quota.c +++ b/fs/gfs2/quota.c @@ -236,7 +236,7 @@ static struct gfs2_quota_data *qd_alloc(unsigned hash, struct gfs2_sbd *sdp, str return NULL; qd->qd_sbd = sdp; - lockref_init(&qd->qd_lockref, 1); + lockref_init(&qd->qd_lockref); qd->qd_id = qid; qd->qd_slot = -1; INIT_LIST_HEAD(&qd->qd_lru); diff --git a/include/linux/lockref.h b/include/linux/lockref.h index c39f119659ba..30c68ad1859a 100644 --- a/include/linux/lockref.h +++ b/include/linux/lockref.h @@ -37,12 +37,11 @@ struct lockref { /** * lockref_init - Initialize a lockref * @lockref: pointer to lockref structure - * @count: initial count */ -static inline void lockref_init(struct lockref *lockref, unsigned int count) +static inline void lockref_init(struct lockref *lockref) { spin_lock_init(&lockref->lock); - lockref->count = count; + lockref->count = 1; } void lockref_get(struct lockref *lockref);
All users of lockref_init() now initialize the count to 1, so hardcode that and remove the count argument. Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com> --- fs/dcache.c | 2 +- fs/erofs/zdata.c | 2 +- fs/gfs2/glock.c | 2 +- fs/gfs2/quota.c | 2 +- include/linux/lockref.h | 5 ++--- 5 files changed, 6 insertions(+), 7 deletions(-)