aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Jaeger <aj@suse.de>2010-10-01 10:49:47 -0400
committerUlrich Drepper <drepper@gmail.com>2010-10-01 10:49:47 -0400
commit6484ba5ef092b62b7d2112c0d976dbd6d1a40fde (patch)
treeff7991c4fe3e1d0a49f0e3bb1399f24b1237080f
parent91c42559190f59c6c4b3cb0b7f5c9bb11dd28161 (diff)
downloadglibc-6484ba5ef092b62b7d2112c0d976dbd6d1a40fde.tar
glibc-6484ba5ef092b62b7d2112c0d976dbd6d1a40fde.tar.gz
glibc-6484ba5ef092b62b7d2112c0d976dbd6d1a40fde.tar.bz2
glibc-6484ba5ef092b62b7d2112c0d976dbd6d1a40fde.zip
Handle cgroup and btrfs filesystems
-rw-r--r--ChangeLog9
-rw-r--r--sysdeps/unix/sysv/linux/internal_statvfs.c6
-rw-r--r--sysdeps/unix/sysv/linux/linux_fsinfo.h8
-rw-r--r--sysdeps/unix/sysv/linux/pathconf.c6
4 files changed, 27 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 4404718742..62eb2ff130 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2010-09-30 Andreas Jaeger <aj@suse.de>
+
+ * sysdeps/unix/sysv/linux_fsinfo.h (BTRFS_SUPER_MAGIC): Define.
+ (CGROUP_SUPER_MAGIC): Define.
+ * sysdeps/unix/sysv/linux/internal_statvfs.c (__statvfs_getflags):
+ Handle btrfs and cgroup file systems.
+ * sysdeps/unix/sysv/linux/pathconf.c (__statfs_filesize_max):
+ Likewise.
+
2010-09-27 Luis Machado <luisgpm@br.ibm.com>
* sysdeps/powerpc/powerpc32/rtld-memset.c: New file.
diff --git a/sysdeps/unix/sysv/linux/internal_statvfs.c b/sysdeps/unix/sysv/linux/internal_statvfs.c
index 83ffb99c05..828854806c 100644
--- a/sysdeps/unix/sysv/linux/internal_statvfs.c
+++ b/sysdeps/unix/sysv/linux/internal_statvfs.c
@@ -109,6 +109,12 @@ __statvfs_getflags (const char *name, int fstype, struct stat64 *st)
case LOGFS_MAGIC_U32:
fsname = "logfs";
break;
+ case BTRFS_SUPER_MAGIC:
+ fsname = "btrfs";
+ break;
+ case CGROUP_SUPER_MAGIC:
+ fsname = "cgroup";
+ break;
}
FILE *mtab = __setmntent ("/proc/mounts", "r");
diff --git a/sysdeps/unix/sysv/linux/linux_fsinfo.h b/sysdeps/unix/sysv/linux/linux_fsinfo.h
index b10e98b46f..8efbdea42d 100644
--- a/sysdeps/unix/sysv/linux/linux_fsinfo.h
+++ b/sysdeps/unix/sysv/linux/linux_fsinfo.h
@@ -23,7 +23,7 @@
/* These definitions come from the kernel headers. But we cannot
include the headers here because of type clashes. If new
filesystem types will become available we have to add the
- appropriate definitions here.*/
+ appropriate definitions here. */
/* Constant that identifies the `adfs' filesystem. */
#define ADFS_SUPER_MAGIC 0xadf5
@@ -37,6 +37,12 @@
/* Constant that identifies the `bfs' filesystem. */
#define BFS_MAGIC 0x1BADFACE
+/* Constant that identifies the `btrfs' filesystem. */
+#define BTRFS_SUPER_MAGIC 0x1BADFACE
+
+/* Constant that identifies the `cgroup' filesystem. */
+#define CGROUP_SUPER_MAGIC 0x1BADFACE
+
/* Constant that identifies the `coda' filesystem. */
#define CODA_SUPER_MAGIC 0x73757245
diff --git a/sysdeps/unix/sysv/linux/pathconf.c b/sysdeps/unix/sysv/linux/pathconf.c
index db03529fe8..ae597fb5ba 100644
--- a/sysdeps/unix/sysv/linux/pathconf.c
+++ b/sysdeps/unix/sysv/linux/pathconf.c
@@ -1,5 +1,5 @@
/* Get file-specific information about a file. Linux version.
- Copyright (C) 1991,1995,1996,1998-2003,2008 Free Software Foundation, Inc.
+ Copyright (C) 1991,1995,1996,1998-2003,2008,2010 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -126,6 +126,9 @@ __statfs_filesize_max (int result, const struct statfs *fsbuf)
switch (fsbuf->f_type)
{
+ case BTRFS_SUPER_MAGIC:
+ return 255;
+
case EXT2_SUPER_MAGIC:
case UFS_MAGIC:
case UFS_CIGAM:
@@ -136,6 +139,7 @@ __statfs_filesize_max (int result, const struct statfs *fsbuf)
case UDF_SUPER_MAGIC:
case JFS_SUPER_MAGIC:
case VXFS_SUPER_MAGIC:
+ case CGROUP_SUPER_MAGIC:
return 64;
case MSDOS_SUPER_MAGIC: