From: Dave Chinner <david@fromorbit.com>
To: Zachary Kotlarek <zach@kotlarek.com>
Cc: xfs@oss.sgi.com
Subject: Re: Files with non-ASCII names inaccessible after xfs_repair
Date: Wed, 15 Jan 2014 12:53:50 +1100 [thread overview]
Message-ID: <20140115015350.GR3469@dastard> (raw)
In-Reply-To: <BE0C947E-37DE-4CA1-B120-59B95E1E8EB8@kotlarek.com>
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
next prev parent reply other threads:[~2014-01-15 1:54 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
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 [this message]
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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140115015350.GR3469@dastard \
--to=david@fromorbit.com \
--cc=xfs@oss.sgi.com \
--cc=zach@kotlarek.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox