summaryrefslogtreecommitdiffstats
path: root/utils/exportfs
Commit message (Collapse)AuthorAgeFilesLines
* nfs-utils: Restore ABI compat with pre-merge libnfsidmapJustin Mitchell2017-11-071-1/+1
| | | | | | | | | Prior to merge libnfsidmap leaked many private symbols that were not defined in its API, creating an accidental ABI. This patch renames and unhides symbols in order to match that ABI until a cleaned up API can be established and released. Signed-off-by: Steve Dickson <steved@redhat.com>
* nfs-utils: split conffile to a separate convenience libJustin Mitchell2017-10-261-1/+1
| | | | | | | | | To allow better reuse of the code we split conffile and xlog into their own separate convenience library, then merge it back so as to not create extra dependancies for everything Signed-off-by: Justin Mitchell <jumitche@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* exports(5): minor exports man page typoJ. Bruce Fields2017-10-121-1/+1
| | | | | | From: "J. Bruce Fields" <bfields@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* config: Remove the conf_path globalJustin Mitchell2017-05-051-2/+1
| | | | | | | | Working towards an nfs.conf library and API for system config tools, first step, replace the conf_path global with a parameter to conf_init Signed-off-by: Justin Mitchell <jumitche@rehat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* Manual page bug: two inaccuracies in nfsd(7)Chris Siebenmann2017-03-141-6/+2
| | | | | | | | | | | Here is a patch that deletes the mention of auth.domain and changes the wording around 'flush' files. I'm not attached to the revised wording; it's just the best I could manage in something that felt that it was within the same style and space as the current wording. Acked-by: NeilBrown <neilb@suse.com> Signed-off-by: Chris Siebenmann <cks.nfs01@cs.toronto.edu> Signed-off-by: Steve Dickson <steved@redhat.com>
* mountd/exportfs: implement the -s/--state-directory-path optionScott Mayhew2017-02-152-0/+36
| | | | | | Reviewed-by: NeilBrown <neilb@suse.com> Signed-off-by: Scott Mayhew <smayhew@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* exportfs: support "security_label" export optionJ. Bruce Fields2017-01-122-0/+10
| | | | | | | | On recent kernels only exports with NFSEXP_SECURITY_LABEL set will export security labels. Signed-off-by: J. Bruce Fields <bfields@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* exportfs: Make sure pass all valid export flags to nfsdKinglong Mee2017-01-041-5/+7
| | | | | | | | | test_export pass a export flags only marks NFSEXP_FSID, nfsd may want other flags for export checking. This patch make sure exportfs pass all other flags to nfsd. Signed-off-by: Kinglong Mee <kinglongmee@gmail.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* exportfs: allow debugging to be enabled in nfs.confNeilBrown2016-12-202-0/+13
| | | | | Signed-off-by: NeilBrown <neilb@suse.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* exportfs: fix path comparison in unexportfs_parsed()Scott Mayhew2016-12-171-0/+2
| | | | | | | | | Passing a path like /export1 to unexportfs_parsed() matches not only /export1, but /export11, /export100, /export1forthemoney, etc. which can result in some nasty surprises when unexporting individual exports. Signed-off-by: Scott Mayhew <smayhew@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* Remove all use of the nfsctl system call.NeilBrown2016-12-061-82/+2
| | | | | | | | | | | | | | | | | | | | This systemcall was deprecated early in the 2.6 series as it was replaced by an in-kernel cache which was refilled using an upcall. All communication to kernel is now through the nfsd filesystem. The nfsctl systemcall itself was removed in 3.1. It is unlikely to have been used for over a decade. To remove all uses for the nfsctl systemcall, and call code that only runs when "new_cache" is false. We now assume "new_cache" is always true. This allows the removal of several files as well as assorted functions. Signed-off-by: NeilBrown <neilb@suse.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* exportfs: remove redundant exports options outputJianhong Yin2016-11-221-8/+6
| | | | | | | | | | | | before this commit, run 'exportfs -s' will output some options more than one time. for example: /path *(rw,no_root_squash,rw,secure,no_root_squash,no_all_squash) the options rw,no_root_squash,etc will be print twice. the reason is secinfo_show() will show these security options again this patch remove these redundant outputs. Signed-off-by: Jianhong Yin <yin-jianhong@163.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* Remove all use of /var/lib/nfs/xtabNeilBrown2016-11-151-3/+1
| | | | | | | | | | | | | | | /var/lib/nfs/xtab is only used to find out what has been exported to the kernel. This is more reliably done by reading /proc/fs/nfs{,d}/export and nfs-utils uses that file if is available. So xtab is only need if you have an incredibly ancient kernel which doesn't have /proc/fs/nfs/export (and so which only supports NFSv2) or if /proc is not mounted. Neither of these are credible contexts to run a modern nfs-utils, so stop creating or reading the xtab file. Signed-off-by: NeilBrown <neilb@suse.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* nfs-server-generator: avoid using external services.NeilBrown2016-11-071-2/+2
| | | | | | | | | | | | | | | | | | | nfs-server-generator is run very early when a lot of services are not yet started, so it mustn't depend on them. Currently it can try to use hostname lookup and syslog. Using hostname lookup can cause errors and when these are logged via syslog, it can cause the generator to block indefinitely Hostname-lookup is not needed, as we don't use the host issue, and sending message to stderr is sufficient for the generator. Disabling syslog is easy - call a function that sets a static variable. Disabling hostname lookup requires adding an "ignore_hosts" flags to export_read and export_d_read(). Signed-off-by: NeilBrown <neilb@suse.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* Move export_d_read() to support/export/export.cNeilBrown2016-08-201-59/+0
| | | | | | | | This places it in the same place as the similar export_read(), and allows it to be called from other programs. Signed-off-by: NeilBrown <neilb@suse.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* exportfs: fix export point checkingJianhong Yin2016-07-181-2/+2
| | | | | | | | NFS does not support file and symbolic export, if the export point is regular file should give warning to user. Signed-off-by: Jianhong Yin <jiyin@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* exportfs: add the debug optionScott Mayhew2016-05-022-2/+8
| | | | | | | | | Since calling xlog(D_GENERAL) will cause exportfs to exit with a status of 1, there really should be a way to see those messages for debugging purposes. Signed-off-by: Scott Mayhew <smayhew@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* exportfs: Deal with path's trailing "/" in unexportfs_parsed()Yongcheng Yang2015-12-111-1/+10
| | | | | | | | | | | When unexport directory, it's possible that the specified path ends with a '/'. So we need to deal with it to find the matched entry. If not, there will be error like "Could not find '*:/some_path/' to unexport." Signed-off-by: Yongcheng Yang <yongcheng.yang@gmail.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* exportfs: Fix buf size in test_export() dump()Jianhong Yin2015-11-041-5/+8
| | | | | | | | | | From: Jianhong Yin <jiyin@redhat.com> The buf[] size in test_export() is not enough for NFS_MAXPATHLEN + prefix/suffix proto string. Fix it and same issue in dump(). And just to be on the safe side, %s/sprintf/snprintf/ Signed-off-by: Steve Dickson <steved@redhat.com>
* nfs-utils: add support for the "pnfs" export optionChristoph Hellwig2015-04-022-0/+11
| | | | | | | | This goes along with the patch just sent to Bruce to make pnfs support conditional. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Steve Dickson <steved@redhat.com>
* nfs-utils: cross-reference nfsd.7 from nfsd.8 and vice versaCyril Brulebois2015-04-021-0/+1
| | | | | | | | | | | From: Cyril Brulebois <kibi@debian.org> It'd be nice if one could notice nfsd(7) when reading nfsd(8) and the other way round, without having to have to resort to dpkg -L $pkg to figure out what documentation is available. Acked-By: J. Bruce Fields <bfields@fieldses.org> Signed-off-by: Steve Dickson <steved@redhat.com>
* exports.man: improve documentation of 'nohide' and 'crossmnt'NeilBrown2015-02-261-6/+36
| | | | | | | | | - note that 'nohide' is irrelevant for NFSv4 - note that children on a 'crossmnt' filesystem cannot be unexported - note that 'nocrossmnt' is a valid option, but probably not useful. Signed-off-by: NeilBrown <neilb@suse.de> Signed-off-by: Steve Dickson <steved@redhat.com>
* exportfs: warn when really nothing is exportedPavel Raiskup2014-12-031-9/+13
| | | | | | | | | | | | Throw 'No file systems exported!' iff no volume is exported rather then if some exports file is empty. Typically this can happen if the default /etc/exports file is empty and admin installed configuration into /etc/exports.d directory. This is follow-up for e725def62c73b4 commit. Signed-off-by: Pavel Raiskup <praiskup@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* exportfs: Do not fail on empty exports file.Steve Dickson2014-11-171-5/+5
| | | | | | | | | | Commit 076dd80 introduced a regression that causes exportfs to fail when there is an empty /etc/exports file. A empty /etc/exports file is valid and should not cause exportfs to fail. Signed-off-by: Steve Dickson <steved@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* exportfs: Properly parse IPv6 literal strings with null terminationTodd Vierling2014-09-191-10/+8
| | | | | | | | | | | | | | | | | The original implementation was using strncpy() with a truncation length to an uninitialized stack buffer, leaving a string that was only null terminated by luck. While here, change to use no-copy semantics (no extra buffer) to avoid buffer overflows altogether. exportfs already modifies argv contents elsewhere, so this doesn't break anything anew. Fixes: 4663c648 (exportfs: Support raw IPv6 addresses with "client:/path") Signed-off-by: Todd Vierling <todd.vierling@oracle.com> Reviewed-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* exportfs: taught exportfs -v about the nordirplus optionSteve Dickson2014-08-241-0/+2
| | | | Signed-off-by: Steve Dickson <steved@redhat.com>
* nfs-utils: Allow turning off nfsv3 readdir_plusRajesh Ghanekar2014-08-201-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | One of our customer's application only needs file names, not file attributes. With directories having 10K+ inodes (assuming buffer cache has directory blocks cached having file names, but inode cache is limited and hence need eviction of older cached inodes), older inodes are evicted periodically. So if they keep on doing readdir(2) from NSF client on multiple directories, some directory's files are periodically removed from inode cache and hence new readdir(2) on same directory requires disk access to bring back inodes again to inode cache. As READDIRPLUS request fetches attributes also, doing getattr on each file on server, it causes unnecessary disk accesses. If READDIRPLUS on NFS client is returned with -ENOTSUPP, NFS client uses READDIR request which just gets the names of the files in a directory, not attributes, hence avoiding disk accesses on server. There's already a corresponding client-side mount option, but an export option reduces the need for configuration across multiple clients. This flag affects NFSv3 only. If it turns out it's needed for NFSv4 as well then we may have to figure out how to extend the behavior to NFSv4, but it's not currently obvious how to do that. Signed-off-by: Rajesh Ghanekar <rajesh_ghanekar@symantec.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* exportfs: Support raw IPv6 addresses with "client:/path"Chuck Lever2014-03-172-2/+78
| | | | | | | | | | | Wrap IPv6 presentation addresses in square brackets. This echoes the same syntax used when specifying IPv6 server addresses with the mount.nfs command. BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=817557 Tested-by: Steve Dickson <steved@redaht.com> Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* exportfs: Refactor exportfs() and unexportfs()Chuck Lever2014-03-171-23/+51
| | | | | | | | | | Separate parsing the "client:/path" argument from the actual processing. BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=817557 Tested-by: Steve Dickson <steved@redaht.com> Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* exportfs: Don't buffer overflow on exports that are too big.Steve Dickson2014-01-201-0/+2
| | | | Signed-off-by: Steve Dickson <steved@redhat.com>
* exportfs.c: Escape path for '-s' optionTony Asleson2014-01-071-1/+12
| | | | | | | | When outputing the paths and the user has specified the option -s, escape the path. Signed-off-by: Tony Asleson <tasleson@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* exportfs.c: Remove trailing whitespaceTony Asleson2014-01-071-15/+15
| | | | | Signed-off-by: Tony Asleson <tasleson@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* exportfs.c: escape path for function test_exportTony Asleson2014-01-071-3/+7
| | | | | | | | | | Verbatim patch proposal from J. Bruce Fields except calling snprintf instead of sprintf. Tested and appears to work with path names that have a space. Signed-off-by: Tony Asleson <tasleson@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* exportfs: modify can_test() to use LONG_MAX when appropriateHarshula Jayasuriya2013-11-201-4/+24
| | | | | | | | | | | | | | This patch is the nfs-utils patch corresponding to the kernel patch commit 2f74f972 "sunrpc: prepare NFS for 2038". The kernel sunrpc code needs to handle seconds since epoch greater than 2147483647. This means functions that parse time as an int need to handle it as time_t." When appropriate exportfs should use LONG_MAX in can_test() instead of INT_MAX. Signed-off-by: Harshula Jayasuriya <harshula@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* exportfs: exit with error code if there was any error (take 2).NeilBrown2013-11-051-30/+13
| | | | | | | | | | | | | | | | | exportfs currently exits with a non-zero error for some errors, but not for others. It does this by having various support routines set the global variable "export_errno". Change this to have 'xlog' set export_errno if an ERROR is reported. That way all errors will be caught. Note that the exit error code is changed from 22 (EINVAL) to the more traditional '1'. Signed-off-by: NeilBrown <neilb@suse.de> Signed-off-by: Steve Dickson <steved@redhat.com>
* exportfs: report failure if asked to unexport something not exported.Steve Dickson2013-10-281-0/+2
| | | | | | | | | | Currently if exportfs is asked to unexport something that is not exported it silently succeeds. This is not ideal, particularly for scripting situations. So report an error when the unexport was successful and the -v flag used. Signed-off-by: Steve Dickson <steved@redhat.com>
* exportfs: exit with error code if there was any error.NeilBrown2013-10-221-10/+27
| | | | | | | | | | | | | | | | | exportfs currently exits with a non-zero error for some errors, but not for others. It does this by having various support routines set the global variable "export_errno". Change this to have 'xlog' set export_errno if an ERROR is reported. That way all errors will be caught. Note that the exit error code is changed from 22 (EINVAL) to the more traditional '1'. Signed-off-by: NeilBrown <neilb@suse.de> Signed-off-by: Steve Dickson <steved@redhat.com>
* Revert "exportfs: Return non-zero exit value on error"Steve Dickson2013-10-221-27/+10
| | | | This reverts commit 956aeff2e24304e938846f81f4b9db34cbf18a32.
* exportfs: Return non-zero exit value on errorTony Asleson2013-10-221-10/+27
| | | | | | | | | | | | To improve error handling when scripting exportfs it's useful to have non-zero exit codes when the requested operation did not succeed. This patch also returns a non-zero exit code if you request to unexport a non-existant share. Signed-off-by: Tony Asleson <tasleson@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* exportfs: Add -s option.Tony Asleson2013-10-212-10/+20
| | | | | | | | Adds '-s' option which outputs the current exports in a format suitable for /etc/exports. Signed-off-by: Tony Asleson <tasleson@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* exportfs: clean up exports.d discussionJ. Bruce Fields2013-09-301-10/+4
| | | | | | | | | From: "J. Bruce Fields" <bfields@redhat.com> The syntax here is a little convoluted. Signed-off-by: J. Bruce Fields <bfields@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* exportfs: test_export shouldn't use invalid uid/gidJ. Bruce Fields2013-09-241-1/+1
| | | | | | | | | | | | | From: "J. Bruce Fields" <bfields@redhat.com> Some newer kernels are rejecting -1 uid/gid. Actually, worse--they're silently ignoring any attempt to cache such exports, thus preventing test_export from getting back the errors it needs. And -1 wasn't a good choice anyway. Signed-off-by: J. Bruce Fields <bfields@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* exports.man: quote command to preserve spaceJim Rees2013-09-051-1/+1
| | | | | Signed-off-by: Jim Rees <rees@umich.edu> Signed-off-by: Steve Dickson <steved@redhat.com>
* exportfs: Update exportfs flush option list in usage message.Namjae Jeon2012-07-051-9/+12
| | | | | | | Update exportfs flush option list in usage message. And sorted these cases in alphabetical order. Signed-off-by: Steve Dickson <steved@redhat.com>
* exportfs: Removed warnings about routines not being prototypedSteve Dickson2012-03-121-2/+4
| | | | Signed-off-by: Steve Dickson <steved@redhat.com>
* exportfs: Stop racing exportfs on clustersSteve Dickson2012-03-121-0/+41
| | | | | | | | | | This problem can occur when multiple cluster services fail over at the same time, causing missing high-available exports. Having a lot of nfs-exports will trigger this issue easier. https://bugzilla.linux-nfs.org/show_bug.cgi?id=224 Signed-off-by: Steve Dickson <steved@redhat.com>
* nfs-utils: exports man page: no_acl is not supportedHarshula Jayasuriya2012-02-291-18/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The inclusion of no_acl in the exports man page is confusing since it is not actually supported (v3.3-rc3): 1090 static struct flags { 1091 int flag; 1092 char *name[2]; 1093 } expflags[] = { 1094 { NFSEXP_READONLY, {"ro", "rw"}}, 1095 { NFSEXP_INSECURE_PORT, {"insecure", ""}}, 1096 { NFSEXP_ROOTSQUASH, {"root_squash", "no_root_squash"}}, 1097 { NFSEXP_ALLSQUASH, {"all_squash", ""}}, 1098 { NFSEXP_ASYNC, {"async", "sync"}}, 1099 { NFSEXP_GATHERED_WRITES, {"wdelay", "no_wdelay"}}, 1100 { NFSEXP_NOHIDE, {"nohide", ""}}, 1101 { NFSEXP_CROSSMOUNT, {"crossmnt", ""}}, 1102 { NFSEXP_NOSUBTREECHECK, {"no_subtree_check", ""}}, 1103 { NFSEXP_NOAUTHNLM, {"insecure_locks", ""}}, 1104 { NFSEXP_V4ROOT, {"v4root", ""}}, 1105 { 0, {"", ""}} 1106 }; Signed-off-by: Harshula Jayasuriya <harshula@redhat.com> Acked-by: J. Bruce Fields <bfields@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* man pages: fixed a few typos in a couple man pagesSteve Dickson2011-10-042-4/+4
| | | | Signed-off-by: Steve Dickson <steved@redhat.com>
* exportfs: do not warn if /etc/exports.d/ does not existMike Frysinger2011-09-011-2/+5
| | | | | | | | | It isn't uncommon for /etc/exports.d/ to not exist, and imo, it's not that big of a deal as often times, a simple /etc/exports is sufficient. So silently skip the case where the dir is missing. Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Steve Dickson <steved@redhat.com>
* exportfs: drop extra newline in xlogMike Frysinger2011-09-011-4/+4
| | | | | | | | Since xlog() itself appends a newline, we don't want to add our own otherwise we get extra in the output. Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Steve Dickson <steved@redhat.com>