Messages in this thread Patch in this message |  | | From | Christian Brauner <> | Subject | [PATCH 6/6 RESEND] statfs: add ST_SLAVE | Date | Wed, 18 Apr 2018 11:27:22 +0200 |
| |
This lets userspace query whether a mountpoint was made MS_SLAVE.
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com> Cc: Alexander Viro <viro@zeniv.linux.org.uk> --- fs/statfs.c | 10 +++++++++- include/linux/statfs.h | 1 + 2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/fs/statfs.c b/fs/statfs.c index 26cda2586d7e..86e957d16a68 100644 --- a/fs/statfs.c +++ b/fs/statfs.c @@ -10,6 +10,7 @@ #include <linux/uaccess.h> #include <linux/compat.h> #include "internal.h" +#include "pnode.h" static int flags_by_mnt(int mnt_flags) { @@ -52,8 +53,15 @@ static int flags_by_sb(int s_flags) static int calculate_f_flags(struct vfsmount *mnt) { - return ST_VALID | flags_by_mnt(mnt->mnt_flags) | + int flags = 0; + + flags = ST_VALID | flags_by_mnt(mnt->mnt_flags) | flags_by_sb(mnt->mnt_sb->s_flags); + + if (IS_MNT_SLAVE(real_mount(mnt))) + flags |= ST_SLAVE; + + return flags; } static int statfs_by_dentry(struct dentry *dentry, struct kstatfs *buf) diff --git a/include/linux/statfs.h b/include/linux/statfs.h index 1ea4a45aa6c3..663fa5498a7d 100644 --- a/include/linux/statfs.h +++ b/include/linux/statfs.h @@ -42,6 +42,7 @@ struct kstatfs { #define ST_RELATIME (1<<12) /* update atime relative to mtime/ctime */ #define ST_UNBINDABLE (1<<17) /* change to unbindable */ #define ST_PRIVATE (1<<18) /* change to private */ +#define ST_SLAVE (1<<19) /* change to slave */ #define ST_SHARED (1<<20) /* change to shared */ #endif -- 2.17.0
|  |