Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8288f496 authored by Martin K. Petersen's avatar Martin K. Petersen Committed by Jens Axboe
Browse files

block: Add prefix to block integrity profile flags



Add a BLK_ prefix to the integrity profile flags. Also rename the flags
to be more consistent with the generate/verify terminology in the rest
of the integrity code.

Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarSagi Grimberg <sagig@mellanox.com>
Signed-off-by: default avatarJens Axboe <axboe@fb.com>
parent 18593088
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -173,11 +173,11 @@ bool bio_integrity_enabled(struct bio *bio)
		return false;
		return false;


	if (bio_data_dir(bio) == READ && bi->verify_fn != NULL &&
	if (bio_data_dir(bio) == READ && bi->verify_fn != NULL &&
	    (bi->flags & INTEGRITY_FLAG_READ))
	    (bi->flags & BLK_INTEGRITY_VERIFY))
		return true;
		return true;


	if (bio_data_dir(bio) == WRITE && bi->generate_fn != NULL &&
	if (bio_data_dir(bio) == WRITE && bi->generate_fn != NULL &&
	    (bi->flags & INTEGRITY_FLAG_WRITE))
	    (bi->flags & BLK_INTEGRITY_GENERATE))
		return true;
		return true;


	return false;
	return false;
+22 −21
Original line number Original line Diff line number Diff line
@@ -269,42 +269,42 @@ static ssize_t integrity_tag_size_show(struct blk_integrity *bi, char *page)
		return sprintf(page, "0\n");
		return sprintf(page, "0\n");
}
}


static ssize_t integrity_read_store(struct blk_integrity *bi,
static ssize_t integrity_verify_store(struct blk_integrity *bi,
				      const char *page, size_t count)
				      const char *page, size_t count)
{
{
	char *p = (char *) page;
	char *p = (char *) page;
	unsigned long val = simple_strtoul(p, &p, 10);
	unsigned long val = simple_strtoul(p, &p, 10);


	if (val)
	if (val)
		bi->flags |= INTEGRITY_FLAG_READ;
		bi->flags |= BLK_INTEGRITY_VERIFY;
	else
	else
		bi->flags &= ~INTEGRITY_FLAG_READ;
		bi->flags &= ~BLK_INTEGRITY_VERIFY;


	return count;
	return count;
}
}


static ssize_t integrity_read_show(struct blk_integrity *bi, char *page)
static ssize_t integrity_verify_show(struct blk_integrity *bi, char *page)
{
{
	return sprintf(page, "%d\n", (bi->flags & INTEGRITY_FLAG_READ) != 0);
	return sprintf(page, "%d\n", (bi->flags & BLK_INTEGRITY_VERIFY) != 0);
}
}


static ssize_t integrity_write_store(struct blk_integrity *bi,
static ssize_t integrity_generate_store(struct blk_integrity *bi,
					const char *page, size_t count)
					const char *page, size_t count)
{
{
	char *p = (char *) page;
	char *p = (char *) page;
	unsigned long val = simple_strtoul(p, &p, 10);
	unsigned long val = simple_strtoul(p, &p, 10);


	if (val)
	if (val)
		bi->flags |= INTEGRITY_FLAG_WRITE;
		bi->flags |= BLK_INTEGRITY_GENERATE;
	else
	else
		bi->flags &= ~INTEGRITY_FLAG_WRITE;
		bi->flags &= ~BLK_INTEGRITY_GENERATE;


	return count;
	return count;
}
}


static ssize_t integrity_write_show(struct blk_integrity *bi, char *page)
static ssize_t integrity_generate_show(struct blk_integrity *bi, char *page)
{
{
	return sprintf(page, "%d\n", (bi->flags & INTEGRITY_FLAG_WRITE) != 0);
	return sprintf(page, "%d\n", (bi->flags & BLK_INTEGRITY_GENERATE) != 0);
}
}


static struct integrity_sysfs_entry integrity_format_entry = {
static struct integrity_sysfs_entry integrity_format_entry = {
@@ -317,23 +317,23 @@ static struct integrity_sysfs_entry integrity_tag_size_entry = {
	.show = integrity_tag_size_show,
	.show = integrity_tag_size_show,
};
};


static struct integrity_sysfs_entry integrity_read_entry = {
static struct integrity_sysfs_entry integrity_verify_entry = {
	.attr = { .name = "read_verify", .mode = S_IRUGO | S_IWUSR },
	.attr = { .name = "read_verify", .mode = S_IRUGO | S_IWUSR },
	.show = integrity_read_show,
	.show = integrity_verify_show,
	.store = integrity_read_store,
	.store = integrity_verify_store,
};
};


static struct integrity_sysfs_entry integrity_write_entry = {
static struct integrity_sysfs_entry integrity_generate_entry = {
	.attr = { .name = "write_generate", .mode = S_IRUGO | S_IWUSR },
	.attr = { .name = "write_generate", .mode = S_IRUGO | S_IWUSR },
	.show = integrity_write_show,
	.show = integrity_generate_show,
	.store = integrity_write_store,
	.store = integrity_generate_store,
};
};


static struct attribute *integrity_attrs[] = {
static struct attribute *integrity_attrs[] = {
	&integrity_format_entry.attr,
	&integrity_format_entry.attr,
	&integrity_tag_size_entry.attr,
	&integrity_tag_size_entry.attr,
	&integrity_read_entry.attr,
	&integrity_verify_entry.attr,
	&integrity_write_entry.attr,
	&integrity_generate_entry.attr,
	NULL,
	NULL,
};
};


@@ -406,7 +406,7 @@ int blk_integrity_register(struct gendisk *disk, struct blk_integrity *template)


		kobject_uevent(&bi->kobj, KOBJ_ADD);
		kobject_uevent(&bi->kobj, KOBJ_ADD);


		bi->flags |= INTEGRITY_FLAG_READ | INTEGRITY_FLAG_WRITE;
		bi->flags |= BLK_INTEGRITY_VERIFY | BLK_INTEGRITY_GENERATE;
		bi->interval = queue_logical_block_size(disk->queue);
		bi->interval = queue_logical_block_size(disk->queue);
		disk->integrity = bi;
		disk->integrity = bi;
	} else
	} else
@@ -419,6 +419,7 @@ int blk_integrity_register(struct gendisk *disk, struct blk_integrity *template)
		bi->verify_fn = template->verify_fn;
		bi->verify_fn = template->verify_fn;
		bi->tuple_size = template->tuple_size;
		bi->tuple_size = template->tuple_size;
		bi->tag_size = template->tag_size;
		bi->tag_size = template->tag_size;
		bi->flags |= template->flags;
	} else
	} else
		bi->name = bi_unsupported_name;
		bi->name = bi_unsupported_name;


+4 −2
Original line number Original line Diff line number Diff line
@@ -1458,8 +1458,10 @@ static inline uint64_t rq_io_start_time_ns(struct request *req)


#if defined(CONFIG_BLK_DEV_INTEGRITY)
#if defined(CONFIG_BLK_DEV_INTEGRITY)


#define INTEGRITY_FLAG_READ	2	/* verify data integrity on read */
enum blk_integrity_flags {
#define INTEGRITY_FLAG_WRITE	4	/* generate data integrity on write */
	BLK_INTEGRITY_VERIFY		= 1 << 0,
	BLK_INTEGRITY_GENERATE		= 1 << 1,
};


struct blk_integrity_iter {
struct blk_integrity_iter {
	void			*prot_buf;
	void			*prot_buf;