This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.25-317-ge8f1225


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  e8f1225ca4d4afa4043c5267ae6dbe12268e2637 (commit)
      from  7c3018f9e4de2e9d1f03a749be41b5eced6f9834 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=e8f1225ca4d4afa4043c5267ae6dbe12268e2637

commit e8f1225ca4d4afa4043c5267ae6dbe12268e2637
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Fri May 12 11:48:37 2017 +0000

    Remove __ASSUME_STATFS_F_FLAGS.
    
    Now that 3.2 is the minimum Linux kernel version for glibc, this patch
    removes __ASSUME_STATFS_F_FLAGS and associated conditional code.
    
    Tested for x86_64.
    
    	* sysdeps/unix/sysv/linux/kernel-features.h
    	(__ASSUME_STATFS_F_FLAGS): Remove macro.
    	* sysdeps/unix/sysv/linux/internal_statvfs.c
    	[!__ASSUME_STATFS_F_FLAGS]: Remove conditional code.

diff --git a/ChangeLog b/ChangeLog
index 246a8b4..d46d7cb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2017-05-12  Joseph Myers  <joseph@codesourcery.com>
+
+	* sysdeps/unix/sysv/linux/kernel-features.h
+	(__ASSUME_STATFS_F_FLAGS): Remove macro.
+	* sysdeps/unix/sysv/linux/internal_statvfs.c
+	[!__ASSUME_STATFS_F_FLAGS]: Remove conditional code.
+
 2017-05-11  Zack Weinberg  <zackw@panix.com>
 
 	* Makerules: New subdir configuration variables 'tests-internal'
diff --git a/sysdeps/unix/sysv/linux/internal_statvfs.c b/sysdeps/unix/sysv/linux/internal_statvfs.c
index 5bc9735..9a17ca5 100644
--- a/sysdeps/unix/sysv/linux/internal_statvfs.c
+++ b/sysdeps/unix/sysv/linux/internal_statvfs.c
@@ -39,190 +39,6 @@
 # define STATFS statfs
 # define STATVFS statvfs
 # define INTERNAL_STATVFS __internal_statvfs
-
-
-# ifndef __ASSUME_STATFS_F_FLAGS
-int
-__statvfs_getflags (const char *name, int fstype, int fd)
-{
-  struct stat64 st;
-
-  if ((fd < 0 ? stat64 (name, &st) : fstat64 (fd, &st)) < 0)
-    return 0;
-
-  const char *fsname = NULL;
-  const char *fsname2 = NULL;
-  const char *fsname3 = NULL;
-
-  /* Map the filesystem type we got from the statfs call to a string.  */
-  switch (fstype)
-    {
-    case EXT2_SUPER_MAGIC:
-      fsname = "ext4";
-      fsname2 = "ext3";
-      fsname3 = "ext2";
-      break;
-    case DEVPTS_SUPER_MAGIC:
-      fsname= "devpts";
-      break;
-    case SHMFS_SUPER_MAGIC:
-      fsname = "tmpfs";
-      break;
-    case PROC_SUPER_MAGIC:
-      fsname = "proc";
-      break;
-    case USBDEVFS_SUPER_MAGIC:
-      fsname = "usbdevfs";
-      break;
-    case AUTOFS_SUPER_MAGIC:
-      fsname = "autofs";
-      break;
-    case NFS_SUPER_MAGIC:
-      fsname = "nfs";
-      break;
-    case SYSFS_MAGIC:
-      fsname = "sysfs";
-      break;
-    case REISERFS_SUPER_MAGIC:
-      fsname = "reiserfs";
-      break;
-    case XFS_SUPER_MAGIC:
-      fsname = "xfs";
-      break;
-    case JFS_SUPER_MAGIC:
-      fsname = "jfs";
-      break;
-    case HPFS_SUPER_MAGIC:
-      fsname = "hpfs";
-      break;
-    case DEVFS_SUPER_MAGIC:
-      fsname = "devfs";
-      break;
-    case ISOFS_SUPER_MAGIC:
-      fsname = "iso9660";
-      break;
-    case MSDOS_SUPER_MAGIC:
-      fsname = "msdos";
-      break;
-    case NTFS_SUPER_MAGIC:
-      fsname = "ntfs";
-      break;
-    case LOGFS_MAGIC_U32:
-      fsname = "logfs";
-      break;
-    case BTRFS_SUPER_MAGIC:
-      fsname = "btrfs";
-      break;
-    case CGROUP_SUPER_MAGIC:
-      fsname = "cgroup";
-      break;
-    case LUSTRE_SUPER_MAGIC:
-      fsname = "lustre";
-      break;
-    case F2FS_SUPER_MAGIC:
-      fsname = "f2fs";
-      break;
-    case EFIVARFS_MAGIC:
-      fsname = "efivarfs";
-      break;
-    }
-
-  FILE *mtab = __setmntent ("/proc/mounts", "r");
-  if (mtab == NULL)
-    mtab = __setmntent (_PATH_MOUNTED, "r");
-
-  int result = 0;
-  if (mtab != NULL)
-    {
-      bool success = false;
-      struct mntent mntbuf;
-      char tmpbuf[1024];
-
-      /* No locking needed.  */
-      (void) __fsetlocking (mtab, FSETLOCKING_BYCALLER);
-
-    again:
-      while (__getmntent_r (mtab, &mntbuf, tmpbuf, sizeof (tmpbuf)))
-	{
-	  /* In a first round we look for a given mount point, if
-	     we have a name.  */
-	  if (name != NULL && strcmp (name, mntbuf.mnt_dir) != 0)
-	    continue;
-	  /* We need to look at the entry only if the filesystem
-	     name matches.  If we have a filesystem name.  */
-	  else if (fsname != NULL
-		   && strcmp (fsname, mntbuf.mnt_type) != 0
-		   && (fsname2 == NULL
-		       || strcmp (fsname2, mntbuf.mnt_type) != 0)
-		   && (fsname3 == NULL
-		       || strcmp (fsname3, mntbuf.mnt_type) != 0))
-	    continue;
-
-	  /* Find out about the device the current entry is for.  */
-	  struct stat64 fsst;
-	  if (stat64 (mntbuf.mnt_dir, &fsst) >= 0
-	      && st.st_dev == fsst.st_dev)
-	    {
-	      /* Bingo, we found the entry for the device FD is on.
-		 Now interpret the option string.  */
-	      char *cp = mntbuf.mnt_opts;
-	      char *opt;
-
-	      while ((opt = __strsep (&cp, ",")) != NULL)
-		if (strcmp (opt, "ro") == 0)
-		  result |= ST_RDONLY;
-		else if (strcmp (opt, "nosuid") == 0)
-		  result |= ST_NOSUID;
-		else if (strcmp (opt, "noexec") == 0)
-		  result |= ST_NOEXEC;
-		else if (strcmp (opt, "nodev") == 0)
-		  result |= ST_NODEV;
-		else if (strcmp (opt, "sync") == 0)
-		  result |= ST_SYNCHRONOUS;
-		else if (strcmp (opt, "mand") == 0)
-		  result |= ST_MANDLOCK;
-		else if (strcmp (opt, "noatime") == 0)
-		  result |= ST_NOATIME;
-		else if (strcmp (opt, "nodiratime") == 0)
-		  result |= ST_NODIRATIME;
-		else if (strcmp (opt, "relatime") == 0)
-		  result |= ST_RELATIME;
-
-	      /* We can stop looking for more entries.  */
-	      success = true;
-	      break;
-	    }
-	}
-      /* Maybe the kernel names for the filesystems changed or the
-	 statvfs call got a name which was not the mount point.  Check
-	 again, this time without checking for name matches first.  */
-      if (! success && (name != NULL || fsname != NULL))
-	{
-	  if (name != NULL)
-	    /* Try without a mount point name.  */
-	    name = NULL;
-	  else
-	    {
-	      /* Try without a filesystem name.  */
-	      assert (fsname != NULL);
-	      fsname = fsname2 = fsname3 = NULL;
-	    }
-
-	  /* It is not strictly allowed to use rewind here.  But
-	     this code is part of the implementation so it is
-	     acceptable.  */
-	  rewind (mtab);
-
-	  goto again;
-	}
-
-      /* Close the file.  */
-      __endmntent (mtab);
-    }
-
-  return result;
-}
-# endif
 #else
 extern int __statvfs_getflags (const char *name, int fstype, int fd);
 #endif
@@ -267,14 +83,5 @@ INTERNAL_STATVFS (const char *name, struct STATVFS *buf,
   /* XXX I have no idea how to compute f_favail.  Any idea???  */
   buf->f_favail = buf->f_ffree;
 
-#ifndef __ASSUME_STATFS_F_FLAGS
-  if ((fsbuf->f_flags & ST_VALID) == 0)
-    /* Determining the flags is tricky.  We have to read /proc/mounts or
-       the /etc/mtab file and search for the entry which matches the given
-       file.  The way we can test for matching filesystem is using the
-       device number.  */
-    buf->f_flag = __statvfs_getflags (name, fsbuf->f_type, fd);
-  else
-#endif
-    buf->f_flag = fsbuf->f_flags ^ ST_VALID;
+  buf->f_flag = fsbuf->f_flags ^ ST_VALID;
 }
diff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h
index 76053b5..8961e4d 100644
--- a/sysdeps/unix/sysv/linux/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/kernel-features.h
@@ -78,11 +78,6 @@
 #define __ASSUME_PREADV	1
 #define __ASSUME_PWRITEV	1
 
-/* statfs fills in f_flags since 2.6.36.  */
-#if __LINUX_KERNEL_VERSION >= 0x020624
-# define __ASSUME_STATFS_F_FLAGS	1
-#endif
-
 /* Support for sendmmsg functionality was added in 3.0.  */
 #define __ASSUME_SENDMMSG	1
 

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                  |    7 +
 sysdeps/unix/sysv/linux/internal_statvfs.c |  195 +---------------------------
 sysdeps/unix/sysv/linux/kernel-features.h  |    5 -
 3 files changed, 8 insertions(+), 199 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]