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