[PATCH 01/19] fs: reflow deactivate_locked_super

From: Christoph Hellwig
Date: Wed Sep 13 2023 - 07:11:02 EST


Return early for the case where the super block isn't cleaned up to
reduce level of indentation.

Signed-off-by: Christoph Hellwig <hch@xxxxxx>
---
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)
{
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);

/**
--
2.39.2