summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2017-08-23 19:10:31 +0200
committerJens Axboe <axboe@kernel.dk>2017-08-23 12:49:53 -0600
commitc2ee070fb00365d7841f6661dcdc7fbe6620bdf8 (patch)
tree9dca74294cfcbba84a8690e88f93590ae51cc35d
parent807d4af2f64ed79fdbb28e582e330be3dbe10d23 (diff)
downloadlinux-0-day-c2ee070fb00365d7841f6661dcdc7fbe6620bdf8.tar.gz
linux-0-day-c2ee070fb00365d7841f6661dcdc7fbe6620bdf8.tar.xz
block: cache the partition index in struct block_device
Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jens Axboe <axboe@kernel.dk>
-rw-r--r--fs/block_dev.c1
-rw-r--r--include/linux/fs.h1
2 files changed, 2 insertions, 0 deletions
diff --git a/fs/block_dev.c b/fs/block_dev.c
index 9941dc8342dfd..d29d1c70f833c 100644
--- a/fs/block_dev.c
+++ b/fs/block_dev.c
@@ -1451,6 +1451,7 @@ static int __blkdev_get(struct block_device *bdev, fmode_t mode, int for_part)
bdev->bd_disk = disk;
bdev->bd_queue = disk->queue;
bdev->bd_contains = bdev;
+ bdev->bd_partno = partno;
if (!partno) {
ret = -ENXIO;
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 6e1fd5d212487..706dd3a972d22 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -427,6 +427,7 @@ struct block_device {
#endif
struct block_device * bd_contains;
unsigned bd_block_size;
+ u8 bd_partno;
struct hd_struct * bd_part;
/* number of times partitions within this device have been opened. */
unsigned bd_part_count;