* Files with non-ASCII names inaccessible after xfs_repair @ 2014-01-12 13:28 Zachary Kotlarek 2014-01-12 18:47 ` Stan Hoeppner 2014-01-13 15:40 ` Michael Weissenbacher 0 siblings, 2 replies; 23+ messages in thread From: Zachary Kotlarek @ 2014-01-12 13:28 UTC (permalink / raw) To: xfs [-- Attachment #1.1: Type: text/plain, Size: 1954 bytes --] My XFS filesystem dismounted while copying a ~3 GB file. I won’t claim to know why; I’m fairly confident only that 1 file was being modified at the time. The log replayed cleanly when remounting, but attempting to remove the file in question caused the same dismount. So I ran xfs_repair. It put one file in lost+found (which appears to be written when if failed initially) and reported a number or warnings to the effect of: bad hash table for directory inode 2054 (hash value mismatch): rebuilding rebuilding directory inode 2054 which I didn’t take to be serious, though I suspect now that’s where things went wrong. I now have 23 directories (matching the 23 “rebuilding" messages) where a file or directory with non-ASCII characters in the name exists in the directory list but cannot be read or deleted: ls -la ls: cannot access 07 - Señor Macho Solo.m4v: No such file or directory -rw-rw----+ 1 profplump media 332M Sep 11 2010 06 - Christmas Special.m4v ??????????? ? ? ? ? ? 07 - Se??or Macho Solo.m4v -rw-rw----+ 1 profplump media 304M Sep 11 2010 08 - Flu Shot.m4v So the file exists in the directory listing (`ls` and `find` can both see it) but I cannot delete or stat or open it. If I touch the affected filename I get a second entry in the directory listing, both apparently pointing to the same, new, empty file. If I then delete the same filename I get back to the original state — a single, unusable directory entry. I’d like to (if possible) re-link those directory listings to the related files, or at least delete them so the files can be restored and folders can be used normally. I’m also worried that running xfs_repair in the future might re-create this problem. But I don’t even know where to start in trying to fix this. And I still cannot delete the file that started this whole sequence of events. So if anyone has suggestions I’d be happy to hear them. Zach [-- Attachment #1.2: smime.p7s --] [-- Type: application/pkcs7-signature, Size: 2749 bytes --] [-- Attachment #2: Type: text/plain, Size: 121 bytes --] _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Files with non-ASCII names inaccessible after xfs_repair 2014-01-12 13:28 Files with non-ASCII names inaccessible after xfs_repair Zachary Kotlarek @ 2014-01-12 18:47 ` Stan Hoeppner 2014-01-12 19:53 ` Zachary Kotlarek 2014-01-13 15:40 ` Michael Weissenbacher 1 sibling, 1 reply; 23+ messages in thread From: Stan Hoeppner @ 2014-01-12 18:47 UTC (permalink / raw) To: Zachary Kotlarek, xfs On 1/12/2014 7:28 AM, Zachary Kotlarek wrote: > My XFS filesystem dismounted while copying a ~3 GB file. I won’t > claim to know why; I’m fairly confident only that 1 file was being > modified at the time. The log replayed cleanly when remounting, but > attempting to remove the file in question caused the same dismount. > > So I ran xfs_repair. It put one file in lost+found (which appears to > be written when if failed initially) and reported a number or > warnings to the effect of: bad hash table for directory inode 2054 > (hash value mismatch): rebuilding rebuilding directory inode 2054 > which I didn’t take to be serious, though I suspect now that’s where > things went wrong. > > I now have 23 directories (matching the 23 “rebuilding" messages) > where a file or directory with non-ASCII characters in the name > exists in the directory list but cannot be read or deleted: > > ls -la ls: cannot access 07 - Señor Macho Solo.m4v: No such file or > directory -rw-rw----+ 1 profplump media 332M Sep 11 2010 06 - > Christmas Special.m4v ??????????? ? ? ? ? > ? 07 - Se??or Macho Solo.m4v -rw-rw----+ 1 profplump media 304M Sep > 11 2010 08 - Flu Shot.m4v > > So the file exists in the directory listing (`ls` and `find` can both > see it) but I cannot delete or stat or open it. If I touch the > affected filename I get a second entry in the directory listing, both > apparently pointing to the same, new, empty file. If I then delete > the same filename I get back to the original state — a single, > unusable directory entry. > > I’d like to (if possible) re-link those directory listings to the > related files, or at least delete them so the files can be restored > and folders can be used normally. I’m also worried that running > xfs_repair in the future might re-create this problem. > > But I don’t even know where to start in trying to fix this. And I > still cannot delete the file that started this whole sequence of > events. So if anyone has suggestions I’d be happy to hear them. Start here: http://xfs.org/index.php/XFS_FAQ#Q:_What_information_should_I_include_when_reporting_a_problem.3F If this is due to a bug it may have already been fixed. Note the first two things asked for. -- Stan _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Files with non-ASCII names inaccessible after xfs_repair 2014-01-12 18:47 ` Stan Hoeppner @ 2014-01-12 19:53 ` Zachary Kotlarek 2014-01-13 1:50 ` Dave Chinner 0 siblings, 1 reply; 23+ messages in thread From: Zachary Kotlarek @ 2014-01-12 19:53 UTC (permalink / raw) To: xfs [-- Attachment #1.1: Type: text/plain, Size: 2000 bytes --] On Jan 12, 2014, at 10:47 AM, Stan Hoeppner <stan@hardwarefreak.com> wrote: > http://xfs.org/index.php/XFS_FAQ#Q:_What_information_should_I_include_when_reporting_a_problem.3F > > If this is due to a bug it may have already been fixed. Note the first > two things asked for. Thanks for the pointer. My kernels a bit old, but xfsprogs is shiny and new: Linux vera 2.6.39.2 #1 SMP Fri Sep 30 23:55:41 PDT 2011 x86_64 x86_64 x86_64 GNU/Linux xfs_repair version 3.1.11 2x4 core CPUs 8 GB RAM, mostly free (more than 6 GB cached) Related mount: /dev/lvmsas/tv /mnt/media/TV xfs rw,nosuid,nodev,noexec,relatime,attr2,delaylog,inode64,sunit=1024,swidth=4096,noquota 0 0 Underlying partition: 254 31 16252928000 dm-31 Which is a no-frills LVM2 volume allocation over mdadm raid-6. meta-data=/dev/lvmsas/tv isize=256 agcount=33, agsize=126975872 blks = sectsz=512 attr=2 data = bsize=4096 blocks=4063232000, imaxpct=5 = sunit=128 swidth=512 blks naming =version 2 bsize=4096 ascii-ci=1 log =internal bsize=4096 blocks=521728, version=2 = sectsz=512 sunit=8 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 Attempts to access the now-busted files/directories with accents in their paths result in a kernel log like: Jan 11 02:05:39 vera XFS (dm-31): I/O error occurred: meta-data dev dm-31 block 0x3c8ff73e0 ("xfs_trans_read_buf") error 11 buf count 4096 Original failure never hit the persistent log so I don’t have that; the system would not shutdown cleanly and I kill it after several errors like: Filesystem "dm-31": xfs_log_force: error 5 returned. It claimed to be unmounted at that point (it didn’t show up in /proc/mounts) but the related [xfsbufd/dm-31] process was still running and could not be killed. Zach [-- Attachment #1.2: smime.p7s --] [-- Type: application/pkcs7-signature, Size: 2749 bytes --] [-- Attachment #2: Type: text/plain, Size: 121 bytes --] _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Files with non-ASCII names inaccessible after xfs_repair 2014-01-12 19:53 ` Zachary Kotlarek @ 2014-01-13 1:50 ` Dave Chinner 2014-01-13 2:36 ` Zachary Kotlarek 0 siblings, 1 reply; 23+ messages in thread From: Dave Chinner @ 2014-01-13 1:50 UTC (permalink / raw) To: Zachary Kotlarek; +Cc: xfs On Sun, Jan 12, 2014 at 11:53:59AM -0800, Zachary Kotlarek wrote: > > On Jan 12, 2014, at 10:47 AM, Stan Hoeppner <stan@hardwarefreak.com> wrote: > > > http://xfs.org/index.php/XFS_FAQ#Q:_What_information_should_I_include_when_reporting_a_problem.3F > > > > If this is due to a bug it may have already been fixed. Note the first > > two things asked for. > > > Thanks for the pointer. > > My kernels a bit old, but xfsprogs is shiny and new: > Linux vera 2.6.39.2 #1 SMP Fri Sep 30 23:55:41 PDT 2011 x86_64 x86_64 x86_64 GNU/Linux > xfs_repair version 3.1.11 > > 2x4 core CPUs > 8 GB RAM, mostly free (more than 6 GB cached) > > Related mount: > /dev/lvmsas/tv /mnt/media/TV xfs rw,nosuid,nodev,noexec,relatime,attr2,delaylog,inode64,sunit=1024,swidth=4096,noquota 0 0 > > Underlying partition: > 254 31 16252928000 dm-31 > > Which is a no-frills LVM2 volume allocation over mdadm raid-6. > > meta-data=/dev/lvmsas/tv isize=256 agcount=33, agsize=126975872 blks > = sectsz=512 attr=2 > data = bsize=4096 blocks=4063232000, imaxpct=5 > = sunit=128 swidth=512 blks > naming =version 2 bsize=4096 ascii-ci=1 > log =internal bsize=4096 blocks=521728, version=2 > = sectsz=512 sunit=8 blks, lazy-count=1 > realtime =none extsz=4096 blocks=0, rtextents=0 > > Attempts to access the now-busted files/directories with accents in their paths result in a kernel log like: > Jan 11 02:05:39 vera XFS (dm-31): I/O error occurred: meta-data dev dm-31 block 0x3c8ff73e0 ("xfs_trans_read_buf") error 11 buf count 4096 error 11 = EAGAIN/EWOULDBLOCK That tends to imply that there's some interesting error occurring in the layers below XFS here. XFS on a kernel that old is not expecting an EAGAIN error from storage, so it is likely not being captured properly. There have been bugs in the raid/dm code in the past that would cause issues like this, and bugs in the XFS error handling that allowed them to slip throw and shut down the filesystem. For example, this fix made in March 2013: $ gl -n1 -p c163f9a commit c163f9a1760229a95d04e37b332de7d5c1c225cd Author: Dave Chinner <dchinner@redhat.com> Date: Tue Mar 12 23:30:34 2013 +1100 xfs: ensure we capture IO errors correctly Failed buffer readahead can leave the buffer in the cache marked with an error. Most callers that then issue a subsequent read on the buffer do not zero the b_error field out, and so we may incorectly detect an error during IO completion due to the stale error value left on the buffer. Avoid this problem by zeroing the error before IO submission. This ensures that the only IO errors that are detected those captured from are those captured from bio submission or completion. Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Mark Tinguely <tinguely@sgi.com> Signed-off-by: Ben Myers <bpm@sgi.com> Is probably relevant, but there are many more changes up and down the stack that may be the cause of your problem. Indeed, the above fix may simply turn EAGAIN into EIO because there really is something wrong with that block on disk.... Cheers, Dave. -- Dave Chinner david@fromorbit.com _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Files with non-ASCII names inaccessible after xfs_repair 2014-01-13 1:50 ` Dave Chinner @ 2014-01-13 2:36 ` Zachary Kotlarek 2014-01-13 3:19 ` Dave Chinner 0 siblings, 1 reply; 23+ messages in thread From: Zachary Kotlarek @ 2014-01-13 2:36 UTC (permalink / raw) To: xfs [-- Attachment #1.1: Type: text/plain, Size: 1282 bytes --] On Jan 12, 2014, at 5:50 PM, Dave Chinner <david@fromorbit.com> wrote: >> Attempts to access the now-busted files/directories with accents in their paths result in a kernel log like: >> Jan 11 02:05:39 vera XFS (dm-31): I/O error occurred: meta-data dev dm-31 block 0x3c8ff73e0 ("xfs_trans_read_buf") error 11 buf count 4096 > > error 11 = EAGAIN/EWOULDBLOCK > > That tends to imply that there's some interesting error occurring in > the layers below XFS here. The error you note only started showing up *after* the xfs_repair, and only when attempting to access the non-ascii file paths. It doesn’t take the filesystem offline; other than those particular paths being inaccessible the filesystem seems to be working correctly (though I’ve suspended user writes until this is worked out). The affected paths are all around the disk, all contain non-ascii characters in final portion of the path name, and do not affect other paths in the same directory. I can find a newer kernel to boot off and see how it behaves if you think it would make any difference, but I’m pretty sure xfs_repair re-wrote the affected directory entries and broke them as opposed to some sort of block-layer corruption being responsible for breaking only these files. Zach [-- Attachment #1.2: smime.p7s --] [-- Type: application/pkcs7-signature, Size: 2749 bytes --] [-- Attachment #2: Type: text/plain, Size: 121 bytes --] _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Files with non-ASCII names inaccessible after xfs_repair 2014-01-13 2:36 ` Zachary Kotlarek @ 2014-01-13 3:19 ` Dave Chinner 2014-01-13 3:47 ` Zachary Kotlarek 0 siblings, 1 reply; 23+ messages in thread From: Dave Chinner @ 2014-01-13 3:19 UTC (permalink / raw) To: Zachary Kotlarek; +Cc: xfs On Sun, Jan 12, 2014 at 06:36:03PM -0800, Zachary Kotlarek wrote: > > On Jan 12, 2014, at 5:50 PM, Dave Chinner <david@fromorbit.com> > wrote: > > >> Attempts to access the now-busted files/directories with > >> accents in their paths result in a kernel log like: Jan 11 > >> 02:05:39 vera XFS (dm-31): I/O error occurred: meta-data dev > >> dm-31 block 0x3c8ff73e0 ("xfs_trans_read_buf") error 11 > >> buf count 4096 > > > > error 11 = EAGAIN/EWOULDBLOCK > > > > That tends to imply that there's some interesting error > > occurring in the layers below XFS here. > > > The error you note only started showing up *after* the xfs_repair, > and only when attempting to access the non-ascii file paths. It Sure, but it's an error coming from the block layer, not from decoding the contents of the block at the directory layer. IOWs, xfs-repair wrote new contents to those blocks, and now the kernel cannot read them from disk. > doesn’t take the filesystem offline; other than those > particular paths being inaccessible the filesystem seems to be > working correctly (though I’ve suspended user writes until > this is worked out). Right - it's a read error, not a write error, so it simply returns the error to the reader. However, if that read error occurs in the context of a transaction that has already made modifications (e.g. adding a new file to the directory) it will result in a shutdown of the filesystem. > The affected paths are all around the disk, > all contain non-ascii characters in final portion of the path > name, and do not affect other paths in the same directory. > > I can find a newer kernel to boot off and see how it behaves if > you think it would make any difference, but I’m pretty sure > xfs_repair re-wrote the affected directory entries and broke them > as opposed to some sort of block-layer corruption being > responsible for breaking only these files. Try using xfs_db to read and parse the blocks that the fielsystem is choking on. If it can't read them from xfs_db, then there's something gone wrong below XFS. If you can read them, use xfs_db to parse the block as a directory block and see what the raw directory entries are the block contains.... e.g. # xfs_db <dev> xfs_db> convert daddr 0x3c8ff73e0 fsb <fsbno> xfs_db> fsb <fsbno> xfs_db> p <hex output> xfs_db> type dir2 xfs_db> p <decoded output> The decoded output should look something like: xfs_db> p dhdr.hdr.magic = 0x58444433 dhdr.hdr.crc = 0xc77dda8e (correct) dhdr.hdr.bno = 1308 dhdr.hdr.lsn = 0xe60000aa35 dhdr.hdr.uuid = d2d0bec5-c8b8-420e-8a34-d981be7eece6 dhdr.hdr.owner = 32 dhdr.bestfree[0].offset = 0xa0 dhdr.bestfree[0].length = 0x10 dhdr.bestfree[1].offset = 0x4f8 dhdr.bestfree[1].length = 0x10 dhdr.bestfree[2].offset = 0x850 dhdr.bestfree[2].length = 0x10 du[0].inumber = 32 du[0].namelen = 1 du[0].name = "." du[0].filetype = 2 du[0].tag = 0x40 du[1].inumber = 32 du[1].namelen = 2 du[1].name = ".." du[1].filetype = 2 du[1].tag = 0x50 du[2].inumber = 393552 du[2].namelen = 3 du[2].name = "tmp" du[2].filetype = 2 du[2].tag = 0x60 du[3].inumber = 36 du[3].namelen = 11 du[3].name = "syscalltest" du[3].filetype = 1 du[3].tag = 0x70 du[4].inumber = 37 du[4].namelen = 8 du[4].name = "fsstress" du[4].filetype = 2 du[4].tag = 0x88 if you do get the output like this, can you post both the hexdump and the decoded output from xfs_db? Hmmmm - you're not using LVM snapshots or anything like that are you? Cheers, Dave. -- Dave Chinner david@fromorbit.com _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Files with non-ASCII names inaccessible after xfs_repair 2014-01-13 3:19 ` Dave Chinner @ 2014-01-13 3:47 ` Zachary Kotlarek 2014-01-13 19:27 ` Dave Chinner 0 siblings, 1 reply; 23+ messages in thread From: Zachary Kotlarek @ 2014-01-13 3:47 UTC (permalink / raw) To: xfs [-- Attachment #1.1: Type: text/plain, Size: 18639 bytes --] On Jan 12, 2014, at 7:19 PM, Dave Chinner <david@fromorbit.com> wrote: > IOWs, xfs-repair wrote new contents to those blocks, and now the kernel > cannot read them from disk. Sure, but I don’t understand why it would have re-written them in the first place. I know corruption happens, but this seems awfully pattern-tastic to be random errors. > Try using xfs_db to read and parse the blocks that the fielsystem is > choking on. If it can't read them from xfs_db, then there's > something gone wrong below XFS. If you can read them, use xfs_db to > parse the block as a directory block and see what the raw directory > entries are the block contains.... > > e.g. > # xfs_db <dev> > xfs_db> convert daddr 0x3c8ff73e0 fsb > <fsbno> > xfs_db> fsb <fsbno> > xfs_db> p > <hex output> > xfs_db> type dir2 > xfs_db> p > <decoded output> Works. xfs_db> convert daddr 0x3c8ff73e0 fsb 0x8007f67c (2148005500) xfs_db> fsb 0x8007f67c xfs_db> p 000: 58443242 075007d0 04600038 00b00030 00000008 007f681a 012ed556 11060010 020: 0000000c 80000800 022e2efe 68440020 ffff0020 007f6839 112e2e44 535f5374 040: 6f72652e 6b594c6b 4b32537a 78410030 00000008 007f6839 092e4453 5f53746f 060: 726597db 77f50050 ffff0028 007f683a 182e3031 202d2043 69747920 6f662e6d 080: 34762e42 3269704c 3888dfd6 05e80068 00000008 007f683a 10303120 2d204369 0a0: 7479206f 662e6d34 769f1dff 1b260090 ffff0030 007f683b 1e2e3032 202d204c 0c0: 6f6e656c 79204865 61727473 2e6d3476 2e61454e 59786913 1d7bf8ce 8c6200b0 0e0: 00000008 007f683b 16303220 2d204c6f 6e656c79 20486561 7274732e 6d34764a 100: 5eadac34 2b5d00e0 ffff0028 007f683c 1c2e3033 202d2049 6e207468 65204461 120: 726b2e6d 34762e7a 4b726254 72b50108 00000008 007f683c 14303320 2d20496e 140: 20746865 20446172 6b2e6d34 767b0130 ffff0030 007f683d 212e3034 202d2049 160: 2046616c 6c20746f 20506965 6365732e 6d34762e 6f735975 497aeb65 c2bb0150 180: 00000008 007f683d 19303420 2d204920 46616c6c 20746f20 50696563 65732e6d 1a0: 3476990e 3e560180 ffff0030 007f683e 1f2e3035 202d2052 6f6f6d20 77697468 1c0: 20612056 752e6d34 762e5478 72794b72 60a2e009 eef101a8 00000008 007f683e 1e0: 17303520 2d20526f 6f6d2077 69746820 61205675 2e6d3476 b883247d 552901d8 200: ffff0030 007f683f 242e3036 202d2053 656e7365 20262053 656e7369 74697669 220: 74792e6d 34762e65 6776556e 77550200 00000008 007f683f 1c303620 2d205365 240: 6e736520 26205365 6e736974 69766974 792e6d34 762b0230 ffff0030 0129b800 260: 1f2e3037 202d2042 61636865 6c6f7220 50617274 792e6d34 762e6632 4e477851 280: 7d4c7797 3f600258 00000008 0129b800 17303720 2d204261 6368656c 6f722050 2a0: 61727479 2e6d3476 4a911d34 eca00288 ffff0030 0129b801 242e3038 202d2049 2c0: 2057696c 6c205265 6d656d62 65722059 6f752e6d 34762e49 43687344 6ad002b0 2e0: 00000008 0129b801 1c303820 2d204920 57696c6c 2052656d 656d6265 7220596f 300: 752e6d34 76e902e0 ffff0020 0129b802 152e3039 202d2048 65726f2e 6d34762e 320: 58467063 36790308 00000008 0129b802 0d303920 2d204865 726f2e6d 34760328 340: ffff0030 0129b803 1e2e3130 202d2050 61727469 6e672047 69667473 2e6d3476 360: 2e794156 30534584 1783a6af dd270340 00000008 0129b803 16313020 2d205061 380: 7274696e 67204769 6674732e 6d347687 27f22157 cbc00370 ffff0028 0129b804 3a0: 1d2e3131 202d2053 6f6d6e61 6d62756c 6973742e 6d34762e 444d365a 6b760398 3c0: 00000008 0129b804 15313120 2d20536f 6d6e616d 62756c69 73742e6d 347603c0 3e0: ffff0028 0129b805 1a2e3132 202d2045 78706563 74696e67 2e6d3476 2e494b66 400: 6b3067c1 901903e0 00000008 0129b805 12313220 2d204578 70656374 696e672e 420: 6d3476db 2c390408 ffff0020 0129b806 142e3133 202d2053 68652e6d 34762e6a 440: 4c553742 50d30428 00000008 0129b806 0c313320 2d205368 652e6d34 76e10448 460: ffff0038 0129b807 2b2e3134 202d2049 27766520 476f7420 596f7520 556e6465 480: 72204d79 20536b69 6e2e6d34 762e4d74 4a536e70 86e50460 00000008 0129b807 4a0: 23313420 2d204927 76652047 6f742059 6f752055 6e646572 204d7920 536b696e 4c0: 2e6d3476 9d510498 ffff0028 0129b808 1d2e3135 202d2054 68652050 726f6469 4e0: 67616c2e 6d34762e 4879314f 704c04c8 00000008 0129b808 15313520 2d205468 500: 65205072 6f646967 616c2e6d 347604f0 ffff0028 0129b809 192e3136 202d2054 520: 68652052 696e672e 6d34762e 43764467 375aa0d3 c99e0510 00000008 0129b809 540: 11313620 2d205468 65205269 6e672e6d 3476181c c7aa0538 ffff0028 0129b80a 560: 192e3137 202d2045 7465726e 6974792e 6d34762e 48707449 625a34be fb360558 580: 00000008 0129b80a 11313720 2d204574 65726e69 74792e6d 3476cafa 1f2a0580 5a0: ffff0028 0129b80b 1d2e3138 202d2046 69766520 62792046 6976652e 6d34762e 5c0: 4d376f4b 703005a0 00000008 0129b80b 15313820 2d204669 76652062 79204669 5e0: 76652e6d 347605c8 ffff0028 0129b80c 1a2e3139 202d2053 616e6374 75617279 600: 2e6d3476 2e6a4b4c 514d4f4f 197a05e8 00000008 0129b80c 12313920 2d205361 620: 6e637475 6172792e 6d347638 4cbd0610 ffff0028 0129b80d 192e3230 202d2057 640: 6172205a 6f6e652e 6d34762e 45654333 39468f41 69da0630 00000008 0129b80d 660: 11323020 2d205761 72205a6f 6e652e6d 347627e8 12e20658 ffff0028 0129b80e 680: 1b2e3231 202d2042 6c696e64 20446174 652e6d34 762e3176 42307637 94160678 6a0: 00000008 0129b80e 13323120 2d20426c 696e6420 44617465 2e6d3476 0ec306a0 6c0: ffff0030 0129b80f 232e3232 202d2054 6f205368 616e7368 7520696e 204c2e41 6e0: 2e2e6d34 762e796b 35673178 b54306c0 00000008 0129b80f 1b323220 2d20546f 700: 20536861 6e736875 20696e20 4c2e412e 2e6d3476 288c06f0 ffff0020 0129b810 720: 132e7365 61736f6e 5f646f6e 652e6e43 616a3843 95690718 00000008 0129b810 740: 0b736561 736f6e5f 646f6e65 e16d0738 ffff07d0 f9ea06ea d5e36984 08dfaf37 760: 839b1911 0eb746af fcddf06e 0f80efea 2026141f 2745eb43 576864b0 9ed2d367 780: 6416bfd5 fd3fbe54 e92297c6 c270efcc 92bcd97f a65c797c 183f55ef 34a9a3c0 7a0: c8baae28 6ec2437e a1893396 953d1142 caa8f097 7bf24092 41761bd6 b0c9476f 7c0: 49feafe8 27befa39 337839fe 6cb36a71 02271bae efc1dd71 feb52c4b 86812ed3 7e0: 8796047e 0c56fca7 41e50a83 08caab90 44e09c44 128a8deb 53f0eeab 53b77cfb 800: 81ed5efa a63df170 1f7f1141 a5d3c9cf 396814b6 4e9e25fe 02bb6dec a53ad8d4 820: d0821508 4e9db912 93763d78 a8168589 03038a08 e0ca0726 7cd14047 5955481a 840: c4790009 219669b5 245a03a7 4432c8d7 75d11951 cf50c217 92c7ba29 6c0550e0 860: e62af66c be6f982d 10f973c9 eff4247a af474e28 596e66cf c4784950 4b8b2920 880: d1a86479 3bb122ce e7725d4f edcfd24e 873697d6 a32aa37a 50efecd4 5865ea8d 8a0: 2ab983d6 f7b5f8e9 1dd7da5c 25163ec5 f739efbb 1802ebee 130eedd2 acbe5057 8c0: 657a9441 e45944ec 81fccc2e fb195d01 08e27602 8c05d317 192d287e 1f6b6b44 8e0: 0ea3dac4 47a2220c 9bd0c05e d19f0084 9d29c842 2329ef6d ee5f1243 c888b2d7 900: 72684d4d 2480de9e 17d89b6e 94d1ae56 a6801086 2606f081 16fa1c53 33d31265 920: e981b683 334e4852 7333fb71 b6a61d88 214c8e96 9951983f e274c5cf 0df673b9 940: 2504e588 92166468 c6c797a1 8f5f19a1 3c361256 8d82a685 cc9ef823 ce5c1bf8 960: 1079cc0c 17a734c1 20827061 c411c62c 061cefd0 9c859dee 4a9f4054 871d4aaa 980: ba6f826f b04c7af4 04bad6d3 a496781a ebfe246f 8ebc0b06 159d8229 aebae34a 9a0: c6b2ade4 33464523 11f48dce 57012621 d78c8057 1d1f46f4 2a18a7f5 154ee854 9c0: e26663de ce93d67e 1ebb438a 3a5e7676 a3a23975 3e230af3 675493ca 0c037437 9e0: 4b616411 0957bc98 d6a4e884 3e6cbc40 8d73ff32 70511f83 63412623 97c86e08 a00: aa4a81ec f63eb667 cc9d08d9 ad5587d3 bd633843 8bdc0dd5 082278c6 51a0bfcb a20: 516674cf 1a21edcf d637719e c0c2611a 3b704840 187e86bd 1588453c e0dce6c2 a40: 72a96f83 80d9c4eb eb8cf0dc aa446e69 d52ebf6a 05f72c6f a699c103 0c9815d1 a60: 970a51cc d6624f7a d15b82bc 8d3e9dad 3faa9538 27def54a 028922fc 38286c39 a80: 71c7a014 e0eded3a 0a690907 7388c60b c6b67887 6b902d4e 21ca8aeb 7a4c5f65 aa0: 765eadca e2659fce 83f3c782 d52eb4b3 80d14192 96370abe 877069d8 fb3556ca ac0: f3e9c2ad 8b8feaf2 40d369f7 7e47554e 66702687 b3111b33 e5ad2674 5688172c ae0: 3a3a0fd1 8423c871 edf5ffab fd8a4b5c 2f01203f 450a34d1 fdb3f703 812a7acd b00: f46e1c28 de90fa2a ec07adfc 9609447f 958c5b2a b0ed662f 0d8deba4 c2435873 b20: 16a9b9f6 6fa8663c 44027b36 985464c4 efac6073 28dbc000 79e617e9 a10f883a b40: 4b44c78f 55ab9384 187180c5 2db10f43 b0d9a0fe c1bc615f 052b89a7 89f8739a b60: e51b96c9 8a76ea67 6fbf1ba5 077d2a08 3dad2b88 e17d6c4e 6a553913 2c6fa5d1 b80: 2b6bf4bc 01c82612 1ebd3150 290dab97 b2fa8a81 1d29d75f a13a2c5e 74944ff6 ba0: a1530f5f 79426a7d d491c2f0 f93639aa 1f67ae3c 8274b8a8 b4b79706 3539bde3 bc0: 7be2d58c 49875f20 cc314f03 33aaef61 cda9405d ff044415 fd150822 faa4f257 be0: d4ed221a 5d5a8ce4 200e2e9c 96fccaad 4bba9f8b 253448a1 2de101f9 4916a536 c00: 725f39cc b7aaab5a 5c76965b e4009b17 0e0d53e4 d40d169b d4028a52 116ce300 c20: f2b43ec9 ef7bf8fe dc9a0b18 18b33c79 5d7d17ff d4db5b05 5e78ddbe 15b21957 c40: 0cc1085b 2bb4784f 7ed53bb0 75b0f0b0 556d9dc1 59a25bca 39360281 496b7e29 c60: 057cdf54 d6bd1f0c 53d799a7 5546023d c4705471 ae45c65b 6293ef94 6d691cc3 c80: a639d85c e30a2c1b 55f8c1ea 2039f040 e7cee649 610e07cc d54727ce 69e1106d ca0: 009d124c c4549462 bce84f03 cffd7cb2 15f84246 9f07d1cf 0868c871 911061d9 cc0: 6e46283e 3a27cab5 f9cb1ca9 54699f02 998fd95e 264df0ef 569c1493 fe01fd0a ce0: eff15169 34bd36cc b5dc5191 ef90312d 65ae1a21 349ce3f1 cbe326ae cc0bb2a7 d00: 1bfa7b64 a220c6a6 4082321c f9941053 ea9dc196 cff261d0 5874801f 6b2924b6 d20: 86dce448 532071af f4d7f789 c7eb7853 27a6e68c e1bfd039 0c7edc86 58cf2529 d40: 1b018742 3634a552 9349bf37 4052e265 a39e4c76 9f82e539 7e04a1d0 25b2c962 d60: af93a551 99ebcd67 36371b9f 653dc4d5 64082e7b 5418806e 0a1f520b c3760072 d80: eafc4c5a acebbcef 0001e2c5 0e60368a 58291704 cb6f1135 57e8bd7f aac906db da0: df3d7989 f1036a7f 654b967e 633953db a05e60b4 fd5f48e2 867275a4 040f0928 dc0: ed385b29 bf0b2d96 eef904bc 9b695030 3cadcc76 ad48c64a f44c7350 b5087bda de0: 23162a13 9326ada9 40982285 90862b55 ce7e1b1e 032a1b80 fc6a38b1 e3366816 e00: 2f64457a 250baa07 073a83f5 cde75e52 2b6a288e bc579c34 c3be59f9 c692e1cb e20: 12c6452f a869827c b2eeeaf9 f61ca991 45625e17 f1eb5b64 cc56633b aad11127 e40: 7efa415e 4e63c788 1e53815a 9a3deed8 164c95f4 0e8c08e6 1f491f9a 674d8896 e60: 2a658a0c 3869bb6d 7ce3df75 141daf64 d0118632 5e770c85 43a05783 b8dca76e e80: 7f400acf 65cb07a4 f79b2e57 76c9132c eb0c2466 4f2c3785 37359252 86fc1e04 ea0: cbce2311 b62986ad 632365c3 38f2d301 979cbb61 cd10b57a bce9f49e d475721a ec0: 4b66eaae 6b0d7314 7076c4d1 424dd11e ba955554 db9fbd69 a28407e0 2b86a30d ee0: 3680f9fc e58c9607 4077e015 a58184a3 56eace9e 9f124bb5 944a1b3c 897ad88d f00: c2545a63 74d9659d d5af8264 4399a397 68d0a8c7 f7f59cb5 faf8f9db 133b0750 f20: 0000002e 00000002 0000172e 00000004 0d3b2e62 000000b0 1052379a 0000000a f40: 15fe1de6 00000000 1d7c54e2 000000e7 1da526c4 0000009e 1f127df8 000000cb f60: 2f384255 0000001c 3b0eaf4a 00000051 4040055a 00000046 484d370f 00000078 f80: 54f0b050 0000005c 55e13fd3 000000b9 560de5f6 00000065 68b5d9ab 00000093 fa0: 789cb9e0 00000089 7eb5a6e5 000000c2 88dfa187 00000081 8aa13ee8 0000003b fc0: 93fda139 00000012 a56edfc1 0000006e b7310079 00000026 bf010bb3 000000a7 fe0: e956d990 00000030 f909f282 000000de fb7fbced 000000d4 0000001b 00000001 xfs_db> type dir2 xfs_db> p bhdr.magic = 0x58443242 bhdr.bestfree[0].offset = 0x750 bhdr.bestfree[0].length = 0x7d0 bhdr.bestfree[1].offset = 0x460 bhdr.bestfree[1].length = 0x38 bhdr.bestfree[2].offset = 0xb0 bhdr.bestfree[2].length = 0x30 bu[0].inumber = 34368088090 bu[0].namelen = 1 bu[0].name = "." bu[0].tag = 0x10 bu[1].inumber = 53687093248 bu[1].namelen = 2 bu[1].name = ".." bu[1].tag = 0x20 bu[2].freetag = 0xffff bu[2].length = 0x20 bu[2].tag = 0x30 bu[3].inumber = 34368088121 bu[3].namelen = 9 bu[3].name = ".DS_Store" bu[3].tag = 0x50 bu[4].freetag = 0xffff bu[4].length = 0x28 bu[4].tag = 0x68 bu[5].inumber = 34368088122 bu[5].namelen = 16 bu[5].name = "01 - City of.m4v" bu[5].tag = 0x90 bu[6].freetag = 0xffff bu[6].length = 0x30 bu[6].tag = 0xb0 bu[7].inumber = 34368088123 bu[7].namelen = 22 bu[7].name = "02 - Lonely Hearts.m4v" bu[7].tag = 0xe0 bu[8].freetag = 0xffff bu[8].length = 0x28 bu[8].tag = 0x108 bu[9].inumber = 34368088124 bu[9].namelen = 20 bu[9].name = "03 - In the Dark.m4v" bu[9].tag = 0x130 bu[10].freetag = 0xffff bu[10].length = 0x30 bu[10].tag = 0x150 bu[11].inumber = 34368088125 bu[11].namelen = 25 bu[11].name = "04 - I Fall to Pieces.m4v" bu[11].tag = 0x180 bu[12].freetag = 0xffff bu[12].length = 0x30 bu[12].tag = 0x1a8 bu[13].inumber = 34368088126 bu[13].namelen = 23 bu[13].name = "05 - Room with a Vu.m4v" bu[13].tag = 0x1d8 bu[14].freetag = 0xffff bu[14].length = 0x30 bu[14].tag = 0x200 bu[15].inumber = 34368088127 bu[15].namelen = 28 bu[15].name = "06 - Sense & Sensitivity.m4v" bu[15].tag = 0x230 bu[16].freetag = 0xffff bu[16].length = 0x30 bu[16].tag = 0x258 bu[17].inumber = 34379249664 bu[17].namelen = 23 bu[17].name = "07 - Bachelor Party.m4v" bu[17].tag = 0x288 bu[18].freetag = 0xffff bu[18].length = 0x30 bu[18].tag = 0x2b0 bu[19].inumber = 34379249665 bu[19].namelen = 28 bu[19].name = "08 - I Will Remember You.m4v" bu[19].tag = 0x2e0 bu[20].freetag = 0xffff bu[20].length = 0x20 bu[20].tag = 0x308 bu[21].inumber = 34379249666 bu[21].namelen = 13 bu[21].name = "09 - Hero.m4v" bu[21].tag = 0x328 bu[22].freetag = 0xffff bu[22].length = 0x30 bu[22].tag = 0x340 bu[23].inumber = 34379249667 bu[23].namelen = 22 bu[23].name = "10 - Parting Gifts.m4v" bu[23].tag = 0x370 bu[24].freetag = 0xffff bu[24].length = 0x28 bu[24].tag = 0x398 bu[25].inumber = 34379249668 bu[25].namelen = 21 bu[25].name = "11 - Somnambulist.m4v" bu[25].tag = 0x3c0 bu[26].freetag = 0xffff bu[26].length = 0x28 bu[26].tag = 0x3e0 bu[27].inumber = 34379249669 bu[27].namelen = 18 bu[27].name = "12 - Expecting.m4v" bu[27].tag = 0x408 bu[28].freetag = 0xffff bu[28].length = 0x20 bu[28].tag = 0x428 bu[29].inumber = 34379249670 bu[29].namelen = 12 bu[29].name = "13 - She.m4v" bu[29].tag = 0x448 bu[30].freetag = 0xffff bu[30].length = 0x38 bu[30].tag = 0x460 bu[31].inumber = 34379249671 bu[31].namelen = 35 bu[31].name = "14 - I\'ve Got You Under My Skin.m4v" bu[31].tag = 0x498 bu[32].freetag = 0xffff bu[32].length = 0x28 bu[32].tag = 0x4c8 bu[33].inumber = 34379249672 bu[33].namelen = 21 bu[33].name = "15 - The Prodigal.m4v" bu[33].tag = 0x4f0 bu[34].freetag = 0xffff bu[34].length = 0x28 bu[34].tag = 0x510 bu[35].inumber = 34379249673 bu[35].namelen = 17 bu[35].name = "16 - The Ring.m4v" bu[35].tag = 0x538 bu[36].freetag = 0xffff bu[36].length = 0x28 bu[36].tag = 0x558 bu[37].inumber = 34379249674 bu[37].namelen = 17 bu[37].name = "17 - Eternity.m4v" bu[37].tag = 0x580 bu[38].freetag = 0xffff bu[38].length = 0x28 bu[38].tag = 0x5a0 bu[39].inumber = 34379249675 bu[39].namelen = 21 bu[39].name = "18 - Five by Five.m4v" bu[39].tag = 0x5c8 bu[40].freetag = 0xffff bu[40].length = 0x28 bu[40].tag = 0x5e8 bu[41].inumber = 34379249676 bu[41].namelen = 18 bu[41].name = "19 - Sanctuary.m4v" bu[41].tag = 0x610 bu[42].freetag = 0xffff bu[42].length = 0x28 bu[42].tag = 0x630 bu[43].inumber = 34379249677 bu[43].namelen = 17 bu[43].name = "20 - War Zone.m4v" bu[43].tag = 0x658 bu[44].freetag = 0xffff bu[44].length = 0x28 bu[44].tag = 0x678 bu[45].inumber = 34379249678 bu[45].namelen = 19 bu[45].name = "21 - Blind Date.m4v" bu[45].tag = 0x6a0 bu[46].freetag = 0xffff bu[46].length = 0x30 bu[46].tag = 0x6c0 bu[47].inumber = 34379249679 bu[47].namelen = 27 bu[47].name = "22 - To Shanshu in L.A..m4v" bu[47].tag = 0x6f0 bu[48].freetag = 0xffff bu[48].length = 0x20 bu[48].tag = 0x718 bu[49].inumber = 34379249680 bu[49].namelen = 11 bu[49].name = "season_done" bu[49].tag = 0x738 bu[50].freetag = 0xffff bu[50].length = 0x7d0 bu[50].tag = 0x750 bleaf[0].hashval = 0x2e bleaf[0].address = 0x2 bleaf[1].hashval = 0x172e bleaf[1].address = 0x4 bleaf[2].hashval = 0xd3b2e62 bleaf[2].address = 0xb0 bleaf[3].hashval = 0x1052379a bleaf[3].address = 0xa bleaf[4].hashval = 0x15fe1de6 bleaf[4].address = 0 bleaf[5].hashval = 0x1d7c54e2 bleaf[5].address = 0xe7 bleaf[6].hashval = 0x1da526c4 bleaf[6].address = 0x9e bleaf[7].hashval = 0x1f127df8 bleaf[7].address = 0xcb bleaf[8].hashval = 0x2f384255 bleaf[8].address = 0x1c bleaf[9].hashval = 0x3b0eaf4a bleaf[9].address = 0x51 bleaf[10].hashval = 0x4040055a bleaf[10].address = 0x46 bleaf[11].hashval = 0x484d370f bleaf[11].address = 0x78 bleaf[12].hashval = 0x54f0b050 bleaf[12].address = 0x5c bleaf[13].hashval = 0x55e13fd3 bleaf[13].address = 0xb9 bleaf[14].hashval = 0x560de5f6 bleaf[14].address = 0x65 bleaf[15].hashval = 0x68b5d9ab bleaf[15].address = 0x93 bleaf[16].hashval = 0x789cb9e0 bleaf[16].address = 0x89 bleaf[17].hashval = 0x7eb5a6e5 bleaf[17].address = 0xc2 bleaf[18].hashval = 0x88dfa187 bleaf[18].address = 0x81 bleaf[19].hashval = 0x8aa13ee8 bleaf[19].address = 0x3b bleaf[20].hashval = 0x93fda139 bleaf[20].address = 0x12 bleaf[21].hashval = 0xa56edfc1 bleaf[21].address = 0x6e bleaf[22].hashval = 0xb7310079 bleaf[22].address = 0x26 bleaf[23].hashval = 0xbf010bb3 bleaf[23].address = 0xa7 bleaf[24].hashval = 0xe956d990 bleaf[24].address = 0x30 bleaf[25].hashval = 0xf909f282 bleaf[25].address = 0xde bleaf[26].hashval = 0xfb7fbced bleaf[26].address = 0xd4 btail.count = 27 btail.stale = 1 Based on the file names that’s this, unaffected directory: vera /mnt/media/TV/Angel 0$ ls Season\ 1 01 - City of.m4v 07 - Bachelor Party.m4v 13 - She.m4v 19 - Sanctuary.m4v 02 - Lonely Hearts.m4v 08 - I Will Remember You.m4v 14 - I've Got You Under My Skin.m4v 20 - War Zone.m4v 03 - In the Dark.m4v 09 - Hero.m4v 15 - The Prodigal.m4v 21 - Blind Date.m4v 04 - I Fall to Pieces.m4v 10 - Parting Gifts.m4v 16 - The Ring.m4v 22 - To Shanshu in L.A..m4v 05 - Room with a Vu.m4v 11 - Somnambulist.m4v 17 - Eternity.m4v season_done 06 - Sense & Sensitivity.m4v 12 - Expecting.m4v 18 - Five by Five.m4v I md5sum’d all those files against the last backup — they all seem fine, and listing and opening those files does not produce any kernel messages. I tried a couple other addresses from the logs and got similar results — they all worked fine and were not related to the inaccessible paths. > Hmmmm - you're not using LVM snapshots or anything like that are > you? No. Just a vanilla: `lvcreate -L 16T -n tv /dev/lvmsas` And the filesystem has had very little activity since creation — I filed it from using rsync (converting from JFS after hitting the 32 TB limit on that filesystem) and 99% of the files are marked immutable. Zach [-- Attachment #1.2: smime.p7s --] [-- Type: application/pkcs7-signature, Size: 2749 bytes --] [-- Attachment #2: Type: text/plain, Size: 121 bytes --] _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Files with non-ASCII names inaccessible after xfs_repair 2014-01-13 3:47 ` Zachary Kotlarek @ 2014-01-13 19:27 ` Dave Chinner 2014-01-13 23:07 ` Zachary Kotlarek 0 siblings, 1 reply; 23+ messages in thread From: Dave Chinner @ 2014-01-13 19:27 UTC (permalink / raw) To: Zachary Kotlarek; +Cc: xfs On Sun, Jan 12, 2014 at 07:47:29PM -0800, Zachary Kotlarek wrote: > > On Jan 12, 2014, at 7:19 PM, Dave Chinner <david@fromorbit.com> > wrote: > > > IOWs, xfs-repair wrote new contents to those blocks, and now the > > kernel cannot read them from disk. > > > Sure, but I don’t understand why it would have re-written them > in the first place. I know corruption happens, but this seems > awfully pattern-tastic to be random errors. Neither do I, but I'm trying to find out. > > Try using xfs_db to read and parse the blocks that the > > fielsystem is choking on. If it can't read them from xfs_db, > > then there's something gone wrong below XFS. If you can read > > them, use xfs_db to parse the block as a directory block and see > > what the raw directory entries are the block contains.... Based on the xfs-db output, these warnings are not related to the problem you are seeing. It's likely just a result of readahead being cancelled due to load, and the error set by the DM layer not being handled properly. So, you need to find the inode number of a directory with a corrupt entry, and dump the inode and any data fork blocks that it belongs to with xfs_db similar to what you have just done. Cheers, Dave. -- Dave Chinner david@fromorbit.com _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Files with non-ASCII names inaccessible after xfs_repair 2014-01-13 19:27 ` Dave Chinner @ 2014-01-13 23:07 ` Zachary Kotlarek 2014-01-14 2:24 ` Dave Chinner 0 siblings, 1 reply; 23+ messages in thread From: Zachary Kotlarek @ 2014-01-13 23:07 UTC (permalink / raw) To: xfs [-- Attachment #1.1: Type: text/plain, Size: 18379 bytes --] On Jan 13, 2014, at 11:27 AM, Dave Chinner <david@fromorbit.com> wrote: > So, you need to find the inode number of a directory with a corrupt > entry, and dump the inode and any data fork blocks that it belongs > to with xfs_db similar to what you have just done. Got one. bu[9] is the file that doesn’t work: xfs_db /dev/lvmsas/tv xfs_db> inode 68719478806 xfs_db> p core.magic = 0x494e ... u.bmx[0] = [startoff,startblock,blockcount,extentflag] 0:[0,4294967423,1,0] a.bmx[0] = [startoff,startblock,blockcount,extentflag] 0:[0,4294967537,1,0] xfs_db> fsb 4294967423 xfs_db> p 000: 58443242 03980b88 00000000 00000000 00000010 00000816 012ee69d 215c0010 020: 00000002 00000800 022e2ea2 1dc60020 00000010 00000817 092e4453 5f53746f 040: 7265652e 726f0030 00000010 00000818 10303120 2d20446f 2d4f7665 722e6d34 060: 76657b54 75e80048 00000010 00000819 1d303220 2d204265 6c696576 6520696e 080: 20746865 20537461 72732e6d 34760068 00000010 0000081a 2d303320 2d205468 0a0: 65204f6e 65207769 74682074 68652043 61737420 6f66204e 69676874 20436f75 0c0: 72742e6d 34760090 00000010 0000081b 15303420 2d204761 76696e20 566f6c75 0e0: 72652e6d 347600c8 00000010 0000081c 10303520 2d205265 756e696f 6e2e6d34 100: 76732e6d 347600e8 00000010 0000081d 1a303620 2d204368 72697374 6d617320 120: 53706563 69616c2e 6d347674 206f0108 00000010 0000081e 1a303720 2d205365 140: c3b16f72 204d6163 686f2053 6f6c6f2e 6d347620 2d200130 00000010 0000081f 160: 11303820 2d20466c 75205368 6f742e6d 34766874 20430158 00000010 00000820 180: 20303920 2d205265 74726561 7420746f 204d6f76 6520466f 72776172 642e6d34 1a0: 76414e79 46490178 00000010 00000821 16313020 2d204765 6e657261 6c697373 1c0: 696d6f2e 6d3476a8 ffff0028 000001a8 00000010 00000822 1c313120 2d205374 1e0: 2e205661 6c656e74 696e6527 73204461 792e6d34 760001d0 00000010 00000823 200: 13313220 2d204c61 72727920 4b696e67 2e6d3476 000001f8 00000010 00000824 220: 1b313320 2d20476f 6f646279 652c204d 79204672 69656e64 2e6d3476 0add0218 240: 00000010 00000825 16313420 2d205468 65204675 6e636f6f 6b65722e 6d34762e 260: 6d34763a 84810240 00000010 00000826 13313520 2d205468 65204275 62626c65 280: 2e6d3476 536f0268 00000010 00000827 17313620 2d204170 6f6c6c6f 2c204170 2a0: 6f6c6c6f 2e6d3476 c3b16f72 204d0288 00000010 00000828 11313720 2d204375 2c0: 74626163 6b732e6d 34763038 202d02b0 00000010 00000829 1a313820 2d204a61 2e0: 636b6965 204a6f72 6d702d4a 6f6d702e 6d347620 2d2002d0 00000010 0000082a 300: 11313920 2d205468 65204f6e 65732e6d 34763039 202d02f8 00000010 0000082b 320: 1a323020 2d205468 65204e61 74757261 6c204f72 6465722e 6d34767b 44850318 340: 00000010 0000082c 12323120 2d204d61 6d6d6120 4d69612e 6d347676 65200340 360: 00000010 0000082d 14323220 2d204b69 646e6579 204e6f77 212e6d34 762d0360 380: 00000010 0000082e 0b736561 736f6e5f 646f6e65 48460380 ffff0b88 00000e4f 3a0: 1a303720 2d205365 c3b16f72 204d6163 686f2053 6f6c6f2e 6d34762e 6d340398 3c0: ffff0b60 b9ea03a0 ffff0030 00000822 242e3131 202d2053 742e2056 616c656e 3e0: 74696e65 27732044 61792e6d 34762e75 384d554e 6c0a03c8 00000010 00000822 400: 1c313120 2d205374 2e205661 6c656e74 696e6527 73204461 792e6d34 766c03f8 420: ffff0028 00000823 1b2e3132 202d204c 61727279 204b696e 672e6d34 762e6a65 440: 6d346167 ae670420 00000010 00000823 13313220 2d204c61 72727920 4b696e67 460: 2e6d3476 c5cd0448 ffff0030 00000824 232e3133 202d2047 6f6f6462 79652c20 480: 4d792046 7269656e 642e6d34 762e697a 48574e66 6ebe0468 00000010 00000824 4a0: 1b313320 2d20476f 6f646279 652c204d 79204672 69656e64 2e6d3476 06550498 4c0: ffff0030 00000825 1e2e3134 202d2054 68652046 756e636f 6f6b6572 2e6d3476 4e0: 2e546c46 37754e82 53830dea f02904c0 00000010 00000825 16313420 2d205468 500: 65204675 6e636f6f 6b65722e 6d3476c9 49d6c27e 862404f0 ffff0028 00000826 520: 1b2e3135 202d2054 68652042 7562626c 652e6d34 762e324e 756d6a55 3e2e0518 540: 00000010 00000826 13313520 2d205468 65204275 62626c65 2e6d3476 b8190540 560: ffff0030 00000827 1f2e3136 202d2041 706f6c6c 6f2c2041 706f6c6c 6f2e6d34 580: 762e7862 706b7578 6015c501 5df00560 00000010 00000827 17313620 2d204170 5a0: 6f6c6c6f 2c204170 6f6c6c6f 2e6d3476 207a805c 32f30590 ffff0028 00000828 5c0: 192e3137 202d2043 75746261 636b732e 6d34762e 38644241 4e4e95d2 df0c05b8 5e0: 00000010 00000828 11313720 2d204375 74626163 6b732e6d 3476bfa5 5c2d05e0 600: ffff0030 00000829 222e3138 202d204a 61636b69 65204a6f 726d702d 4a6f6d70 620: 2e6d3476 2e463654 536e4750 ed990600 00000010 00000829 1a313820 2d204a61 640: 636b6965 204a6f72 6d702d4a 6f6d702e 6d3476b3 568f0630 ffff0028 0000082a 660: 192e3139 202d2054 6865204f 6e65732e 6d34762e 5359636f 536c1450 7d780658 680: 00000010 0000082a 11313920 2d205468 65204f6e 65732e6d 347633f1 b79c0680 6a0: ffff0030 0000082b 222e3230 202d2054 6865204e 61747572 616c204f 72646572 6c0: 2e6d3476 2e4c7779 456e7607 1acd06a0 00000010 0000082b 1a323020 2d205468 6e0: 65204e61 74757261 6c204f72 6465722e 6d347620 6ac406d0 ffff0028 0000082c 700: 1a2e3231 202d204d 616d6d61 204d6961 2e6d3476 2e793774 444471f0 7afb06f8 720: 00000010 0000082c 12323120 2d204d61 6d6d6120 4d69612e 6d34764a c2a20720 740: ffff0028 0000082d 1c2e3232 202d204b 69646e65 79204e6f 77212e6d 34762e31 760: 70556e4a 516d0740 00000010 0000082d 14323220 2d204b69 646e6579 204e6f77 780: 212e6d34 76ec0768 ffff0020 0000082e 132e7365 61736f6e 5f646f6e 652e5942 7a0: 45707653 4b1b0788 00000010 0000082e 0b736561 736f6e5f 646f6e65 dc4e07a8 7c0: ffff0760 e25dfdec 236bc146 04c68637 7ab5e375 e452f5b4 aa68bbe2 e8f96e8c 7e0: 2873dc2b 8c11d44f 8102132b cd297ee7 96731e39 9ce20e24 8c720b52 9d268801 800: 6f35094c 840bffb0 ea57f284 4ed0ddce c5fe47bc b716c676 5dcf744d 6e1e043c 820: 65168783 12942365 473c4dd6 87b983ff b27554b6 ced9b37b 73a45143 953cfd5d 840: 776b8ce5 02b22034 12e3976a bf8ac0cf 6040f314 29a94c5d 1f64d68b 41522fae 860: 5d086649 b415c9bc 5033532f 67d82e68 aba29045 99d66c7d 7d27a726 2461fab8 880: 62ffcb2d 2aae50f0 8a14c75e fb120b7c 30a35fde a44fb8ef 50e8ba97 87cd173f 8a0: 665fa3fb 068b30b0 2eb54bda 500c30e3 0f32a030 3bc1e136 371908be 03be9608 8c0: 08931d14 19edb458 611be149 e69eab30 80885c83 ce31770c ef30d08f 047edd2b 8e0: 881cd519 7a01e6e4 6bda3ab0 007b9eeb c406b0bd bdaa3634 e6ad67e4 1a0cb40a 900: ee3f89b3 18361c80 bab39b25 765b2eeb dcdae533 632b1eaa 527169da 0808768c 920: 059a6327 60bfb867 64e6dfd1 c4790448 521e8b10 599e93ca 7ac96307 152793d1 940: 35e8539e 31c0a2ac b21c7fef b9c4b292 e76ea63d 2f5f4789 e996ba68 fc1f648a 960: f50cb772 6daa9cf9 29f49bc0 99450bdc e675a924 cd5df975 bbef5aca 6f7f6dda 980: e3cf4905 d362fabe ca2f55ac 416055f8 c4478efe 76af424f 1246495b 0681f743 9a0: 8985d4a8 c3bd705f b7fdad96 11e865b8 9d47709c 949269b7 171ba67c c0ecc834 9c0: 8720b834 f2265a2a 89cbab9f e1585a1e 0ad602bb fd403330 d1996c2b 1dbd6f02 9e0: 5a890263 74042c9e 793ad4f8 5cbf7e6c 93666ff9 6cbbf437 05e82d05 7f0a56d8 a00: 0bc2aacb 9072859c 732cad1a 16b6cf21 2ec91573 6026017c 4df2822a 7a8933f0 a20: 551195c5 fd7e2f03 aa07d4f3 f753314c eca96a08 d5aa1da7 fbe936d9 91e6b576 a40: 97d0c67c 5b46eabf df2292da b8536aab a12c6901 1ec450d8 18abacd6 1406d306 a60: 554371d9 8200daf2 284ad914 6ac1be9c 989fefc7 80b1cfa8 e73aec8c 221852ff a80: 81fd770f cc436dcb c905bf19 c4f7a3e3 3cffa8d1 a6730bfb 23942b33 dfaeea27 aa0: 8b55cc38 09174831 7952c5c7 652fe34f ac4979c6 8e16a508 9ad307a5 8563bf20 ac0: a394d950 ea4d7801 6fd9ef09 c9755dcd 17109143 75a0fa3f ecf18c41 51b93a5e ae0: 5e66abc4 d1dd1d42 8bf4f8dc 98fb592a 76491dcf 6387793d 0a7dfe57 358dc4a5 b00: 93fdbb04 e8586f2b 8edf9aa3 db46597d 6c9c1824 fa9f84f8 f192c630 dbf863d8 b20: a767867e 9e6155d0 f3a48ac9 47755639 1ea41778 032888b8 8d2bec2f 78196ed6 b40: 7fc54879 a7c28fb7 2385262d cebf16da d7723330 0d3666fd b6bd56f1 dc1e00d3 b60: 17a947ec 5e9dca3c d2fc6067 baf215e0 eb9783d1 89601c5b 7d82b2c7 5e66cb96 b80: 5e141c62 e821a2cc 80d7084c a5b77c29 5ec2586d 4b69b332 9549b233 38fc7b4d ba0: 91bc57f6 566726bc 6dc234e4 0652f289 f40b37dc 721544c3 81ee4ee0 ebed6891 bc0: 4ac9351e f3283873 966d3e49 ad24e115 ee1d804c 70eaa426 ba1c48e6 7eafc96b be0: c504f521 385b29ab 3532993f 266af82d 59ec08f9 d85820f3 589cc633 ee41a655 c00: a99d074d 23d8823e e7508910 16cc9d9c cecb5cb9 81de6036 b4e8faba cfdbdaf6 c20: 36536522 d057ff4a b9e85de3 f7b2704c 9a4908ca e339ac32 d785c548 348daa6a c40: f0afc265 a71c920b 50ae9757 0b51af96 34531279 4da1ee1f f9df3e83 0055f97e c60: 65fe66b4 34399905 9784127e 4c255ddd b0334416 fa5ef3d0 c62ab6aa f529f684 c80: e9ef32cd f1d11c0b ae35c00a 10e517fa 003f657c 3f6cb6e5 601b85ad 0d576c38 ca0: 794e5372 08c0bf34 1c895e11 b6fa2895 67437581 3400a236 f642fe70 a69faaf7 cc0: 819bdd30 a8219dbc 2d0e0523 a6fa62be 1aa2386b 1590a568 3e3da633 6f9808b0 ce0: 88b35ef6 14240b49 e6721f51 77cee9c3 1af382ab 01677e4d f090c4fa 4da2c2c5 d00: 024c8629 2ad08aa7 422af8e0 f9712ed5 177bdeea c25eabe2 729067c4 96c38d4f d20: 7d12c96b b0d47cb4 153d0de0 b61116b9 05db3add 580b09ec 4185a57a 12d2f403 d40: a79875a9 869ed8e9 54496e3a 12409817 29d8a734 c250f847 0269266a b1d21578 d60: 929e6a00 84a2c798 8a7dbe54 c56d38f8 cd2c9928 e37d988e 86e3bbd3 d66a8fb5 d80: 95bbf81a 31ec0870 354a6694 e583a8df 4c75d417 079d9277 4739253a 88c7a85c da0: ead4d046 c16f24a1 aac656b1 b1231730 292ad144 09d48770 9e383b4a 79ff74d9 dc0: b8453a71 687b98a3 d66e6948 782ff312 e6acc0ef 23bf3730 fa77b629 00e0c284 de0: 3e1394c0 dd947b2f 7acd855f d1b55dc6 dddcb637 4afcf856 b28caf57 b169fd76 e00: 02f996ac 93f1b65c fd365b9f 723f2848 ce77021d 0f3e1303 273bbf86 284e60ea e20: aaf5b695 10fd5132 c91a16d0 11a41dc9 5a02186a bbbb94a0 7bbceef5 9e943106 e40: afb9aace 1933d188 6bf0727f 90aa9123 2241a0d0 01598503 cfabe4aa b00afb9b e60: 3effbd69 68165260 f8a81102 d38b3878 cdd4e4cb 8618f097 42244acf b8b976cb e80: 35125209 f7b5805e 40db397b 00abcfa9 8a50409a c0f51dcf abe9fb4d 5b8c44bb ea0: ab9cc478 591f0715 5c06faff 4ff7c649 25880591 9d0f5e5c 7d38d25c 76648e19 ec0: 6f6bad24 2a754c82 3154a2e3 d43e803a 7ca54600 fd6a3f1a 90dfc856 4d3aba0d ee0: ea944aec ca997066 341ad794 ed5b0d0d d1b95bbd f94ac17a 34df90af 8d8078e0 f00: 59d8b643 78da3fa9 c79a7dd6 a964a724 7ac02075 4ca9318d c21b6890 a9640398 f20: 0000002e 00000002 0000172e 00000004 00624cc3 00000063 1052379a 00000006 f40: 12d2816f 0000001d 16d07074 00000026 16d0707c 00000000 1d7c54e2 00000070 f60: 2caf2876 0000000d 3d25c6d2 00000056 3e07609a 0000005a 6b667b53 0000006c f80: 78fc099c 00000035 8ad0f8ab 00000009 8c17559b 00000012 8f0052b2 0000002b fa0: 8fc97221 00000043 931912cb 0000003a 96b3bb3b 00000051 9a3c8cd4 00000019 fc0: 9d95db76 00000048 aec5036b 00000021 dc3223ae 0000004d dd98adc4 0000002f fe0: ea32fb33 0000003f eb7796fb 00000068 ff3b09ea 0000005f 0000001b 00000001 xfs_db> type dir2 xfs_db> p bhdr.magic = 0x58443242 bhdr.bestfree[0].offset = 0x398 bhdr.bestfree[0].length = 0xb88 bhdr.bestfree[1].offset = 0 bhdr.bestfree[1].length = 0 bhdr.bestfree[2].offset = 0 bhdr.bestfree[2].length = 0 bu[0].inumber = 68719478806 bu[0].namelen = 1 bu[0].name = "." bu[0].tag = 0x10 bu[1].inumber = 8589936640 bu[1].namelen = 2 bu[1].name = ".." bu[1].tag = 0x20 bu[2].inumber = 68719478807 bu[2].namelen = 9 bu[2].name = ".DS_Store" bu[2].tag = 0x30 bu[3].inumber = 68719478808 bu[3].namelen = 16 bu[3].name = "01 - Do-Over.m4v" bu[3].tag = 0x48 bu[4].inumber = 68719478809 bu[4].namelen = 29 bu[4].name = "02 - Believe in the Stars.m4v" bu[4].tag = 0x68 bu[5].inumber = 68719478810 bu[5].namelen = 45 bu[5].name = "03 - The One with the Cast of Night Court.m4v" bu[5].tag = 0x90 bu[6].inumber = 68719478811 bu[6].namelen = 21 bu[6].name = "04 - Gavin Volure.m4v" bu[6].tag = 0xc8 bu[7].inumber = 68719478812 bu[7].namelen = 16 bu[7].name = "05 - Reunion.m4v" bu[7].tag = 0xe8 bu[8].inumber = 68719478813 bu[8].namelen = 26 bu[8].name = "06 - Christmas Special.m4v" bu[8].tag = 0x108 bu[9].inumber = 68719478814 bu[9].namelen = 26 bu[9].name = "07 - Se\303\261or Macho Solo.m4v" bu[9].tag = 0x130 bu[10].inumber = 68719478815 bu[10].namelen = 17 bu[10].name = "08 - Flu Shot.m4v" bu[10].tag = 0x158 bu[11].inumber = 68719478816 bu[11].namelen = 32 bu[11].name = "09 - Retreat to Move Forward.m4v" bu[11].tag = 0x178 bu[12].inumber = 68719478817 bu[12].namelen = 22 bu[12].name = "10 - Generalissimo.m4v" bu[12].tag = 0x1a8 bu[13].inumber = 68719478818 bu[13].namelen = 28 bu[13].name = "11 - St. Valentine\'s Day.m4v" bu[13].tag = 0x1d0 bu[14].inumber = 68719478819 bu[14].namelen = 19 bu[14].name = "12 - Larry King.m4v" bu[14].tag = 0x1f8 bu[15].inumber = 68719478820 bu[15].namelen = 27 bu[15].name = "13 - Goodbye, My Friend.m4v" bu[15].tag = 0x218 bu[16].inumber = 68719478821 bu[16].namelen = 22 bu[16].name = "14 - The Funcooker.m4v" bu[16].tag = 0x240 bu[17].inumber = 68719478822 bu[17].namelen = 19 bu[17].name = "15 - The Bubble.m4v" bu[17].tag = 0x268 bu[18].inumber = 68719478823 bu[18].namelen = 23 bu[18].name = "16 - Apollo, Apollo.m4v" bu[18].tag = 0x288 bu[19].inumber = 68719478824 bu[19].namelen = 17 bu[19].name = "17 - Cutbacks.m4v" bu[19].tag = 0x2b0 bu[20].inumber = 68719478825 bu[20].namelen = 26 bu[20].name = "18 - Jackie Jormp-Jomp.m4v" bu[20].tag = 0x2d0 bu[21].inumber = 68719478826 bu[21].namelen = 17 bu[21].name = "19 - The Ones.m4v" bu[21].tag = 0x2f8 bu[22].inumber = 68719478827 bu[22].namelen = 26 bu[22].name = "20 - The Natural Order.m4v" bu[22].tag = 0x318 bu[23].inumber = 68719478828 bu[23].namelen = 18 bu[23].name = "21 - Mamma Mia.m4v" bu[23].tag = 0x340 bu[24].inumber = 68719478829 bu[24].namelen = 20 bu[24].name = "22 - Kidney Now!.m4v" bu[24].tag = 0x360 bu[25].inumber = 68719478830 bu[25].namelen = 11 bu[25].name = "season_done" bu[25].tag = 0x380 bu[26].freetag = 0xffff bu[26].length = 0xb88 bu[26].tag = 0x398 bleaf[0].hashval = 0x2e bleaf[0].address = 0x2 bleaf[1].hashval = 0x172e bleaf[1].address = 0x4 bleaf[2].hashval = 0x624cc3 bleaf[2].address = 0x63 bleaf[3].hashval = 0x1052379a bleaf[3].address = 0x6 bleaf[4].hashval = 0x12d2816f bleaf[4].address = 0x1d bleaf[5].hashval = 0x16d07074 bleaf[5].address = 0x26 bleaf[6].hashval = 0x16d0707c bleaf[6].address = 0 bleaf[7].hashval = 0x1d7c54e2 bleaf[7].address = 0x70 bleaf[8].hashval = 0x2caf2876 bleaf[8].address = 0xd bleaf[9].hashval = 0x3d25c6d2 bleaf[9].address = 0x56 bleaf[10].hashval = 0x3e07609a bleaf[10].address = 0x5a bleaf[11].hashval = 0x6b667b53 bleaf[11].address = 0x6c bleaf[12].hashval = 0x78fc099c bleaf[12].address = 0x35 bleaf[13].hashval = 0x8ad0f8ab bleaf[13].address = 0x9 bleaf[14].hashval = 0x8c17559b bleaf[14].address = 0x12 bleaf[15].hashval = 0x8f0052b2 bleaf[15].address = 0x2b bleaf[16].hashval = 0x8fc97221 bleaf[16].address = 0x43 bleaf[17].hashval = 0x931912cb bleaf[17].address = 0x3a bleaf[18].hashval = 0x96b3bb3b bleaf[18].address = 0x51 bleaf[19].hashval = 0x9a3c8cd4 bleaf[19].address = 0x19 bleaf[20].hashval = 0x9d95db76 bleaf[20].address = 0x48 bleaf[21].hashval = 0xaec5036b bleaf[21].address = 0x21 bleaf[22].hashval = 0xdc3223ae bleaf[22].address = 0x4d bleaf[23].hashval = 0xdd98adc4 bleaf[23].address = 0x2f bleaf[24].hashval = 0xea32fb33 bleaf[24].address = 0x3f bleaf[25].hashval = 0xeb7796fb bleaf[25].address = 0x68 bleaf[26].hashval = 0xff3b09ea bleaf[26].address = 0x5f btail.count = 27 btail.stale = 1 And the inode it lists, which has reasonable mtime and size based on similar files in the directory: xfs_db> inode 68719478814 xfs_db> p core.magic = 0x494e core.mode = 0100660 core.version = 2 core.format = 2 (extents) core.nlinkv2 = 1 core.onlink = 0 core.projid_lo = 0 core.projid_hi = 0 core.uid = 1000 core.gid = 100 core.flushiter = 368 core.atime.sec = Thu Jan 2 18:23:36 2014 core.atime.nsec = 082260304 core.mtime.sec = Sat Sep 11 20:13:07 2010 core.mtime.nsec = 000000000 core.ctime.sec = Sun Jan 12 01:30:25 2014 core.ctime.nsec = 866103023 core.size = 326451171 core.nblocks = 79700 core.extsize = 0 core.nextents = 1 core.naextents = 0 core.forkoff = 7 core.aformat = 1 (local) core.dmevmask = 0 core.dmstate = 0 core.newrtbm = 0 core.prealloc = 0 core.realtime = 0 core.immutable = 1 core.append = 0 core.sync = 0 core.noatime = 0 core.nodump = 0 core.rtinherit = 0 core.projinherit = 0 core.nosymlinks = 0 core.extsz = 0 core.extszinherit = 0 core.nodefrag = 0 core.filestream = 0 core.gen = 2502109681 next_unlinked = null u.bmx[0] = [startoff,startblock,blockcount,extentflag] 0:[0,509696,79700,0] a.sfattr.hdr.totsize = 95 a.sfattr.hdr.count = 1 a.sfattr.list[0].namelen = 12 a.sfattr.list[0].valuelen = 76 a.sfattr.list[0].root = 1 a.sfattr.list[0].secure = 0 a.sfattr.list[0].name = "SGI_ACL_FILE" a.sfattr.list[0].value = "\000\000\000\006\000\000\000\001\377\377\377\377\000\006\000\000\000\000\000\004\377\377\377\377\000\006\000\000\000\000\000\b\000\000\000d\000\006\000\000\000\000\000\b\000\000\003\361\000\004\000\000\000\000\000\020\377\377\377\377\000\006\000\000\000\000\000 \377\377\377\377\000\000\000\000” I’m not sure if this the right way to get the related first data block. If I did it wrong let me know: xfs_db> daddr 509696 xfs_db> p 000: e85e996a 4e705067 b42c65f1 97d553b3 4af10990 1609bbd9 beeef165 f1cf1a2c 020: 483f0a2e 24ecce2e ff1aa9bc a8e3b359 0808858e f7db2c32 d163ef30 10782a0e 040: 82862ec9 22285fed 90177e6e f8d2b6d2 15ae9d85 35356190 bffc2604 3ec17ea8 060: bb69e2ba 6ffd82ed b5df455d 4f2ed5bf 042b87c8 2a457ad3 224eb183 4905d39f 080: 37d5acb5 28480b63 c32662c6 33bd3c51 3de5ca43 bf7639c9 fa1097c1 8a1aff22 0a0: 9af51d18 89455c57 c569eb0c 8790d635 54e7ea81 9a37fd0b 824d57d6 6fb28c79 0c0: 6ba742db cf65ffd7 f47ef4f2 7f7e0233 fa2f788f e09d5aef 7cb17105 eddf901e 0e0: 21a74f60 c7c19141 387289a9 514d8962 2fb8597c 0a806421 6920a244 8610318f 100: f1119976 46332bd6 aad56bc2 319e7e23 e6b559c5 8aabf1e9 26c50da8 806048fd 120: 7851b307 6a858007 21c1feb2 4281f277 5fc5dd9b e49b59db 7f209de1 66d9e02b 140: ac4ca898 1dfeff12 207ec7cd 83283cf0 6f9d24be 421f64bc ffd05e4d e3828501 160: 0809baac 56a9dfc4 2133bbee fcd0d1e9 1c00f07d ecfec298 ead947e9 06ba929c 180: 7a3206f2 7efe3450 28cbf76a cf99e170 a22bf86d 826dade6 d67f8e60 6d5c7c02 1a0: 94be0967 ab263252 9ff805b1 7b34db8f 9a099feb cdb274e2 a06cd03f cbf8aefe 1c0: 7128dacb fad4c84c 63c4d19f 27a836fe 2a5ad1cb e8e6afe1 5f7c8182 9f46dcfd 1e0: 3a475df5 f9a1dc40 9f51fedd d722ef07 6e2346e9 8d58b1dd 8c7e9d7c 041826cf Thanks for your help, Zach [-- Attachment #1.2: smime.p7s --] [-- Type: application/pkcs7-signature, Size: 2749 bytes --] [-- Attachment #2: Type: text/plain, Size: 121 bytes --] _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Files with non-ASCII names inaccessible after xfs_repair 2014-01-13 23:07 ` Zachary Kotlarek @ 2014-01-14 2:24 ` Dave Chinner 2014-01-14 3:12 ` Zachary Kotlarek 0 siblings, 1 reply; 23+ messages in thread From: Dave Chinner @ 2014-01-14 2:24 UTC (permalink / raw) To: Zachary Kotlarek; +Cc: xfs On Mon, Jan 13, 2014 at 03:07:30PM -0800, Zachary Kotlarek wrote: > > On Jan 13, 2014, at 11:27 AM, Dave Chinner <david@fromorbit.com> wrote: > > > So, you need to find the inode number of a directory with a corrupt > > entry, and dump the inode and any data fork blocks that it belongs > > to with xfs_db similar to what you have just done. > > > Got one. bu[9] is the file that doesn’t work: ..... > bu[9].inumber = 68719478814 > bu[9].namelen = 26 > bu[9].name = "07 - Se\303\261or Macho Solo.m4v" > bu[9].tag = 0x130 That looks completely valid. It's a utf-8 encoded directory entry. It doesn't look like there's any corruption on disk here. The ls -l output full of ???? usually means the stat of the inode the dirent pointed to, so that implies that the stat has failed. So, what does and strace of the 'ls -l' of that directory tell you about the directory entry that is returned to userspace? > bleaf[5].hashval = 0x16d07074 > bleaf[5].address = 0x26 That's the hash entry in the directory for the name. That may be wrong, I guess. can you create another file with the same name in a different directory so we can check that the hash is correct? > u.bmx[0] = [startoff,startblock,blockcount,extentflag] 0:[0,509696,79700,0] > > I’m not sure if this the right way to get the related first data block. If I did it wrong let me know: > > xfs_db> daddr 509696 fsb 509696, not daddr. Cheers, Dave. -- Dave Chinner david@fromorbit.com _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Files with non-ASCII names inaccessible after xfs_repair 2014-01-14 2:24 ` Dave Chinner @ 2014-01-14 3:12 ` Zachary Kotlarek 2014-01-15 1:53 ` Dave Chinner 0 siblings, 1 reply; 23+ messages in thread From: Zachary Kotlarek @ 2014-01-14 3:12 UTC (permalink / raw) To: Dave Chinner; +Cc: xfs [-- Attachment #1.1: Type: text/plain, Size: 2717 bytes --] On Jan 13, 2014, at 6:24 PM, Dave Chinner <david@fromorbit.com> wrote: >> Got one. bu[9] is the file that doesn’t work: > ..... >> bu[9].inumber = 68719478814 >> bu[9].namelen = 26 >> bu[9].name = "07 - Se\303\261or Macho Solo.m4v" >> bu[9].tag = 0x130 > > That looks completely valid. It's a utf-8 encoded directory entry. > It doesn't look like there's any corruption on disk here. > > The ls -l output full of ???? usually means the stat of the inode > the dirent pointed to, so that implies that the stat has failed. > So, what does and strace of the 'ls -l' of that directory tell you > about the directory entry that is returned to userspace? It just returns ENOENT: stat("/mnt/media/TV/30 Rock/Season 3/07 - Señor Macho Solo.m4v", 0x15990f0) = -1 ENOENT (No such file or directory) lstat("/mnt/media/TV/30 Rock/Season 3/07 - Señor Macho Solo.m4v", 0x15990f0) = -1 ENOENT (No such file or directory) >> bleaf[5].hashval = 0x16d07074 >> bleaf[5].address = 0x26 > > That's the hash entry in the directory for the name. That may be > wrong, I guess. can you create another file with the same name > in a different directory so we can check that the hash is correct? bu[16].inumber = 9255716888 bu[16].namelen = 26 bu[16].name = "07 - Se\303\261or Macho Solo.m4v" bu[16].tag = 0x1d8 I don’t understand how to find the right bleaf, but 0x16d07074 doesn’t appear in any of the hashvals for that directory: bleaf[0].hashval = 0x2e bleaf[0].address = 0x2 bleaf[1].hashval = 0x172e bleaf[1].address = 0x4 bleaf[2].hashval = 0x1052379a bleaf[2].address = 0x22 bleaf[3].hashval = 0x16d0707c bleaf[3].address = 0x3b bleaf[4].hashval = 0x3d1c0738 bleaf[4].address = 0x1b bleaf[5].hashval = 0x3d1c0739 bleaf[5].address = 0x18 bleaf[6].hashval = 0x3d1c073a bleaf[6].address = 0x15 bleaf[7].hashval = 0x3d1c073b bleaf[7].address = 0x12 bleaf[8].hashval = 0x3d1c073c bleaf[8].address = 0xf bleaf[9].hashval = 0x3d1c073d bleaf[9].address = 0xc bleaf[10].hashval = 0x3d1c073e bleaf[10].address = 0x9 bleaf[11].hashval = 0x3d1c073f bleaf[11].address = 0x6 bleaf[12].hashval = 0x7f92e42b bleaf[12].address = 0x2b bleaf[13].hashval = 0x9f92e6c0 bleaf[13].address = 0x36 >> u.bmx[0] = [startoff,startblock,blockcount,extentflag] 0:[0,509696,79700,0] >> >> I’m not sure if this the right way to get the related first data block. If I did it wrong let me know: >> >> xfs_db> daddr 509696 > > fsb 509696, not daddr. xfs_db> fsb 509696 xfs_db> p 000: 0000001c 66747970 6d703432 00000000 6d703432 69736f6d 61766331 00000084 And that looks like the MP4 magic number across the first 3 segments, which is what I’m expecting. Zach [-- Attachment #1.2: smime.p7s --] [-- Type: application/pkcs7-signature, Size: 2749 bytes --] [-- Attachment #2: Type: text/plain, Size: 121 bytes --] _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Files with non-ASCII names inaccessible after xfs_repair 2014-01-14 3:12 ` Zachary Kotlarek @ 2014-01-15 1:53 ` Dave Chinner 2014-01-15 1:59 ` Zachary Kotlarek 0 siblings, 1 reply; 23+ messages in thread From: Dave Chinner @ 2014-01-15 1:53 UTC (permalink / raw) To: Zachary Kotlarek; +Cc: xfs On Mon, Jan 13, 2014 at 07:12:07PM -0800, Zachary Kotlarek wrote: > > On Jan 13, 2014, at 6:24 PM, Dave Chinner <david@fromorbit.com> wrote: > > >> Got one. bu[9] is the file that doesn’t work: > > ..... > >> bu[9].inumber = 68719478814 > >> bu[9].namelen = 26 > >> bu[9].name = "07 - Se\303\261or Macho Solo.m4v" > >> bu[9].tag = 0x130 > > > > That looks completely valid. It's a utf-8 encoded directory entry. > > It doesn't look like there's any corruption on disk here. > > > > The ls -l output full of ???? usually means the stat of the inode > > the dirent pointed to, so that implies that the stat has failed. > > So, what does and strace of the 'ls -l' of that directory tell you > > about the directory entry that is returned to userspace? > > It just returns ENOENT: > stat("/mnt/media/TV/30 Rock/Season 3/07 - Señor Macho Solo.m4v", 0x15990f0) = -1 ENOENT (No such file or directory) > lstat("/mnt/media/TV/30 Rock/Season 3/07 - Señor Macho Solo.m4v", 0x15990f0) = -1 ENOENT (No such file or directory) Ok, so it's a lookup failure. > >> bleaf[5].hashval = 0x16d07074 > >> bleaf[5].address = 0x26 > > > > That's the hash entry in the directory for the name. That may be > > wrong, I guess. can you create another file with the same name > > in a different directory so we can check that the hash is correct? > > bu[16].inumber = 9255716888 > bu[16].namelen = 26 > bu[16].name = "07 - Se\303\261or Macho Solo.m4v" > bu[16].tag = 0x1d8 > > I don’t understand how to find the right bleaf, but 0x16d07074 doesn’t appear in any of the hashvals for that directory: Pretty simple - the leaf[].address is simply a compressed offset into the leaf. all dirents are 8 byte aligned, and the tag is the byte offset into the leaf dirent space. Hence: leaf[].address = bu[16].tag >> 3 = 0x1d8 >> 3 = 0x3b = bleaf[3].address > bleaf[3].hashval = 0x16d0707c > bleaf[3].address = 0x3b And there were are - there's a single bit discrepancy in the lower byte of the hash. That tends to imply we have a bug in xfs_repair. What version of xfs_repair did you use? (xfs_repair -V) Cheers, Dave. -- Dave Chinner david@fromorbit.com _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Files with non-ASCII names inaccessible after xfs_repair 2014-01-15 1:53 ` Dave Chinner @ 2014-01-15 1:59 ` Zachary Kotlarek 2014-01-15 3:48 ` Dave Chinner 0 siblings, 1 reply; 23+ messages in thread From: Zachary Kotlarek @ 2014-01-15 1:59 UTC (permalink / raw) To: xfs [-- Attachment #1.1: Type: text/plain, Size: 738 bytes --] On Jan 14, 2014, at 5:53 PM, Dave Chinner <david@fromorbit.com> wrote: > Pretty simple - the leaf[].address is simply a compressed offset > into the leaf. all dirents are 8 byte aligned, and the tag is the > byte offset into the leaf dirent space. Hence: > > leaf[].address = bu[16].tag >> 3 > = 0x1d8 >> 3 > = 0x3b > = bleaf[3].address > >> bleaf[3].hashval = 0x16d0707c >> bleaf[3].address = 0x3b > > And there were are - there's a single bit discrepancy in the lower > byte of the hash. That tends to imply we have a bug in xfs_repair. > > What version of xfs_repair did you use? (xfs_repair -V) 3.1.11. I’m happy to build from git if you suspect something has changed since then. Zach [-- Attachment #1.2: smime.p7s --] [-- Type: application/pkcs7-signature, Size: 2749 bytes --] [-- Attachment #2: Type: text/plain, Size: 121 bytes --] _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Files with non-ASCII names inaccessible after xfs_repair 2014-01-15 1:59 ` Zachary Kotlarek @ 2014-01-15 3:48 ` Dave Chinner 2014-01-15 5:30 ` Zachary Kotlarek 0 siblings, 1 reply; 23+ messages in thread From: Dave Chinner @ 2014-01-15 3:48 UTC (permalink / raw) To: Zachary Kotlarek; +Cc: xfs On Tue, Jan 14, 2014 at 05:59:23PM -0800, Zachary Kotlarek wrote: > > On Jan 14, 2014, at 5:53 PM, Dave Chinner <david@fromorbit.com> wrote: > > > Pretty simple - the leaf[].address is simply a compressed offset > > into the leaf. all dirents are 8 byte aligned, and the tag is the > > byte offset into the leaf dirent space. Hence: > > > > leaf[].address = bu[16].tag >> 3 > > = 0x1d8 >> 3 > > = 0x3b > > = bleaf[3].address > > > >> bleaf[3].hashval = 0x16d0707c > >> bleaf[3].address = 0x3b > > > > And there were are - there's a single bit discrepancy in the lower > > byte of the hash. That tends to imply we have a bug in xfs_repair. > > > > What version of xfs_repair did you use? (xfs_repair -V) > > > 3.1.11. OK, Now I've looked at the code, the answer is easy and you're probably not going to like it. I missed this the first time through from your xfs-info output: naming =version 2 bsize=4096 ascii-ci=1 ^^^^^^^^^^ It's called *ASCII* Case Insensitivity for a reason: it doesn't support anything other than ASCII. So your usage is not actually supported at all, hence it's no surprise that it has caused breakage. Internationalised UTF-8 character sets are not supported because it causes case conversion issues when kernel and userspace character sets don't match exactly. IOWs, to support UTF-8 case insensitivity, we need to have on-disk translation tables so that the kernel and userspace use the same case translations. See here: http://xfs.org/index.php/Unfinished_work#Support_for_unicode_.2F_utf8_filesystems I suspect that the way to fix your filesystem is to run xfs_repair under a "C" locale so that the glibc tolower() function behaves the same way the kernel behaves and so the hashes calculated by xfs_repair match the what the kernel thinks is correct. Cheers, Dave. -- Dave Chinner david@fromorbit.com _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Files with non-ASCII names inaccessible after xfs_repair 2014-01-15 3:48 ` Dave Chinner @ 2014-01-15 5:30 ` Zachary Kotlarek 2014-01-15 6:37 ` Dave Chinner 0 siblings, 1 reply; 23+ messages in thread From: Zachary Kotlarek @ 2014-01-15 5:30 UTC (permalink / raw) To: Dave Chinner; +Cc: xfs [-- Attachment #1.1: Type: text/plain, Size: 1301 bytes --] On Jan 14, 2014, at 7:48 PM, Dave Chinner <david@fromorbit.com> wrote: > It's called *ASCII* Case Insensitivity for a reason: it doesn't > support anything other than ASCII. So your usage is not actually > supported at all, hence it's no surprise that it has caused > breakage. Okay. Thanks for the explanation. FWIW, I read “ASCII-only case-insensitive” to mean “only case-insensitive for ASCII” as in ñ and Ñ would not match each other. If it actually means “anything other than ASCII is subject to complete breakage” a more nuanced explanation in the man page might be desirable. I don’t suppose there’s any way to disable that setting short of creating a new file system? > I suspect that the way to fix your filesystem is to run xfs_repair > under a "C" locale so that the glibc tolower() function behaves the > same way the kernel behaves and so the hashes calculated by > xfs_repair match the what the kernel thinks is correct. Neither this: LC_ALL=C nor this: LC_ALL=POSIX or for that matter: LC_ALL=en_US.utf8 made any difference. And my default was already POSIX. Any other thoughts? Theoretically I could find the expected hashvals and overwrite them with xfs_db, right? Or at least unlink the files so I can reclaim the disk space? Zach [-- Attachment #1.2: smime.p7s --] [-- Type: application/pkcs7-signature, Size: 2749 bytes --] [-- Attachment #2: Type: text/plain, Size: 121 bytes --] _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Files with non-ASCII names inaccessible after xfs_repair 2014-01-15 5:30 ` Zachary Kotlarek @ 2014-01-15 6:37 ` Dave Chinner 2014-01-15 8:21 ` Zachary Kotlarek 2014-01-15 15:54 ` Eric Sandeen 0 siblings, 2 replies; 23+ messages in thread From: Dave Chinner @ 2014-01-15 6:37 UTC (permalink / raw) To: Zachary Kotlarek; +Cc: xfs On Tue, Jan 14, 2014 at 09:30:57PM -0800, Zachary Kotlarek wrote: > > On Jan 14, 2014, at 7:48 PM, Dave Chinner <david@fromorbit.com> wrote: > > > It's called *ASCII* Case Insensitivity for a reason: it doesn't > > support anything other than ASCII. So your usage is not actually > > supported at all, hence it's no surprise that it has caused > > breakage. > > Okay. Thanks for the explanation. > > FWIW, I read “ASCII-only case-insensitive” to mean “only case-insensitive for ASCII” as in ñ and Ñ would not match each other. If it actually means “anything other than ASCII is subject to complete breakage” a more nuanced explanation in the man page might be desirable. Sure. Can you write a patch to add explanation that explain the problem you've had? > I don’t suppose there’s any way to disable that setting short of creating a new file system? Not officially. Changing it means you have to change every single hash for every directory entry. I *think* that you could probably do it with a bit of xfs_db magic and and xfs_repair pass. First, A warning, some advice and a disclaimer: back up anything you don't want to lose, because if this screws up it'll trash the directory structure and you may *LOSE* *ALL* *YOUR* *DATA*. This is dangerous, not recommended and I take no responsibility for what happens if you try it and it fails. After taking a backup, use xfs_metadump to set up for a non-destructive trial run. take a copy of the filesystem metadata using xfs_metadump: # xfs_metadump <dev> scratch.metadump Restore the metadump to a file - this is a sparse image file we can operate on safely. # xfs_mdrestore scratch.metadump scratch_xfs_filesystem.img Then point xfs_db at the image file: # xfs_db -x -f scratch_xfs_filesystem.img Remove the case insensitive feature bit using the version command. First dump the current values using version: xfs_db> version versionnum [0xf4a4+0x8a] = V4,NLINK,ALIGN,DIRV2,LOGV2,EXTFLG,ASCII_CI,MOREBITS,ATTR2,LAZYSBCOUNT,PROJID32BIT And you'll see the ASCII_CI bit in there. That's what we want to remove. It's value is: #define XFS_SB_VERSION_BORGBIT 0x4000 so we need to clear that from the version field. 0xf4a4 - 0x4000 = 0xb4a4 And we want to write that back into the version field: xfs_db> sb 0 xfs_db> p versionnum versionnum = 0xf4a4 xfs_db> write versionnum 0xb4a4 versionnum = 0xb4a4 xfs_db> p versionnum versionnum = 0xb4a4 xfs_db> quit And now run xfs_repair on the image file: # xfs_repair -f scratch_xfs_filesystem.img That should through lots of "bad hash table.... repairing" errors. Once it completes, mount the filesystem image on the loopback device: # mount -o loop,ro,norecovery scratch_xfs_filesystem.img /mnt/scratch And walk around the filesystem to determine if the directory structure is correct and intact. If you have any doubts, or anything was left in lost+found, then it hasn't worked properly and you should not do this to your filesystem. Only if you are convinced that everything is OK and you can do the conversion without stuffing up, run the same xfs_db/repair process on the real filesystem. If you have any doubts or not confident that it has worked, then go the long way of mkfs and restoring the backup you've already made. > > I suspect that the way to fix your filesystem is to run xfs_repair > > under a "C" locale so that the glibc tolower() function behaves the > > same way the kernel behaves and so the hashes calculated by > > xfs_repair match the what the kernel thinks is correct. > > Neither this: > LC_ALL=C > nor this: > LC_ALL=POSIX > or for that matter: > LC_ALL=en_US.utf8 > made any difference. And my default was already POSIX. > > Any other thoughts? $ LC_ALL=C locale LANG=en_AU.UTF-8 LANGUAGE=en_AU:en LC_CTYPE="C" LC_NUMERIC="C" LC_TIME="C" LC_COLLATE="C" LC_MONETARY="C" LC_MESSAGES="C" LC_PAPER="C" LC_NAME="C" LC_ADDRESS="C" LC_TELEPHONE="C" LC_MEASUREMENT="C" LC_IDENTIFICATION="C" LC_ALL=C $ Perhaps you also need to override LANG and LANGUAGE? > Theoretically I could find the expected hashvals and overwrite > them with xfs_db, right? In theory, but hashvals need to be ordered correctly and that potentially means having to update btree node pointers and all sorts of other complexities. xfs_db is really not designed to rewrite directory structures manually. > Or at least unlink the files so I can > reclaim the disk space? You need to be able to stat the file to be able to unlink it.... Cheers, Dave. -- Dave Chinner david@fromorbit.com _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Files with non-ASCII names inaccessible after xfs_repair 2014-01-15 6:37 ` Dave Chinner @ 2014-01-15 8:21 ` Zachary Kotlarek 2014-01-15 15:54 ` Eric Sandeen 1 sibling, 0 replies; 23+ messages in thread From: Zachary Kotlarek @ 2014-01-15 8:21 UTC (permalink / raw) To: Dave Chinner; +Cc: xfs [-- Attachment #1.1: Type: text/plain, Size: 1064 bytes --] On Jan 14, 2014, at 10:37 PM, Dave Chinner <david@fromorbit.com> wrote: > Sure. Can you write a patch to add explanation that explain the > problem you've had? Will do. >> Theoretically I could find the expected hashvals and overwrite >> them with xfs_db, right? > > In theory, but hashvals need to be ordered correctly and that > potentially means having to update btree node pointers and all sorts > of other complexities. xfs_db is really not designed to rewrite > directory structures manually. It occurs to me the other way around is probably easier anyway — change the name entry to something ASCII-only (of the same byte length) and let xfs_repair rebuild the hash. That’s what got me into this mess, so by cartoon logic it should fix things if I do it again. ;-) After testing that theory on a metadata dump I spun up an LVM snapshot, where it also seems to work. So that gets me back into a functional state, but given all the mucking I think I’ll restore a clean FS again anyway. Thanks again for your help. Zach [-- Attachment #1.2: smime.p7s --] [-- Type: application/pkcs7-signature, Size: 2749 bytes --] [-- Attachment #2: Type: text/plain, Size: 121 bytes --] _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Files with non-ASCII names inaccessible after xfs_repair 2014-01-15 6:37 ` Dave Chinner 2014-01-15 8:21 ` Zachary Kotlarek @ 2014-01-15 15:54 ` Eric Sandeen 2014-01-15 21:08 ` Dave Chinner 1 sibling, 1 reply; 23+ messages in thread From: Eric Sandeen @ 2014-01-15 15:54 UTC (permalink / raw) To: Dave Chinner, Zachary Kotlarek; +Cc: xfs On 1/15/14, 12:37 AM, Dave Chinner wrote: > On Tue, Jan 14, 2014 at 09:30:57PM -0800, Zachary Kotlarek wrote: >> >> On Jan 14, 2014, at 7:48 PM, Dave Chinner <david@fromorbit.com> wrote: >> >>> It's called *ASCII* Case Insensitivity for a reason: it doesn't >>> support anything other than ASCII. So your usage is not actually >>> supported at all, hence it's no surprise that it has caused >>> breakage. >> >> Okay. Thanks for the explanation. >> >> FWIW, I read “ASCII-only case-insensitive” to mean “only case-insensitive for ASCII” as in ñ and Ñ would not match each other. If it actually means “anything other than ASCII is subject to complete breakage” a more nuanced explanation in the man page might be desirable. > > Sure. Can you write a patch to add explanation that explain the > problem you've had? > >> I don’t suppose there’s any way to disable that setting short of creating a new file system? > > Not officially. Changing it means you have to change every single > hash for every directory entry. I *think* that you could probably do > it with a bit of xfs_db magic and and xfs_repair pass. > > First, A warning, some advice and a disclaimer: back up anything you > don't want to lose, because if this screws up it'll trash the > directory structure and you may *LOSE* *ALL* *YOUR* *DATA*. This is > dangerous, not recommended and I take no responsibility for what > happens if you try it and it fails. > > After taking a backup, use xfs_metadump to set up for a > non-destructive trial run. take a copy of the filesystem metadata > using xfs_metadump: > > # xfs_metadump <dev> scratch.metadump NB: You'll want to add the "-o" option to not obfuscate filenames, or you'll probably have no idea if Dave's later steps are working or not. (I haven't read the whole thread, but is there no way for ascii-ci mode to reject non-ascii names in the first place? This seems like quite the pitfall.) -Eric _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Files with non-ASCII names inaccessible after xfs_repair 2014-01-15 15:54 ` Eric Sandeen @ 2014-01-15 21:08 ` Dave Chinner 2014-01-16 20:55 ` Michael Weissenbacher 0 siblings, 1 reply; 23+ messages in thread From: Dave Chinner @ 2014-01-15 21:08 UTC (permalink / raw) To: Eric Sandeen; +Cc: Zachary Kotlarek, xfs On Wed, Jan 15, 2014 at 09:54:02AM -0600, Eric Sandeen wrote: > On 1/15/14, 12:37 AM, Dave Chinner wrote: > > On Tue, Jan 14, 2014 at 09:30:57PM -0800, Zachary Kotlarek wrote: > >> > >> On Jan 14, 2014, at 7:48 PM, Dave Chinner <david@fromorbit.com> wrote: > >> > >>> It's called *ASCII* Case Insensitivity for a reason: it doesn't > >>> support anything other than ASCII. So your usage is not actually > >>> supported at all, hence it's no surprise that it has caused > >>> breakage. > >> > >> Okay. Thanks for the explanation. > >> > >> FWIW, I read “ASCII-only case-insensitive” to mean “only case-insensitive for ASCII” as in ñ and Ñ would not match each other. If it actually means “anything other than ASCII is subject to complete breakage” a more nuanced explanation in the man page might be desirable. > > > > Sure. Can you write a patch to add explanation that explain the > > problem you've had? > > > >> I don’t suppose there’s any way to disable that setting short of creating a new file system? > > > > Not officially. Changing it means you have to change every single > > hash for every directory entry. I *think* that you could probably do > > it with a bit of xfs_db magic and and xfs_repair pass. > > > > First, A warning, some advice and a disclaimer: back up anything you > > don't want to lose, because if this screws up it'll trash the > > directory structure and you may *LOSE* *ALL* *YOUR* *DATA*. This is > > dangerous, not recommended and I take no responsibility for what > > happens if you try it and it fails. > > > > After taking a backup, use xfs_metadump to set up for a > > non-destructive trial run. take a copy of the filesystem metadata > > using xfs_metadump: > > > > # xfs_metadump <dev> scratch.metadump > > NB: You'll want to add the "-o" option to not obfuscate filenames, or > you'll probably have no idea if Dave's later steps are working or not. > > > (I haven't read the whole thread, but is there no way for ascii-ci mode > to reject non-ascii names in the first place? This seems like quite > the pitfall.) The utf-8 patches add a "is this valid utf-8" check to all the operations that care. We could probably do that for the ASCII-CI stuff if you can define what ASCII means.... Cheers, Dave. -- Dave Chinner david@fromorbit.com _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Files with non-ASCII names inaccessible after xfs_repair 2014-01-15 21:08 ` Dave Chinner @ 2014-01-16 20:55 ` Michael Weissenbacher 2014-01-16 21:11 ` Shaun Gosse 0 siblings, 1 reply; 23+ messages in thread From: Michael Weissenbacher @ 2014-01-16 20:55 UTC (permalink / raw) To: xfs Hi! > > The utf-8 patches add a "is this valid utf-8" check to all the > operations that care. We could probably do that for the ASCII-CI > stuff if you can define what ASCII means.... > That's easy actually, since ASCII is a 7-bit code it can only contain char values between 0-127 or in other words the highest bit must not be set in any char. But probably this strict check could break other stuff. cheers, Michael _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs ^ permalink raw reply [flat|nested] 23+ messages in thread
* RE: Files with non-ASCII names inaccessible after xfs_repair 2014-01-16 20:55 ` Michael Weissenbacher @ 2014-01-16 21:11 ` Shaun Gosse 0 siblings, 0 replies; 23+ messages in thread From: Shaun Gosse @ 2014-01-16 21:11 UTC (permalink / raw) To: Michael Weissenbacher, xfs@oss.sgi.com > That's easy actually, since ASCII is a 7-bit code it can only contain char values between 0-127 or in other words the highest bit must not be set in any char. But probably this strict check could break other stuff. As long as you exclude extended ascii and data corruption, I don't know what else that could break. My guess would be that ASCII as understood by XFS users would be the 0-127 and not the various mix of extensions. If you want to include support for extended ascii...then I don't think there's any way to determine non-probabilistically the difference between ASCII and UTF based on the data itself. I have no idea what the current behavior is with respect to extended ASCII (whether it's supported, or works, or anything). Cheers, -Shaun -----Original Message----- From: xfs-bounces@oss.sgi.com [mailto:xfs-bounces@oss.sgi.com] On Behalf Of Michael Weissenbacher Sent: Thursday, January 16, 2014 2:56 PM To: xfs@oss.sgi.com Subject: Re: Files with non-ASCII names inaccessible after xfs_repair Hi! > > The utf-8 patches add a "is this valid utf-8" check to all the > operations that care. We could probably do that for the ASCII-CI stuff > if you can define what ASCII means.... > That's easy actually, since ASCII is a 7-bit code it can only contain char values between 0-127 or in other words the highest bit must not be set in any char. But probably this strict check could break other stuff. cheers, Michael _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Files with non-ASCII names inaccessible after xfs_repair 2014-01-12 13:28 Files with non-ASCII names inaccessible after xfs_repair Zachary Kotlarek 2014-01-12 18:47 ` Stan Hoeppner @ 2014-01-13 15:40 ` Michael Weissenbacher 2014-01-13 18:33 ` Zachary Kotlarek 1 sibling, 1 reply; 23+ messages in thread From: Michael Weissenbacher @ 2014-01-13 15:40 UTC (permalink / raw) To: xfs Hi Zach! > I now have 23 directories (matching the 23 “rebuilding" messages) where a file or directory with non-ASCII characters in the name exists in the directory list but cannot be read or deleted: > > ls -la > ls: cannot access 07 - Señor Macho Solo.m4v: No such file or directory > -rw-rw----+ 1 profplump media 332M Sep 11 2010 06 - Christmas Special.m4v > ??????????? ? ? ? ? ? 07 - Se??or Macho Solo.m4v > -rw-rw----+ 1 profplump media 304M Sep 11 2010 08 - Flu Shot.m4v > Might be a long shot, but have you tried mounting the file system with "-o inode64"? cheers, Michael --- This email is free from viruses and malware because avast! Antivirus protection is active. http://www.avast.com _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Files with non-ASCII names inaccessible after xfs_repair 2014-01-13 15:40 ` Michael Weissenbacher @ 2014-01-13 18:33 ` Zachary Kotlarek 0 siblings, 0 replies; 23+ messages in thread From: Zachary Kotlarek @ 2014-01-13 18:33 UTC (permalink / raw) To: Michael Weissenbacher; +Cc: xfs [-- Attachment #1.1: Type: text/plain, Size: 894 bytes --] On Jan 13, 2014, at 7:40 AM, Michael Weissenbacher <mw@dermichi.com> wrote: > Hi Zach! >> I now have 23 directories (matching the 23 “rebuilding" messages) where a file or directory with non-ASCII characters in the name exists in the directory list but cannot be read or deleted: >> >> ls -la >> ls: cannot access 07 - Señor Macho Solo.m4v: No such file or directory >> -rw-rw----+ 1 profplump media 332M Sep 11 2010 06 - Christmas Special.m4v >> ??????????? ? ? ? ? ? 07 - Se??or Macho Solo.m4v >> -rw-rw----+ 1 profplump media 304M Sep 11 2010 08 - Flu Shot.m4v >> > Might be a long shot, but have you tried mounting the file system with "-o inode64"? Thanks for the though. That’s already my default: /dev/lvmsas/tv /mnt/media/TV xfs rw,nosuid,nodev,noexec,relatime,attr2,delaylog,inode64,sunit=1024,swidth=4096,noquota 0 0 Zach [-- Attachment #1.2: smime.p7s --] [-- Type: application/pkcs7-signature, Size: 2749 bytes --] [-- Attachment #2: Type: text/plain, Size: 121 bytes --] _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs ^ permalink raw reply [flat|nested] 23+ messages in thread
end of thread, other threads:[~2014-01-16 21:11 UTC | newest] Thread overview: 23+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-01-12 13:28 Files with non-ASCII names inaccessible after xfs_repair Zachary Kotlarek 2014-01-12 18:47 ` Stan Hoeppner 2014-01-12 19:53 ` Zachary Kotlarek 2014-01-13 1:50 ` Dave Chinner 2014-01-13 2:36 ` Zachary Kotlarek 2014-01-13 3:19 ` Dave Chinner 2014-01-13 3:47 ` Zachary Kotlarek 2014-01-13 19:27 ` Dave Chinner 2014-01-13 23:07 ` Zachary Kotlarek 2014-01-14 2:24 ` Dave Chinner 2014-01-14 3:12 ` Zachary Kotlarek 2014-01-15 1:53 ` Dave Chinner 2014-01-15 1:59 ` Zachary Kotlarek 2014-01-15 3:48 ` Dave Chinner 2014-01-15 5:30 ` Zachary Kotlarek 2014-01-15 6:37 ` Dave Chinner 2014-01-15 8:21 ` Zachary Kotlarek 2014-01-15 15:54 ` Eric Sandeen 2014-01-15 21:08 ` Dave Chinner 2014-01-16 20:55 ` Michael Weissenbacher 2014-01-16 21:11 ` Shaun Gosse 2014-01-13 15:40 ` Michael Weissenbacher 2014-01-13 18:33 ` Zachary Kotlarek
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox