The patch titled Subject: ocfs2: call o2quo_exit() if malloc failed in o2net_init() has been added to the -mm tree. Its filename is ocfs2-call-o2quo_exit-if-malloc-failed-in-o2net_init.patch This patch should soon appear at http://ozlabs.org/~akpm/mmots/broken-out/ocfs2-call-o2quo_exit-if-malloc-failed-in-o2net_init.patch and later at http://ozlabs.org/~akpm/mmotm/broken-out/ocfs2-call-o2quo_exit-if-malloc-failed-in-o2net_init.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Joseph Qi <joseph.qi@xxxxxxxxxx> Subject: ocfs2: call o2quo_exit() if malloc failed in o2net_init() In o2net_init, if malloc failed, it directly returns -ENOMEM. Then o2quo_exit won't be called in init_o2nm. Signed-off-by: Joseph Qi <joseph.qi@xxxxxxxxxx> Reviewed-by: joyce.xue <xuejiufei@xxxxxxxxxx> Cc: Mark Fasheh <mfasheh@xxxxxxxx> Cc: Joel Becker <jlbec@xxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- fs/ocfs2/cluster/tcp.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff -puN fs/ocfs2/cluster/tcp.c~ocfs2-call-o2quo_exit-if-malloc-failed-in-o2net_init fs/ocfs2/cluster/tcp.c --- a/fs/ocfs2/cluster/tcp.c~ocfs2-call-o2quo_exit-if-malloc-failed-in-o2net_init +++ a/fs/ocfs2/cluster/tcp.c @@ -2146,17 +2146,13 @@ int o2net_init(void) o2quo_init(); if (o2net_debugfs_init()) - return -ENOMEM; + goto out; o2net_hand = kzalloc(sizeof(struct o2net_handshake), GFP_KERNEL); o2net_keep_req = kzalloc(sizeof(struct o2net_msg), GFP_KERNEL); o2net_keep_resp = kzalloc(sizeof(struct o2net_msg), GFP_KERNEL); - if (!o2net_hand || !o2net_keep_req || !o2net_keep_resp) { - kfree(o2net_hand); - kfree(o2net_keep_req); - kfree(o2net_keep_resp); - return -ENOMEM; - } + if (!o2net_hand || !o2net_keep_req || !o2net_keep_resp) + goto out; o2net_hand->protocol_version = cpu_to_be64(O2NET_PROTOCOL_VERSION); o2net_hand->connector_id = cpu_to_be64(1); @@ -2181,6 +2177,14 @@ int o2net_init(void) } return 0; + +out: + kfree(o2net_hand); + kfree(o2net_keep_req); + kfree(o2net_keep_resp); + + o2quo_exit(); + return -ENOMEM; } void o2net_exit(void) _ Patches currently in -mm which might be from joseph.qi@xxxxxxxxxx are ocfs2-free-vol_lable-in-ocfs2_delete_osb.patch ocfs2-dlm-refactor-error-handling-in-dlm_alloc_ctxt.patch ocfs2-fix-shift-left-operations-overflow.patch ocfs2-call-o2quo_exit-if-malloc-failed-in-o2net_init.patch ocfs2-dlm-fix-race-between-dispatched_work-and-dlm_lockres_grab_inflight_worker.patch ocfs2-fix-deadlock-between-o2hb-thread-and-o2net_wq.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html