diff options
author | Martin K. Petersen | 2014-09-27 01:20:03 +0200 |
---|---|---|
committer | Jens Axboe | 2014-09-27 17:14:51 +0200 |
commit | 3aec2f41a8baeb70aa77556a4e4dcec7d9d70b4d (patch) | |
tree | 2725a81cae556798bd3f363c4e8e5595c1ce1aaf /block | |
parent | block: Add prefix to block integrity profile flags (diff) | |
download | kernel-qcow2-linux-3aec2f41a8baeb70aa77556a4e4dcec7d9d70b4d.tar.gz kernel-qcow2-linux-3aec2f41a8baeb70aa77556a4e4dcec7d9d70b4d.tar.xz kernel-qcow2-linux-3aec2f41a8baeb70aa77556a4e4dcec7d9d70b4d.zip |
block: Add a disk flag to block integrity profile
So far we have relied on the app tag size to determine whether a disk
has been formatted with T10 protection information or not. However, not
all target devices provide application tag storage.
Add a flag to the block integrity profile that indicates whether the
disk has been formatted with protection information.
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Sagi Grimberg <sagig@dev.mellanox.co.il>
Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'block')
-rw-r--r-- | block/blk-integrity.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/block/blk-integrity.c b/block/blk-integrity.c index a7436ccc936b..1c6ba442cd91 100644 --- a/block/blk-integrity.c +++ b/block/blk-integrity.c @@ -307,6 +307,12 @@ static ssize_t integrity_generate_show(struct blk_integrity *bi, char *page) return sprintf(page, "%d\n", (bi->flags & BLK_INTEGRITY_GENERATE) != 0); } +static ssize_t integrity_device_show(struct blk_integrity *bi, char *page) +{ + return sprintf(page, "%u\n", + (bi->flags & BLK_INTEGRITY_DEVICE_CAPABLE) != 0); +} + static struct integrity_sysfs_entry integrity_format_entry = { .attr = { .name = "format", .mode = S_IRUGO }, .show = integrity_format_show, @@ -329,11 +335,17 @@ static struct integrity_sysfs_entry integrity_generate_entry = { .store = integrity_generate_store, }; +static struct integrity_sysfs_entry integrity_device_entry = { + .attr = { .name = "device_is_integrity_capable", .mode = S_IRUGO }, + .show = integrity_device_show, +}; + static struct attribute *integrity_attrs[] = { &integrity_format_entry.attr, &integrity_tag_size_entry.attr, &integrity_verify_entry.attr, &integrity_generate_entry.attr, + &integrity_device_entry.attr, NULL, }; |