diff options
author | Martin K. Petersen <martin.petersen@oracle.com> | 2014-09-26 19:20:03 -0400 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2014-09-27 09:14:51 -0600 |
commit | 3aec2f41a8baeb70aa77556a4e4dcec7d9d70b4d (patch) | |
tree | 2725a81cae556798bd3f363c4e8e5595c1ce1aaf /block | |
parent | 8288f496eb1b1905c425e92eaf1abbb29119217b (diff) | |
download | linux-3aec2f41a8baeb70aa77556a4e4dcec7d9d70b4d.tar.gz linux-3aec2f41a8baeb70aa77556a4e4dcec7d9d70b4d.tar.bz2 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, }; |