|
@@ -178,6 +178,7 @@ STORE(__cached_dev)
|
|
|
disk.kobj);
|
|
|
unsigned v = size;
|
|
|
struct cache_set *c;
|
|
|
+ struct kobj_uevent_env *env;
|
|
|
|
|
|
#define d_strtoul(var) sysfs_strtoul(var, dc->var)
|
|
|
#define d_strtoi_h(var) sysfs_hatoi(var, dc->var)
|
|
@@ -222,6 +223,7 @@ STORE(__cached_dev)
|
|
|
}
|
|
|
|
|
|
if (attr == &sysfs_label) {
|
|
|
+ /* note: endlines are preserved */
|
|
|
memcpy(dc->sb.label, buf, SB_LABEL_SIZE);
|
|
|
bch_write_bdev_super(dc, NULL);
|
|
|
if (dc->disk.c) {
|
|
@@ -229,6 +231,13 @@ STORE(__cached_dev)
|
|
|
buf, SB_LABEL_SIZE);
|
|
|
bch_uuid_write(dc->disk.c);
|
|
|
}
|
|
|
+ env = kzalloc(sizeof(struct kobj_uevent_env), GFP_KERNEL);
|
|
|
+ add_uevent_var(env, "DRIVER=bcache");
|
|
|
+ add_uevent_var(env, "CACHED_UUID=%pU", dc->sb.uuid),
|
|
|
+ add_uevent_var(env, "CACHED_LABEL=%s", buf);
|
|
|
+ kobject_uevent_env(
|
|
|
+ &disk_to_dev(dc->disk.disk)->kobj, KOBJ_CHANGE, env->envp);
|
|
|
+ kfree(env);
|
|
|
}
|
|
|
|
|
|
if (attr == &sysfs_attach) {
|