FAILED: patch "[PATCH] Btrfs: fix mount -o clear_cache,space_cache=v2" failed to apply to 4.7-stable tree
Subsystems (2)
[email protected]
maintainerThe patch below does not apply to the 4.7-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
Quoted 1 line
From
f8d468a15c22b954b379aa0c74914d5068448fb1Mon Sep 17 00:00:00 2001
From: Omar Sandoval <[email protected]>
Date: Thu, 22 Sep 2016 17:24:21 -0700
Subject: [PATCH] Btrfs: fix mount -o clear_cache,space_cache=v2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
We moved the code for creating the free space tree the first time that it's enabled, but didn't move the clearing code along with it. This breaks my (undocumented) intention that mount -o clear_cache,space_cache=v2 would clear the free space tree and then recreate it.
fs/btrfs/disk-io.c +12 -12
@@ -3129,6 +3129,18 @@ int open_ctree(struct super_block *sb,if (sb->s_flags &MS_RDONLY )return 0 ; +if (btrfs_test_opt (fs_info,CLEAR_CACHE ) && +btrfs_fs_compat_ro (fs_info,FREE_SPACE_TREE )) { +btrfs_info (fs_info,"clearing free space tree" ); + ret =btrfs_clear_free_space_tree (fs_info); +if (ret) { +btrfs_warn (fs_info, +"failed to clear free space tree: %d" , ret); +close_ctree (tree_root); +return ret; + } + } +if (btrfs_test_opt (tree_root->fs_info,FREE_SPACE_TREE ) && !btrfs_fs_compat_ro (fs_info,FREE_SPACE_TREE )) {btrfs_info (fs_info,"creating free space tree" );
@@ -3166,18 +3178,6 @@ int open_ctree(struct super_block *sb,btrfs_qgroup_rescan_resume (fs_info); -if (btrfs_test_opt (tree_root->fs_info,CLEAR_CACHE ) && -btrfs_fs_compat_ro (fs_info,FREE_SPACE_TREE )) { -btrfs_info (fs_info,"clearing free space tree" ); - ret =btrfs_clear_free_space_tree (fs_info); -if (ret) { -btrfs_warn (fs_info, -"failed to clear free space tree: %d" , ret); -close_ctree (tree_root); -return ret; - } - } -if (!fs_info->uuid_root) {btrfs_info (fs_info,"creating UUID tree" ); ret =btrfs_create_uuid_tree (fs_info);