xen-blkback: use bdev_discard_alignment
authorChristoph Hellwig <hch@lst.de>
Mon, 18 Apr 2022 04:53:14 +0000 (06:53 +0200)
committerJens Axboe <axboe@kernel.dk>
Wed, 4 May 2022 11:24:40 +0000 (05:24 -0600)
Use bdev_discard_alignment to calculate the correct discard alignment
offset even for partitions instead of just looking at the queue limit.

Also switch to use bdev_discard_granularity to get rid of the last direct
queue reference in xen_blkbk_discard.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Link: https://lore.kernel.org/r/20220418045314.360785-12-hch@lst.de
[axboe: fold in 'q' removal as it's now unused]
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/block/xen-blkback/xenbus.c

index b21bffc..97de13b 100644 (file)
@@ -575,7 +575,6 @@ static void xen_blkbk_discard(struct xenbus_transaction xbt, struct backend_info
        int err;
        int state = 0;
        struct block_device *bdev = be->blkif->vbd.bdev;
-       struct request_queue *q = bdev_get_queue(bdev);
 
        if (!xenbus_read_unsigned(dev->nodename, "discard-enable", 1))
                return;
@@ -583,14 +582,14 @@ static void xen_blkbk_discard(struct xenbus_transaction xbt, struct backend_info
        if (bdev_max_discard_sectors(bdev)) {
                err = xenbus_printf(xbt, dev->nodename,
                        "discard-granularity", "%u",
-                       q->limits.discard_granularity);
+                       bdev_discard_granularity(bdev));
                if (err) {
                        dev_warn(&dev->dev, "writing discard-granularity (%d)", err);
                        return;
                }
                err = xenbus_printf(xbt, dev->nodename,
                        "discard-alignment", "%u",
-                       q->limits.discard_alignment);
+                       bdev_discard_alignment(bdev));
                if (err) {
                        dev_warn(&dev->dev, "writing discard-alignment (%d)", err);
                        return;