From: Al Viro <viro@ZenIV.linux.org.uk>
To: Patrick McLean <patrickm@gaikai.com>
Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
Trond Myklebust <Trond.Myklebust@netapp.com>,
linux-nfs@vger.kernel.org
Subject: Re: Regression with initramfs and nfsroot (appears to be in the dcache)
Date: Fri, 30 Nov 2012 00:35:02 +0000 [thread overview]
Message-ID: <20121130003502.GY4939@ZenIV.linux.org.uk> (raw)
In-Reply-To: <50B7FBA7.2030300@gaikai.com>
On Thu, Nov 29, 2012 at 04:19:51PM -0800, Patrick McLean wrote:
> >> [ 8.821584] FH(0)]
> >> [ 8.821586] FH(36)[01 00 07 01 89 00 00 00 00 00 00 00 e1 21 fe c4 9e 38 44 dc bf 1b d5 95 d6 76 d6 d9 a7 3c 1b 80 33 38 e3 62]
> >> [ 8.821601] filename: proc
> >
> > *whoa*
> >
> > So we have zero entry->fh->size? No wonder it doesn't match... Which NFS
> > version it is? entry->fh->size is set by nfs[34]_decode_dirent().
>
> This is nfs v3 over TCP on Linus git at commit e9296e89b85604862bd9ec2d54dc43edad775c0d with nfs-utils-1.2.6 userspace.
So we have nfs3_decode_dirent(), stepping into
/* In fact, a post_op_fh3: */
p = xdr_inline_decode(xdr, 4);
if (unlikely(p == NULL))
goto out_overflow;
if (*p != xdr_zero) {
error = decode_nfs_fh3(xdr, entry->fh);
if (unlikely(error)) {
if (error == -E2BIG)
goto out_truncated;
return error;
}
} else
zero_nfs_fh3(entry->fh);
Interesting... Server-side that should've been produced by
encode_entryplus_baggage(), which looks like failing compose_entry_fh()...
which has explicit
if (d_mountpoint(dchild))
goto out;
resulting in ENOENT on everything that's overmounted on server.
Do you, by any chance, have the server really exporting its own root
filesystem? Another thing to check: have nfs_prime_dcache() print
filename.name of everything that fails nfs_same_entry() and has
zero entry->fh->size, regardless of d_invalidate() results.
next prev parent reply other threads:[~2012-11-30 0:35 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-29 19:16 Regression with initramfs and nfsroot (appears to be in the dcache) Patrick McLean
2012-11-29 21:33 ` Al Viro
2012-11-29 22:06 ` Patrick McLean
2012-11-29 22:21 ` Al Viro
2012-11-29 22:53 ` Patrick McLean
2012-11-29 23:43 ` Al Viro
2012-11-30 0:19 ` Patrick McLean
2012-11-30 0:35 ` Al Viro [this message]
2012-11-30 0:57 ` Patrick McLean
2012-11-30 1:36 ` Al Viro
2012-11-30 1:54 ` Patrick McLean
2012-11-30 2:00 ` Al Viro
2012-11-30 2:00 ` Al Viro
2012-11-30 2:33 ` Patrick McLean
2012-11-30 2:33 ` Patrick McLean
2012-11-30 4:11 ` Al Viro
2012-11-30 4:11 ` Al Viro
2012-11-30 13:58 ` Myklebust, Trond
2012-11-30 13:58 ` Myklebust, Trond
2012-11-30 13:58 ` Myklebust, Trond
2012-12-01 21:40 ` Al Viro
2012-12-01 2:18 ` Simon Kirby
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=20121130003502.GY4939@ZenIV.linux.org.uk \
--to=viro@zeniv.linux.org.uk \
--cc=Trond.Myklebust@netapp.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nfs@vger.kernel.org \
--cc=patrickm@gaikai.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.