Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

f2fs: port block device access to files

Link: https://lore.kernel.org/r/20240123-vfs-bdev-file-v2-22-adbd023e19cc@kernel.org
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Christian Brauner <brauner@kernel.org>

+7 -7
+1 -1
fs/f2fs/f2fs.h
··· 1239 1239 #define FDEV(i) (sbi->devs[i]) 1240 1240 #define RDEV(i) (raw_super->devs[i]) 1241 1241 struct f2fs_dev_info { 1242 - struct bdev_handle *bdev_handle; 1242 + struct file *bdev_file; 1243 1243 struct block_device *bdev; 1244 1244 char path[MAX_PATH_LEN]; 1245 1245 unsigned int total_segments;
+6 -6
fs/f2fs/super.c
··· 1605 1605 1606 1606 for (i = 0; i < sbi->s_ndevs; i++) { 1607 1607 if (i > 0) 1608 - bdev_release(FDEV(i).bdev_handle); 1608 + fput(FDEV(i).bdev_file); 1609 1609 #ifdef CONFIG_BLK_DEV_ZONED 1610 1610 kvfree(FDEV(i).blkz_seq); 1611 1611 #endif ··· 4247 4247 4248 4248 for (i = 0; i < max_devices; i++) { 4249 4249 if (i == 0) 4250 - FDEV(0).bdev_handle = sb_bdev_handle(sbi->sb); 4250 + FDEV(0).bdev_file = sbi->sb->s_bdev_file; 4251 4251 else if (!RDEV(i).path[0]) 4252 4252 break; 4253 4253 ··· 4267 4267 FDEV(i).end_blk = FDEV(i).start_blk + 4268 4268 (FDEV(i).total_segments << 4269 4269 sbi->log_blocks_per_seg) - 1; 4270 - FDEV(i).bdev_handle = bdev_open_by_path( 4270 + FDEV(i).bdev_file = bdev_file_open_by_path( 4271 4271 FDEV(i).path, mode, sbi->sb, NULL); 4272 4272 } 4273 4273 } 4274 - if (IS_ERR(FDEV(i).bdev_handle)) 4275 - return PTR_ERR(FDEV(i).bdev_handle); 4274 + if (IS_ERR(FDEV(i).bdev_file)) 4275 + return PTR_ERR(FDEV(i).bdev_file); 4276 4276 4277 - FDEV(i).bdev = FDEV(i).bdev_handle->bdev; 4277 + FDEV(i).bdev = file_bdev(FDEV(i).bdev_file); 4278 4278 /* to release errored devices */ 4279 4279 sbi->s_ndevs = i + 1; 4280 4280