[lxc-devel] [lxc/master] Add flag in mount_entry to skip NODEV in case of a persistent dev entry

rsampaio on Github lxc-bot at linuxcontainers.org
Sat Jul 2 02:16:20 UTC 2016


A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 723 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20160702/8b9c9bf4/attachment.bin>
-------------- next part --------------
From ae7a770e0a73aa3c413d6b6c10a65eb2c7897c26 Mon Sep 17 00:00:00 2001
From: Rodrigo Vaz <rodrigo.vaz at gmail.com>
Date: Fri, 1 Jul 2016 18:34:11 -0700
Subject: [PATCH] Add flag in mount_entry to skip NODEV in case of a persistent
 dev entry

Signed-off-by: Rodrigo Vaz <rodrigo at heroku.com>
---
 src/lxc/conf.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/lxc/conf.c b/src/lxc/conf.c
index e8dfaae..009aac8 100644
--- a/src/lxc/conf.c
+++ b/src/lxc/conf.c
@@ -1634,7 +1634,7 @@ static char *get_field(char *src, int nfields)
 
 static int mount_entry(const char *fsname, const char *target,
 		       const char *fstype, unsigned long mountflags,
-		       const char *data, int optional, const char *rootfs)
+		       const char *data, int optional, int dev, const char *rootfs)
 {
 #ifdef HAVE_STATVFS
 	struct statvfs sb;
@@ -1663,7 +1663,7 @@ static int mount_entry(const char *fsname, const char *target,
 			unsigned long required_flags = rqd_flags;
 			if (sb.f_flag & MS_NOSUID)
 				required_flags |= MS_NOSUID;
-			if (sb.f_flag & MS_NODEV)
+			if (sb.f_flag & MS_NODEV && !dev)
 				required_flags |= MS_NODEV;
 			if (sb.f_flag & MS_RDONLY)
 				required_flags |= MS_RDONLY;
@@ -1785,6 +1785,7 @@ static inline int mount_entry_on_generic(struct mntent *mntent,
 	char *mntdata;
 	int ret;
 	bool optional = hasmntopt(mntent, "optional") != NULL;
+	bool dev = hasmntopt(mntent, "dev") != NULL;
 
 	char *rootfs_path = NULL;
 	if (rootfs && rootfs->path)
@@ -1803,7 +1804,7 @@ static inline int mount_entry_on_generic(struct mntent *mntent,
 	}
 
 	ret = mount_entry(mntent->mnt_fsname, path, mntent->mnt_type, mntflags,
-			  mntdata, optional, rootfs_path);
+			  mntdata, optional, dev, rootfs_path);
 
 	free(mntdata);
 	return ret;


More information about the lxc-devel mailing list