dm: use generic functions instead of disable_discard and disable_write_zeroes
authorMikulas Patocka <mpatocka@redhat.com>
Tue, 22 Apr 2025 19:19:30 +0000 (21:19 +0200)
committerMikulas Patocka <mpatocka@redhat.com>
Sun, 4 May 2025 09:35:05 +0000 (11:35 +0200)
A small code cleanup: use blk_queue_disable_discard and
blk_queue_disable_write_zeroes instead of disable_discard and
disable_write_zeroes.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
drivers/md/dm-core.h
drivers/md/dm-rq.c
drivers/md/dm.c

index f3a3f2ef632261e802a0772f99219f76abf8cc0a..c889332e533bcaf08479b4ed8e3078d864c2b797 100644 (file)
@@ -163,9 +163,6 @@ struct mapped_device {
 #define DMF_POST_SUSPENDING 8
 #define DMF_EMULATE_ZONE_APPEND 9
 
-void disable_discard(struct mapped_device *md);
-void disable_write_zeroes(struct mapped_device *md);
-
 static inline sector_t dm_get_size(struct mapped_device *md)
 {
        return get_capacity(md->disk);
index e23076f7ece2664066a020d51b4d6b01b645f590..a6ca92049c10e37d659af17b54b9b5c1095a97b1 100644 (file)
@@ -217,10 +217,10 @@ static void dm_done(struct request *clone, blk_status_t error, bool mapped)
        if (unlikely(error == BLK_STS_TARGET)) {
                if (req_op(clone) == REQ_OP_DISCARD &&
                    !clone->q->limits.max_discard_sectors)
-                       disable_discard(tio->md);
+                       blk_queue_disable_discard(tio->md->queue);
                else if (req_op(clone) == REQ_OP_WRITE_ZEROES &&
                         !clone->q->limits.max_write_zeroes_sectors)
-                       disable_write_zeroes(tio->md);
+                       blk_queue_disable_write_zeroes(tio->md->queue);
        }
 
        switch (r) {
index 240f6dab8ddafbac7af2af2653e71b6f9fa33c6a..ccccc098b30e79a176697d1825106a38b9842e65 100644 (file)
@@ -1082,22 +1082,6 @@ static inline struct queue_limits *dm_get_queue_limits(struct mapped_device *md)
        return &md->queue->limits;
 }
 
-void disable_discard(struct mapped_device *md)
-{
-       struct queue_limits *limits = dm_get_queue_limits(md);
-
-       /* device doesn't really support DISCARD, disable it */
-       limits->max_hw_discard_sectors = 0;
-}
-
-void disable_write_zeroes(struct mapped_device *md)
-{
-       struct queue_limits *limits = dm_get_queue_limits(md);
-
-       /* device doesn't really support WRITE ZEROES, disable it */
-       limits->max_write_zeroes_sectors = 0;
-}
-
 static bool swap_bios_limit(struct dm_target *ti, struct bio *bio)
 {
        return unlikely((bio->bi_opf & REQ_SWAP) != 0) && unlikely(ti->limit_swap_bios);
@@ -1115,10 +1099,10 @@ static void clone_endio(struct bio *bio)
        if (unlikely(error == BLK_STS_TARGET)) {
                if (bio_op(bio) == REQ_OP_DISCARD &&
                    !bdev_max_discard_sectors(bio->bi_bdev))
-                       disable_discard(md);
+                       blk_queue_disable_discard(md->queue);
                else if (bio_op(bio) == REQ_OP_WRITE_ZEROES &&
                         !bdev_write_zeroes_sectors(bio->bi_bdev))
-                       disable_write_zeroes(md);
+                       blk_queue_disable_write_zeroes(md->queue);
        }
 
        if (static_branch_unlikely(&zoned_enabled) &&