diff options
author | Steve Dickson <steved@redhat.com> | 2014-09-18 09:13:17 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-10-05 14:54:10 -0700 |
commit | 648d333d7d845d4364d0fab9d31ebb48e4641bfb (patch) | |
tree | 7a9975bf2705d7bc8d98c3cdde07ecfb4e4cee4d /include/sound/pcm_params.h | |
parent | 47415d5452b8945bfbe7e2adb3fa15658b3c3d21 (diff) | |
download | linux-3.10-648d333d7d845d4364d0fab9d31ebb48e4641bfb.tar.gz linux-3.10-648d333d7d845d4364d0fab9d31ebb48e4641bfb.tar.bz2 linux-3.10-648d333d7d845d4364d0fab9d31ebb48e4641bfb.zip |
NFSv4: nfs4_state_manager() vs. nfs_server_remove_lists()
commit 080af20cc945d110f9912d01cf6b66f94a375b8d upstream.
There is a race between nfs4_state_manager() and
nfs_server_remove_lists() that happens during a nfsv3 mount.
The v3 mount notices there is already a supper block so
nfs_server_remove_lists() called which uses the nfs_client_lock
spin lock to synchronize access to the client list.
At the same time nfs4_state_manager() is running through
the client list looking for work to do, using the same
lock. When nfs4_state_manager() wins the race to the
list, a v3 client pointer is found and not ignored
properly which causes the panic.
Moving some protocol checks before the state checking
avoids the panic.
Signed-off-by: Steve Dickson <steved@redhat.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/sound/pcm_params.h')
0 files changed, 0 insertions, 0 deletions