Re: [PATCH v2 2/4] SUNRPC: fix races on PipeFS MOUNT notifications
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(>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 Cc: sta...@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 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v2 2/4] SUNRPC: fix races on PipeFS MOUNT notifications
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 skinsbur...@parallels.com Cc: sta...@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 -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v2 2/4] SUNRPC: fix races on PipeFS MOUNT notifications
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_clientrpc_fill_super > rpc_setup_pipedir > mutex_lock(>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 > Cc: sta...@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 -- Trond Myklebust Linux NFS client maintainer NetApp trond.mykleb...@netapp.com www.netapp.com -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v2 2/4] SUNRPC: fix races on PipeFS MOUNT notifications
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_clientrpc_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 skinsbur...@parallels.com Cc: sta...@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 -- Trond Myklebust Linux NFS client maintainer NetApp trond.mykleb...@netapp.com www.netapp.com -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/