block: Replace bi_integrity with bi_special
authorMartin K. Petersen <martin.petersen@oracle.com>
Fri, 26 Sep 2014 23:19:56 +0000 (19:19 -0400)
committerJens Axboe <axboe@fb.com>
Sat, 27 Sep 2014 15:14:46 +0000 (09:14 -0600)
commit180b2f95dd331010a9930a65c8a18d6d81b94dc1
tree8ceb4a28e15e1e588b52022a844f81daabd0f92d
parente7258c1a269e0967856c81d182c286a78f5ecf15
block: Replace bi_integrity with bi_special

For commands like REQ_COPY we need a way to pass extra information along
with each bio. Like integrity metadata this information must be
available at the bottom of the stack so bi_private does not suffice.

Rename the existing bi_integrity field to bi_special and make it a union
so we can have different bio extensions for each class of command.

We previously used bi_integrity != NULL as a way to identify whether a
bio had integrity metadata or not. Introduce a REQ_INTEGRITY to be the
indicator now that bi_special can contain different things.

In addition, bio_integrity(bio) will now return a pointer to the
integrity payload (when applicable).

Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Sagi Grimberg <sagig@mellanox.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
Documentation/block/data-integrity.txt
block/bio-integrity.c
drivers/scsi/sd_dif.c
include/linux/bio.h
include/linux/blk_types.h
include/linux/blkdev.h