diff mbox series

[27/32] nilfs2: Convert to use blkdev_get_handle_by_path()

Message ID 20230704122224.16257-27-jack@suse.cz (mailing list archive)
State New, archived
Headers show
Series block: Make blkdev_get_by_*() return handle | expand

Commit Message

Jan Kara July 4, 2023, 12:21 p.m. UTC
Convert nilfs2 to use blkdev_get_handle_by_path() and initialize the
superblock with the handle.

CC: linux-nilfs@vger.kernel.org
Signed-off-by: Jan Kara <jack@suse.cz>
---
 fs/nilfs2/super.c | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)

Comments

Ryusuke Konishi July 21, 2023, 5:22 a.m. UTC | #1
On Tue, Jul 4, 2023 at 9:24 PM Jan Kara wrote:
>
> Convert nilfs2 to use blkdev_get_handle_by_path() and initialize the
> superblock with the handle.
>
> CC: linux-nilfs@vger.kernel.org
> Signed-off-by: Jan Kara <jack@suse.cz>
> ---
>  fs/nilfs2/super.c | 21 ++++++++++++---------
>  1 file changed, 12 insertions(+), 9 deletions(-)

Acked-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>

You may revise this patch to reflect comments on the patch 1/32, but
the changes here look fine, and I have no objection to rewriting to
use bdev_handle.

Thanks,
Ryusuke Konishi




>
> diff --git a/fs/nilfs2/super.c b/fs/nilfs2/super.c
> index 0ef8c71bde8e..0aba0daa06d2 100644
> --- a/fs/nilfs2/super.c
> +++ b/fs/nilfs2/super.c
> @@ -1283,14 +1283,15 @@ static int nilfs_identify(char *data, struct nilfs_super_data *sd)
>
>  static int nilfs_set_bdev_super(struct super_block *s, void *data)
>  {
> -       s->s_bdev = data;
> +       s->s_bdev_handle = data;
> +       s->s_bdev = s->s_bdev_handle->bdev;
>         s->s_dev = s->s_bdev->bd_dev;
>         return 0;
>  }
>
>  static int nilfs_test_bdev_super(struct super_block *s, void *data)
>  {
> -       return (void *)s->s_bdev == data;
> +       return s->s_bdev == ((struct bdev_handle *)data)->bdev;
>  }
>
>  static struct dentry *
> @@ -1298,15 +1299,17 @@ nilfs_mount(struct file_system_type *fs_type, int flags,
>              const char *dev_name, void *data)
>  {
>         struct nilfs_super_data sd;
> +       struct bdev_handle *bdev_handle;
>         struct super_block *s;
>         struct dentry *root_dentry;
>         int err, s_new = false;
>
> -       sd.bdev = blkdev_get_by_path(dev_name, sb_open_mode(flags), fs_type,
> -                                    NULL);
> -       if (IS_ERR(sd.bdev))
> -               return ERR_CAST(sd.bdev);
> +       bdev_handle = blkdev_get_handle_by_path(dev_name, sb_open_mode(flags),
> +                               fs_type, NULL);
> +       if (IS_ERR(bdev_handle))
> +               return ERR_CAST(bdev_handle);
>
> +       sd.bdev = bdev_handle->bdev;
>         sd.cno = 0;
>         sd.flags = flags;
>         if (nilfs_identify((char *)data, &sd)) {
> @@ -1326,7 +1329,7 @@ nilfs_mount(struct file_system_type *fs_type, int flags,
>                 goto failed;
>         }
>         s = sget(fs_type, nilfs_test_bdev_super, nilfs_set_bdev_super, flags,
> -                sd.bdev);
> +                bdev_handle);
>         mutex_unlock(&sd.bdev->bd_fsfreeze_mutex);
>         if (IS_ERR(s)) {
>                 err = PTR_ERR(s);
> @@ -1374,7 +1377,7 @@ nilfs_mount(struct file_system_type *fs_type, int flags,
>         }
>
>         if (!s_new)
> -               blkdev_put(sd.bdev, fs_type);
> +               blkdev_handle_put(bdev_handle);
>
>         return root_dentry;
>
> @@ -1383,7 +1386,7 @@ nilfs_mount(struct file_system_type *fs_type, int flags,
>
>   failed:
>         if (!s_new)
> -               blkdev_put(sd.bdev, fs_type);
> +               blkdev_handle_put(bdev_handle);
>         return ERR_PTR(err);
>  }
>
> --
> 2.35.3
>
diff mbox series

Patch

diff --git a/fs/nilfs2/super.c b/fs/nilfs2/super.c
index 0ef8c71bde8e..0aba0daa06d2 100644
--- a/fs/nilfs2/super.c
+++ b/fs/nilfs2/super.c
@@ -1283,14 +1283,15 @@  static int nilfs_identify(char *data, struct nilfs_super_data *sd)
 
 static int nilfs_set_bdev_super(struct super_block *s, void *data)
 {
-	s->s_bdev = data;
+	s->s_bdev_handle = data;
+	s->s_bdev = s->s_bdev_handle->bdev;
 	s->s_dev = s->s_bdev->bd_dev;
 	return 0;
 }
 
 static int nilfs_test_bdev_super(struct super_block *s, void *data)
 {
-	return (void *)s->s_bdev == data;
+	return s->s_bdev == ((struct bdev_handle *)data)->bdev;
 }
 
 static struct dentry *
@@ -1298,15 +1299,17 @@  nilfs_mount(struct file_system_type *fs_type, int flags,
 	     const char *dev_name, void *data)
 {
 	struct nilfs_super_data sd;
+	struct bdev_handle *bdev_handle;
 	struct super_block *s;
 	struct dentry *root_dentry;
 	int err, s_new = false;
 
-	sd.bdev = blkdev_get_by_path(dev_name, sb_open_mode(flags), fs_type,
-				     NULL);
-	if (IS_ERR(sd.bdev))
-		return ERR_CAST(sd.bdev);
+	bdev_handle = blkdev_get_handle_by_path(dev_name, sb_open_mode(flags),
+				fs_type, NULL);
+	if (IS_ERR(bdev_handle))
+		return ERR_CAST(bdev_handle);
 
+	sd.bdev = bdev_handle->bdev;
 	sd.cno = 0;
 	sd.flags = flags;
 	if (nilfs_identify((char *)data, &sd)) {
@@ -1326,7 +1329,7 @@  nilfs_mount(struct file_system_type *fs_type, int flags,
 		goto failed;
 	}
 	s = sget(fs_type, nilfs_test_bdev_super, nilfs_set_bdev_super, flags,
-		 sd.bdev);
+		 bdev_handle);
 	mutex_unlock(&sd.bdev->bd_fsfreeze_mutex);
 	if (IS_ERR(s)) {
 		err = PTR_ERR(s);
@@ -1374,7 +1377,7 @@  nilfs_mount(struct file_system_type *fs_type, int flags,
 	}
 
 	if (!s_new)
-		blkdev_put(sd.bdev, fs_type);
+		blkdev_handle_put(bdev_handle);
 
 	return root_dentry;
 
@@ -1383,7 +1386,7 @@  nilfs_mount(struct file_system_type *fs_type, int flags,
 
  failed:
 	if (!s_new)
-		blkdev_put(sd.bdev, fs_type);
+		blkdev_handle_put(bdev_handle);
 	return ERR_PTR(err);
 }