Re: [nfsv4] FYI: Readdir not allowed on NFS pseudo root

"Haynes, Tom" <thomas@netapp.com> Mon, 17 May 2004 19:02 UTC

Received: from optimus.ietf.org (optimus.ietf.org [132.151.1.19]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id PAA14841 for <nfsv4-archive@odin.ietf.org>; Mon, 17 May 2004 15:02:10 -0400 (EDT)
Received: from localhost.localdomain ([127.0.0.1] helo=www1.ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 1BPnCu-00052i-Qu for nfsv4-archive@odin.ietf.org; Mon, 17 May 2004 14:51:24 -0400
Received: (from exim@localhost) by www1.ietf.org (8.12.8/8.12.8/Submit) id i4HIpOt7019385 for nfsv4-archive@odin.ietf.org; Mon, 17 May 2004 14:51:24 -0400
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 1BPn6d-0003kI-8l for nfsv4-web-archive@optimus.ietf.org; Mon, 17 May 2004 14:44:55 -0400
Received: from ietf-mx (ietf-mx.ietf.org [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id OAA13616 for <nfsv4-web-archive@ietf.org>; Mon, 17 May 2004 14:44:52 -0400 (EDT)
Received: from ietf-mx.ietf.org ([132.151.6.1] helo=ietf-mx) by ietf-mx with esmtp (Exim 4.32) id 1BPn6a-00000P-Hs for nfsv4-web-archive@ietf.org; Mon, 17 May 2004 14:44:52 -0400
Received: from exim by ietf-mx with spam-scanned (Exim 4.12) id 1BPn5N-0007LZ-00 for nfsv4-web-archive@ietf.org; Mon, 17 May 2004 14:43:38 -0400
Received: from optimus.ietf.org ([132.151.1.19]) by ietf-mx with esmtp (Exim 4.12) id 1BPn41-0006s8-00 for nfsv4-web-archive@ietf.org; Mon, 17 May 2004 14:42:13 -0400
Received: from localhost.localdomain ([127.0.0.1] helo=www1.ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 1BPmtS-0000w3-O7; Mon, 17 May 2004 14:31:18 -0400
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 1BPlXX-0003RR-S2 for nfsv4@optimus.ietf.org; Mon, 17 May 2004 13:04:35 -0400
Received: from ietf-mx (ietf-mx.ietf.org [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id NAA05427 for <nfsv4@ietf.org>; Mon, 17 May 2004 13:04:32 -0400 (EDT)
Received: from ietf-mx.ietf.org ([132.151.6.1] helo=ietf-mx) by ietf-mx with esmtp (Exim 4.32) id 1BPlXW-0003AJ-2L for nfsv4@ietf.org; Mon, 17 May 2004 13:04:34 -0400
Received: from exim by ietf-mx with spam-scanned (Exim 4.12) id 1BPlWO-0002nt-00 for nfsv4@ietf.org; Mon, 17 May 2004 13:03:25 -0400
Received: from mx01.netapp.com ([198.95.226.53]) by ietf-mx with esmtp (Exim 4.12) id 1BPlVP-00026E-00; Mon, 17 May 2004 13:02:23 -0400
Received: from frejya.corp.netapp.com (frejya [10.57.157.119]) by mx01.netapp.com (8.12.10/8.12.10/NTAP-1.4) with ESMTP id i4HH1rZh012935; Mon, 17 May 2004 10:01:53 -0700 (PDT)
Received: from vineland.eng.netapp.com (vineland-fe.eng.netapp.com [10.56.10.196]) by frejya.corp.netapp.com (8.12.9/8.12.9/NTAP-1.5) with ESMTP id i4HH1rIC015171; Mon, 17 May 2004 10:01:53 -0700 (PDT)
Received: (from thomas@localhost) by vineland.eng.netapp.com (8.11.7p1+Sun/8.11.6) id i4HH1qe20229; Mon, 17 May 2004 10:01:52 -0700 (PDT)
From: "Haynes, Tom" <thomas@netapp.com>
Message-Id: <200405171701.i4HH1qe20229@vineland.eng.netapp.com>
Subject: Re: [nfsv4] FYI: Readdir not allowed on NFS pseudo root
In-Reply-To: <OF249BBB67.D9139D0E-ON87256E97.0052A4B0-88256E97.0058ED34@us.ibm.com> from Stevan Steve Allen at "May 17, 4 10:11:23 am"
To: scallen@us.ibm.com
Cc: rees@umich.edu, nfsv4@ietf.org, nfsv4-admin@ietf.org
X-Mailer: ELM [version 2.4ME++ PL40 (25)]
MIME-Version: 1.0
Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit
Content-Transfer-Encoding: 7bit
Sender: nfsv4-admin@ietf.org
Errors-To: nfsv4-admin@ietf.org
X-BeenThere: nfsv4@ietf.org
X-Mailman-Version: 2.0.12
Precedence: bulk
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=unsubscribe>
List-Id: NFSv4 Working Group <nfsv4.ietf.org>
List-Post: <mailto:nfsv4@ietf.org>
List-Help: <mailto:nfsv4-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=subscribe>
List-Archive: <https://www1.ietf.org/mail-archive/working-groups/nfsv4/>
X-Original-Date: Mon, 17 May 2004 10:01:52 -0700 (PDT)
Date: Mon, 17 May 2004 10:01:52 -0700
X-Spam-Checker-Version: SpamAssassin 2.60 (1.212-2003-09-23-exp) on ietf-mx.ietf.org
X-Spam-Status: No, hits=0.0 required=5.0 tests=none autolearn=no version=2.60
Content-Transfer-Encoding: 7bit
Content-Transfer-Encoding: 7bit

Why can't you just stich together the parts which are available with
pseudo entries?

                           /   (p)
                  / -------+-------------\
                FS1 (p)                  FS2 (p)
           /----+------\                  |
        USER1  USER2   PROJECTS (p)      HFS (p)
                           |              |
                           |             ETC
                           |
                  /--------+-----\
               PROD1 (p)  PROD2   ETC (p)


We have a disjoint FS space as well, and our root is really pseudo:

                          / (p)
                          |
                         vol (p)
                          |
                 +--------+-----------+
                 |        |           |
                vol0    vol1        smitty (p)
                                      |
                                    xavier

The point is that your pseudo-fs need not mimic the fs on your disks.
It just needs to present a gateway to all of your entry points.  Also,
even if a node corresponds to a physical directory, you do not need
report the attributes of that directory entry.  I.e., fudge the results.

> I also suspect ACCESS is the only available READDIR response, and our 
> design doc should be updated.
> 
> For NFSv3 we do not allow a mount on the flat fs root.  Mounting siblings, 
> in effect, creates "disconnected" tree structures described below.  Mount 
> and lookup provided the server a starting point (i.e. USER1).
> 
> The problem is due to the mentioned kernel restriction.  Where the server 
> can not obtain all the parent dirs (USER1, USER2..) shown in the FSYS1 
> sample below.
> 
> ---- FSYS1 ----
> /USER1  <-v3 mountpoint
>         |- PROJ
>         |- SETUP
>         '- ETC
> 
> /USER2  <-v3 mountpoint
>         |- PROJ
>         |- SETUP
>         '- ETC
> 
> /PROJECTS
>         |- PROD1
>         |- PROD2  <-v3 mountpoint
>         '- ETC
> 
> ---- FSYS2 ----
> /HFS
>         '- ETC  <-v3 mountpoint
> 
> Our current decision is to make the new v4 root to be the restrictive flat 
> fs root (this discussion).  Where '/HFS' represents crossing a mount 
> point. 
> 
> The idea of returning an empty dir list for the v4 root is interesting, if 
> clients update their cached name space from lookups and mounts. 
> 
> 
> Jim Rees Wrote:
> 
>   Seems like the server would return an "empty" response for READDIR
>   on this special server.
> 
> But that would be wrong too.  That would imply the directory is empty.  I
> can imagine a client that would get very confused by this.  Suppose, for
> example, the client caches directory contents after a successful READDIR,
> and uses the cached copy for subsequent lookups.  I think NFS4ERR_ACCESS 
> is
> the only acceptable response.
> 
>   This also implies that clients must use LOOKUP to traverse the
>   server's namespace on things like traditional mount operations that
>   a client would do.
> 
> Yes.  The client must be prepared for this anyway.  In fact, the client
> probably can't tell and doesn't care whether it's in a pseudo-fs or a real
> one.
> 
> _______________________________________________
> nfsv4 mailing list
> nfsv4@ietf.org
> https://www1.ietf.org/mailman/listinfo/nfsv4
> 


-- 
Tom Haynes, ex-cfb
thomas@netapp.com

_______________________________________________
nfsv4 mailing list
nfsv4@ietf.org
https://www1.ietf.org/mailman/listinfo/nfsv4