summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
06a452e)
Just use normal open coded bit operations instead, they need not be
atomic.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
unsigned long val = simple_strtoul(p, &p, 10);
if (val)
unsigned long val = simple_strtoul(p, &p, 10);
if (val)
- set_bit(INTEGRITY_FLAG_READ, &bi->flags);
+ bi->flags |= INTEGRITY_FLAG_READ;
- clear_bit(INTEGRITY_FLAG_READ, &bi->flags);
+ bi->flags &= ~INTEGRITY_FLAG_READ;
return count;
}
static ssize_t integrity_read_show(struct blk_integrity *bi, char *page)
{
return count;
}
static ssize_t integrity_read_show(struct blk_integrity *bi, char *page)
{
- return sprintf(page, "%d\n",
- test_bit(INTEGRITY_FLAG_READ, &bi->flags) ? 1 : 0);
+ return sprintf(page, "%d\n", (bi->flags & INTEGRITY_FLAG_READ) != 0);
}
static ssize_t integrity_write_store(struct blk_integrity *bi,
}
static ssize_t integrity_write_store(struct blk_integrity *bi,
unsigned long val = simple_strtoul(p, &p, 10);
if (val)
unsigned long val = simple_strtoul(p, &p, 10);
if (val)
- set_bit(INTEGRITY_FLAG_WRITE, &bi->flags);
+ bi->flags |= INTEGRITY_FLAG_WRITE;
- clear_bit(INTEGRITY_FLAG_WRITE, &bi->flags);
+ bi->flags &= ~INTEGRITY_FLAG_WRITE;
return count;
}
static ssize_t integrity_write_show(struct blk_integrity *bi, char *page)
{
return count;
}
static ssize_t integrity_write_show(struct blk_integrity *bi, char *page)
{
- return sprintf(page, "%d\n",
- test_bit(INTEGRITY_FLAG_WRITE, &bi->flags) ? 1 : 0);
+ return sprintf(page, "%d\n", (bi->flags & INTEGRITY_FLAG_WRITE) != 0);
}
static struct integrity_sysfs_entry integrity_format_entry = {
}
static struct integrity_sysfs_entry integrity_format_entry = {
kobject_uevent(&bi->kobj, KOBJ_ADD);
kobject_uevent(&bi->kobj, KOBJ_ADD);
- set_bit(INTEGRITY_FLAG_READ, &bi->flags);
- set_bit(INTEGRITY_FLAG_WRITE, &bi->flags);
+ bi->flags |= INTEGRITY_FLAG_READ | INTEGRITY_FLAG_WRITE;
bi->sector_size = disk->queue->hardsect_size;
disk->integrity = bi;
} else
bi->sector_size = disk->queue->hardsect_size;
disk->integrity = bi;
} else
#if defined(CONFIG_BLK_DEV_INTEGRITY)
#if defined(CONFIG_BLK_DEV_INTEGRITY)
-#define INTEGRITY_FLAG_READ 1 /* verify data integrity on read */
-#define INTEGRITY_FLAG_WRITE 2 /* generate data integrity on write */
+#define INTEGRITY_FLAG_READ 2 /* verify data integrity on read */
+#define INTEGRITY_FLAG_WRITE 4 /* generate data integrity on write */
struct blk_integrity_exchg {
void *prot_buf;
struct blk_integrity_exchg {
void *prot_buf;
return 0;
if (rw == READ && bi->verify_fn != NULL &&
return 0;
if (rw == READ && bi->verify_fn != NULL &&
- test_bit(INTEGRITY_FLAG_READ, &bi->flags))
+ (bi->flags & INTEGRITY_FLAG_READ))
return 1;
if (rw == WRITE && bi->generate_fn != NULL &&
return 1;
if (rw == WRITE && bi->generate_fn != NULL &&
- test_bit(INTEGRITY_FLAG_WRITE, &bi->flags))
+ (bi->flags & INTEGRITY_FLAG_WRITE))