public inbox for linux-nfs@vger.kernel.org
 help / color / mirror / Atom feed
* regression when opening directories on NFSv4
@ 2011-09-21 15:58 Jeff Layton
  2011-09-21 18:53 ` Trond Myklebust
  0 siblings, 1 reply; 5+ messages in thread
From: Jeff Layton @ 2011-09-21 15:58 UTC (permalink / raw)
  To: linux-nfs

We had a regression reported against RHEL concerning the opening of
directories and it looks like that same problem is in current mainline
code too. If you do the following on a directory that is not yet in the
dcache you get an EISDIR error:

     open("/mnt/nfs/dir1", O_RDONLY)         = -1 EISDIR (Is a directory)

If however, you stat the directory first, the open works. The
difference seems to be that in the first case we're going through the
lookup codepath, and in the second we go through d_revalidate.

In the first case, we send an OPEN call to the server and it responds
with NFS4ERR_ISDIR. That gets translated to -EISDIR, and returned to
userspace. It wasn't always this way though, and I think the regression
was introduced in commit d953126a2.

That patch was added to fix an oops due to a buggy server, and I'm
unclear on how best to fix this. It seems like we need to allow the
server to fall back to doing a normal lookup when we get -EISDIR on the
OPEN call, but how do we ensure that we don't end up with the same oops
from that server bug?

Thoughts?
-- 
Jeff Layton <jlayton@redhat.com>

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2011-09-22 14:31 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-09-21 15:58 regression when opening directories on NFSv4 Jeff Layton
2011-09-21 18:53 ` Trond Myklebust
2011-09-21 19:10   ` Jeff Layton
2011-09-21 19:30     ` Trond Myklebust
2011-09-22 14:34       ` Jeff Layton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox