Not sure why I was so fixated on installing it - thanks for reminding. I was able to run it, but it fails: =========================== # ./btrfsck --repair --clear-space-cache -p /dev/sda enabling repair mode Clearing all free space cache btrfs unable to find ref byte nr 812846673920 parent 0 root 1 owner 1050 offset 0 ERROR: failed to remove backref for disk bytenr 812846673920 ERROR: failed to clear free space cache transaction.h:41: btrfs_start_transaction: Assertion `root->commit_root` failed. btrfs check[0x4437ee] btrfs check(close_ctree_fs_info+0x213)[0x445ab3] btrfs check(cmd_check+0x638)[0x42b718] btrfs check(main+0x7b)[0x40fbdb] /usr/lib/libc.so.6(__libc_start_main+0xf1)[0x7fe4ebe1a741] btrfs check(_start+0x29)[0x40fcd9] ===========================
I also tried running it WITHOUT --repair first, as well as ONLY with --repair, followed by --clearcache and same thing happened. I must add that I feel cheated by the "-p" option, it's more of a "print heartbeat" than "print progress" IMHO :p @David Sterba: you're welcome. Regards, Ivan. On Wed, May 18, 2016 at 3:00 AM, Qu Wenruo <quwen...@cn.fujitsu.com> wrote: > Not familiar about the problem, but you don't really need to install the > patch. > > You can just execute '<your btrfs-progs source dir>/btrfsck' directly to > call the new fsck. > > And there is still some time before the patch is merged, there is really no > need to install. > > Thanks, > Qu > > > Ivan P wrote on 2016/05/17 20:12 +0200: >> >> Thank you, however I can't seem to be able to compile that snapshot, I'm >> getting >> >> =========================== >> /usr/bin/install -c -m644 -d 64-btrfs-dm.rules >> /home/myuser/aur/btrfs-progs-git/pkg/btrfs-progs-git/usr/lib/udev/rules.d >> /usr/bin/install: cannot create directory ‘64-btrfs-dm.rules’: File exists >> Makefile:400: recipe for target 'install' failed >> make: *** [install] Error 1 >> ==> ERROR: A failure occurred in package() >> =========================== >> >> Just to make sure I wasn't screwing up somewhere, I tried the >> btrfs-progs-git AUR package and I'm getting the same thing. >> It's not only me, however: according to [1] it could be that this >> commit has introduced it: [2] >> >> Regards, >> Ivan. >> >> [1] https://aur.archlinux.org/packages/btrfs-progs-git/ >> [2] >> http://repo.or.cz/btrfs-progs-unstable/devel.git?a=commit;h=ebe5b1cc7885027521db3c1d16d84bd54cc1321b >> >> On Tue, May 17, 2016 at 5:56 AM, Qu Wenruo <quwen...@cn.fujitsu.com> >> wrote: >>> >>> Also to Ivan P, the initial reporter of the problem. >>> >>> Now "btrfsck --clear-cache" should help you to prevent kernel warning on >>> free space cache problem. >>> >>> Thanks, >>> Qu >>> >>> Qu Wenruo wrote on 2016/05/17 11:47 +0800: >>>> >>>> >>>> The patchset can be also fetched from github, just in case mail list >>>> blocks the last patch, which contains binary file. >>>> https://github.com/adam900710/btrfs-progs.git fsck_clear_cache >>>> >>>> Just as describe in the first patch, btrfs kernel "clear_cache" mount >>>> option can't rebuild all free space cache, due to the design of free >>>> space cache. >>>> (Although I pretty like the idea to delay the load of free space cache, >>>> as it hugely reduce the mount time of large fs) >>>> >>>> So this makes users to report error in mail list, complaining >>>> "clear_cache" doesn't wipe the annoying kernel warning on corrupted free >>>> space cache. >>>> >>>> Since kernel can't handle it, and user consider it more like an error, >>>> we'd better handle it like an error, to fix it in btrfs check. >>>> >>>> So this patchset adds the ability to clear free space cache, and add >>>> test case for it. >>>> >>>> The clear procedure is different from kernel, it will remove all free >>>> space cache inodes and its contents(with backrefs), and set >>>> cache_generation of super block to -1. >>>> So there will be no free space cache at all and kernel will be happy >>>> with that. >>>> >>>> This patch also enhances btrfs_previous_item() to use min_objectid to >>>> return as early as possible. >>>> >>>> Lu Fengqi (1): >>>> btrfs-progs: tests: add 020-bad-free-space-cache >>>> >>>> Qu Wenruo (3): >>>> btrfs-progs: corrupt-block: Add ability to corrupt free space cache >>>> file >>>> btrfs-progs: ctree: return earlier for btrfs_previous_item >>>> btrfs-progs: fsck: Add support to clear free space cache >>>> >>>> Documentation/btrfs-check.asciidoc | 8 ++ >>>> btrfs-corrupt-block.c | 124 >>>> ++++++++++++++++++++- >>>> cmds-check.c | 58 +++++++++- >>>> ctree.c | 2 + >>>> free-space-cache.c | 124 >>>> +++++++++++++++++++++ >>>> free-space-cache.h | 4 + >>>> .../020-bad-free-space-cache/default_case.raw.xz | Bin 0 -> 164068 >>>> bytes >>>> tests/fsck-tests/020-bad-free-space-cache/test.sh | 16 +++ >>>> 8 files changed, 334 insertions(+), 2 deletions(-) >>>> create mode 100644 >>>> tests/fsck-tests/020-bad-free-space-cache/default_case.raw.xz >>>> create mode 100755 tests/fsck-tests/020-bad-free-space-cache/test.sh >>>> >>> >>> >> >> > > -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html