linux-ext4.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Darrick J. Wong" <darrick.wong@oracle.com>
To: George Spelvin <linux@horizon.com>
Cc: linux-ext4@vger.kernel.org, tm@tao.ma, tytso@mit.edu
Subject: Re: ext4: fix metadata checksum calculation for the superblock
Date: Thu, 1 Nov 2012 00:18:18 -0700	[thread overview]
Message-ID: <20121101071818.GG19576@blackbox.djwong.org> (raw)
In-Reply-To: <20121101070731.21349.qmail@science.horizon.com>

On Thu, Nov 01, 2012 at 03:07:31AM -0400, George Spelvin wrote:
> > Yes, it would be useful to know what's going on with this directory file,
> > since it seems to fallback to linear scan, yet e2fsck -D doesn't fix it.
> > What I was /going/ for was that the kernel would notice a bad directory
> > and flag it for fsck on reboot.  Upon reboot, fsck would be run, notice
> > the bad dir, and feed it to the directory rebuilder to get it fixed
> > for good.  However, there doesn't seem to be any real checksum mismatch,
> > so the rebuild doesn't happen.
> 
> That's what confuses me.  I had already run e2fsck -D (which I assume
> rebuilds all directories, even if unnecessary) before observing the
> problem.  The other odd clue is that it's always nfsd that chokes;
> other accesses to the directory (ls -U, ls -lU, grep -r) don't produce
> the message.

Oh, so ... it's just nfsd that causes the linear fallback?  Regular (i.e.
non-nfs) users can see everything in the dir, no error messages?

Now *that* is odd. :)

You know, I was starting to wonder what on earth would even cause the fallback
in the first place.  It even looked like most of the "your dir is corrupt"
exits from that function would spit out an error or be somehow obviously
broken.

> > Also ... refresh my memory -- some files have disappeared as a result of this
> > happening?
> 
> I haven't observed it, no.  But the nature of the symptoms suggests it
> might be happening.

Hum.  When linear scan happens on a hashed dir, it's scanning the same blocks
that the hash scan sees.   The htree block looks like a regular directory block
with one huge "unused" dirent that wraps all the htree data.  So, the linear
scan should find the exact same files as a htree scan would.  If it doesn't,
something's wrong.  But you say it isn't, so I imagine it's fine.

<shrug> Another thing for me to ponder tomorrow. :)

--D

  reply	other threads:[~2012-11-01  7:18 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-07  5:04 metadata_csum + unclean shutdown = failure to boot George Spelvin
2012-10-07 13:39 ` Tao Ma
2012-10-07 15:09   ` George Spelvin
2012-10-07 18:10     ` Theodore Ts'o
2012-10-07 20:18       ` George Spelvin
2012-10-07 22:54         ` Theodore Ts'o
2012-10-08  1:05           ` George Spelvin
2012-10-08  1:25           ` George Spelvin
2012-10-08  2:41             ` Theodore Ts'o
2012-10-08  3:17               ` George Spelvin
2012-10-08  4:03                 ` Tao Ma
2012-10-08 11:35                   ` George Spelvin
2012-11-01  1:05               ` ext4: fix metadata checksum calculation for the superblock George Spelvin
2012-11-01  1:13                 ` Darrick J. Wong
2012-11-01  1:50                   ` Theodore Ts'o
2012-11-01  3:22                     ` Darrick J. Wong
2012-11-01  6:12                     ` George Spelvin
2012-11-01  6:49                       ` Darrick J. Wong
2012-11-01  7:07                         ` George Spelvin
2012-11-01  7:18                           ` Darrick J. Wong [this message]
2012-11-01  7:28                             ` George Spelvin
2012-11-02  0:05                               ` Darrick J. Wong

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=20121101071818.GG19576@blackbox.djwong.org \
    --to=darrick.wong@oracle.com \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux@horizon.com \
    --cc=tm@tao.ma \
    --cc=tytso@mit.edu \
    /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;
as well as URLs for NNTP newsgroup(s).