All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christian Brauner <christian.brauner@ubuntu.com>
To: viro@zeniv.linux.org.uk, tglx@linutronix.de,
	kstewart@linuxfoundation.org, gregkh@linuxfoundation.org,
	pombredanne@nexb.com, linux-fsdevel@vger.kernel.org,
	linux-kernel@vger.kernel.org, serge@hallyn.com
Cc: Christian Brauner <christian.brauner@ubuntu.com>
Subject: [PATCH 6/6] statfs: add ST_SLAVE
Date: Fri, 13 Apr 2018 18:11:26 +0200	[thread overview]
Message-ID: <20180413161126.31313-7-christian.brauner@ubuntu.com> (raw)
In-Reply-To: <20180413161126.31313-1-christian.brauner@ubuntu.com>

This lets userspace query whether a mountpoint was made MS_SLAVE.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
---
 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

      parent reply	other threads:[~2018-04-13 16:11 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-13 16:11 [PATCH 0/6] statfs: handle mount propagation Christian Brauner
2018-04-13 16:11 ` [PATCH 1/6] fs: use << for MS_* flags Christian Brauner
2018-04-13 16:45   ` Randy Dunlap
2018-04-13 20:19     ` Greg KH
2018-04-13 16:11 ` [PATCH 2/6] statfs: use << to align with fs header Christian Brauner
2018-04-13 16:47   ` Randy Dunlap
2018-04-13 17:35   ` Andreas Dilger
2018-04-13 17:55     ` Randy Dunlap
2018-04-13 18:32       ` Christian Brauner
2018-04-13 16:11 ` [PATCH 3/6] statfs: add ST_UNBINDABLE Christian Brauner
2018-04-13 16:11 ` [PATCH 4/6] statfs: add ST_SHARED Christian Brauner
2018-04-13 16:11 ` [PATCH 5/6] statfs: add ST_PRIVATE Christian Brauner
2018-04-13 16:11 ` Christian Brauner [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180413161126.31313-7-christian.brauner@ubuntu.com \
    --to=christian.brauner@ubuntu.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=kstewart@linuxfoundation.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pombredanne@nexb.com \
    --cc=serge@hallyn.com \
    --cc=tglx@linutronix.de \
    --cc=viro@zeniv.linux.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.