]> git.itanic.dy.fi Git - linux-stable/commitdiff
nilfs2: simplify device handling
authorJan Kara <jack@suse.cz>
Wed, 1 Nov 2023 17:27:39 +0000 (18:27 +0100)
committerChristian Brauner <brauner@kernel.org>
Sat, 18 Nov 2023 13:59:24 +0000 (14:59 +0100)
We removed all codepaths where s_umount is taken beneath open_mutex and
bd_holder_lock so don't make things more complicated than they need to
be and hold s_umount over block device opening.

CC: Ryusuke Konishi <konishi.ryusuke@gmail.com>
CC: <linux-nilfs@vger.kernel.org>
Signed-off-by: Jan Kara <jack@suse.cz>
Link: https://lore.kernel.org/r/20231101172739.8676-1-jack@suse.cz
Acked-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/nilfs2/super.c

index a5d1fa4e7552f6aac95cbcb2d28ed02e712edd66..df8674173b22024b4aef2bcd430d6a23b92986b0 100644 (file)
@@ -1314,15 +1314,7 @@ nilfs_mount(struct file_system_type *fs_type, int flags,
                return ERR_CAST(s);
 
        if (!s->s_root) {
-               /*
-                * We drop s_umount here because we need to open the bdev and
-                * bdev->open_mutex ranks above s_umount (blkdev_put() ->
-                * __invalidate_device()). It is safe because we have active sb
-                * reference and SB_BORN is not set yet.
-                */
-               up_write(&s->s_umount);
                err = setup_bdev_super(s, flags, NULL);
-               down_write(&s->s_umount);
                if (!err)
                        err = nilfs_fill_super(s, data,
                                               flags & SB_SILENT ? 1 : 0);