diff --git a/[refs] b/[refs] index bd913cff9837..44911514ddd2 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1c0f4872dc4bbeb2223a300517099786211fce83 +refs/heads/master: f2f5095f9e63db57faa7cb082e958910ecdd7ad4 diff --git a/trunk/fs/dlm/lowcomms-tcp.c b/trunk/fs/dlm/lowcomms-tcp.c index 86e5f81da7cb..6e27201f2f95 100644 --- a/trunk/fs/dlm/lowcomms-tcp.c +++ b/trunk/fs/dlm/lowcomms-tcp.c @@ -97,9 +97,6 @@ struct connection { struct socket *sock; /* NULL if not connected */ uint32_t nodeid; /* So we know who we are in the list */ struct rw_semaphore sock_sem; /* Stop connect races */ - struct list_head read_list; /* On this list when ready for reading */ - struct list_head write_list; /* On this list when ready for writing */ - struct list_head state_list; /* On this list when ready to connect */ unsigned long flags; /* bit 1,2 = We are on the read/write lists */ #define CF_READ_PENDING 1 #define CF_WRITE_PENDING 2 @@ -391,7 +388,7 @@ static int accept_from_sock(struct connection *con) if (result < 0) return -ENOMEM; - down_read(&con->sock_sem); + down_read_nested(&con->sock_sem, 0); result = -ENOTCONN; if (con->sock == NULL) @@ -434,7 +431,7 @@ static int accept_from_sock(struct connection *con) result = -ENOMEM; goto accept_err; } - down_write(&newcon->sock_sem); + down_write_nested(&newcon->sock_sem, 1); if (newcon->sock) { struct connection *othercon = newcon->othercon;