[Devel] [PATCH v2 2/4] SUNRPC: fix races on PipeFS MOUNT notifications
Stanislav Kinsbursky
skinsbursky at parallels.com
Mon Jun 17 23:41:26 PDT 2013
17.06.2013 22:20, Myklebust, Trond пишет:
> On Tue, 2013-06-11 at 18:39 +0400, Stanislav Kinsbursky wrote:
>> 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 at parallels.com>
>> Cc: stable at vger.kernel.org
>
> Hi Stanislav,
>
> This isn't going to apply to the stable kernels without the cleanup
> patch. Could you please reorganise this patch series so that the cleanup
> comes last.
>
> Thanks,
> Trond
>
>
Hello, Trond.
Sure, will do.
--
Best regards,
Stanislav Kinsbursky
More information about the Devel
mailing list