diff options
-rw-r--r-- | fs/btrfs/ctree.h | 1 | ||||
-rw-r--r-- | fs/btrfs/extent-tree.c | 2 | ||||
-rw-r--r-- | fs/btrfs/free-space-cache.c | 2 | ||||
-rw-r--r-- | fs/btrfs/super.c | 6 |
4 files changed, 8 insertions, 3 deletions
diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h index b155a0e49eeb..633e559e000e 100644 --- a/fs/btrfs/ctree.h +++ b/fs/btrfs/ctree.h | |||
@@ -1229,6 +1229,7 @@ struct btrfs_root { | |||
1229 | #define BTRFS_MOUNT_DISCARD (1 << 10) | 1229 | #define BTRFS_MOUNT_DISCARD (1 << 10) |
1230 | #define BTRFS_MOUNT_FORCE_COMPRESS (1 << 11) | 1230 | #define BTRFS_MOUNT_FORCE_COMPRESS (1 << 11) |
1231 | #define BTRFS_MOUNT_SPACE_CACHE (1 << 12) | 1231 | #define BTRFS_MOUNT_SPACE_CACHE (1 << 12) |
1232 | #define BTRFS_MOUNT_CLEAR_CACHE (1 << 13) | ||
1232 | 1233 | ||
1233 | #define btrfs_clear_opt(o, opt) ((o) &= ~BTRFS_MOUNT_##opt) | 1234 | #define btrfs_clear_opt(o, opt) ((o) &= ~BTRFS_MOUNT_##opt) |
1234 | #define btrfs_set_opt(o, opt) ((o) |= BTRFS_MOUNT_##opt) | 1235 | #define btrfs_set_opt(o, opt) ((o) |= BTRFS_MOUNT_##opt) |
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c index 137833e1fc26..1a94ee4c4fbb 100644 --- a/fs/btrfs/extent-tree.c +++ b/fs/btrfs/extent-tree.c | |||
@@ -8198,6 +8198,8 @@ int btrfs_read_block_groups(struct btrfs_root *root) | |||
8198 | if (cache_gen != 0 && | 8198 | if (cache_gen != 0 && |
8199 | btrfs_super_generation(&root->fs_info->super_copy) != cache_gen) | 8199 | btrfs_super_generation(&root->fs_info->super_copy) != cache_gen) |
8200 | need_clear = 1; | 8200 | need_clear = 1; |
8201 | if (btrfs_test_opt(root, CLEAR_CACHE)) | ||
8202 | need_clear = 1; | ||
8201 | 8203 | ||
8202 | while (1) { | 8204 | while (1) { |
8203 | ret = find_first_block_group(root, path, &key); | 8205 | ret = find_first_block_group(root, path, &key); |
diff --git a/fs/btrfs/free-space-cache.c b/fs/btrfs/free-space-cache.c index baa193423fb8..22ee0dc2e6b8 100644 --- a/fs/btrfs/free-space-cache.c +++ b/fs/btrfs/free-space-cache.c | |||
@@ -242,8 +242,6 @@ int load_free_space_cache(struct btrfs_fs_info *fs_info, | |||
242 | */ | 242 | */ |
243 | spin_lock(&block_group->lock); | 243 | spin_lock(&block_group->lock); |
244 | if (block_group->disk_cache_state != BTRFS_DC_WRITTEN) { | 244 | if (block_group->disk_cache_state != BTRFS_DC_WRITTEN) { |
245 | printk(KERN_ERR "not reading block group %llu, dcs is %d\n", block_group->key.objectid, | ||
246 | block_group->disk_cache_state); | ||
247 | spin_unlock(&block_group->lock); | 245 | spin_unlock(&block_group->lock); |
248 | return 0; | 246 | return 0; |
249 | } | 247 | } |
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c index 5c23eb8d6ba3..5f56213908e7 100644 --- a/fs/btrfs/super.c +++ b/fs/btrfs/super.c | |||
@@ -68,7 +68,7 @@ enum { | |||
68 | Opt_nodatacow, Opt_max_inline, Opt_alloc_start, Opt_nobarrier, Opt_ssd, | 68 | Opt_nodatacow, Opt_max_inline, Opt_alloc_start, Opt_nobarrier, Opt_ssd, |
69 | Opt_nossd, Opt_ssd_spread, Opt_thread_pool, Opt_noacl, Opt_compress, | 69 | Opt_nossd, Opt_ssd_spread, Opt_thread_pool, Opt_noacl, Opt_compress, |
70 | Opt_compress_force, Opt_notreelog, Opt_ratio, Opt_flushoncommit, | 70 | Opt_compress_force, Opt_notreelog, Opt_ratio, Opt_flushoncommit, |
71 | Opt_discard, Opt_space_cache, Opt_err, | 71 | Opt_discard, Opt_space_cache, Opt_clear_cache, Opt_err, |
72 | }; | 72 | }; |
73 | 73 | ||
74 | static match_table_t tokens = { | 74 | static match_table_t tokens = { |
@@ -93,6 +93,7 @@ static match_table_t tokens = { | |||
93 | {Opt_ratio, "metadata_ratio=%d"}, | 93 | {Opt_ratio, "metadata_ratio=%d"}, |
94 | {Opt_discard, "discard"}, | 94 | {Opt_discard, "discard"}, |
95 | {Opt_space_cache, "space_cache"}, | 95 | {Opt_space_cache, "space_cache"}, |
96 | {Opt_clear_cache, "clear_cache"}, | ||
96 | {Opt_err, NULL}, | 97 | {Opt_err, NULL}, |
97 | }; | 98 | }; |
98 | 99 | ||
@@ -239,6 +240,9 @@ int btrfs_parse_options(struct btrfs_root *root, char *options) | |||
239 | case Opt_space_cache: | 240 | case Opt_space_cache: |
240 | printk(KERN_INFO "btrfs: enabling disk space caching\n"); | 241 | printk(KERN_INFO "btrfs: enabling disk space caching\n"); |
241 | btrfs_set_opt(info->mount_opt, SPACE_CACHE); | 242 | btrfs_set_opt(info->mount_opt, SPACE_CACHE); |
243 | case Opt_clear_cache: | ||
244 | printk(KERN_INFO "btrfs: force clearing of disk cache\n"); | ||
245 | btrfs_set_opt(info->mount_opt, CLEAR_CACHE); | ||
242 | break; | 246 | break; |
243 | case Opt_err: | 247 | case Opt_err: |
244 | printk(KERN_INFO "btrfs: unrecognized mount option " | 248 | printk(KERN_INFO "btrfs: unrecognized mount option " |