Vasily Averin
81833de1a4
lockd: fix "list_add double add" caused by legacy signal interface
...
restart_grace() uses hardcoded init_net.
It can cause to "list_add double add" in following scenario:
1) nfsd and lockd was started in several net namespaces
2) nfsd in init_net was stopped (lockd was not stopped because
it have users from another net namespaces)
3) lockd got signal, called restart_grace() -> set_grace_period()
and enabled lock_manager in hardcoded init_net.
4) nfsd in init_net is started again,
its lockd_up() calls set_grace_period() and tries to add
lock_manager into init_net 2nd time.
Jeff Layton suggest:
"Make it safe to call locks_start_grace multiple times on the same
lock_manager. If it's already on the global grace_list, then don't try
to add it again. (But we don't intentionally add twice, so for now we
WARN about that case.)
With this change, we also need to ensure that the nfsd4 lock manager
initializes the list before we call locks_start_grace. While we're at
it, move the rest of the nfsd_net initialization into
nfs4_state_create_net. I see no reason to have it spread over two
functions like it is today."
Suggested patch was updated to generate warning in described situation.
Suggested-by: Jeff Layton <[email protected] >
Signed-off-by: Vasily Averin <[email protected] >
Signed-off-by: J. Bruce Fields <[email protected] >
2017-11-27 16:45:11 -05:00
..
acl.h
auth.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
auth.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
blocklayout.c
Add support for online resizing of file systems with bigalloc. Fix a
2017-11-14 12:59:42 -08:00
blocklayoutxdr.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
blocklayoutxdr.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
cache.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
current_stateid.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
export.c
NFSD: make cache_detail structures const
2017-11-27 16:45:11 -05:00
export.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
fault_inject.c
Lots of good bugfixes, including:
2017-11-18 11:22:04 -08:00
flexfilelayout.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
flexfilelayoutxdr.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
flexfilelayoutxdr.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
idmap.h
Kconfig
block: make scsi_request and scsi ioctl support optional
2017-01-31 10:53:05 -07:00
lockd.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
Makefile
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
netns.h
race of nfsd inetaddr notifiers vs nn->nfsd_serv change
2017-11-27 16:45:11 -05:00
nfs2acl.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
nfs3acl.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
nfs3proc.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
nfs3xdr.c
Lots of good bugfixes, including:
2017-11-18 11:22:04 -08:00
nfs4acl.c
nfsd: check permissions when setting ACLs
2016-06-24 12:11:52 -04:00
nfs4callback.c
nfsd: Fix a memory scribble in the callback channel
2017-07-17 13:15:06 -04:00
nfs4idmap.c
NFSD: make cache_detail structures const
2017-11-27 16:45:11 -05:00
nfs4layouts.c
Lots of good bugfixes, including:
2017-11-18 11:22:04 -08:00
nfs4proc.c
Lots of good bugfixes, including:
2017-11-18 11:22:04 -08:00
nfs4recover.c
Various bugfixes, a RDMA update from Chuck Lever, and support for a new
2016-03-24 10:41:00 -07:00
nfs4state.c
lockd: fix "list_add double add" caused by legacy signal interface
2017-11-27 16:45:11 -05:00
nfs4xdr.c
nfsd: Incoming xdr_bufs may have content in tail buffer
2017-09-05 15:15:29 -04:00
nfscache.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
nfsctl.c
race of nfsd inetaddr notifiers vs nn->nfsd_serv change
2017-11-27 16:45:11 -05:00
nfsd.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
nfsfh.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
nfsfh.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
nfsproc.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
nfssvc.c
race of nfsd inetaddr notifiers vs nn->nfsd_serv change
2017-11-27 16:45:11 -05:00
nfsxdr.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
pnfs.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
state.h
fs, nfsd: convert nfs4_file.fi_ref from atomic_t to refcount_t
2017-11-07 16:43:59 -05:00
stats.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
stats.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
trace.c
trace.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
vfs.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
vfs.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
xdr.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
xdr3.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
xdr4.h
nfsd4: fix cached replies to solo SEQUENCE compounds
2017-11-07 16:43:57 -05:00
xdr4cb.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00