nfs-utils: mount: Stop v4 umounts from ping remote mountds
Subsystems (2)
PATCH 10/11 nfs-utils: mount: Stop v4 umounts from ping remote mountds
commit 7f9cc56de079b1c53f912fc2abe31203e79782f4
Author: Steve Dickson <[email protected]> Date: Sat Feb 24 16:18:22 2007 -0500
Stop v4 umounts from ping remote mountds
Signed-off-by Steve Dickson <[email protected]>
utils/mount/nfsumount.c +27 -32
@@ -19,6 +19,7 @@#include <stdio.h> #include <errno.h> +#include <unistd.h> #include <getopt.h> #include <mntent.h> #include <sys/mount.h>
@@ -333,7 +334,7 @@ void umount_usage()int nfsumount (int argc,char *argv[]) { -int c, ret; +int c, ret, v4=0 ;char *spec;struct mntentchn *mc;
@@ -371,39 +372,33 @@ int nfsumount(int argc, char *argv[]) mc =getmntdirbackward (spec,NULL );if (!mc) mc =getmntdevbackward (spec,NULL ); -if (!mc && verbose) -printf (_ ("Could not find %s in mtab\n" ), spec); - -if (mc) { -if (contains (mc->m.mnt_opts,"user" ) &&getuid () !=0 ) { -struct passwd *pw =getpwuid (getuid ()); -if (!pw ||strcmp (pw->pw_name,get_value (mc->m.mnt_opts,"user=" ))) { -fprintf (stderr,"%s: permission denied to unmount %s\n" , - progname, spec); -exit (1 ); - } - }else { -if (!contains (mc->m.mnt_opts,"users" ) &&getuid () !=0 ) { -fprintf (stderr,"%s: only root can unmount %s from %s\n" , - progname, mc->m.mnt_fsname, mc->m.mnt_dir); -exit (1 ); - } - } - - ret =0 ; -if (!force && !lazy) - ret =_nfsumount (mc->m.mnt_fsname, mc->m.mnt_opts); -if (!ret) - ret =add_mtab2 (mc->m.mnt_fsname, mc->m.mnt_dir, - mc->m.mnt_type, mc->m.mnt_opts, mc); +if (mc ==NULL ) { +fprintf (stderr,"%s: Unable to find '%s' in mount table\n" , + progname, spec); +exit (1 ); } -else { - ret =0 ; -if (!force && !lazy) - ret =_nfsumount (spec,NULL ); -if (!ret) - ret =add_mtab2 (spec, spec, spec, spec,NULL ); +if (contains (mc->m.mnt_opts,"user" ) &&getuid () !=0 ) { +struct passwd *pw =getpwuid (getuid ()); +if (!pw ||strcmp (pw->pw_name,get_value (mc->m.mnt_opts,"user=" ))) { +fprintf (stderr,"%s: permission denied to unmount %s\n" , + progname, spec); +exit (1 ); + } + }else { +if (!contains (mc->m.mnt_opts,"users" ) &&getuid () !=0 ) { +fprintf (stderr,"%s: only root can unmount %s from %s\n" , + progname, mc->m.mnt_fsname, mc->m.mnt_dir); +exit (1 ); + } } + v4 =contains (mc->m.mnt_type,"nfs4" ); + + ret =0 ; +if (!force && !lazy && !v4) + ret =_nfsumount (mc->m.mnt_fsname, mc->m.mnt_opts); +if (!ret) + ret =add_mtab2 (mc->m.mnt_fsname, mc->m.mnt_dir, + mc->m.mnt_type, mc->m.mnt_opts, mc);return (ret); }
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
NFS maillist - [email protected]
https://lists.sourceforge.net/lists/listinfo/nfs