btrfs-progs/kernel-shared
Qu Wenruo a138daac17 btrfs-progs: mkfs: set super_cache_generation to 0 if we're using free space tree
[HICCUP]
There is a bug report that mkfs.btrfs -R free-space-tree still makes
kernel to try to cleanup the v1 space cache:

  # mkfs.btrfs -R free-space-tree -f /dev/test/scratch1
  # mount /dev/test/scratch1 /mnt/btrfs
  # dmesg | grep cleaning
  BTRFS info (device dm-6): cleaning free space cache v1

[CAUSE]
By default, mkfs.btrfs will set super cache generation to (u64)-1, which
will inform kernel that the v1 space cache is invalid, needs to
regenerate it.

But for free space cache tree, kernel will set super cache generation to
0, to indicate v1 space cache is not in use.

This means, even we enabled free space tree with all the RO compatible
bits and new tree, as long as super cache generation is not 0, kernel
still consider the fs has some invalid v1 space cache, and will try to
remove them.

[FIX]
This is not a big deal, but to make the "-R free-space-tree" to really
work as kernel, we also need to set super cache generation to 0.

Reported-by: Chris Murphy <lists@colorremedies.com>
Link: https://lore.kernel.org/linux-btrfs/CAJCQCtSvgzyOnxtrqQZZirSycEHp+g0eDH5c+Kw9mW=PgxuXmw@mail.gmail.com/
Reviewed-by: Anand Jain <anand.jain@oracle.com>
Reviewed-by: Nikolay Borisov <nborisov@suse.com>
Signed-off-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2021-08-20 14:24:55 +02:00
..
backref.c btrfs-progs: move transaction.c to kernel-shared/ 2020-08-31 17:01:06 +02:00
backref.h btrfs-progs: move extent_io.c to kernel-shared/ 2020-08-31 17:01:04 +02:00
ctree.c btrfs-progs: switch %Lu to %llu format 2021-06-19 22:07:49 +02:00
ctree.h btrfs-progs: zoned: redirty clean extent buffers 2021-05-06 16:41:45 +02:00
delayed-ref.c btrfs-progs: move transaction.c to kernel-shared/ 2020-08-31 17:01:06 +02:00
delayed-ref.h btrfs-progs: move delayed-ref.[ch] to kernel-shared/ 2020-03-31 18:37:34 +02:00
dir-item.c btrfs-progs: make btrfs_lookup_dir_index in parity with kernel code 2020-08-31 17:09:49 +02:00
disk-io.c btrfs-progs: switch %Lu to %llu format 2021-06-19 22:07:49 +02:00
disk-io.h btrfs-progs: pass in fs_info to btrfs_csum_data 2021-03-24 22:20:19 +01:00
extent_io.c btrfs-progs: switch %Lu to %llu format 2021-06-19 22:07:49 +02:00
extent_io.h btrfs-progs: move extent_io.c to kernel-shared/ 2020-08-31 17:01:04 +02:00
extent-tree.c btrfs-progs: switch %Lu to %llu format 2021-06-19 22:07:49 +02:00
file-item.c btrfs-progs: delete bogus zero checksum check 2021-05-08 00:58:51 +02:00
file.c btrfs-progs: move transaction.c to kernel-shared/ 2020-08-31 17:01:06 +02:00
free-space-cache.c btrfs-progs: check: batch v1 space cache inodes when clearing 2021-07-22 16:26:05 +02:00
free-space-cache.h btrfs-progs: check: batch v1 space cache inodes when clearing 2021-07-22 16:26:05 +02:00
free-space-tree.c btrfs-progs: mkfs: set super_cache_generation to 0 if we're using free space tree 2021-08-20 14:24:55 +02:00
free-space-tree.h btrfs-progs: rename btrfs_block_group_cache to btrfs_block_group 2020-05-11 20:50:00 +02:00
inode-item.c btrfs-progs: move transaction.c to kernel-shared/ 2020-08-31 17:01:06 +02:00
inode.c btrfs-progs: make btrfs_lookup_dir_index in parity with kernel code 2020-08-31 17:09:49 +02:00
print-tree.c btrfs-progs: switch %Lu to %llu format 2021-06-19 22:07:49 +02:00
print-tree.h btrfs-progs: dump-tree: add options to dump checksums 2021-06-19 22:07:49 +02:00
root-tree.c btrfs-progs: move transaction.c to kernel-shared/ 2020-08-31 17:01:06 +02:00
transaction.c btrfs-progs: zoned: redirty clean extent buffers 2021-05-06 16:41:45 +02:00
transaction.h btrfs-progs: move transaction.c to kernel-shared/ 2020-08-31 17:01:06 +02:00
ulist.c btrfs-progs: move ctree.c to kernel-shared/ 2020-08-31 17:01:05 +02:00
ulist.h btrfs-progs: build: drop kernel-lib from -I and update paths 2019-07-03 20:49:04 +02:00
uuid-tree.c btrfs-progs: move transaction.c to kernel-shared/ 2020-08-31 17:01:06 +02:00
volumes.c btrfs-progs: add nparity for raid1c34 definitions 2021-07-23 00:59:27 +02:00
volumes.h btrfs-progs: zoned: implement zoned chunk allocator 2021-05-06 16:41:45 +02:00
zoned.c btrfs-progs: zoned: fix memory leak in btrfs_sb_io() 2021-07-02 17:27:53 +02:00
zoned.h btrfs-progs: do not BUG_ON if btrfs_add_to_fsid succeeded to write superblock 2021-05-12 16:00:14 +02:00