On Thu, Nov 04, 2021 at 08:55:53AM +0800, Qu Wenruo wrote: > In the coming btrfs-progs v5.15 release, mkfs.btrfs will change to use > v2 cache by default. > > However nospace_cache mount option will not work with v2 cache, as it > will make v2 cache out of sync with on-disk used space. > > So mounting a btrfs with v2 cache using "nospace_cache" will make btrfs > to reject the mount. > > There are quite some test cases relying on nospace_cache to prevent v1 > cache to take up data space. > > For that case, we can append "clear_cache" mount option to it, so that > btrfs knows we do not only want to prevent cache from being created, but > also want to clear any existing v2 cache. > > By this, we can keep those existing tests to do the same behavior for > both v1 and v2 cache. > > Signed-off-by: Qu Wenruo <wqu@xxxxxxxx> This will re-generate the free space tree needlessly, and in fact won't be allowed for extent-tree-v2, so we'll just have to mess with it again. Instead add a helper to get the options if they're needed, something like _btrfs_nocache_opt() { $BTRFS_UTIL_PROG inspect-internal $SCRATCH_DEV | grep FREE_SPACE_TREE if [ $? -eq 0 ]; then return "-o nospace_cache" fi return "" } or something like that. Thanks, Josef