null-blk: save memory footprint for struct nullb_cmd
authorYu Kuai <yukuai3@huawei.com>
Tue, 26 Apr 2022 02:21:33 +0000 (10:21 +0800)
committerJens Axboe <axboe@kernel.dk>
Tue, 26 Apr 2022 02:31:20 +0000 (20:31 -0600)
Total 16 bytes can be saved in two ways:

1) The field 'bio' will only be used in bio based mode, and the field
   'rq' will only be used in mq mode. Since they won't be used in the
   same time, declare a union for them.
2) The field 'bool fake_timeout' can be placed in the hole after the
   field 'error'.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
Link: https://lore.kernel.org/r/20220426022133.3999006-1-yukuai3@huawei.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/block/null_blk/null_blk.h

index 78eb56b0ca55f5b0dd6917983ec0acbaa54f1255..4525a65e1b23d91bd6a756901c0d6d5064b99558 100644 (file)
 #include <linux/mutex.h>
 
 struct nullb_cmd {
-       struct request *rq;
-       struct bio *bio;
+       union {
+               struct request *rq;
+               struct bio *bio;
+       };
        unsigned int tag;
        blk_status_t error;
+       bool fake_timeout;
        struct nullb_queue *nq;
        struct hrtimer timer;
-       bool fake_timeout;
 };
 
 struct nullb_queue {