[RFC PATCH 00/15] NFSd state containerization

Stanislav Kinsbursky
2012-11-13T15:45:58Z

This patch set is my first attempt to containerize NFSv4 state - i.e. make it
works in networks namespace context.
I admit, that some of this new code could be partially rewritten during future
NFSd containerization.
But the overall idea look more or less correct to me.
So, the main things here are:
1) making nfs4_client network namesapce aware.
2) Allocating all hashes (except file_hashtbl and reclaim_str_hashtbl) per
network namespace context on NFSd start (not init) and destroying on NFSd
state shutdown.
3) Allocating of reclaim_str_hashtbl on legacy tracker start and destroying on
legacy tracker stop.
4) Moving of client_lru and close_lru lists to per-net data.
5) Making lundromat network namespace aware.

The following series implements...

---

Stanislav Kinsbursky (15):
nfsd: use service net instead of hard-coded net where possible
nfsd: make nfs4_client network namespace dependent
nfsd: make reclaim_str_hashtbl allocated per net
nfsd: make conf_id_hashtbl allocated per net
nfsd: make conf_str_hashtbl allocated per net
nfsd: make unconf_str_hashtbl allocated per net
nfsd: make unconf_str_hastbl allocated per net
nfsd: make ownerstr_hashtbl allocated per net
nfsd: make lockowner_ino_hashtbl allocated per net
nfsd: make sessionid_hashtbl allocated per net
nfsd: make client_lru list per net
nfsd: make close_lru list per net
nfsd: use service net instead of hard-coded init_net
nfsd: pass nfsd_net instead of net to grace enders
nfsd: make laundromat network namespace aware

fs/nfsd/netns.h | 41 ++++
fs/nfsd/nfs4callback.c | 2
fs/nfsd/nfs4proc.c | 13 +
fs/nfsd/nfs4recover.c | 85 +++++++--
fs/nfsd/nfs4state.c | 441 ++++++++++++++++++++++++++++--------------------
fs/nfsd/state.h | 11 +
fs/nfsd/xdr4.h | 2
7 files changed, 377 insertions(+), 218 deletions(-)