block: Change the type of req_op() and bio_op() into enum req_op

Improve static type checking by changing the type of the value returned by
req_op() and bio_op() from unsigned int into enum req_op. Insert
'default: break;' in switch statements on the enum req_op type to prevent
that the compiler warns about these switch statements.

Cc: Christoph Hellwig <hch@lst.de>
Cc: Ming Lei <ming.lei@redhat.com>
Cc: Hannes Reinecke <hare@suse.de>
Cc: Damien Le Moal <damien.lemoal@wdc.com>
Cc: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Cc: Tim Waugh <tim@cyberelk.net>
Cc: Alasdair Kergon <agk@redhat.com>
Cc: Mike Snitzer <snitzer@kernel.org>
Cc: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Link: https://lore.kernel.org/r/20220714180729.1065367-5-bvanassche@acm.org
Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
Bart Van Assche 2022-07-14 11:06:30 -07:00 committed by Jens Axboe
parent 86947df3a9
commit 2d9b02be73
5 changed files with 14 additions and 4 deletions

View File

@ -405,6 +405,8 @@ unsigned int blk_recalc_rq_segments(struct request *rq)
return 1; return 1;
case REQ_OP_WRITE_ZEROES: case REQ_OP_WRITE_ZEROES:
return 0; return 0;
default:
break;
} }
rq_for_each_bvec(bv, rq, iter) rq_for_each_bvec(bv, rq, iter)

View File

@ -501,6 +501,8 @@ static enum action do_pd_io_start(void)
return do_pd_read_start(); return do_pd_read_start();
else else
return do_pd_write_start(); return do_pd_write_start();
default:
break;
} }
return Fail; return Fail;
} }

View File

@ -1542,6 +1542,8 @@ static blk_status_t __process_abnormal_io(struct clone_info *ci,
case REQ_OP_WRITE_ZEROES: case REQ_OP_WRITE_ZEROES:
num_bios = ti->num_write_zeroes_bios; num_bios = ti->num_write_zeroes_bios;
break; break;
default:
break;
} }
/* /*

View File

@ -198,8 +198,10 @@ struct request {
void *end_io_data; void *end_io_data;
}; };
#define req_op(req) \ static inline enum req_op req_op(const struct request *req)
((req)->cmd_flags & REQ_OP_MASK) {
return req->cmd_flags & REQ_OP_MASK;
}
static inline bool blk_rq_is_passthrough(struct request *rq) static inline bool blk_rq_is_passthrough(struct request *rq)
{ {

View File

@ -463,8 +463,10 @@ enum stat_group {
NR_STAT_GROUPS NR_STAT_GROUPS
}; };
#define bio_op(bio) \ static inline enum req_op bio_op(const struct bio *bio)
((bio)->bi_opf & REQ_OP_MASK) {
return bio->bi_opf & REQ_OP_MASK;
}
/* obsolete, don't use in new code */ /* obsolete, don't use in new code */
static inline void bio_set_op_attrs(struct bio *bio, unsigned op, static inline void bio_set_op_attrs(struct bio *bio, unsigned op,