diff options
author | Stanislav Kinsbursky <skinsbursky@parallels.com> | 2013-06-24 11:52:38 +0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2013-06-28 15:41:18 -0400 |
commit | 384816051ca9125cd54750e59c780c2a2655fa4f (patch) | |
tree | b7ef1f57a54d747f750c2ad8c8974b236ff9febf /Documentation/SubmittingDrivers | |
parent | 52fcac988ae6d5a902e9c1d79fc11ba5ec9361e7 (diff) | |
download | kernel_goldelico_gta04-384816051ca9125cd54750e59c780c2a2655fa4f.zip kernel_goldelico_gta04-384816051ca9125cd54750e59c780c2a2655fa4f.tar.gz kernel_goldelico_gta04-384816051ca9125cd54750e59c780c2a2655fa4f.tar.bz2 |
SUNRPC: fix races on PipeFS MOUNT notifications
Below are races, when RPC client can be created without PiepFS dentries
CPU#0 CPU#1
----------------------------- -----------------------------
rpc_new_client rpc_fill_super
rpc_setup_pipedir
mutex_lock(&sn->pipefs_sb_lock)
rpc_get_sb_net == NULL
(no per-net PipeFS superblock)
sn->pipefs_sb = sb;
notifier_call_chain(MOUNT)
(client is not in the list)
rpc_register_client
(client without pipes dentries)
To fix this patch:
1) makes PipeFS mount notification call with pipefs_sb_lock being held.
2) releases pipefs_sb_lock on new SUNRPC client creation only after
registration.
Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Cc: stable@vger.kernel.org
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'Documentation/SubmittingDrivers')
0 files changed, 0 insertions, 0 deletions