diff options
author | Stanislav Kinsbursky <skinsbursky@parallels.com> | 2013-02-01 07:56:22 -0500 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2013-02-15 11:21:01 -0500 |
commit | 71a50306934f416e74ba27cbfb88855c22251525 (patch) | |
tree | 000d60ccbb372d865fb1df5af2bc05cc8d8e4c79 | |
parent | 96d851c4d28de8cc83fe2bd5c6bc2eb8f253a6c5 (diff) |
nfsd: disable usermode helper client tracker in container
This tracker uses khelper kthread to execute binaries.
Execution itself is done from kthread context - i.e. global root is used.
This is not suitable for containers with own root.
So, disable this tracker for a while.
Note: one of possible solutions can be pass "init" callback to khelper, which
will swap root to desired one.
Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
-rw-r--r-- | fs/nfsd/nfs4recover.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/nfsd/nfs4recover.c b/fs/nfsd/nfs4recover.c index ba6fdd4a0455..e0ae1cf18a82 100644 --- a/fs/nfsd/nfs4recover.c +++ b/fs/nfsd/nfs4recover.c | |||
@@ -1185,6 +1185,12 @@ bin_to_hex_dup(const unsigned char *src, int srclen) | |||
1185 | static int | 1185 | static int |
1186 | nfsd4_umh_cltrack_init(struct net __attribute__((unused)) *net) | 1186 | nfsd4_umh_cltrack_init(struct net __attribute__((unused)) *net) |
1187 | { | 1187 | { |
1188 | /* XXX: The usermode helper s not working in container yet. */ | ||
1189 | if (net != &init_net) { | ||
1190 | WARN(1, KERN_ERR "NFSD: attempt to initialize umh client " | ||
1191 | "tracking in a container!\n"); | ||
1192 | return -EINVAL; | ||
1193 | } | ||
1188 | return nfsd4_umh_cltrack_upcall("init", NULL, NULL); | 1194 | return nfsd4_umh_cltrack_upcall("init", NULL, NULL); |
1189 | } | 1195 | } |
1190 | 1196 | ||