Commit d4610456 authored by Coly Li's avatar Coly Li Committed by Jens Axboe

bcache: export backing_dev_uuid via sysfs

When there are multiple bcache devices, after a reboot the name of
bcache devices may change (e.g. current /dev/bcache1 was /dev/bcache0
before reboot). Therefore we need the backing device UUID (sb.uuid) to
identify each bcache device.

Backing device uuid can be found by program bcache-super-show, but
directly exporting backing_dev_uuid by sysfs file
/sys/block/bcache<?>/bcache/backing_dev_uuid is a much simpler method.

With backing_dev_uuid, and partition uuids from /dev/disk/by-partuuid/,
now we can identify each bcache device and its partitions conveniently.
Signed-off-by: default avatarColy Li <colyli@suse.de>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 926d1946
...@@ -68,6 +68,7 @@ read_attribute(btree_written); ...@@ -68,6 +68,7 @@ read_attribute(btree_written);
read_attribute(metadata_written); read_attribute(metadata_written);
read_attribute(active_journal_entries); read_attribute(active_journal_entries);
read_attribute(backing_dev_name); read_attribute(backing_dev_name);
read_attribute(backing_dev_uuid);
sysfs_time_stats_attribute(btree_gc, sec, ms); sysfs_time_stats_attribute(btree_gc, sec, ms);
sysfs_time_stats_attribute(btree_split, sec, us); sysfs_time_stats_attribute(btree_split, sec, us);
...@@ -250,6 +251,13 @@ SHOW(__bch_cached_dev) ...@@ -250,6 +251,13 @@ SHOW(__bch_cached_dev)
return strlen(buf); return strlen(buf);
} }
if (attr == &sysfs_backing_dev_uuid) {
/* convert binary uuid into 36-byte string plus '\0' */
snprintf(buf, 36+1, "%pU", dc->sb.uuid);
strcat(buf, "\n");
return strlen(buf);
}
#undef var #undef var
return 0; return 0;
} }
...@@ -460,6 +468,7 @@ static struct attribute *bch_cached_dev_files[] = { ...@@ -460,6 +468,7 @@ static struct attribute *bch_cached_dev_files[] = {
&sysfs_bypass_torture_test, &sysfs_bypass_torture_test,
#endif #endif
&sysfs_backing_dev_name, &sysfs_backing_dev_name,
&sysfs_backing_dev_uuid,
NULL NULL
}; };
KTYPE(bch_cached_dev); KTYPE(bch_cached_dev);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment