about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2014-06-25 16:39:33 +0000
committerJoseph Myers <joseph@codesourcery.com>2014-06-25 16:39:33 +0000
commita4ccbc9b243926a9904624b387fb18583c3d4d4d (patch)
tree6763cdd9dc3430294c39fba0fce5016d68e27eb4
parent9aea0cb842f02098d9c09b4855f883ddc8a8a97e (diff)
downloadglibc-a4ccbc9b243926a9904624b387fb18583c3d4d4d.tar.gz
glibc-a4ccbc9b243926a9904624b387fb18583c3d4d4d.tar.xz
glibc-a4ccbc9b243926a9904624b387fb18583c3d4d4d.zip
Remove __ASSUME_XFS_RESTRICTED_CHOWN.
This patch removes the __ASSUME_XFS_RESTRICTED_CHOWN macro, now it can
be presumed to be defined unconditionally.  I'm not sure if what's
left of __statfs_chown_restricted is actually useful (if not, a
followup could remove it), but I left it there to keep the patch
conservative and avoid changing the code generated for glibc.

Tested x86_64 that the disassembly of installed shared libraries is
unchanged by the patch.

	* sysdeps/unix/sysv/linux/kernel-features.h
	(__ASSUME_XFS_RESTRICTED_CHOWN): Remove macro.
	* sysdeps/unix/sysv/linux/pathconf.c (__statfs_chown_restricted)
	[__ASSUME_XFS_RESTRICTED_CHOWN]: Make code unconditional.
	(__statfs_chown_restricted) [!__ASSUME_XFS_RESTRICTED_CHOWN]:
	Remove conditional code.
-rw-r--r--ChangeLog9
-rw-r--r--sysdeps/unix/sysv/linux/kernel-features.h4
-rw-r--r--sysdeps/unix/sysv/linux/pathconf.c30
3 files changed, 9 insertions, 34 deletions
diff --git a/ChangeLog b/ChangeLog
index eea0ebe7c1..0849f42414 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2014-06-25  Joseph Myers  <joseph@codesourcery.com>
+
+	* sysdeps/unix/sysv/linux/kernel-features.h
+	(__ASSUME_XFS_RESTRICTED_CHOWN): Remove macro.
+	* sysdeps/unix/sysv/linux/pathconf.c (__statfs_chown_restricted)
+	[__ASSUME_XFS_RESTRICTED_CHOWN]: Make code unconditional.
+	(__statfs_chown_restricted) [!__ASSUME_XFS_RESTRICTED_CHOWN]:
+	Remove conditional code.
+
 2014-06-25  Will Newton  <will.newton@linaro.org>
 
 	* sysdeps/unix/sysv/linux/arm/dl-procinfo.c
diff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h
index 3c8ea50f79..665c348829 100644
--- a/sysdeps/unix/sysv/linux/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/kernel-features.h
@@ -228,7 +228,3 @@
 #if defined __x86_64__ && __LINUX_KERNEL_VERSION >= 0x030100
 # define __ASSUME_GETCPU_SYSCALL	1
 #endif
-
-/* 2.6.29 removed the XFS restricted_chown sysctl, so it is pointless looking
-   for it in newer kernels.  */
-#define __ASSUME_XFS_RESTRICTED_CHOWN 1
diff --git a/sysdeps/unix/sysv/linux/pathconf.c b/sysdeps/unix/sysv/linux/pathconf.c
index 578b73654f..086b2dc6e0 100644
--- a/sysdeps/unix/sysv/linux/pathconf.c
+++ b/sysdeps/unix/sysv/linux/pathconf.c
@@ -289,35 +289,5 @@ __statfs_chown_restricted (int result, const struct statfs *fsbuf)
       return -1;
     }
 
-#if __ASSUME_XFS_RESTRICTED_CHOWN
   return 1;
-#else
-  int fd;
-  int save_errno;
-  long int retval = 1;
-  switch (fsbuf->f_type)
-    {
-    case XFS_SUPER_MAGIC:
-      save_errno = errno;
-      /* Read the value from /proc/sys/fs/xfs/restrict_chown.  If we cannot
-	 read it default to assume the restriction is in place.  */
-      fd = open_not_cancel_2 ("/proc/sys/fs/xfs/restrict_chown", O_RDONLY);
-      if (fd != -1)
-	{
-	  char buf[2];
-	  if (TEMP_FAILURE_RETRY (read_not_cancel (fd, buf, 2)) == 2
-	      && buf[0] >= '0' && buf[0] <= '1')
-	    retval = buf[0] - '0';
-
-	  close_not_cancel_no_status (fd);
-	}
-      __set_errno (save_errno);
-      break;
-
-    default:
-      break;
-    }
-
-  return retval;
-#endif
 }