super.c (4d4d8573a8451acc9f01cbea24b7e55f04a252fe) super.c (2ecf0cdb2b437402110ab57546e02abfa68a716b)
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

--- 2057 unchanged lines hidden (view full) ---

2066 };
2067
2068 mutex_init(&bch_register_lock);
2069 init_waitqueue_head(&unregister_wait);
2070 register_reboot_notifier(&reboot);
2071 closure_debug_init();
2072
2073 bcache_major = register_blkdev(0, "bcache");
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

--- 2057 unchanged lines hidden (view full) ---

2066 };
2067
2068 mutex_init(&bch_register_lock);
2069 init_waitqueue_head(&unregister_wait);
2070 register_reboot_notifier(&reboot);
2071 closure_debug_init();
2072
2073 bcache_major = register_blkdev(0, "bcache");
2074 if (bcache_major < 0)
2074 if (bcache_major < 0) {
2075 unregister_reboot_notifier(&reboot);
2075 return bcache_major;
2076 return bcache_major;
2077 }
2076
2077 if (!(bcache_wq = create_workqueue("bcache")) ||
2078 !(bcache_kobj = kobject_create_and_add("bcache", fs_kobj)) ||
2079 sysfs_create_files(bcache_kobj, files) ||
2080 bch_request_init() ||
2081 bch_debug_init(bcache_kobj))
2082 goto err;
2083
2084 return 0;
2085err:
2086 bcache_exit();
2087 return -ENOMEM;
2088}
2089
2090module_exit(bcache_exit);
2091module_init(bcache_init);
2078
2079 if (!(bcache_wq = create_workqueue("bcache")) ||
2080 !(bcache_kobj = kobject_create_and_add("bcache", fs_kobj)) ||
2081 sysfs_create_files(bcache_kobj, files) ||
2082 bch_request_init() ||
2083 bch_debug_init(bcache_kobj))
2084 goto err;
2085
2086 return 0;
2087err:
2088 bcache_exit();
2089 return -ENOMEM;
2090}
2091
2092module_exit(bcache_exit);
2093module_init(bcache_init);