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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.