James Lentini wrote: > > On Mon, 24 Sep 2007, Chuck Lever wrote: > >> Hi James- >> >> James Lentini wrote: >>> If no mount server port number is specified, this change to the kernel mount >>> client >>> >>> http://linux-nfs.org/cgi-bin/gitweb.cgi?p=nfs-2.6.git;a=commitdiff;h=209ce98 >>> 06996537eceaf07d95def0e9300316c84 >>> >>> inadvertently allows the NFS server's port number to be the used as the >>> mount server's port number. If the user specifies an NFS server port (-o >>> port=x), the mount will fail. >>> >>> The fix below sets the mount server's port to 0 if no mount server port is >>> specified by the user. >>> >>> Signed-off-by: James Lentini >>> -- >>> >>> super.c | 2 ++ >>> 1 file changed, 2 insertions(+) >>> >>> Index: nfs-2.6/fs/nfs/super.c >>> =================================================================== >>> --- nfs-2.6/fs/nfs/super.c >>> +++ nfs-2.6/fs/nfs/super.c >>> @@ -1006,6 +1006,8 @@ static int nfs_try_mount(struct nfs_pars >>> sin = args->nfs_server.address; >>> if (args->mount_server.port != 0) >>> sin.sin_port = htons(args->mount_server.port); >>> + else >>> + sin.sin_port = htons(0); >> Why not just set sin.sin_port = args->mount_server.port unconditionally? > > Good observation. Something like this perhaps? > > Signed-off-by: James Lentini > > Index: nfs-2.6/fs/nfs/super.c > =================================================================== > --- nfs-2.6/fs/nfs/super.c > +++ nfs-2.6/fs/nfs/super.c > @@ -1004,8 +1004,10 @@ static int nfs_try_mount(struct nfs_pars > sin = args->mount_server.address; > else > sin = args->nfs_server.address; > - if (args->mount_server.port != 0) > - sin.sin_port = htons(args->mount_server.port); > + /* > + * autobind will be used if mount_server.port == 0 > + */ > + sin.sin_port = htons(args->mount_server.port); > > /* > * Now ask the mount server to map our export path That's the idea, but I don't think the comment is needed.