summaryrefslogtreecommitdiffstats
path: root/source/client
diff options
context:
space:
mode:
authorSteve French <sfrench@samba.org>2005-04-09 05:01:00 +0000
committerSteve French <sfrench@samba.org>2005-04-09 05:01:00 +0000
commit549b8bc455145e48e1d28cf6830f1835fac00619 (patch)
tree18a5dd790f8f7e1e5e2b0ccbfa56bb61318393a8 /source/client
parent0350c47f29303920f40be427dc64fe49df16444a (diff)
downloadsamba-549b8bc455145e48e1d28cf6830f1835fac00619.tar.gz
samba-549b8bc455145e48e1d28cf6830f1835fac00619.tar.xz
samba-549b8bc455145e48e1d28cf6830f1835fac00619.zip
r6262: Minor updates to cifs umount helper
Diffstat (limited to 'source/client')
-rw-r--r--source/client/umount.cifs.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/source/client/umount.cifs.c b/source/client/umount.cifs.c
index 0210de85a0c..18dbc3b1cf6 100644
--- a/source/client/umount.cifs.c
+++ b/source/client/umount.cifs.c
@@ -49,7 +49,7 @@
#define MNT_EXPIRE 0x04
#endif
-#define CIFS_IOC_CHECKUMOUNT _IOR('u', 2, int)
+#define CIFS_IOC_CHECKUMOUNT _IO('c', 2)
static struct option longopts[] = {
{ "all", 0, NULL, 'a' },
@@ -93,14 +93,21 @@ static int umount_check_perm(char * dir)
/* presumably can not chdir into the target as we do on mount */
fileid = open(dir, O_RDONLY | O_DIRECTORY | O_NOFOLLOW, 0);
-
- /* check if fileid valid if fileid == -1 BB FIXME */
+ if(fileid == -1) {
+ if(verboseflg)
+ printf("error opening mountpoint %d %s",errno,strerror(errno));
+ return errno;
+ }
rc = ioctl(fileid, CIFS_IOC_CHECKUMOUNT, NULL);
if(verboseflg)
- printf("ioctl returned %d with errno %d\n",rc,errno);
+ printf("ioctl returned %d with errno %d %s\n",rc,errno,strerror(errno));
+ if(rc == ENOTTY)
+ printf("user unmounting via %s is an optional feature of the cifs filesystem driver (cifs.ko)\n\tand requires cifs.ko version 1.32 or later\n",thisprogram);
+ else if (rc > 0)
+ printf("user unmount of %s failed with %d %s",dir,errno,strerror(errno));
close(fileid);
return rc;