Re: [PATCH v2 26/34] reiserfs: port block device access to file

Jan Kara
2024-02-01T10:24:02Z

On Tue 23-01-24 14:26:43, Christian Brauner wrote:
> Signed-off-by: Christian Brauner <brauner@kernel.org>

Looks good. Feel free to add:

Reviewed-by: Jan Kara <jack@suse.cz>

Honza

> ---
> fs/reiserfs/journal.c | 38 +++++++++++++++++++-------------------
> fs/reiserfs/procfs.c | 2 +-
> fs/reiserfs/reiserfs.h | 8 ++++----
> 3 files changed, 24 insertions(+), 24 deletions(-)
>
> diff --git a/fs/reiserfs/journal.c b/fs/reiserfs/journal.c
> index 171c912af50f..6474529c4253 100644
> --- a/fs/reiserfs/journal.c
> +++ b/fs/reiserfs/journal.c
> @@ -2386,7 +2386,7 @@ static int journal_read(struct super_block *sb)
>
> cur_dblock = SB_ONDISK_JOURNAL_1st_BLOCK(sb);
> reiserfs_info(sb, "checking transaction log (%pg)\n",
> - journal->j_bdev_handle->bdev);
> + file_bdev(journal->j_bdev_file));
> start = ktime_get_seconds();
>
> /*
> @@ -2447,7 +2447,7 @@ static int journal_read(struct super_block *sb)
> * device and journal device to be the same
> */
> d_bh =
> - reiserfs_breada(journal->j_bdev_handle->bdev, cur_dblock,
> + reiserfs_breada(file_bdev(journal->j_bdev_file), cur_dblock,
> sb->s_blocksize,
> SB_ONDISK_JOURNAL_1st_BLOCK(sb) +
> SB_ONDISK_JOURNAL_SIZE(sb));
> @@ -2588,9 +2588,9 @@ static void journal_list_init(struct super_block *sb)
>
> static void release_journal_dev(struct reiserfs_journal *journal)
> {
> - if (journal->j_bdev_handle) {
> - bdev_release(journal->j_bdev_handle);
> - journal->j_bdev_handle = NULL;
> + if (journal->j_bdev_file) {
> + fput(journal->j_bdev_file);
> + journal->j_bdev_file = NULL;
> }
> }
>
> @@ -2605,7 +2605,7 @@ static int journal_init_dev(struct super_block *super,
>
> result = 0;
>
> - journal->j_bdev_handle = NULL;
> + journal->j_bdev_file = NULL;
> jdev = SB_ONDISK_JOURNAL_DEVICE(super) ?
> new_decode_dev(SB_ONDISK_JOURNAL_DEVICE(super)) : super->s_dev;
>
> @@ -2616,37 +2616,37 @@ static int journal_init_dev(struct super_block *super,
> if ((!jdev_name || !jdev_name[0])) {
> if (jdev == super->s_dev)
> holder = NULL;
> - journal->j_bdev_handle = bdev_open_by_dev(jdev, blkdev_mode,
> + journal->j_bdev_file = bdev_file_open_by_dev(jdev, blkdev_mode,
> holder, NULL);
> - if (IS_ERR(journal->j_bdev_handle)) {
> - result = PTR_ERR(journal->j_bdev_handle);
> - journal->j_bdev_handle = NULL;
> + if (IS_ERR(journal->j_bdev_file)) {
> + result = PTR_ERR(journal->j_bdev_file);
> + journal->j_bdev_file = NULL;
> reiserfs_warning(super, "sh-458",
> "cannot init journal device unknown-block(%u,%u): %i",
> MAJOR(jdev), MINOR(jdev), result);
> return result;
> } else if (jdev != super->s_dev)
> - set_blocksize(journal->j_bdev_handle->bdev,
> + set_blocksize(file_bdev(journal->j_bdev_file),
> super->s_blocksize);
>
> return 0;
> }
>
> - journal->j_bdev_handle = bdev_open_by_path(jdev_name, blkdev_mode,
> + journal->j_bdev_file = bdev_file_open_by_path(jdev_name, blkdev_mode,
> holder, NULL);
> - if (IS_ERR(journal->j_bdev_handle)) {
> - result = PTR_ERR(journal->j_bdev_handle);
> - journal->j_bdev_handle = NULL;
> + if (IS_ERR(journal->j_bdev_file)) {
> + result = PTR_ERR(journal->j_bdev_file);
> + journal->j_bdev_file = NULL;
> reiserfs_warning(super, "sh-457",
> "journal_init_dev: Cannot open '%s': %i",
> jdev_name, result);
> return result;
> }
>
> - set_blocksize(journal->j_bdev_handle->bdev, super->s_blocksize);
> + set_blocksize(file_bdev(journal->j_bdev_file), super->s_blocksize);
> reiserfs_info(super,
> "journal_init_dev: journal device: %pg\n",
> - journal->j_bdev_handle->bdev);
> + file_bdev(journal->j_bdev_file));
> return 0;
> }
>
> @@ -2804,7 +2804,7 @@ int journal_init(struct super_block *sb, const char *j_dev_name,
> "journal header magic %x (device %pg) does "
> "not match to magic found in super block %x",
> jh->jh_journal.jp_journal_magic,
> - journal->j_bdev_handle->bdev,
> + file_bdev(journal->j_bdev_file),
> sb_jp_journal_magic(rs));
> brelse(bhjh);
> goto free_and_return;
> @@ -2828,7 +2828,7 @@ int journal_init(struct super_block *sb, const char *j_dev_name,
> reiserfs_info(sb, "journal params: device %pg, size %u, "
> "journal first block %u, max trans len %u, max batch %u, "
> "max commit age %u, max trans age %u\n",
> - journal->j_bdev_handle->bdev,
> + file_bdev(journal->j_bdev_file),
> SB_ONDISK_JOURNAL_SIZE(sb),
> SB_ONDISK_JOURNAL_1st_BLOCK(sb),
> journal->j_trans_max,
> diff --git a/fs/reiserfs/procfs.c b/fs/reiserfs/procfs.c
> index 83cb9402e0f9..5c68a4a52d78 100644
> --- a/fs/reiserfs/procfs.c
> +++ b/fs/reiserfs/procfs.c
> @@ -354,7 +354,7 @@ static int show_journal(struct seq_file *m, void *unused)
> "prepare: \t%12lu\n"
> "prepare_retry: \t%12lu\n",
> DJP(jp_journal_1st_block),
> - SB_JOURNAL(sb)->j_bdev_handle->bdev,
> + file_bdev(SB_JOURNAL(sb)->j_bdev_file),
> DJP(jp_journal_dev),
> DJP(jp_journal_size),
> DJP(jp_journal_trans_max),
> diff --git a/fs/reiserfs/reiserfs.h b/fs/reiserfs/reiserfs.h
> index 725667880e62..0554903f42a9 100644
> --- a/fs/reiserfs/reiserfs.h
> +++ b/fs/reiserfs/reiserfs.h
> @@ -299,7 +299,7 @@ struct reiserfs_journal {
> /* oldest journal block. start here for traverse */
> struct reiserfs_journal_cnode *j_first;
>
> - struct bdev_handle *j_bdev_handle;
> + struct file *j_bdev_file;
>
> /* first block on s_dev of reserved area journal */
> int j_1st_reserved_block;
> @@ -2810,10 +2810,10 @@ struct reiserfs_journal_header {
>
> /* We need these to make journal.c code more readable */
> #define journal_find_get_block(s, block) __find_get_block(\
> - SB_JOURNAL(s)->j_bdev_handle->bdev, block, s->s_blocksize)
> -#define journal_getblk(s, block) __getblk(SB_JOURNAL(s)->j_bdev_handle->bdev,\
> + file_bdev(SB_JOURNAL(s)->j_bdev_file), block, s->s_blocksize)
> +#define journal_getblk(s, block) __getblk(file_bdev(SB_JOURNAL(s)->j_bdev_file),\
> block, s->s_blocksize)
> -#define journal_bread(s, block) __bread(SB_JOURNAL(s)->j_bdev_handle->bdev,\
> +#define journal_bread(s, block) __bread(file_bdev(SB_JOURNAL(s)->j_bdev_file),\
> block, s->s_blocksize)
>
> enum reiserfs_bh_state_bits {
>
> --
> 2.43.0
>
--
Jan Kara <jack@suse.com>
SUSE Labs, CR