summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2020-08-31 20:02:34 +0200
committerJens Axboe <axboe@kernel.dk>2020-09-02 00:49:26 +0200
commit7cf34d97ab45203b975396393ded9d3867dfa8bf (patch)
tree67f8c18b472ef61230e37cd14c200fc3e2a9396e
parentblock: remove the alignment_offset field from struct hd_struct (diff)
downloadlinux-7cf34d97ab45203b975396393ded9d3867dfa8bf.tar.xz
linux-7cf34d97ab45203b975396393ded9d3867dfa8bf.zip
block: remove the discard_alignment field from struct hd_struct
The alignment offset is only used in slow path callers, so just calculate it on the fly. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jens Axboe <axboe@kernel.dk>
-rw-r--r--block/partitions/core.c7
-rw-r--r--include/linux/blkdev.h4
-rw-r--r--include/linux/genhd.h1
3 files changed, 6 insertions, 6 deletions
diff --git a/block/partitions/core.c b/block/partitions/core.c
index 94c2fb39e602..e596a85bba1e 100644
--- a/block/partitions/core.c
+++ b/block/partitions/core.c
@@ -209,7 +209,10 @@ static ssize_t part_discard_alignment_show(struct device *dev,
struct device_attribute *attr, char *buf)
{
struct hd_struct *p = dev_to_part(dev);
- return sprintf(buf, "%u\n", p->discard_alignment);
+
+ return sprintf(buf, "%u\n",
+ queue_limit_discard_alignment(&part_to_disk(p)->queue->limits,
+ p->start_sect));
}
static DEVICE_ATTR(partition, 0444, part_partition_show, NULL);
@@ -408,8 +411,6 @@ static struct hd_struct *add_partition(struct gendisk *disk, int partno,
pdev = part_to_dev(p);
p->start_sect = start;
- p->discard_alignment =
- queue_limit_discard_alignment(&disk->queue->limits, start);
p->nr_sects = len;
p->partno = partno;
p->policy = get_disk_ro(disk);
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index ba1f5f5e11c6..d0d61bc81615 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -1498,8 +1498,8 @@ static inline int bdev_discard_alignment(struct block_device *bdev)
struct request_queue *q = bdev_get_queue(bdev);
if (bdev != bdev->bd_contains)
- return bdev->bd_part->discard_alignment;
-
+ return queue_limit_discard_alignment(&q->limits,
+ bdev->bd_part->start_sect);
return q->limits.discard_alignment;
}
diff --git a/include/linux/genhd.h b/include/linux/genhd.h
index bfa411c80dbb..9ea2ca31c278 100644
--- a/include/linux/genhd.h
+++ b/include/linux/genhd.h
@@ -65,7 +65,6 @@ struct hd_struct {
struct disk_stats __percpu *dkstats;
struct percpu_ref ref;
- unsigned int discard_alignment;
struct device __dev;
struct kobject *holder_dir;
int policy, partno;