diff options
author | iedowse <iedowse@FreeBSD.org> | 2001-07-22 12:17:51 +0000 |
---|---|---|
committer | iedowse <iedowse@FreeBSD.org> | 2001-07-22 12:17:51 +0000 |
commit | cc2212999ed6108a836e20287c8217d6b8eac8dc (patch) | |
tree | 1635ec3fca73ad3d67d4ea18731dd8f35c2d5f6b /sbin | |
parent | b836d8030e4090784be57170b598076205d08736 (diff) | |
download | FreeBSD-src-cc2212999ed6108a836e20287c8217d6b8eac8dc.zip FreeBSD-src-cc2212999ed6108a836e20287c8217d6b8eac8dc.tar.gz |
Fix some bugs and general brain damage in mounttab:
- Declare mtabhead as an extern in mounttab.h and define it only in
mounttab.c.
- Remove shared global `verbose' and instead pass it as a parameter.
- Remove the `mtabp' argument to read_mtab(). It served no purpose
whatsoever, although read_mtab() did use it as a temporary local
variable.
- Don't check for impossible conditions when parsing mounttab, and
do detect zero-length fields.
- Correctly test for strtoul() failures - just testing ERANGE is wrong.
- Include a field name in syslog errors, and avoid passing NULL to
a syslog %s field.
- Don't test if arrays are NULL.
- If there are duplicates when writing out mounttab, keep the last
entry instead of the first, as it will have a later timestamp.
- Fix a few formatting issues.
Update rpc.umntall and umount to match the mounttab interface changes.
Diffstat (limited to 'sbin')
-rw-r--r-- | sbin/umount/umount.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/sbin/umount/umount.c b/sbin/umount/umount.c index 02ef3ed..5c9bb7b 100644 --- a/sbin/umount/umount.c +++ b/sbin/umount/umount.c @@ -68,7 +68,6 @@ static const char rcsid[] = typedef enum { MNTON, MNTFROM, NOTHING } mntwhat; typedef enum { MARK, UNMARK, NAME, COUNT, FREE } dowhat; -struct mtablist *mtabhead; struct addrinfo *nfshost_ai = NULL; int fflag, vflag; char *nfshost; @@ -473,9 +472,9 @@ umountfs(char *mntfromname, char *mntonname, char *type) /* * Remove the unmounted entry from /var/db/mounttab. */ - if (read_mtab(NULL)) { - clean_mtab(hostp, nfsdirname); - if(!write_mtab()) + if (read_mtab()) { + clean_mtab(hostp, nfsdirname, vflag); + if(!write_mtab(vflag)) warnx("cannot remove mounttab entry %s:%s", hostp, nfsdirname); free_mtab(); |