super.c (279afbad4e54acbd61bf88a54a73af3bbfdeb5dd) | super.c (a25c32bedeff3573b53572b87bcafe10ec5b75a9) |
---|---|
1/* 2 * bcache setup/teardown code, and some metadata io - read a superblock and 3 * figure out what to do with it. 4 * 5 * Copyright 2010, 2011 Kent Overstreet <kent.overstreet@gmail.com> 6 * Copyright 2012 Google, Inc. 7 */ 8 --- 811 unchanged lines hidden (view full) --- 820 sectors += bdev_sectors(dc->bdev); 821 822 c->cached_dev_sectors = sectors; 823} 824 825void bch_cached_dev_run(struct cached_dev *dc) 826{ 827 struct bcache_device *d = &dc->disk; | 1/* 2 * bcache setup/teardown code, and some metadata io - read a superblock and 3 * figure out what to do with it. 4 * 5 * Copyright 2010, 2011 Kent Overstreet <kent.overstreet@gmail.com> 6 * Copyright 2012 Google, Inc. 7 */ 8 --- 811 unchanged lines hidden (view full) --- 820 sectors += bdev_sectors(dc->bdev); 821 822 c->cached_dev_sectors = sectors; 823} 824 825void bch_cached_dev_run(struct cached_dev *dc) 826{ 827 struct bcache_device *d = &dc->disk; |
828 char *env[] = { 829 "DRIVER=bcache", 830 kasprintf(GFP_KERNEL, "CACHED_UUID=%pU", dc->sb.uuid), 831 NULL 832 }; |
|
828 829 if (atomic_xchg(&dc->running, 1)) 830 return; 831 832 if (!d->c && 833 BDEV_STATE(&dc->sb) != BDEV_STATE_NONE) { 834 struct closure cl; 835 closure_init_stack(&cl); 836 837 SET_BDEV_STATE(&dc->sb, BDEV_STATE_STALE); 838 bch_write_bdev_super(dc, &cl); 839 closure_sync(&cl); 840 } 841 842 add_disk(d->disk); 843 bd_link_disk_holder(dc->bdev, dc->disk.disk); | 833 834 if (atomic_xchg(&dc->running, 1)) 835 return; 836 837 if (!d->c && 838 BDEV_STATE(&dc->sb) != BDEV_STATE_NONE) { 839 struct closure cl; 840 closure_init_stack(&cl); 841 842 SET_BDEV_STATE(&dc->sb, BDEV_STATE_STALE); 843 bch_write_bdev_super(dc, &cl); 844 closure_sync(&cl); 845 } 846 847 add_disk(d->disk); 848 bd_link_disk_holder(dc->bdev, dc->disk.disk); |
844#if 0 845 char *env[] = { "SYMLINK=label" , NULL }; | 849 /* won't show up in the uevent file, use udevadm monitor -e instead 850 * only class / kset properties are persistent */ |
846 kobject_uevent_env(&disk_to_dev(d->disk)->kobj, KOBJ_CHANGE, env); | 851 kobject_uevent_env(&disk_to_dev(d->disk)->kobj, KOBJ_CHANGE, env); |
847#endif | 852 kfree(env[1]); 853 |
848 if (sysfs_create_link(&d->kobj, &disk_to_dev(d->disk)->kobj, "dev") || 849 sysfs_create_link(&disk_to_dev(d->disk)->kobj, &d->kobj, "bcache")) 850 pr_debug("error creating sysfs link"); 851} 852 853static void cached_dev_detach_finish(struct work_struct *w) 854{ 855 struct cached_dev *dc = container_of(w, struct cached_dev, detach); --- 1167 unchanged lines hidden --- | 854 if (sysfs_create_link(&d->kobj, &disk_to_dev(d->disk)->kobj, "dev") || 855 sysfs_create_link(&disk_to_dev(d->disk)->kobj, &d->kobj, "bcache")) 856 pr_debug("error creating sysfs link"); 857} 858 859static void cached_dev_detach_finish(struct work_struct *w) 860{ 861 struct cached_dev *dc = container_of(w, struct cached_dev, detach); --- 1167 unchanged lines hidden --- |