summaryrefslogtreecommitdiffstats
path: root/block/blk-integrity.c
diff options
context:
space:
mode:
authorMartin K. Petersen <martin.petersen@oracle.com>2015-10-21 13:19:43 -0400
committerJens Axboe <axboe@fb.com>2015-10-21 16:42:41 -0400
commit4c241d08dbfcbdc7a949b91d72707a289d464954 (patch)
tree8663290b5214c39c0225e871f1791342d95b2c8b /block/blk-integrity.c
parenta48f041d91bf1aee599fa2adb53b780ed20c2ee5 (diff)
block: Export integrity data interval size in sysfs
The size of the data interval was not exported in the sysfs integrity directory. Export it so that userland apps can tell whether the interval is different from the device's logical block size. Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> Reviewed-by: Sagi Grimberg <sagig@mellanox.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'block/blk-integrity.c')
-rw-r--r--block/blk-integrity.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/block/blk-integrity.c b/block/blk-integrity.c
index c7508654faff..7a96f57ed195 100644
--- a/block/blk-integrity.c
+++ b/block/blk-integrity.c
@@ -289,6 +289,14 @@ static ssize_t integrity_tag_size_show(struct blk_integrity *bi, char *page)
289 return sprintf(page, "0\n"); 289 return sprintf(page, "0\n");
290} 290}
291 291
292static ssize_t integrity_interval_show(struct blk_integrity *bi, char *page)
293{
294 if (bi != NULL)
295 return sprintf(page, "%u\n", 1 << bi->interval_exp);
296 else
297 return sprintf(page, "0\n");
298}
299
292static ssize_t integrity_verify_store(struct blk_integrity *bi, 300static ssize_t integrity_verify_store(struct blk_integrity *bi,
293 const char *page, size_t count) 301 const char *page, size_t count)
294{ 302{
@@ -343,6 +351,11 @@ static struct integrity_sysfs_entry integrity_tag_size_entry = {
343 .show = integrity_tag_size_show, 351 .show = integrity_tag_size_show,
344}; 352};
345 353
354static struct integrity_sysfs_entry integrity_interval_entry = {
355 .attr = { .name = "protection_interval_bytes", .mode = S_IRUGO },
356 .show = integrity_interval_show,
357};
358
346static struct integrity_sysfs_entry integrity_verify_entry = { 359static struct integrity_sysfs_entry integrity_verify_entry = {
347 .attr = { .name = "read_verify", .mode = S_IRUGO | S_IWUSR }, 360 .attr = { .name = "read_verify", .mode = S_IRUGO | S_IWUSR },
348 .show = integrity_verify_show, 361 .show = integrity_verify_show,
@@ -363,6 +376,7 @@ static struct integrity_sysfs_entry integrity_device_entry = {
363static struct attribute *integrity_attrs[] = { 376static struct attribute *integrity_attrs[] = {
364 &integrity_format_entry.attr, 377 &integrity_format_entry.attr,
365 &integrity_tag_size_entry.attr, 378 &integrity_tag_size_entry.attr,
379 &integrity_interval_entry.attr,
366 &integrity_verify_entry.attr, 380 &integrity_verify_entry.attr,
367 &integrity_generate_entry.attr, 381 &integrity_generate_entry.attr,
368 &integrity_device_entry.attr, 382 &integrity_device_entry.attr,