summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2017-11-02 21:29:52 +0300
committerJason Liu <jason.hui.liu@nxp.com>2019-02-12 10:33:25 +0800
commitbece506fe73817b65143e2ef0a13451360bbd4ab (patch)
tree6e6ae30076e68f1fdfd0b8d777d8f1cffa2973e8
parentc21c8b24ef14c66c2764134eb6822bbc884048b7 (diff)
block: don't look at the struct device dev_t in disk_devt
The hidden gendisks introduced in the next patch need to keep the dev field in their struct device empty so that udev won't try to create block device nodes for them. To support that rewrite disk_devt to look at the major and first_minor fields in the gendisk itself instead of looking into the struct device. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de> Reviewed-by: Hannes Reinecke <hare@suse.com> Signed-off-by: Jens Axboe <axboe@kernel.dk> (cherry picked from commit 517bf3c306bad4fe0da631f90ae2ec40924dee2b)
-rw-r--r--block/genhd.c4
-rw-r--r--include/linux/genhd.h2
2 files changed, 1 insertions, 5 deletions
diff --git a/block/genhd.c b/block/genhd.c
index 449ef56bba70..69c50d457d3f 100644
--- a/block/genhd.c
+++ b/block/genhd.c
@@ -661,10 +661,6 @@ void device_add_disk(struct device *parent, struct gendisk *disk)
return;
}
disk_to_dev(disk)->devt = devt;
-
- /* ->major and ->first_minor aren't supposed to be
- * dereferenced from here on, but set them just in case.
- */
disk->major = MAJOR(devt);
disk->first_minor = MINOR(devt);
diff --git a/include/linux/genhd.h b/include/linux/genhd.h
index 550fa358893a..2e10e356ba8b 100644
--- a/include/linux/genhd.h
+++ b/include/linux/genhd.h
@@ -235,7 +235,7 @@ static inline bool disk_part_scan_enabled(struct gendisk *disk)
static inline dev_t disk_devt(struct gendisk *disk)
{
- return disk_to_dev(disk)->devt;
+ return MKDEV(disk->major, disk->first_minor);
}
static inline dev_t part_devt(struct hd_struct *part)