Chuck Lever [Tue, 11 Mar 2008 17:11:50 +0000 (13:11 -0400)]
Recently #include directives for autoconf's config.h file were added in
utils/mount/error.c and utils/mount/mount.c, but appropriate HAVE_CONFIG_H
checks were not added at the same time.
In addition, several other .c files under utils/mount reference
autoconf-generated HAVE_ macros, but don't appear to include config.h
Also, Heinz-Ado Arnolds <arnolds@MPA-Garching.MPG.DE> reports that this
patch is needed to ensure START_STATD is properly defined in
utils/mount/network.c. Otherwise start_statd() is always a no-op, even if
the configure script defines an appropriate statd start-up script.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Cc: Heinz-Ado Arnolds <arnolds@MPA-Garching.MPG.DE> Signed-off-by: Steve Dickson <steved@dickson.boston.devel.redhat.com>
The mount(5) man page states that the noquota, quota, usrquota and
grpquota options are ignored. (They are, however, used by the quota
tools, so having them in fstab can be useful.) Make mount.nfs ignore
them properly, matching the man page. There are a few aliases (like
usrjquota) that are parsed by quota, but as these are not documented
nor seem to be widely used, they are not included.
Signed-off-by: Steinar H. Gunderson <sgunderson@bigfoot.com> Signed-off-by: Steve Dickson <steved@redhat.com>
Chuck Lever [Wed, 5 Mar 2008 15:07:11 +0000 (10:07 -0500)]
As part of migrating from nfs@lists.sf.net to linux-nfs@vger.kernel.org,
update the mailing list address used to report bugs in nfs-utils.
Removed the BUGS section in the mount.nfs and umount.nfs man pages since
they weren't consistent with the contents of the BUGS sections in others
in nfs-utils.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
NeilBrown [Tue, 26 Feb 2008 18:57:39 +0000 (13:57 -0500)]
If validateascii is passed a string containing only non-zero 7bit
values, then the loop with exit with i == len, and the following
test will access beyond the end of the array.
So add an extra test to fix this.
Found by Marcus Meissner <meissner@novell.com>.
Signed-off-by: NeilBrown <neilb@suse.de> Signed-off-by: Steve Dickson <steved@redhat.com>
In mountd, if get_exportlist() (utils/mountd/mountd.c) returns NULL it
should not be considered a failure. It just means that there are no
exports on the system.
The practical problem with the current code is that a showmount -e
results in a syslog message from mountd that looks like:
rpc.mountd: export request from 10.250.100.2 failed.
Steve Dickson [Sat, 19 Jan 2008 12:59:26 +0000 (07:59 -0500)]
Fix bug when both crossmnt and fsid are set.
When exported a filesystems with option inherited (by the crossmnt
option) from a higherlevel filesystem, ignore filesystem specific
options like FSID and explicit UUID.
Signed-off-by: NeilBrown <neilb@suse.de> Signed-off-by: Steve Dickson <steved@redhat.com>
Steve Dickson [Thu, 17 Jan 2008 16:25:37 +0000 (11:25 -0500)]
Stop segfaults on amd64 during warnings messages by creating
a second va_list in xlog_backend() and then use that va_list
to print messages on stderr.
Signed-off-by: Steinar H. Gunderson <sesse@debian.org> Signed-off-by: Steve Langasek <vorlon@debian.org> Signed-off-by: Steve Dickson <steved@dickson.boston.devel.redhat.com>
Steve Dickson [Wed, 16 Jan 2008 16:53:41 +0000 (11:53 -0500)]
Address an inconsistency: the mount.nfs command uses the glibc routines
to manipulate /etc/mtab (setmntent) but, everything else in nfs-utils
uses a local private version (nfs_setmntent). The local version does
some extra mangling of the mtab entries.
We should check what util-linux does these days to be sure, but for now,
let's make the mount.nfs command use the nfs_ variants of setmntent().
Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
Steve Dickson [Sat, 3 Nov 2007 14:40:36 +0000 (10:40 -0400)]
When mountd gets a request to export a mountpoint which is not
explicitly exported, but is below an export point that is flagged as
"crossmnt", it passes the wrong path name to the kernel for the
"filehandle -> directory"
mapping.
This can badly confuse the NFS client, and is certainly wrong.
So use the correct path names.
Signed-off-by: Neil Brown <neilb@suse.de> Signed-off-by: Steve Dickson <steved@redhat.com>
Steve Dickson [Sat, 3 Nov 2007 14:36:36 +0000 (10:36 -0400)]
When following a list of mount versions to probe -
e.g. probe_mnt1_first or probe_mnt3_first - probe_both will first
probe the appropriate NFS version and then, if that succeeds, probe
the actual mount version. However instead of probing the target mount
version, it probes the "most appropriate" mount version for the given NFS version.
This results in it probing:
NFSv2, MOUNTv1
twice rather than
NFSv2, MOUNTv1
NFSv2, MOUNTv2
as would be more correct.
This patch removes the "choose most correct" step and just use the
current mouint version for the probe_vers array.
Signed-off-by: Neil Brown <neilb@suse.de> Signed-off-by: Steve Dickson <steved@redhat.com>
Steve Dickson [Sat, 3 Nov 2007 13:35:05 +0000 (09:35 -0400)]
This means that if mountd is run with "--no-nfs-version 3",
It will first probe for NFS version 3, which will succeed (assuming the
kernel supported NFSv3), then it will check the matching mountd version (3)
and probe_port on discovering that isn't supported will try other versions,
find "1" is supported will succeed.
This leaves up using mount version 1 for an NFSv3 mount, which doesn't work
and leads to a SIGSEGV
There is no case where trying other versions is needed the request one is
not supported, so simply remove that code.
Signed-off-by: Neil Brown <neilb@suse.de> Signed-off-by: Steve Dickson <steved@redhat.com>
Kevin Coffman [Fri, 12 Oct 2007 20:35:25 +0000 (16:35 -0400)]
Remove unnecessary code from idmapd.
This patch removes unnecessary code from idmapd. setproctitle is not used
anywhere and it can be removed. In addition the kernel section of the
nfs_idmap.h header is not used and is out of date and thus is removed.
Signed-off-by: David P. Quigley <dpquigl@tycho.nsa.gov> Signed-off-by: Kevin Coffman <kwc@citi.umich.edu> Signed-off-by: Neil Brown <neilb@suse.de>
Kevin Coffman [Fri, 12 Oct 2007 20:35:20 +0000 (16:35 -0400)]
Remove old logging implementation for idmapd and rework gssd and idmapd to use the new xlog logging infrastructure.
This patch removes all of the old idmap_* logging functions and replaced them
with the corresponding xlog functions. In addition that that it also reworks
the gssd logging wrappers to use the new xlog_backend. Finally it makes
necessary changes to the build files to get the project compiling again.
Signed-off-by: David P. Quigley <dpquigl@tycho.nsa.gov> Signed-off-by: Kevin Coffman <kwc@citi.umich.edu> Signed-off-by: Neil Brown <neilb@suse.de>
Kevin Coffman [Fri, 12 Oct 2007 20:35:15 +0000 (16:35 -0400)]
Cleanup xlog logging code to be safe and usable for all
This patch reworks the xlog logging code to avoid rebuilding the message into a
fixed size buffer. It also adds two new logging functions xlog_warn and
xlog_err which are replacements for idmap_warn and idmap_err. There use to be
two different variates of these functions with the only difference being that
one flavor tacked on the error string to the end of the message. This
responsibility has been pushed to the called of the function since it
needlessly complicated the function and required us to rebuild the message
strings.
Signed-off-by: David P. Quigley <dpquigl@tycho.nsa.gov> Signed-off-by: Kevin Coffman <kwc@citi.umich.edu> Signed-off-by: Neil Brown <neilb@suse.de>
Kevin Coffman [Fri, 12 Oct 2007 20:35:05 +0000 (16:35 -0400)]
Use nfslib versions of cacheio functions
Now that the nfslib library has all the necessary functions and they
all operate as needed, use them instead of the private versions in
utils/gssd/cacheio.c.
The obsolete private versions are removed in the next patch.
Signed-off-by: Kevin Coffman <kwc@citi.umich.edu> Signed-off-by: Neil Brown <neilb@suse.de>
Kevin Coffman [Fri, 12 Oct 2007 20:35:00 +0000 (16:35 -0400)]
Copy new cacheio functions used by svcgssd to nfslib
Copy private qword_ functions from the svcgssd version into
the general nfslib library. Add prototypes as needed.
Also, update readline to use a bigger buffer allocation as is
needed in the svcgssd version.
Signed-off-by: Kevin Coffman <kwc@citi.umich.edu> Signed-off-by: Neil Brown <neilb@suse.de>
Kevin Coffman [Fri, 12 Oct 2007 20:34:49 +0000 (16:34 -0400)]
Make print_hexl function write to stdout rather than using printerr
print_hexl() currently uses printerr, but is really only necessary
for local debugging and should simply write to stdout.
Also change it to print the description internally.
Wrap it and its use in #ifdef DEBUG.
Signed-off-by: Kevin Coffman <kwc@citi.umich.edu> Signed-off-by: Neil Brown <neilb@suse.de>
It would be cleaner to use a single enum for po_rightmost()'s return value.
We take the next logical step and create specific types for the return
values in order to ensure we don't mix the enum values, and to document
explicitly what return values callers can expect.
This could have been a simpler patch, but I think the end result is a
cleaner overall parser API.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Neil Brown <neilb@suse.de>
Neil Brown [Thu, 11 Oct 2007 23:03:06 +0000 (09:03 +1000)]
Fix version fallback for unmount.
Previously, if the mtab record didn't mention a version, unmount
would assume a v3 umount and send an UNMOUNT request accordingly.
This is wrong.
So remove the 'v3' assumption, and allow probe_port to continue when
it gets a version number mis-match.
Also there was some overloading of the meaning of pm_vers==0 relating
to v4 mounts. As do_nfs_umount is never called for v4, rename it to
do_nfs_umount23, and remove v4 handling from there and from
nfs_call_umount.