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

Stevan Steve Allen <scallen@us.ibm.com> Mon, 17 May 2004 18:36 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 OAA12705 for <nfsv4-archive@odin.ietf.org>; Mon, 17 May 2004 14:36:29 -0400 (EDT)
Received: from localhost.localdomain ([127.0.0.1] helo=www1.ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 1BPmqf-0000IF-2j for nfsv4-archive@odin.ietf.org; Mon, 17 May 2004 14:28:25 -0400
Received: (from exim@localhost) by www1.ietf.org (8.12.8/8.12.8/Submit) id i4HISPkU001127 for nfsv4-archive@odin.ietf.org; Mon, 17 May 2004 14:28:25 -0400
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 1BPmaZ-00068i-3C for nfsv4-web-archive@optimus.ietf.org; Mon, 17 May 2004 14:11:47 -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 OAA09799 for <nfsv4-web-archive@ietf.org>; Mon, 17 May 2004 14:11:44 -0400 (EDT)
Received: from ietf-mx.ietf.org ([132.151.6.1] helo=ietf-mx) by ietf-mx with esmtp (Exim 4.32) id 1BPmaW-0003CG-Ms for nfsv4-web-archive@ietf.org; Mon, 17 May 2004 14:11:44 -0400
Received: from exim by ietf-mx with spam-scanned (Exim 4.12) id 1BPmZR-0002mk-00 for nfsv4-web-archive@ietf.org; Mon, 17 May 2004 14:10:38 -0400
Received: from optimus.ietf.org ([132.151.1.19]) by ietf-mx with esmtp (Exim 4.12) id 1BPmYE-0002JQ-00 for nfsv4-web-archive@ietf.org; Mon, 17 May 2004 14:09:22 -0400
Received: from localhost.localdomain ([127.0.0.1] helo=www1.ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 1BPmGY-0002Qn-AU; Mon, 17 May 2004 13:51:06 -0400
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 1BPmB6-0001QL-67 for nfsv4@optimus.ietf.org; Mon, 17 May 2004 13:45:28 -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 NAA08001 for <nfsv4@ietf.org>; Mon, 17 May 2004 13:45:26 -0400 (EDT)
Received: from ietf-mx.ietf.org ([132.151.6.1] helo=ietf-mx) by ietf-mx with esmtp (Exim 4.32) id 1BPmB3-0001ku-UM for nfsv4@ietf.org; Mon, 17 May 2004 13:45:26 -0400
Received: from exim by ietf-mx with spam-scanned (Exim 4.12) id 1BPmAB-0001Po-00 for nfsv4@ietf.org; Mon, 17 May 2004 13:44:32 -0400
Received: from e31.co.us.ibm.com ([32.97.110.129]) by ietf-mx with esmtp (Exim 4.12) id 1BPm9L-00010x-00; Mon, 17 May 2004 13:43:39 -0400
Received: from westrelay04.boulder.ibm.com (westrelay04.boulder.ibm.com [9.17.193.32]) by e31.co.us.ibm.com (8.12.10/8.12.2) with ESMTP id i4HHh9pj107050; Mon, 17 May 2004 13:43:09 -0400
Received: from d03nm113.boulder.ibm.com (d03av04.boulder.ibm.com [9.17.195.170]) by westrelay04.boulder.ibm.com (8.12.10/NCO/VER6.6) with ESMTP id i4HHh7Bd181112; Mon, 17 May 2004 11:43:07 -0600
In-Reply-To: <200405171701.i4HH1qe20229@vineland.eng.netapp.com>
To: "Haynes, Tom" <thomas@netapp.com>
Cc: nfsv4@ietf.org, nfsv4-admin@ietf.org, rees@umich.edu
MIME-Version: 1.0
Subject: Re: [nfsv4] FYI: Readdir not allowed on NFS pseudo root
X-Mailer: Lotus Notes Release 6.0.2CF1 June 9, 2003
Message-ID: <OF4DEF69D8.7FFF9C9F-ON87256E97.00603C0C-88256E97.0061522A@us.ibm.com>
From: Stevan Steve Allen <scallen@us.ibm.com>
X-MIMETrack: Serialize by Router on D03NM113/03/M/IBM(Release 6.0.2CF2HF259 | March 11, 2004) at 05/17/2004 11:43:07, Serialize complete at 05/17/2004 11:43:07
Content-Type: multipart/alternative; boundary="=_alternative 0061522788256E97_="
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:43:05 -0700
Date: Mon, 17 May 2004 10:43:05 -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.4 required=5.0 tests=AWL,HTML_20_30,HTML_MESSAGE autolearn=no version=2.60

Tom,  In your example, the NFS server has no way to query the kernel to 
obtain {USER1, USER2, PROJECTS}.  The limit to the number of entries under 
FS1 is Approx 0.5 trillion.

Thanks,
Stevan C. Allen

"Haynes, Tom"  wrote:

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