From: Patrick Caulfield <[email protected]> This patch clears the user_data of active sockets as part of cleanup. This prevents any late-arriving data from trying to add jobs to the work queue while we are tidying up. Signed-Off-By: Patrick Caulfield <[email protected]> Signed-Off-By: David Teigland <[email protected]> Signed-off-by: Steven Whitehouse <[email protected]> diff --git a/fs/dlm/lowcomms.c b/fs/dlm/lowcomms.c index 27970a5..fc0bff7 100644 --- a/fs/dlm/lowcomms.c +++ b/fs/dlm/lowcomms.c @@ -260,7 +260,7 @@ static int nodeid_to_addr(int nodeid, struct sockaddr *retaddr) static void lowcomms_data_ready(struct sock *sk, int count_unused) { struct connection *con = sock2con(sk); - if (!test_and_set_bit(CF_READ_PENDING, &con->flags)) + if (con && !test_and_set_bit(CF_READ_PENDING, &con->flags)) queue_work(recv_workqueue, &con->rwork); } @@ -268,7 +268,7 @@ static void lowcomms_write_space(struct sock *sk) { struct connection *con = sock2con(sk); - if (!test_and_set_bit(CF_WRITE_PENDING, &con->flags)) + if (con && !test_and_set_bit(CF_WRITE_PENDING, &con->flags)) queue_work(send_workqueue, &con->swork); } @@ -1400,8 +1400,11 @@ void dlm_lowcomms_stop(void) down(&connections_lock); for (i = 0; i <= max_nodeid; i++) { con = __nodeid2con(i, 0); - if (con) + if (con) { con->flags |= 0xFF; + if (con->sock) + con->sock->sk->sk_user_data = NULL; + } } up(&connections_lock); -- 1.5.1.2 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
- Follow-Ups:
- References:
- [GFS2/DLM] Pre-pull Patch Posting
- From: [email protected]
- [PATCH] [GFS2] flush the glock completely in inode_go_sync
- From: [email protected]
- [PATCH] [DLM] fix a couple of races
- From: [email protected]
- [PATCH] [GFS2] kernel changes to support new gfs2_grow command
- From: [email protected]
- [PATCH] [GFS2] Kernel changes to support new gfs2_grow command (part 2)
- From: [email protected]
- [PATCH] [GFS2] use zero_user_page
- From: [email protected]
- [PATCH] [GFS2] Addendum patch 2 for gfs2_grow
- From: [email protected]
- [PATCH] [GFS2] Reduce size of struct gdlm_lock
- From: [email protected]
- [PATCH] [GFS2] Clean up inode number handling
- From: [email protected]
- [PATCH] [GFS2] Quotas non-functional - fix bug
- From: [email protected]
- [PATCH] [DLM] keep dlm from panicing when traversing rsb list in debugfs
- From: [email protected]
- [PATCH] [DLM] block scand during recovery [1/6]
- From: [email protected]
- [PATCH] [DLM] add lock timeouts and warnings [2/6]
- From: [email protected]
- [PATCH] [DLM] dlm_device interface changes [3/6]
- From: [email protected]
- [PATCH] [DLM] cancel in conversion deadlock [4/6]
- From: [email protected]
- [PATCH] [DLM] fix new_lockspace error exit [5/6]
- From: [email protected]
- [PATCH] [DLM] wait for config check during join [6/6]
- From: [email protected]
- [PATCH] [DLM] fix compile breakage
- From: [email protected]
- [PATCH] [GFS2] latest gfs2-nmw headers break userland build
- From: [email protected]
- [PATCH] [DLM] Compile fix
- From: [email protected]
- [PATCH] [DLM] timeout fixes
- From: [email protected]
- [PATCH] [DLM] canceling deadlocked lock
- From: [email protected]
- [PATCH] [DLM] dumping master locks
- From: [email protected]
- [PATCH] [DLM] show default protocol
- From: [email protected]
- [PATCH] [GFS2] Quotas non-functional - fix another bug
- From: [email protected]
- [PATCH] [GFS2] Make the log reserved blocks depend on block size
- From: [email protected]
- [GFS2/DLM] Pre-pull Patch Posting
- Prev by Date: [PATCH] [GFS2] Make the log reserved blocks depend on block size
- Next by Date: [PATCH] [GFS2] fix jdata issues
- Previous by thread: [PATCH] [GFS2] Make the log reserved blocks depend on block size
- Next by thread: [PATCH] [GFS2] fix jdata issues
- Index(es):