mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 12:44:03 +02:00
ext4: open via dedicated fs bdev helpers
Route the external journal device open through fs_bdev_file_open_by_dev() so it is registered against the superblock, and convert the matching releases to fs_bdev_file_release(). Reviewed-by: Jan Kara <jack@suse.cz> Link: https://patch.msgid.link/20260616-work-super-bdev_holder_global-v2-11-7df6b864028e@kernel.org Tested-by: syzbot@syzkaller.appspotmail.com Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
This commit is contained in:
parent
6585c5888d
commit
86b5384943
|
|
@ -5797,7 +5797,7 @@ failed_mount8: __maybe_unused
|
|||
brelse(sbi->s_sbh);
|
||||
if (sbi->s_journal_bdev_file) {
|
||||
invalidate_bdev(file_bdev(sbi->s_journal_bdev_file));
|
||||
bdev_fput(sbi->s_journal_bdev_file);
|
||||
fs_bdev_file_release(sbi->s_journal_bdev_file, sb);
|
||||
}
|
||||
out_fail:
|
||||
invalidate_bdev(sb->s_bdev);
|
||||
|
|
@ -5981,9 +5981,9 @@ static struct file *ext4_get_journal_blkdev(struct super_block *sb,
|
|||
struct ext4_super_block *es;
|
||||
int errno;
|
||||
|
||||
bdev_file = bdev_file_open_by_dev(j_dev,
|
||||
bdev_file = fs_bdev_file_open_by_dev(j_dev,
|
||||
BLK_OPEN_READ | BLK_OPEN_WRITE | BLK_OPEN_RESTRICT_WRITES,
|
||||
sb, &fs_holder_ops);
|
||||
sb, sb);
|
||||
if (IS_ERR(bdev_file)) {
|
||||
ext4_msg(sb, KERN_ERR,
|
||||
"failed to open journal device unknown-block(%u,%u) %pe",
|
||||
|
|
@ -6043,7 +6043,7 @@ static struct file *ext4_get_journal_blkdev(struct super_block *sb,
|
|||
out_bh:
|
||||
brelse(bh);
|
||||
out_bdev:
|
||||
bdev_fput(bdev_file);
|
||||
fs_bdev_file_release(bdev_file, sb);
|
||||
return ERR_PTR(errno);
|
||||
}
|
||||
|
||||
|
|
@ -6082,7 +6082,7 @@ static journal_t *ext4_open_dev_journal(struct super_block *sb,
|
|||
out_journal:
|
||||
ext4_journal_destroy(EXT4_SB(sb), journal);
|
||||
out_bdev:
|
||||
bdev_fput(bdev_file);
|
||||
fs_bdev_file_release(bdev_file, sb);
|
||||
return ERR_PTR(errno);
|
||||
}
|
||||
|
||||
|
|
@ -7499,7 +7499,7 @@ static void ext4_kill_sb(struct super_block *sb)
|
|||
kill_block_super(sb);
|
||||
|
||||
if (bdev_file)
|
||||
bdev_fput(bdev_file);
|
||||
fs_bdev_file_release(bdev_file, sb);
|
||||
}
|
||||
|
||||
static struct file_system_type ext4_fs_type = {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user