]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
block: fix op_is_zone_mgmt() to handle REQ_OP_ZONE_RESET_ALL
authorDamien Le Moal <dlemoal@kernel.org>
Mon, 27 Oct 2025 00:27:32 +0000 (09:27 +0900)
committerJens Axboe <axboe@kernel.dk>
Tue, 28 Oct 2025 13:52:55 +0000 (07:52 -0600)
REQ_OP_ZONE_RESET_ALL is a zone management request. Fix
op_is_zone_mgmt() to return true for that operation, like it already
does for REQ_OP_ZONE_RESET.

While no problems were reported without this fix, this change allows
strengthening checks in various block device drivers (scsi sd,
virtioblk, DM) where op_is_zone_mgmt() is used to verify that a zone
management command is not being issued to a regular block device.

Fixes: 6c1b1da58f8c ("block: add zone open, close and finish operations")
Cc: stable@vger.kernel.org
Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
include/linux/blk_types.h

index 8e8d1cc8b06c4c09c82ec3bff19090250ea773a6..d8ba743a89b7c31d32f016bdf545153a4597fc37 100644 (file)
@@ -478,6 +478,7 @@ static inline bool op_is_zone_mgmt(enum req_op op)
 {
        switch (op & REQ_OP_MASK) {
        case REQ_OP_ZONE_RESET:
+       case REQ_OP_ZONE_RESET_ALL:
        case REQ_OP_ZONE_OPEN:
        case REQ_OP_ZONE_CLOSE:
        case REQ_OP_ZONE_FINISH: