#include "mount.h"
#include "nfsumount.h"
#include "error.h"
+#include "network.h"
#if !defined(MNT_FORCE)
/* dare not try to include <linux/mount.h> -- lots of errors */
#endif
extern char *progname;
-extern int nfs_mount_version;
extern int nomtab;
extern int verbose;
int force;
int lazy;
int remount;
-extern int find_kernel_nfs_mount_version(void);
-extern int probe_mntport(clnt_addr_t *);
-extern int nfs_gethostbyname(const char *, struct sockaddr_in *);
-
static inline enum clnt_stat
nfs_umount(dirpath *argp, CLIENT *clnt)
{
MS_MGC_VAL | MS_REMOUNT | MS_RDONLY, NULL);
if (res == 0) {
struct mntent remnt;
- fprintf(stderr,
- _("umount: %s busy - remounted read-only\n"),
- spec);
+ nfs_error(_("%s: %s busy - remounted read-only"),
+ progname, spec);
remnt.mnt_type = remnt.mnt_fsname = NULL;
remnt.mnt_dir = xstrdup(node);
remnt.mnt_opts = xstrdup("ro");
return 0;
} else if (errno != EBUSY) { /* hmm ... */
perror("remount");
- fprintf(stderr,
- _("umount: could not remount %s read-only\n"),
- spec);
+ nfs_error(_("%s: could not remount %s read-only"),
+ progname, spec);
}
}
if (umnt_err)
umount_error(umnt_err, node);
- return 1;
+ return EX_FILEIO;
}
/*
struct pmap *pmap = &mnt_server.pmap;
char *p;
- nfs_mount_version = find_kernel_nfs_mount_version();
if (spec == NULL || (p = strchr(spec,':')) == NULL)
goto out_bad;
hostname = xstrndup(spec, p-spec);
goto out_bad;
return nfs_call_umount(&mnt_server, &dirname);
out_bad:
- fprintf(stderr, "%s: %s: not found or not mounted\n", progname, spec);
+ nfs_error(_("%s: %s: not found or not mounted"), progname, spec);
return 0;
}
if (mc && strcmp(mc->m.mnt_type, "nfs") != 0 &&
strcmp(mc->m.mnt_type, "nfs4") != 0) {
- fprintf(stderr, "umount.nfs: %s on %s it not an nfs filesystem\n",
- mc->m.mnt_fsname, mc->m.mnt_dir);
- exit(1);
+ nfs_error(_("%s: %s on %s it not an nfs filesystem"),
+ progname, mc->m.mnt_fsname, mc->m.mnt_dir);
+ return EX_USAGE;
}
if (getuid() != 0) {
return 0;
only_root:
- fprintf(stderr,"%s: You are not permitted to unmount %s\n",
- progname, spec);
+ nfs_error(_("%s: You are not permitted to unmount %s"),
+ progname, spec);
return 0;
}
if (hasmntopt(&mc->m, "users") == NULL) {
} else
ret = del_mtab(NULL, spec);
- return(ret);
+ return ret;
}