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

Configure Feed

Select the types of activity you want to include in your feed.

block: add a sb_open_mode helper

Add a helper to return the open flags for blkdev_get_by* for passed in
super block flags instead of open coding the logic in many places.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Acked-by: Christian Brauner <brauner@kernel.org>
Link: https://lore.kernel.org/r/20230608110258.189493-17-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>

authored by

Christoph Hellwig and committed by
Jens Axboe
3f0b3e78 2736e8ee

+14 -20
+1 -4
fs/btrfs/super.c
··· 1440 1440 struct btrfs_fs_devices *fs_devices = NULL; 1441 1441 struct btrfs_fs_info *fs_info = NULL; 1442 1442 void *new_sec_opts = NULL; 1443 - fmode_t mode = FMODE_READ; 1443 + fmode_t mode = sb_open_mode(flags); 1444 1444 int error = 0; 1445 - 1446 - if (!(flags & SB_RDONLY)) 1447 - mode |= FMODE_WRITE; 1448 1445 1449 1446 if (data) { 1450 1447 error = security_sb_eat_lsm_opts(data, &new_sec_opts);
+2 -5
fs/nilfs2/super.c
··· 1278 1278 { 1279 1279 struct nilfs_super_data sd; 1280 1280 struct super_block *s; 1281 - fmode_t mode = FMODE_READ; 1282 1281 struct dentry *root_dentry; 1283 1282 int err, s_new = false; 1284 1283 1285 - if (!(flags & SB_RDONLY)) 1286 - mode |= FMODE_WRITE; 1287 - 1288 - sd.bdev = blkdev_get_by_path(dev_name, mode, fs_type, NULL); 1284 + sd.bdev = blkdev_get_by_path(dev_name, sb_open_mode(flags), fs_type, 1285 + NULL); 1289 1286 if (IS_ERR(sd.bdev)) 1290 1287 return ERR_CAST(sd.bdev); 1291 1288
+4 -11
fs/super.c
··· 1255 1255 { 1256 1256 struct block_device *bdev; 1257 1257 struct super_block *s; 1258 - fmode_t mode = FMODE_READ; 1259 1258 int error = 0; 1260 - 1261 - if (!(fc->sb_flags & SB_RDONLY)) 1262 - mode |= FMODE_WRITE; 1263 1259 1264 1260 if (!fc->source) 1265 1261 return invalf(fc, "No source specified"); 1266 1262 1267 - bdev = blkdev_get_by_path(fc->source, mode, fc->fs_type, 1268 - &fs_holder_ops); 1263 + bdev = blkdev_get_by_path(fc->source, sb_open_mode(fc->sb_flags), 1264 + fc->fs_type, &fs_holder_ops); 1269 1265 if (IS_ERR(bdev)) { 1270 1266 errorf(fc, "%s: Can't open blockdev", fc->source); 1271 1267 return PTR_ERR(bdev); ··· 1340 1344 { 1341 1345 struct block_device *bdev; 1342 1346 struct super_block *s; 1343 - fmode_t mode = FMODE_READ; 1344 1347 int error = 0; 1345 1348 1346 - if (!(flags & SB_RDONLY)) 1347 - mode |= FMODE_WRITE; 1348 - 1349 - bdev = blkdev_get_by_path(dev_name, mode, fs_type, &fs_holder_ops); 1349 + bdev = blkdev_get_by_path(dev_name, sb_open_mode(flags), fs_type, 1350 + &fs_holder_ops); 1350 1351 if (IS_ERR(bdev)) 1351 1352 return ERR_CAST(bdev); 1352 1353
+7
include/linux/blkdev.h
··· 1473 1473 void (*mark_dead)(struct block_device *bdev); 1474 1474 }; 1475 1475 1476 + /* 1477 + * Return the correct open flags for blkdev_get_by_* for super block flags 1478 + * as stored in sb->s_flags. 1479 + */ 1480 + #define sb_open_mode(flags) \ 1481 + (FMODE_READ | (((flags) & SB_RDONLY) ? 0 : FMODE_WRITE)) 1482 + 1476 1483 struct block_device *blkdev_get_by_dev(dev_t dev, fmode_t mode, void *holder, 1477 1484 const struct blk_holder_ops *hops); 1478 1485 struct block_device *blkdev_get_by_path(const char *path, fmode_t mode,