const struct ublk_param_zoned *p = &ub->params.zoned;
 
        disk_set_zoned(ub->ub_disk, BLK_ZONED_HM);
+       blk_queue_flag_set(QUEUE_FLAG_ZONE_RESETALL, ub->ub_disk->queue);
        blk_queue_required_elevator_features(ub->ub_disk->queue,
                                             ELEVATOR_F_ZBD_SEQ_WRITE);
        disk_set_max_active_zones(ub->ub_disk, p->max_active_zones);
        case REQ_OP_ZONE_APPEND:
                ublk_op = UBLK_IO_OP_ZONE_APPEND;
                break;
+       case REQ_OP_ZONE_RESET_ALL:
+               ublk_op = UBLK_IO_OP_ZONE_RESET_ALL;
+               break;
        case REQ_OP_DRV_IN:
                ublk_op = pdu->operation;
                switch (ublk_op) {
                default:
                        return BLK_STS_IOERR;
                }
-       case REQ_OP_ZONE_RESET_ALL:
        case REQ_OP_DRV_OUT:
-               /* We do not support reset_all and drv_out */
+               /* We do not support drv_out */
                return BLK_STS_NOTSUPP;
        default:
                return BLK_STS_IOERR;
 
 #define                UBLK_IO_OP_ZONE_CLOSE           11
 #define                UBLK_IO_OP_ZONE_FINISH          12
 #define                UBLK_IO_OP_ZONE_APPEND          13
+#define                UBLK_IO_OP_ZONE_RESET_ALL       14
 #define                UBLK_IO_OP_ZONE_RESET           15
 /*
  * Construct a zone report. The report request is carried in `struct