提交 789e1e10 编写于 作者: J Jeff Layton 提交者: Chuck Lever

nfsd: shut down the NFSv4 state objects before the filecache

Currently, we shut down the filecache before trying to clean up the
stateids that depend on it. This leads to the kernel trying to free an
nfsd_file twice, and a refcount overput on the nf_mark.

Change the shutdown procedure to tear down all of the stateids prior
to shutting down the filecache.
Reported-and-tested-by: NWang Yugui <wangyugui@e16-tech.com>
Signed-off-by: NJeff Layton <jlayton@kernel.org>
Fixes: 5e113224 ("nfsd: nfsd_file cache entries should be per net namespace")
Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
上级 75333d48
...@@ -453,8 +453,8 @@ static void nfsd_shutdown_net(struct net *net) ...@@ -453,8 +453,8 @@ static void nfsd_shutdown_net(struct net *net)
{ {
struct nfsd_net *nn = net_generic(net, nfsd_net_id); struct nfsd_net *nn = net_generic(net, nfsd_net_id);
nfsd_file_cache_shutdown_net(net);
nfs4_state_shutdown_net(net); nfs4_state_shutdown_net(net);
nfsd_file_cache_shutdown_net(net);
if (nn->lockd_up) { if (nn->lockd_up) {
lockd_down(net); lockd_down(net);
nn->lockd_up = false; nn->lockd_up = false;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册