super.c (5c57132eaf5265937e46340bfbfb97ffb078c423) | super.c (dc6b20551044a05cd4d8ad2356a6bd888570f52a) |
---|---|
1/* 2 * fs/f2fs/super.c 3 * 4 * Copyright (c) 2012 Samsung Electronics Co., Ltd. 5 * http://www.samsung.com/ 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License version 2 as --- 635 unchanged lines hidden (view full) --- 644 iput(sbi->meta_inode); 645 646 /* destroy f2fs internal modules */ 647 destroy_node_manager(sbi); 648 destroy_segment_manager(sbi); 649 650 kfree(sbi->ckpt); 651 | 1/* 2 * fs/f2fs/super.c 3 * 4 * Copyright (c) 2012 Samsung Electronics Co., Ltd. 5 * http://www.samsung.com/ 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License version 2 as --- 635 unchanged lines hidden (view full) --- 644 iput(sbi->meta_inode); 645 646 /* destroy f2fs internal modules */ 647 destroy_node_manager(sbi); 648 destroy_segment_manager(sbi); 649 650 kfree(sbi->ckpt); 651 |
652 f2fs_exit_sysfs(sbi); | 652 f2fs_unregister_sysfs(sbi); |
653 654 sb->s_fs_info = NULL; 655 if (sbi->s_chksum_driver) 656 crypto_free_shash(sbi->s_chksum_driver); 657 kfree(sbi->raw_super); 658 659 destroy_device_list(sbi); 660 mempool_destroy(sbi->write_io_dummy); --- 1479 unchanged lines hidden (view full) --- 2140 } 2141 2142 sb->s_root = d_make_root(root); /* allocate root dentry */ 2143 if (!sb->s_root) { 2144 err = -ENOMEM; 2145 goto free_root_inode; 2146 } 2147 | 653 654 sb->s_fs_info = NULL; 655 if (sbi->s_chksum_driver) 656 crypto_free_shash(sbi->s_chksum_driver); 657 kfree(sbi->raw_super); 658 659 destroy_device_list(sbi); 660 mempool_destroy(sbi->write_io_dummy); --- 1479 unchanged lines hidden (view full) --- 2140 } 2141 2142 sb->s_root = d_make_root(root); /* allocate root dentry */ 2143 if (!sb->s_root) { 2144 err = -ENOMEM; 2145 goto free_root_inode; 2146 } 2147 |
2148 err = f2fs_init_sysfs(sbi); | 2148 err = f2fs_register_sysfs(sbi); |
2149 if (err) 2150 goto free_root_inode; 2151 2152 /* recover fsynced data */ 2153 if (!test_opt(sbi, DISABLE_ROLL_FORWARD)) { 2154 /* 2155 * mount should be failed, when device has readonly mode, and 2156 * previous checkpoint was not done by clean system shutdown. --- 54 unchanged lines hidden (view full) --- 2211 f2fs_msg(sbi->sb, KERN_NOTICE, "Mounted with checkpoint version = %llx", 2212 cur_cp_version(F2FS_CKPT(sbi))); 2213 f2fs_update_time(sbi, CP_TIME); 2214 f2fs_update_time(sbi, REQ_TIME); 2215 return 0; 2216 2217free_sysfs: 2218 f2fs_sync_inode_meta(sbi); | 2149 if (err) 2150 goto free_root_inode; 2151 2152 /* recover fsynced data */ 2153 if (!test_opt(sbi, DISABLE_ROLL_FORWARD)) { 2154 /* 2155 * mount should be failed, when device has readonly mode, and 2156 * previous checkpoint was not done by clean system shutdown. --- 54 unchanged lines hidden (view full) --- 2211 f2fs_msg(sbi->sb, KERN_NOTICE, "Mounted with checkpoint version = %llx", 2212 cur_cp_version(F2FS_CKPT(sbi))); 2213 f2fs_update_time(sbi, CP_TIME); 2214 f2fs_update_time(sbi, REQ_TIME); 2215 return 0; 2216 2217free_sysfs: 2218 f2fs_sync_inode_meta(sbi); |
2219 f2fs_exit_sysfs(sbi); | 2219 f2fs_unregister_sysfs(sbi); |
2220free_root_inode: 2221 dput(sb->s_root); 2222 sb->s_root = NULL; 2223free_node_inode: 2224 truncate_inode_pages_final(NODE_MAPPING(sbi)); 2225 mutex_lock(&sbi->umount_mutex); 2226 release_ino_entry(sbi, true); 2227 f2fs_leave_shrinker(sbi); --- 101 unchanged lines hidden (view full) --- 2329 if (err) 2330 goto free_node_manager_caches; 2331 err = create_checkpoint_caches(); 2332 if (err) 2333 goto free_segment_manager_caches; 2334 err = create_extent_cache(); 2335 if (err) 2336 goto free_checkpoint_caches; | 2220free_root_inode: 2221 dput(sb->s_root); 2222 sb->s_root = NULL; 2223free_node_inode: 2224 truncate_inode_pages_final(NODE_MAPPING(sbi)); 2225 mutex_lock(&sbi->umount_mutex); 2226 release_ino_entry(sbi, true); 2227 f2fs_leave_shrinker(sbi); --- 101 unchanged lines hidden (view full) --- 2329 if (err) 2330 goto free_node_manager_caches; 2331 err = create_checkpoint_caches(); 2332 if (err) 2333 goto free_segment_manager_caches; 2334 err = create_extent_cache(); 2335 if (err) 2336 goto free_checkpoint_caches; |
2337 err = f2fs_register_sysfs(); | 2337 err = f2fs_init_sysfs(); |
2338 if (err) 2339 goto free_extent_cache; 2340 err = register_shrinker(&f2fs_shrinker_info); 2341 if (err) 2342 goto free_sysfs; 2343 err = register_filesystem(&f2fs_fs_type); 2344 if (err) 2345 goto free_shrinker; 2346 err = f2fs_create_root_stats(); 2347 if (err) 2348 goto free_filesystem; 2349 return 0; 2350 2351free_filesystem: 2352 unregister_filesystem(&f2fs_fs_type); 2353free_shrinker: 2354 unregister_shrinker(&f2fs_shrinker_info); 2355free_sysfs: | 2338 if (err) 2339 goto free_extent_cache; 2340 err = register_shrinker(&f2fs_shrinker_info); 2341 if (err) 2342 goto free_sysfs; 2343 err = register_filesystem(&f2fs_fs_type); 2344 if (err) 2345 goto free_shrinker; 2346 err = f2fs_create_root_stats(); 2347 if (err) 2348 goto free_filesystem; 2349 return 0; 2350 2351free_filesystem: 2352 unregister_filesystem(&f2fs_fs_type); 2353free_shrinker: 2354 unregister_shrinker(&f2fs_shrinker_info); 2355free_sysfs: |
2356 f2fs_unregister_sysfs(); | 2356 f2fs_exit_sysfs(); |
2357free_extent_cache: 2358 destroy_extent_cache(); 2359free_checkpoint_caches: 2360 destroy_checkpoint_caches(); 2361free_segment_manager_caches: 2362 destroy_segment_manager_caches(); 2363free_node_manager_caches: 2364 destroy_node_manager_caches(); 2365free_inodecache: 2366 destroy_inodecache(); 2367fail: 2368 return err; 2369} 2370 2371static void __exit exit_f2fs_fs(void) 2372{ 2373 f2fs_destroy_root_stats(); 2374 unregister_filesystem(&f2fs_fs_type); 2375 unregister_shrinker(&f2fs_shrinker_info); | 2357free_extent_cache: 2358 destroy_extent_cache(); 2359free_checkpoint_caches: 2360 destroy_checkpoint_caches(); 2361free_segment_manager_caches: 2362 destroy_segment_manager_caches(); 2363free_node_manager_caches: 2364 destroy_node_manager_caches(); 2365free_inodecache: 2366 destroy_inodecache(); 2367fail: 2368 return err; 2369} 2370 2371static void __exit exit_f2fs_fs(void) 2372{ 2373 f2fs_destroy_root_stats(); 2374 unregister_filesystem(&f2fs_fs_type); 2375 unregister_shrinker(&f2fs_shrinker_info); |
2376 f2fs_unregister_sysfs(); | 2376 f2fs_exit_sysfs(); |
2377 destroy_extent_cache(); 2378 destroy_checkpoint_caches(); 2379 destroy_segment_manager_caches(); 2380 destroy_node_manager_caches(); 2381 destroy_inodecache(); 2382 f2fs_destroy_trace_ios(); 2383} 2384 2385module_init(init_f2fs_fs) 2386module_exit(exit_f2fs_fs) 2387 2388MODULE_AUTHOR("Samsung Electronics's Praesto Team"); 2389MODULE_DESCRIPTION("Flash Friendly File System"); 2390MODULE_LICENSE("GPL"); 2391 | 2377 destroy_extent_cache(); 2378 destroy_checkpoint_caches(); 2379 destroy_segment_manager_caches(); 2380 destroy_node_manager_caches(); 2381 destroy_inodecache(); 2382 f2fs_destroy_trace_ios(); 2383} 2384 2385module_init(init_f2fs_fs) 2386module_exit(exit_f2fs_fs) 2387 2388MODULE_AUTHOR("Samsung Electronics's Praesto Team"); 2389MODULE_DESCRIPTION("Flash Friendly File System"); 2390MODULE_LICENSE("GPL"); 2391 |