mount.cc (error): New function to report an error and exit.
umount.cc (error): Ditto.
        (remove_all_automounts): Check return status of cygwin_umount.
        (remove_all_user_mounts): Ditto.
        (remove_all_system_mounts): Ditto.
			
			
This commit is contained in:
		| @@ -1,3 +1,11 @@ | ||||
| 2000-06-07  Kazuhiro Fujieda <fujieda@jaist.ac.jp> | ||||
|  | ||||
|         mount.cc (error): New function to report an error and exit. | ||||
|         umount.cc (error): Ditto. | ||||
|         (remove_all_automounts): Check return status of cygwin_umount. | ||||
|         (remove_all_user_mounts): Ditto. | ||||
|         (remove_all_system_mounts): Ditto. | ||||
|  | ||||
| 2000-06-05  DJ Delorie  <dj@cygnus.com> | ||||
|  | ||||
| 	* mount.cc: add stdlib.h for exit | ||||
|   | ||||
| @@ -30,6 +30,14 @@ static short force = FALSE; | ||||
|  | ||||
| static const char *progname; | ||||
|  | ||||
| static void | ||||
| error (const char *path) | ||||
| { | ||||
|   fprintf (stderr, "%s: %s: %s\n", progname, path, | ||||
| 	   (errno == EMFILE) ? "Too many mount entries" : strerror (errno)); | ||||
|   exit (1); | ||||
| } | ||||
|  | ||||
| /* FIXME: do_mount should also print a warning message if the dev arg | ||||
|    is a non-existent Win32 path. */ | ||||
|  | ||||
| @@ -59,10 +67,7 @@ do_mount (const char *dev, const char *where, int flags) | ||||
| #endif | ||||
|  | ||||
|   if (mount (dev, where, flags)) | ||||
|     { | ||||
|       perror ("mount failed"); | ||||
|       exit (1); | ||||
|     } | ||||
|     error (where); | ||||
|  | ||||
|   if (statres == -1) | ||||
|     { | ||||
| @@ -159,8 +164,7 @@ main (int argc, const char **argv) | ||||
|   if ((force == FALSE) && (mount_already_exists (argv[i + 1], flags))) | ||||
|     { | ||||
|       errno = EBUSY; | ||||
|       perror ("mount failed"); | ||||
|       exit (1); | ||||
|       error (argv[i + 1]); | ||||
|     } | ||||
|   else | ||||
|     do_mount (argv[i], argv[i + 1], flags); | ||||
| @@ -232,10 +236,7 @@ change_cygdrive_prefix (const char *new_prefix, int flags) | ||||
|   flags |= MOUNT_AUTO; | ||||
|  | ||||
|   if (mount (NULL, new_prefix, flags)) | ||||
|     { | ||||
|       perror ("mount failed"); | ||||
|       exit (1); | ||||
|     } | ||||
|     error (new_prefix); | ||||
|    | ||||
|   exit (0); | ||||
| } | ||||
|   | ||||
| @@ -13,6 +13,7 @@ details. */ | ||||
| #include <sys/mount.h> | ||||
| #include <mntent.h> | ||||
| #include <stdlib.h> | ||||
| #include <errno.h> | ||||
|  | ||||
| static void remove_all_mounts (); | ||||
| static void remove_all_automounts (); | ||||
| @@ -34,6 +35,13 @@ usage (void) | ||||
|   exit (1); | ||||
| } | ||||
|  | ||||
| static void | ||||
| error (char *path) | ||||
| { | ||||
|   fprintf (stderr, "%s: %s: %s\n", progname, path, strerror (errno)); | ||||
|   exit (1); | ||||
| } | ||||
|  | ||||
| int | ||||
| main (int argc, char **argv) | ||||
| { | ||||
| @@ -81,10 +89,7 @@ main (int argc, char **argv) | ||||
|     usage (); | ||||
|  | ||||
|   if (cygwin_umount (argv[i], flags) != 0) | ||||
|     { | ||||
|       perror ("umount"); | ||||
|       exit (1); | ||||
|     } | ||||
|     error (argv[i]); | ||||
|  | ||||
|   return 0; | ||||
| } | ||||
| @@ -109,14 +114,18 @@ remove_all_automounts () | ||||
|       /* Remove the mount if it's an automount. */ | ||||
|       if (strcmp (p->mnt_type, "user,auto") == 0) | ||||
| 	{ | ||||
| 	  cygwin_umount (p->mnt_dir, 0); | ||||
| 	  if (cygwin_umount (p->mnt_dir, 0)) | ||||
| 	    error (p->mnt_dir); | ||||
|  | ||||
| 	  /* We've modified the table so we need to start over. */ | ||||
| 	  endmntent (m); | ||||
| 	  m = setmntent ("/-not-used-", "r"); | ||||
| 	} | ||||
|       else if (strcmp (p->mnt_type, "system,auto") == 0) | ||||
| 	{ | ||||
| 	  cygwin_umount (p->mnt_dir, MOUNT_SYSTEM); | ||||
| 	  if (cygwin_umount (p->mnt_dir, MOUNT_SYSTEM)) | ||||
| 	    error (p->mnt_dir); | ||||
|  | ||||
| 	  /* We've modified the table so we need to start over. */ | ||||
| 	  endmntent (m); | ||||
| 	  m = setmntent ("/-not-used-", "r"); | ||||
| @@ -132,14 +141,14 @@ remove_all_user_mounts () | ||||
| { | ||||
|   FILE *m = setmntent ("/-not-used-", "r"); | ||||
|   struct mntent *p; | ||||
|   int err; | ||||
|  | ||||
|   while ((p = getmntent (m)) != NULL) | ||||
|     { | ||||
|       /* Remove the mount if it's a user mount. */ | ||||
|       if (strncmp (p->mnt_type, "user", 4) == 0) | ||||
| 	{ | ||||
| 	  err = cygwin_umount (p->mnt_dir, 0); | ||||
| 	  if (cygwin_umount (p->mnt_dir, 0)) | ||||
| 	    error (p->mnt_dir); | ||||
|  | ||||
| 	  /* We've modified the table so we need to start over. */ | ||||
| 	  endmntent (m); | ||||
| @@ -162,7 +171,8 @@ remove_all_system_mounts () | ||||
|       /* Remove the mount if it's a system mount. */ | ||||
|       if (strncmp (p->mnt_type, "system", 6) == 0) | ||||
| 	{ | ||||
| 	  cygwin_umount (p->mnt_dir, MOUNT_SYSTEM); | ||||
| 	  if (cygwin_umount (p->mnt_dir, MOUNT_SYSTEM)) | ||||
| 	    error (p->mnt_dir); | ||||
|  | ||||
| 	  /* We've modified the table so we need to start over. */ | ||||
| 	  endmntent (m); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user