[Devel] [PATCH rh7] fs: Allow mounting a bdev in RW mode even if devcgroup allows only RO.
Kirill Tkhai
ktkhai at odin.com
Thu Jun 25 07:52:26 PDT 2015
We doesn't want to allow a CT full write access over a bdev,
so that vzctl usually prohibits it.
But we want to permit a mounting in RW mode inside container.
https://jira.sw.ru/browse/PSBM-34497
Note_1 (for reviewer): FMODE_MOUNT is used only in mount_bdev(),
so this patch affects the only place.
Note_2: strange, but kernel does not check for devcgroup pemittions
during remount. If write access is prohibited, it's possible to
mount a bdev in RO mode, and to remount it RW after that, without
problems. Looks like a mainstream bug. I'll think about that/send
a patch/etc.
Signed-off-by: Kirill Tkhai <ktkhai at odin.com>
---
fs/block_dev.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/fs/block_dev.c b/fs/block_dev.c
index 15bd3ae..34949b0 100644
--- a/fs/block_dev.c
+++ b/fs/block_dev.c
@@ -1075,8 +1075,16 @@ static int __blkdev_get(struct block_device *bdev, fmode_t mode, int for_part)
perm |= MAY_READ;
if (mode & FMODE_WRITE)
perm |= MAY_WRITE;
- if (mode & FMODE_MOUNT)
+ if (mode & FMODE_MOUNT) {
perm |= MAY_MOUNT;
+ /*
+ * In PCS7 vzctl usually prohibits write access in devcgroup
+ * permittions, because it allows direct writing to a bdev,
+ * which is dangerous.
+ * But anyway we want to permit mounting a bdev in rw mode.
+ */
+ perm &= ~MAY_WRITE;
+ }
/*
* hooks: /n/, see "layering violations".
*/
More information about the Devel
mailing list