2014-04-04 21:57:22

by Toralf Förster

[permalink] [raw]
Subject: NFSv2 directory cannot longer be exported in 3.14, 3.13 works fine

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

At a user mode linux image (32 bit Gentoo Linux) the recent kernel gives this error while trying to mount a NFSv2 directory:
mount.nfs: mount point /mnt/nfsv2 is not a directory


The hostname is n22stab4, contents of the files follows.


/etc/fstab:
tmpfs /mnt/ramdisk tmpfs auto,size=300M
n22stab4:/mnt/ramdisk /mnt/nfsv2 nfs auto,bg,intr,soft,nfsvers=2


/etc/exports:
/mnt/ramdisk 192.168.0.0/16(rw,fsid=0,insecure,no_subtree_check,async,no_root_squash)


/var/log/messages:
Apr 4 23:55:45 n22stab4 kernel: init_special_inode: bogus i_mode (1777) for inode 0:24:818

- --
MfG/Sincerely
Toralf Förster
pgp finger print:1A37 6F99 4A9D 026F 13E2 4DCF C4EA CDDE 0076 E94E
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iF4EAREIAAYFAlM/Kr8ACgkQxOrN3gB26U4PSgD9EhS86BoFwdVOpBU3dkw9CDwL
HeIby5M2zFkzVHCuv6MA/iYKV/PkjrS6lxvIDLDpIuAEWRyx097ueE0ugaQ0J/ls
=vQ3c
-----END PGP SIGNATURE-----


2014-04-05 13:23:11

by Toralf Förster

[permalink] [raw]
Subject: Re: NFSv2 directory cannot longer be exported in 3.14, 3.13 works fine

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

On 04/05/2014 02:51 PM, Jeff Layton wrote:
> This was already tracked down earlier this week. Bruce has a patch
> queued to fix it in his nfsd-next branch. See this thread from
> earlier this week:
>
> Subject: Re: linux-3.14 nfsd regression
yep - fixed the issue here

- --
MfG/Sincerely
Toralf Förster
pgp finger print:1A37 6F99 4A9D 026F 13E2 4DCF C4EA CDDE 0076 E94E
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iF4EAREIAAYFAlNAA7kACgkQxOrN3gB26U5UiwD/X/ONRaFIMGyxHLZd7cwrN4zh
QADbpEhyT+N6KwH6m2wA/j++6yigdEtV7k9pjEWMwlCZUyT8reUbNzZOhxMl10+i
=WGBv
-----END PGP SIGNATURE-----

2014-04-05 12:51:50

by Jeff Layton

[permalink] [raw]
Subject: Re: NFSv2 directory cannot longer be exported in 3.14, 3.13 works fine

On Sat, 05 Apr 2014 14:17:27 +0200
Toralf F?rster <[email protected]> wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
>
> On 04/04/2014 11:57 PM, Toralf F?rster wrote:
> > At a user mode linux image (32 bit Gentoo Linux) the recent kernel gives this error while trying to mount a NFSv2 directory:
> > mount.nfs: mount point /mnt/nfsv2 is not a directory
> >
>
> A bisect points to :
>
> 6e14b46b91fee8a049b0940333ce13a820beaaa5 is the first bad commit
> commit 6e14b46b91fee8a049b0940333ce13a820beaaa5
> Author: Albert Fluegel <[email protected]>
> Date: Mon Nov 18 12:18:01 2013 -0500
>
> nfsd: don't return high mode bits
>
> The Linux NFS server replies among other things to a "Check access permission"
> the following:
>
> NFS: File type = 2 (Directory)
> NFS: Mode = 040755
>
> A netapp server replies here:
> NFS: File type = 2 (Directory)
> NFS: Mode = 0755
>
> The RFC 1813 i read:
> fattr3
>
> struct fattr3 {
> ftype3 type;
> mode3 mode;
> uint32 nlink;
> ...
> For the mode bits only the lowest 9 are defined in the RFC
>
> As far as I can tell, knfsd has always done this, so apparently it's harmless.
> Nevertheless, it appears to be wrong.
>
> Note this is already correct in the NFSv4 case, only v2 and v3 need
> fixing.
>
> Signed-off-by: J. Bruce Fields <[email protected]>
>
> :040000 040000 a60e55f5a9749db3977e12e8baa08d45fadba225 b982c02ec1069c5d969ccb71197e5569fe93b075 M fs
>
> - --
> MfG/Sincerely
> Toralf F?rster
> pgp finger print:1A37 6F99 4A9D 026F 13E2 4DCF C4EA CDDE 0076 E94E
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v2.0.22 (GNU/Linux)
> Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
>
> iF4EAREIAAYFAlM/9FcACgkQxOrN3gB26U5F1AD+JAP4cDM+rT9nk9Q8q681RywT
> Ejxq7d0tnVUfWyDFDTgA/1sIUtpv9GSK8SeAJFu7oAhMt4e6eeIdbpMT2qUEQv6q
> =Sles
> -----END PGP SIGNATURE-----
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html

This was already tracked down earlier this week. Bruce has a patch
queued to fix it in his nfsd-next branch. See this thread from earlier
this week:

Subject: Re: linux-3.14 nfsd regression

--
Jeff Layton <[email protected]>

2014-04-05 12:17:31

by Toralf Förster

[permalink] [raw]
Subject: Re: NFSv2 directory cannot longer be exported in 3.14, 3.13 works fine

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

On 04/04/2014 11:57 PM, Toralf Förster wrote:
> At a user mode linux image (32 bit Gentoo Linux) the recent kernel gives this error while trying to mount a NFSv2 directory:
> mount.nfs: mount point /mnt/nfsv2 is not a directory
>

A bisect points to :

6e14b46b91fee8a049b0940333ce13a820beaaa5 is the first bad commit
commit 6e14b46b91fee8a049b0940333ce13a820beaaa5
Author: Albert Fluegel <[email protected]>
Date: Mon Nov 18 12:18:01 2013 -0500

nfsd: don't return high mode bits

The Linux NFS server replies among other things to a "Check access permission"
the following:

NFS: File type = 2 (Directory)
NFS: Mode = 040755

A netapp server replies here:
NFS: File type = 2 (Directory)
NFS: Mode = 0755

The RFC 1813 i read:
fattr3

struct fattr3 {
ftype3 type;
mode3 mode;
uint32 nlink;
...
For the mode bits only the lowest 9 are defined in the RFC

As far as I can tell, knfsd has always done this, so apparently it's harmless.
Nevertheless, it appears to be wrong.

Note this is already correct in the NFSv4 case, only v2 and v3 need
fixing.

Signed-off-by: J. Bruce Fields <[email protected]>

:040000 040000 a60e55f5a9749db3977e12e8baa08d45fadba225 b982c02ec1069c5d969ccb71197e5569fe93b075 M fs

- --
MfG/Sincerely
Toralf Förster
pgp finger print:1A37 6F99 4A9D 026F 13E2 4DCF C4EA CDDE 0076 E94E
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iF4EAREIAAYFAlM/9FcACgkQxOrN3gB26U5F1AD+JAP4cDM+rT9nk9Q8q681RywT
Ejxq7d0tnVUfWyDFDTgA/1sIUtpv9GSK8SeAJFu7oAhMt4e6eeIdbpMT2qUEQv6q
=Sles
-----END PGP SIGNATURE-----