Whamcloud - gitweb
ChangeLog, ismounted.c:
authorTheodore Ts'o <tytso@mit.edu>
Fri, 15 Jun 2001 18:33:43 +0000 (18:33 +0000)
committerTheodore Ts'o <tytso@mit.edu>
Fri, 15 Jun 2001 18:33:43 +0000 (18:33 +0000)
  ismounted.c (check_mntent_file): Use a test file in / to check to see
   if the root filesystem is mounted read-only.  This protects against
   the case where /etc might not be on /, as well as the case where
   /etc/mtab doesn't exist.  (Both are should-never happen scenarios, but
   you never know...)

lib/ext2fs/ChangeLog
lib/ext2fs/ismounted.c

index 4e3fd93..db642c2 100644 (file)
@@ -1,3 +1,11 @@
+2001-06-15  Theodore Tso  <tytso@valinux.com>
+
+       * ismounted.c (check_mntent_file): Use a test file in / to check
+               to see if the root filesystem is mounted read-only.  This
+               protects against the case where /etc might not be on /, as
+               well as the case where /etc/mtab doesn't exist.  (Both are
+               should-never happen scenarios, but you never know...)
+
 2001-06-14  Theodore Tso  <tytso@valinux.com>
 
        * ismounted.c (ext2fs_check_if_mounted): Fix grammer in comment.
index 6a2acd2..ac785c6 100644 (file)
@@ -92,13 +92,15 @@ static errcode_t check_mntent_file(const char *mtab_file, const char *file,
         */
        if (!strcmp(mnt->mnt_dir, "/")) {
 is_root:
+#define TEST_FILE "/.ismount-test-file"                
                *mount_flags |= EXT2_MF_ISROOT;
-               fd = open(MOUNTED, O_RDWR);
+               fd = open(TEST_FILE, O_RDWR|O_CREAT);
                if (fd < 0) {
                        if (errno == EROFS)
                                *mount_flags |= EXT2_MF_READONLY;
                } else
                        close(fd);
+               (void) unlink(TEST_FILE);
        }
        endmntent (f);
        return 0;