Date: Wed, 31 Aug 2011 08:49:55 -0400 (EDT) From: Rick Macklem <rmacklem@uoguelph.ca> To: George Liaskos <geo.liaskos@gmail.com> Cc: freebsd-fs@freebsd.org, Pawel Jakub Dawidek <pjd@freebsd.org> Subject: Re: NFSv4: After upgrade to 9 users can no longer list files. (sounds like a ZFS issue?) Message-ID: <382461010.589453.1314794995233.JavaMail.root@erie.cs.uoguelph.ca> In-Reply-To: <CANcjpOByga-_DPnrm69731q6CvkGV7hHSHRVsnakzkVjzTQOHw@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
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 > > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0nd->nd_repstat = =3D NFSERR_NOTDIR; > > =C2=A0 =C2=A0 =C2=A0 =C2=A0if (!nd->nd_repstat && cnt =3D=3D 0) > > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0nd->nd_repstat = =3D NFSERR_TOOSMALL; > > +#ifdef notnow > > =C2=A0 =C2=A0 =C2=A0 =C2=A0if (!nd->nd_repstat) > > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0nd->nd_repstat = =3D nfsvno_accchk(vp, VEXEC, > > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0nd= ->nd_cred, exp, p, NFSACCCHK_NOOVERRIDE, > > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0NF= SACCCHK_VPISLOCKED, NULL); > > +#endif > > =C2=A0 =C2=A0 =C2=A0 =C2=A0if (nd->nd_repstat) { > > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0vput(vp); > > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (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. >=20 > 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. >=20 > 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. >=20 > 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. >=20 > 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 >=20 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 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- fs/nfsserver/nfs_nfsdport.c=09(revision 225270) +++ fs/nfsserver/nfs_nfsdport.c=09(working copy) @@ -282,6 +282,7 @@ nfsvno_namei(struct nfsrv_descript *nd, struct nam =20 =09*retdirp =3D NULL; =09cnp->cn_nameptr =3D cnp->cn_pnbuf; +=09ndp->ni_strictrelative =3D 0; =09/* =09 * Extract and set starting directory. =09 */ Index: nfsserver/nfs_serv.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- nfsserver/nfs_serv.c=09(revision 225270) +++ nfsserver/nfs_serv.c=09(working copy) @@ -157,6 +157,7 @@ ndclear(struct nameidata *nd) =09nd->ni_vp =3D NULL; =09nd->ni_dvp =3D NULL; =09nd->ni_startdir =3D NULL; +=09nd->ni_strictrelative =3D 0; } =20 /* rick > Thank you for your help! >=20 > Regards, > George
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?382461010.589453.1314794995233.JavaMail.root>