From: Cyrill Gorcunov <gorcu...@virtuozzo.com>

In commit 7eeb5b4afa8db5a2f2e1e47ab6b84e55fc8c5661 I addressed
first half of a problem, but I happen to work with dirty copy
of libvzctl where mount_opts cgroup has been c/r'ed manually,
so I missed the case where @devmnt_list is empty on restore
(just like it is in vanilla libvzctl). So fix the second half.

https://jira.sw.ru/browse/PSBM-48188

Reported-by: Igor Sukhih <i...@virtuozzo.com>
Signed-off-by: Cyrill Gorcunov <gorcu...@virtuozzo.com>

Reviewed-by: Vladimir Davydov <vdavy...@virtuozzo.com>

CC: Konstantin Khorenko <khore...@virtuozzo.com>

+++
fs/mount/ve: ratelimit 'no allowed mount options found for device' message

Container could trigger unlimited spam in the host dmesg:
        VE100: no allowed mount options found for device 182:250449

Let's ratelimit it.

https://jira.sw.ru/browse/PSBM-58329

Signed-off-by: Andrey Ryabinin <aryabi...@virtuozzo.com>

+++

VZ 8 rebase part https://jira.sw.ru/browse/PSBM-127782
vz7 commit: 7c96d96 ("ve/fs: namespace -- Don't fail on permissions if
@ve->devmnt_list is empty")

Signed-off-by: Alexander Mikhalitsyn <alexander.mikhalit...@virtuozzo.com>

(cherry picked from vz8 commit 9427d2083fc2a0b23b55f854746a4073920df3c0)
Signed-off-by: Andrey Zhadchenko <andrey.zhadche...@virtuozzo.com>
---
 fs/namespace.c | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/fs/namespace.c b/fs/namespace.c
index cead63d..ca0ad6a 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -2754,10 +2754,20 @@ int ve_devmnt_process(struct ve_struct *ve, dev_t dev, 
void **data_pp, int remou
                goto again;
        case 1:
                if (*data_pp) {
-                       ve_printk(VE_LOG_BOTH, KERN_WARNING "VE%s: no allowed "
-                                 "mount options found for device %u:%u\n",
-                                 ve->ve_name, MAJOR(dev), MINOR(dev));
-                       err = -EPERM;
+                       /*
+                        * Same as in chunk above but for case where
+                        * ve->devmnt_list is empty. Depending on
+                        * the way userspace tool restore container
+                        * it might be nonempty as well.
+                        */
+                       if (ve->is_pseudosuper) {
+                               err = 0;
+                       } else {
+                               ve_pr_warn_ratelimited(VE_LOG_BOTH, "VE%s: no 
allowed "
+                                         "mount options found for device 
%u:%u\n",
+                                         ve->ve_name, MAJOR(dev), MINOR(dev));
+                               err = -EPERM;
+                       }
                } else
                        err = 0;
                break;
-- 
1.8.3.1

_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to