blk-integrity.c (c25141062a82ae8bddced1b3ce2b57a1c0efabe0) blk-integrity.c (5657a819a8d94426c76be04dcedfad0f64cfff00)
1/*
2 * blk-integrity.c - Block layer data integrity extensions
3 *
4 * Copyright (C) 2007, 2008 Oracle Corporation
5 * Written by: Martin K. Petersen <martin.petersen@oracle.com>
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License version

--- 319 unchanged lines hidden (view full) ---

328
329static ssize_t integrity_device_show(struct blk_integrity *bi, char *page)
330{
331 return sprintf(page, "%u\n",
332 (bi->flags & BLK_INTEGRITY_DEVICE_CAPABLE) != 0);
333}
334
335static struct integrity_sysfs_entry integrity_format_entry = {
1/*
2 * blk-integrity.c - Block layer data integrity extensions
3 *
4 * Copyright (C) 2007, 2008 Oracle Corporation
5 * Written by: Martin K. Petersen <martin.petersen@oracle.com>
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License version

--- 319 unchanged lines hidden (view full) ---

328
329static ssize_t integrity_device_show(struct blk_integrity *bi, char *page)
330{
331 return sprintf(page, "%u\n",
332 (bi->flags & BLK_INTEGRITY_DEVICE_CAPABLE) != 0);
333}
334
335static struct integrity_sysfs_entry integrity_format_entry = {
336 .attr = { .name = "format", .mode = S_IRUGO },
336 .attr = { .name = "format", .mode = 0444 },
337 .show = integrity_format_show,
338};
339
340static struct integrity_sysfs_entry integrity_tag_size_entry = {
337 .show = integrity_format_show,
338};
339
340static struct integrity_sysfs_entry integrity_tag_size_entry = {
341 .attr = { .name = "tag_size", .mode = S_IRUGO },
341 .attr = { .name = "tag_size", .mode = 0444 },
342 .show = integrity_tag_size_show,
343};
344
345static struct integrity_sysfs_entry integrity_interval_entry = {
342 .show = integrity_tag_size_show,
343};
344
345static struct integrity_sysfs_entry integrity_interval_entry = {
346 .attr = { .name = "protection_interval_bytes", .mode = S_IRUGO },
346 .attr = { .name = "protection_interval_bytes", .mode = 0444 },
347 .show = integrity_interval_show,
348};
349
350static struct integrity_sysfs_entry integrity_verify_entry = {
347 .show = integrity_interval_show,
348};
349
350static struct integrity_sysfs_entry integrity_verify_entry = {
351 .attr = { .name = "read_verify", .mode = S_IRUGO | S_IWUSR },
351 .attr = { .name = "read_verify", .mode = 0644 },
352 .show = integrity_verify_show,
353 .store = integrity_verify_store,
354};
355
356static struct integrity_sysfs_entry integrity_generate_entry = {
352 .show = integrity_verify_show,
353 .store = integrity_verify_store,
354};
355
356static struct integrity_sysfs_entry integrity_generate_entry = {
357 .attr = { .name = "write_generate", .mode = S_IRUGO | S_IWUSR },
357 .attr = { .name = "write_generate", .mode = 0644 },
358 .show = integrity_generate_show,
359 .store = integrity_generate_store,
360};
361
362static struct integrity_sysfs_entry integrity_device_entry = {
358 .show = integrity_generate_show,
359 .store = integrity_generate_store,
360};
361
362static struct integrity_sysfs_entry integrity_device_entry = {
363 .attr = { .name = "device_is_integrity_capable", .mode = S_IRUGO },
363 .attr = { .name = "device_is_integrity_capable", .mode = 0444 },
364 .show = integrity_device_show,
365};
366
367static struct attribute *integrity_attrs[] = {
368 &integrity_format_entry.attr,
369 &integrity_tag_size_entry.attr,
370 &integrity_interval_entry.attr,
371 &integrity_verify_entry.attr,

--- 82 unchanged lines hidden ---
364 .show = integrity_device_show,
365};
366
367static struct attribute *integrity_attrs[] = {
368 &integrity_format_entry.attr,
369 &integrity_tag_size_entry.attr,
370 &integrity_interval_entry.attr,
371 &integrity_verify_entry.attr,

--- 82 unchanged lines hidden ---