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: Coly Li <colyli@suse.de> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
926d19465b
commit
d4610456cf
@ -68,6 +68,7 @@ read_attribute(btree_written);
|
||||
read_attribute(metadata_written);
|
||||
read_attribute(active_journal_entries);
|
||||
read_attribute(backing_dev_name);
|
||||
read_attribute(backing_dev_uuid);
|
||||
|
||||
sysfs_time_stats_attribute(btree_gc, sec, ms);
|
||||
sysfs_time_stats_attribute(btree_split, sec, us);
|
||||
@ -250,6 +251,13 @@ SHOW(__bch_cached_dev)
|
||||
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
|
||||
return 0;
|
||||
}
|
||||
@ -460,6 +468,7 @@ static struct attribute *bch_cached_dev_files[] = {
|
||||
&sysfs_bypass_torture_test,
|
||||
#endif
|
||||
&sysfs_backing_dev_name,
|
||||
&sysfs_backing_dev_uuid,
|
||||
NULL
|
||||
};
|
||||
KTYPE(bch_cached_dev);
|
||||
|
Loading…
Reference in New Issue
Block a user