On 25/10/13 19:31, Josef Bacik wrote: > On Fri, Oct 25, 2013 at 07:27:24PM +0100, Martin wrote: >> On 25/10/13 19:01, Josef Bacik wrote: >>> Unfortunately you can't run --init-extent-tree if you can't actually read >>> the >>> extent root. Fix this by allowing partial starts with no extent root and >>> then >>> have fsck only check to see if the extent root is uptodate _after_ the >>> check to >>> see if we are init'ing the extent tree. Thanks, >>> >>> Signed-off-by: Josef Bacik <jba...@fusionio.com> >>> --- >>> cmds-check.c | 9 ++++++--- >>> disk-io.c | 16 ++++++++++++++-- >>> 2 files changed, 20 insertions(+), 5 deletions(-) >>> >>> diff --git a/cmds-check.c b/cmds-check.c >>> index 69b0327..8ed7baa 100644 >>> --- a/cmds-check.c >>> +++ b/cmds-check.c >> >> Hey! Quick work!... >> >> Is that worth patching locally and trying against my example? >> > > Yes, I'm a little worried about your particular case so I'd like to see if it > works. If you don't see a lot of output after say 5 minutes let's assume I > didn't fix your problem and let me know so I can make the other change I > considered. Thanks,
Nope... No-go. parent transid verify failed on 911904604160 wanted 17448 found 17449 parent transid verify failed on 911904604160 wanted 17448 found 17449 parent transid verify failed on 911904604160 wanted 17448 found 17449 parent transid verify failed on 911904604160 wanted 17448 found 17449 Ignoring transid failure ...And nothing more. Looped. # gdb /sbin/btrfsck 31887 GNU gdb (Gentoo 7.5.1 p2) 7.5.1 Copyright (C) 2012 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-pc-linux-gnu". For bug reporting instructions, please see: <http://bugs.gentoo.org/>... Reading symbols from /sbin/btrfsck...Reading symbols from /usr/lib64/debug/sbin/btrfsck.debug...(no debugging symbols found)...done. (no debugging symbols found)...done. Attaching to program: /sbin/btrfsck, process 31887 warning: Could not load shared library symbols for linux-vdso.so.1. Do you need "set solib-search-path" or "set sysroot"? Reading symbols from /lib64/libuuid.so.1...(no debugging symbols found)...done. Loaded symbols for /lib64/libuuid.so.1 Reading symbols from /lib64/libblkid.so.1...(no debugging symbols found)...done. Loaded symbols for /lib64/libblkid.so.1 Reading symbols from /lib64/libz.so.1...(no debugging symbols found)...done. Loaded symbols for /lib64/libz.so.1 Reading symbols from /usr/lib64/liblzo2.so.2...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/liblzo2.so.2 Reading symbols from /lib64/libpthread.so.0...(no debugging symbols found)...done. [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". Loaded symbols for /lib64/libpthread.so.0 Reading symbols from /lib64/libc.so.6...(no debugging symbols found)...done. Loaded symbols for /lib64/libc.so.6 Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done. Loaded symbols for /lib64/ld-linux-x86-64.so.2 0x000000000042b7a9 in read_extent_buffer () (gdb) (gdb) bt #0 0x000000000042b7a9 in read_extent_buffer () #1 0x000000000041ccfd in btrfs_check_node () #2 0x000000000041e0a2 in check_block () #3 0x000000000041e69e in btrfs_search_slot () #4 0x0000000000425a6e in find_first_block_group () #5 0x0000000000425b28 in btrfs_read_block_groups () #6 0x0000000000421c40 in btrfs_setup_all_roots () #7 0x0000000000421e3f in __open_ctree_fd () #8 0x0000000000421f19 in open_ctree_fs_info () #9 0x00000000004169b4 in cmd_check () #10 0x000000000040443b in main () (gdb) # btrfs version Btrfs v0.20-rc1-358-g194aa4a-dirty >>> Emerging (1 of 1) sys-fs/btrfs-progs-9999 >>> Unpacking source... GIT update --> repository: git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-progs.git at the commit: 194aa4a1bd6447bb545286d0bcb0b0be8204d79f branch: master storage directory: "/usr/portage/distfiles/egit-src/btrfs-progs.git" checkout type: bare repository Cloning into '/var/tmp/portage/sys-fs/btrfs-progs-9999/work/btrfs-progs-9999'... done. Branch branch-master set up to track remote branch master from origin. Switched to a new branch 'branch-master' >>> Unpacked to /var/tmp/portage/sys-fs/btrfs-progs-9999/work/btrfs-progs-9999 >>> Source unpacked in /var/tmp/portage/sys-fs/btrfs-progs-9999/work >>> Preparing source in /var/tmp/portage/sys-fs/btrfs-progs-9999/work/btrfs-progs-9999 ... >>> Source prepared. * Applying user patches from /etc/portage/patches//sys-fs/btrfs-progs-9999 ... * jbpatch2013-10-25-extents-fix.patch ... [ ok ] * Done with patching >>> Configuring source in /var/tmp/portage/sys-fs/btrfs-progs-9999/work/btrfs-progs-9999 ... >>> Source configured. [...] Note the compile warnings: * QA Notice: Package triggers severe warnings which indicate that it * may exhibit random runtime failures. * disk-io.c:91:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] * volumes.c:1905:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] * volumes.c:1906:6: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] * QA Notice: Package triggers severe warnings which indicate that it * may exhibit random runtime failures. * cmds-chunk.c:1343:8: warning: array subscript is above array bounds [-Warray-bounds] (The "jbpatch2013-10-25-extents-fix.patch" is the diff txt of your earlier posting.) Hope that helps. Next? Regards, Martin -- 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