From 6484ba5ef092b62b7d2112c0d976dbd6d1a40fde Mon Sep 17 00:00:00 2001 From: Andreas Jaeger Date: Fri, 1 Oct 2010 10:49:47 -0400 Subject: Handle cgroup and btrfs filesystems --- sysdeps/unix/sysv/linux/internal_statvfs.c | 6 ++++++ sysdeps/unix/sysv/linux/linux_fsinfo.h | 8 +++++++- sysdeps/unix/sysv/linux/pathconf.c | 6 +++++- 3 files changed, 18 insertions(+), 2 deletions(-) (limited to 'sysdeps/unix') diff --git a/sysdeps/unix/sysv/linux/internal_statvfs.c b/sysdeps/unix/sysv/linux/internal_statvfs.c index 83ffb99..8288548 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 b10e98b..8efbdea 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 db03529..ae597fb 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: -- cgit v1.1