On Sun 02-06-24 14:37:19, Mateusz Guzik wrote: > Note the macro used here works regardless of LOCKDEP. > > Signed-off-by: Mateusz Guzik <mjguzik@xxxxxxxxx> Nice cleanup. Feel free to add: Reviewed-by: Jan Kara <jack@xxxxxxx> Honza > --- > fs/dcache.c | 2 +- > fs/quota/dquot.c | 8 ++------ > 2 files changed, 3 insertions(+), 7 deletions(-) > > diff --git a/fs/dcache.c b/fs/dcache.c > index 407095188f83..a0a944fd3a1c 100644 > --- a/fs/dcache.c > +++ b/fs/dcache.c > @@ -1548,7 +1548,7 @@ void shrink_dcache_for_umount(struct super_block *sb) > { > struct dentry *dentry; > > - WARN(down_read_trylock(&sb->s_umount), "s_umount should've been locked"); > + rwsem_assert_held_write(&sb->s_umount); > > dentry = sb->s_root; > sb->s_root = NULL; > diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c > index 627eb2f72ef3..a2b256dac36e 100644 > --- a/fs/quota/dquot.c > +++ b/fs/quota/dquot.c > @@ -2246,9 +2246,7 @@ int dquot_disable(struct super_block *sb, int type, unsigned int flags) > int cnt; > struct quota_info *dqopt = sb_dqopt(sb); > > - /* s_umount should be held in exclusive mode */ > - if (WARN_ON_ONCE(down_read_trylock(&sb->s_umount))) > - up_read(&sb->s_umount); > + rwsem_assert_held_write(&sb->s_umount); > > /* Cannot turn off usage accounting without turning off limits, or > * suspend quotas and simultaneously turn quotas off. */ > @@ -2510,9 +2508,7 @@ int dquot_resume(struct super_block *sb, int type) > int ret = 0, cnt; > unsigned int flags; > > - /* s_umount should be held in exclusive mode */ > - if (WARN_ON_ONCE(down_read_trylock(&sb->s_umount))) > - up_read(&sb->s_umount); > + rwsem_assert_held_write(&sb->s_umount); > > for (cnt = 0; cnt < MAXQUOTAS; cnt++) { > if (type != -1 && cnt != type) > -- > 2.39.2 > -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR