block: Consolidate static integrity profile properties

We previously made a complete copy of a device's data integrity profile
even though several of the fields inside the blk_integrity struct are
pointers to fixed template entries in t10-pi.c.

Split the static and per-device portions so that we can reference the
template directly.

Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Reported-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Sagi Grimberg <sagig@mellanox.com>
Cc: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
This commit is contained in:
Martin K. Petersen
2015-10-21 13:19:33 -04:00
committed by Jens Axboe
parent aff34e192e
commit 0f8087ecde
9 changed files with 65 additions and 64 deletions

View File

@@ -1462,16 +1462,18 @@ struct blk_integrity_iter {
typedef int (integrity_processing_fn) (struct blk_integrity_iter *);
struct blk_integrity_profile {
integrity_processing_fn *generate_fn;
integrity_processing_fn *verify_fn;
const char *name;
};
struct blk_integrity {
integrity_processing_fn *generate_fn;
integrity_processing_fn *verify_fn;
unsigned short flags;
unsigned short tuple_size;
unsigned short interval;
unsigned short tag_size;
const char *name;
struct blk_integrity_profile *profile;
unsigned short flags;
unsigned short tuple_size;
unsigned short interval;
unsigned short tag_size;
};
extern bool blk_integrity_is_initialized(struct gendisk *);