NFSv4: After upgrade to 9 users can no longer list files. (sounds like a ZFS issue?)

Rick Macklem rmacklem at uoguelph.ca
Wed Aug 31 12:49:57 UTC 2011


George Liaskos wrote:
> > You could try this patch and see what effect it has (applied to the
> > server). It just disables the access check for readdir.
> > --- nfs_nfsdport.c.sav2 2011-08-30 10:35:58.000000000 -0400
> > +++ nfs_nfsdport.c 2011-08-30 10:36:54.000000000 -0400
> > @@ -1838,10 +1838,12 @@ nfsrvd_readdirplus(struct nfsrv_descript
> >                nd->nd_repstat = NFSERR_NOTDIR;
> >        if (!nd->nd_repstat && cnt == 0)
> >                nd->nd_repstat = NFSERR_TOOSMALL;
> > +#ifdef notnow
> >        if (!nd->nd_repstat)
> >                nd->nd_repstat = nfsvno_accchk(vp, VEXEC,
> >                    nd->nd_cred, exp, p, NFSACCCHK_NOOVERRIDE,
> >                    NFSACCCHK_VPISLOCKED, NULL);
> > +#endif
> >        if (nd->nd_repstat) {
> >                vput(vp);
> >                if (nd->nd_flag & ND_NFSV3)
> >
> > This wouldn't be suitable for a production system, but whether or
> > not it "fixes" the problem would give us an indication of where the
> > problem is.
> >
> > Also, if you could clarify when your 8/stable was downloaded,
> > whether
> > your 9.0 upgrade was to vanilla Beta1 or ??? and details w.r.t. your
> > ZFS setup, that might help.
> 
> I use svn, unfortunately i don't remember exactly when i moved from
> 8.2 to stable. I synced with CURRENT last week and this issue
> appeared, i did a second update to beta 2 [r225237] with the same
> results.
> 
> The patch didn't make any difference. I downloaded an ISO with BETA-1
> and
> made a VM installation, i was not able to reproduce this.
> 
> Updated one of the clients to r225237, setup some nfs exports on top
> of ZFS
> and ls does not work for non root users. I created a new pool on top
> of a memory fs
> to test this.
> 
> Next, i "downgraded" the server to BETA-1 [r224413] and everything is
> back to normal.
Ok, so it sounds like a post-Beta1 server issue. Did I get that correct?

> So there's a bug which was introduced somewhere between BETA-1 &&
> BETA-2 :p
> 
Well, I can't imagine why this would matter, but you can try this patch,
which fixes a problem introduced by r224810 where Lookup ".." no longer
works. (It's at http://people.freebsd.org/~rmacklem/dotdot.patch, in case
the white space gets munged.)
Index: fs/nfsserver/nfs_nfsdport.c
===================================================================
--- fs/nfsserver/nfs_nfsdport.c	(revision 225270)
+++ fs/nfsserver/nfs_nfsdport.c	(working copy)
@@ -282,6 +282,7 @@ nfsvno_namei(struct nfsrv_descript *nd, struct nam
 
 	*retdirp = NULL;
 	cnp->cn_nameptr = cnp->cn_pnbuf;
+	ndp->ni_strictrelative = 0;
 	/*
 	 * Extract and set starting directory.
 	 */
Index: nfsserver/nfs_serv.c
===================================================================
--- nfsserver/nfs_serv.c	(revision 225270)
+++ nfsserver/nfs_serv.c	(working copy)
@@ -157,6 +157,7 @@ ndclear(struct nameidata *nd)
 	nd->ni_vp = NULL;
 	nd->ni_dvp = NULL;
 	nd->ni_startdir = NULL;
+	nd->ni_strictrelative = 0;
 }
 
 /*

rick
> Thank you for your help!
> 
> Regards,
> George


More information about the freebsd-fs mailing list