Merge tag 'xfs-for-linus-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-block.git] / include / linux / statfs.h
1 #ifndef _LINUX_STATFS_H
2 #define _LINUX_STATFS_H
3
4 #include <linux/types.h>
5 #include <asm/statfs.h>
6
7 struct kstatfs {
8         long f_type;
9         long f_bsize;
10         u64 f_blocks;
11         u64 f_bfree;
12         u64 f_bavail;
13         u64 f_files;
14         u64 f_ffree;
15         __kernel_fsid_t f_fsid;
16         long f_namelen;
17         long f_frsize;
18         long f_flags;
19         long f_spare[4];
20 };
21
22 /*
23  * Definitions for the flag in f_flag.
24  *
25  * Generally these flags are equivalent to the MS_ flags used in the mount
26  * ABI.  The exception is ST_VALID which has the same value as MS_REMOUNT
27  * which doesn't make any sense for statfs.
28  */
29 #define ST_RDONLY       0x0001  /* mount read-only */
30 #define ST_NOSUID       0x0002  /* ignore suid and sgid bits */
31 #define ST_NODEV        0x0004  /* disallow access to device special files */
32 #define ST_NOEXEC       0x0008  /* disallow program execution */
33 #define ST_SYNCHRONOUS  0x0010  /* writes are synced at once */
34 #define ST_VALID        0x0020  /* f_flags support is implemented */
35 #define ST_MANDLOCK     0x0040  /* allow mandatory locks on an FS */
36 /* 0x0080 used for ST_WRITE in glibc */
37 /* 0x0100 used for ST_APPEND in glibc */
38 /* 0x0200 used for ST_IMMUTABLE in glibc */
39 #define ST_NOATIME      0x0400  /* do not update access times */
40 #define ST_NODIRATIME   0x0800  /* do not update directory access times */
41 #define ST_RELATIME     0x1000  /* update atime relative to mtime/ctime */
42
43 #endif