Message ID | 20230913111013.77623-2-hch@lst.de (mailing list archive) |
---|---|
State | Handled Elsewhere |
Headers | show |
Series | [01/19] fs: reflow deactivate_locked_super | expand |
On Wed, Sep 13, 2023 at 08:09:55AM -0300, Christoph Hellwig wrote: > Return early for the case where the super block isn't cleaned up to > reduce level of indentation. > > Signed-off-by: Christoph Hellwig <hch@lst.de> > --- > fs/super.c | 35 ++++++++++++++++++----------------- > 1 file changed, 18 insertions(+), 17 deletions(-) > > diff --git a/fs/super.c b/fs/super.c > index 2d762ce67f6e6c..127a17d958a482 100644 > --- a/fs/super.c > +++ b/fs/super.c > @@ -476,27 +476,28 @@ static void kill_super_notify(struct super_block *sb) > void deactivate_locked_super(struct super_block *s) I wouldn't mind s/s/sb/ here as well. So we stop using @s in some and @sb in other places. Otherwise looks good to me, Reviewed-by: Christian Brauner <brauner@kernel.org>
On Wed, Sep 13, 2023 at 06:35:03PM +0200, Christian Brauner wrote: > I wouldn't mind s/s/sb/ here as well. So we stop using @s in some and > @sb in other places. I did that in an earlier version and decided to have some less churn. But I can add it back.
diff --git a/fs/super.c b/fs/super.c index 2d762ce67f6e6c..127a17d958a482 100644 --- a/fs/super.c +++ b/fs/super.c @@ -476,27 +476,28 @@ static void kill_super_notify(struct super_block *sb) void deactivate_locked_super(struct super_block *s) { struct file_system_type *fs = s->s_type; - if (atomic_dec_and_test(&s->s_active)) { - unregister_shrinker(&s->s_shrink); - fs->kill_sb(s); - kill_super_notify(s); - - /* - * Since list_lru_destroy() may sleep, we cannot call it from - * put_super(), where we hold the sb_lock. Therefore we destroy - * the lru lists right now. - */ - list_lru_destroy(&s->s_dentry_lru); - list_lru_destroy(&s->s_inode_lru); - - put_filesystem(fs); - put_super(s); - } else { + if (!atomic_dec_and_test(&s->s_active)) { super_unlock_excl(s); + return; } -} + unregister_shrinker(&s->s_shrink); + fs->kill_sb(s); + + kill_super_notify(s); + + /* + * Since list_lru_destroy() may sleep, we cannot call it from + * put_super(), where we hold the sb_lock. Therefore we destroy + * the lru lists right now. + */ + list_lru_destroy(&s->s_dentry_lru); + list_lru_destroy(&s->s_inode_lru); + + put_filesystem(fs); + put_super(s); +} EXPORT_SYMBOL(deactivate_locked_super); /**
Return early for the case where the super block isn't cleaned up to reduce level of indentation. Signed-off-by: Christoph Hellwig <hch@lst.de> --- fs/super.c | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-)