From: Stanislav Kinsburskiy <skinsbur...@virtuozzo.com>

Look like the initial idea wasn't that good.
Legacy tracker is not supported in a container. But it's selected, if UMH
tracked is unaccessible. And legacy's "init" callback is always failing.
This means, that old "cld" tracker is always skipped, which is not, what
we want.
So, let's disable legacy tracker check in a container at all.

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

Signed-off-by: Stanislav Kinsburskiy <skinsbur...@virtuozzo.com>

(cherry-picked from vz8 commit 8842e721373f ("ve/nfsd: disable legacy
recovery tracking for containers"))

Signed-off-by: Nikita Yushchenko <nikita.yushche...@virtuozzo.com>
---
 fs/nfsd/nfs4recover.c | 24 +++++++++++++-----------
 1 file changed, 13 insertions(+), 11 deletions(-)

diff --git a/fs/nfsd/nfs4recover.c b/fs/nfsd/nfs4recover.c
index c9aba04bac56..026477c1d071 100644
--- a/fs/nfsd/nfs4recover.c
+++ b/fs/nfsd/nfs4recover.c
@@ -2047,18 +2047,20 @@ nfsd4_client_tracking_init(struct net *net)
        if (!status)
                return status;
 
-       /*
-        * Finally, See if the recoverydir exists and is a directory.
-        * If it is, then use the legacy ops.
-        */
-       nn->client_tracking_ops = &nfsd4_legacy_tracking_ops;
-       status = kern_path(nfs4_recoverydir(), LOOKUP_FOLLOW, &path);
-       if (!status) {
-               status = d_is_dir(path.dentry);
-               path_put(&path);
+       if (net_eq(net, &init_net)) {
+               /*
+                * Finally, See if the recoverydir exists and is a directory.
+                * If it is, then use the legacy ops.
+                */
+               nn->client_tracking_ops = &nfsd4_legacy_tracking_ops;
+               status = kern_path(nfs4_recoverydir(), LOOKUP_FOLLOW, &path);
                if (!status) {
-                       status = -EINVAL;
-                       goto out;
+                       status = d_is_dir(path.dentry);
+                       path_put(&path);
+                       if (!status) {
+                               status = -EINVAL;
+                               goto out;
+                       }
                }
        }
 
-- 
2.30.2

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

Reply via email to