mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-07 22:03:14 +00:00
f2fs: don't reopen the main block device in f2fs_scan_devices
f2fs_scan_devices reopens the main device since the very beginning, which has always been useless, and also means that we don't pass the right holder for the reopen, which now leads to a warning as the core super.c holder ops aren't passed in for the reopen. Fixes:3c62be17d4
("f2fs: support multiple devices") Fixes:0718afd47f
("block: introduce holder ops") Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Chao Yu <chao@kernel.org> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
parent
b5ab3276eb
commit
51bf8d3c81
@ -1561,7 +1561,8 @@ static void destroy_device_list(struct f2fs_sb_info *sbi)
|
||||
int i;
|
||||
|
||||
for (i = 0; i < sbi->s_ndevs; i++) {
|
||||
blkdev_put(FDEV(i).bdev, sbi->sb->s_type);
|
||||
if (i > 0)
|
||||
blkdev_put(FDEV(i).bdev, sbi->sb->s_type);
|
||||
#ifdef CONFIG_BLK_DEV_ZONED
|
||||
kvfree(FDEV(i).blkz_seq);
|
||||
#endif
|
||||
@ -4190,16 +4191,12 @@ static int f2fs_scan_devices(struct f2fs_sb_info *sbi)
|
||||
sbi->aligned_blksize = true;
|
||||
|
||||
for (i = 0; i < max_devices; i++) {
|
||||
|
||||
if (i > 0 && !RDEV(i).path[0])
|
||||
if (i == 0)
|
||||
FDEV(0).bdev = sbi->sb->s_bdev;
|
||||
else if (!RDEV(i).path[0])
|
||||
break;
|
||||
|
||||
if (max_devices == 1) {
|
||||
/* Single zoned block device mount */
|
||||
FDEV(0).bdev =
|
||||
blkdev_get_by_dev(sbi->sb->s_bdev->bd_dev, mode,
|
||||
sbi->sb->s_type, NULL);
|
||||
} else {
|
||||
if (max_devices > 1) {
|
||||
/* Multi-device mount */
|
||||
memcpy(FDEV(i).path, RDEV(i).path, MAX_PATH_LEN);
|
||||
FDEV(i).total_segments =
|
||||
@ -4215,10 +4212,9 @@ static int f2fs_scan_devices(struct f2fs_sb_info *sbi)
|
||||
FDEV(i).end_blk = FDEV(i).start_blk +
|
||||
(FDEV(i).total_segments <<
|
||||
sbi->log_blocks_per_seg) - 1;
|
||||
FDEV(i).bdev = blkdev_get_by_path(FDEV(i).path,
|
||||
mode, sbi->sb->s_type, NULL);
|
||||
}
|
||||
FDEV(i).bdev = blkdev_get_by_path(FDEV(i).path, mode,
|
||||
sbi->sb->s_type,
|
||||
NULL);
|
||||
}
|
||||
if (IS_ERR(FDEV(i).bdev))
|
||||
return PTR_ERR(FDEV(i).bdev);
|
||||
|
Loading…
Reference in New Issue
Block a user