* mount.cc (do_mount): Issue warning when using managed mount option on

non-empty directory.
This commit is contained in:
Christopher Faylor 2003-07-26 05:38:51 +00:00
parent df04ae29b2
commit 035df9eff5
2 changed files with 25 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2003-07-26 Christopher Faylor <cgf@redhat.com>
* mount.cc (do_mount): Issue warning when using managed mount option on
non-empty directory.
2003-07-25 Christopher Faylor <cgf@redhat.com> 2003-07-25 Christopher Faylor <cgf@redhat.com>
* configure.in: Use 'install-sh -c'. * configure.in: Use 'install-sh -c'.

View File

@ -16,6 +16,7 @@ details. */
#include <sys/cygwin.h> #include <sys/cygwin.h>
#include <stdlib.h> #include <stdlib.h>
#include <getopt.h> #include <getopt.h>
#include <dirent.h>
#ifdef errno #ifdef errno
#undef errno #undef errno
@ -104,6 +105,25 @@ do_mount (const char *dev, const char *where, int flags)
} }
} }
if (!force && flags & MOUNT_ENC)
{
DIR *dd = opendir (dev);
if (dd)
{
struct dirent *d;
while ((d = readdir (dd)))
{
if (d->d_name[0] != '.')
/* fall through */;
else if (d->d_name[1] == '\0'
|| (d->d_name[1] == '.' && d->d_name[2] == '\0'))
continue;
fprintf (stderr, "%s: error: don't use \"-o managed\" on non-empty directories\n", progname);
exit (1);
}
}
}
if (mount (dev, where, flags)) if (mount (dev, where, flags))
error (where); error (where);