The commit is pushed to "branch-rh7-3.10.0-229.7.2.vz7.9.x-ovz" and will appear
at https://src.openvz.org/scm/ovz/vzkernel.git
after rh7-3.10.0-229.7.2.vz7.9.29
------>
commit e008ca562c7d29154ebfd7d617ea1dfe8d819285
Author: Stanislav Kinsburskiy <[email protected]>
Date: Thu Jan 28 20:00:43 2016 +0400
ve/nfsd: disable legacy recovery tracking for containers
Look like the initial idea wasn't that good.
Lecgay tracker is not supportd 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 <[email protected]>
---
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 4c86b18..0577c56 100644
--- a/fs/nfsd/nfs4recover.c
+++ b/fs/nfsd/nfs4recover.c
@@ -1273,17 +1273,19 @@ nfsd4_client_tracking_init(struct net *net)
if (!status)
return status;
- /*
- * 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 = S_ISDIR(path.dentry->d_inode->i_mode);
- path_put(&path);
- if (status)
- goto do_init;
+ if (net_eq(net, &init_net)) {
+ /*
+ * 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 = S_ISDIR(path.dentry->d_inode->i_mode);
+ path_put(&path);
+ if (status)
+ goto do_init;
+ }
}
/* Finally, try to use nfsdcld */
_______________________________________________
Devel mailing list
[email protected]
https://lists.openvz.org/mailman/listinfo/devel