提交 c0acf12a 编写于 作者: C Christoph Hellwig 提交者: Jens Axboe

block: shrink bio size again

The recent ops split grew the bio by adding the new ioprio field.
Shrink it again by using a 16-bit field for the bi_flags value and
filling the holes near the beginning of the structure.
Signed-off-by: NChristoph Hellwig <hch@lst.de>
Reviewed-by: NJohannes Thumshirn <jthumshirn@suse.de>
Reviewed-by: NMike Christie <mchristi@redhat.com>
Signed-off-by: NJens Axboe <axboe@fb.com>
上级 ed996a52
......@@ -46,11 +46,11 @@ struct bvec_iter {
struct bio {
struct bio *bi_next; /* request queue link */
struct block_device *bi_bdev;
unsigned int bi_flags; /* status, command, etc */
int bi_error;
unsigned int bi_rw; /* bottom bits req flags,
* top bits REQ_OP
*/
unsigned short bi_flags; /* status, command, etc */
unsigned short bi_ioprio;
struct bvec_iter bi_iter;
......@@ -136,7 +136,7 @@ struct bio {
* Flags starting here get preserved by bio_reset() - this includes
* BVEC_POOL_IDX()
*/
#define BIO_RESET_BITS 13
#define BIO_RESET_BITS 10
/*
* We support 6 different bvec pools, the last one is magic in that it
......@@ -151,7 +151,7 @@ struct bio {
* freed.
*/
#define BVEC_POOL_BITS (4)
#define BVEC_POOL_OFFSET (32 - BVEC_POOL_BITS)
#define BVEC_POOL_OFFSET (16 - BVEC_POOL_BITS)
#define BVEC_POOL_IDX(bio) ((bio)->bi_flags >> BVEC_POOL_OFFSET)
#endif /* CONFIG_BLOCK */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册