[BACK]Return to uipc_socket.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / kern

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/kern/uipc_socket.c between version 1.168 and 1.169

version 1.168, 2008/06/18 09:06:27 version 1.169, 2008/07/25 22:45:58
Line 645  soclose(struct socket *so)
Line 645  soclose(struct socket *so)
         solock(so);          solock(so);
         if (so->so_options & SO_ACCEPTCONN) {          if (so->so_options & SO_ACCEPTCONN) {
                 do {                  do {
                         if ((so2 = TAILQ_FIRST(&so->so_q0)) != 0) {                          while ((so2 = TAILQ_FIRST(&so->so_q0)) != 0) {
                                 KASSERT(solocked2(so, so2));                                  KASSERT(solocked2(so, so2));
                                 (void) soqremque(so2, 0);                                  (void) soqremque(so2, 0);
                                 /* soabort drops the lock. */                                  /* soabort drops the lock. */
                                 (void) soabort(so2);                                  (void) soabort(so2);
                                 solock(so);                                  solock(so);
                                 continue;  
                         }                          }
                         if ((so2 = TAILQ_FIRST(&so->so_q)) != 0) {                          while ((so2 = TAILQ_FIRST(&so->so_q)) != 0) {
                                 KASSERT(solocked2(so, so2));                                  KASSERT(solocked2(so, so2));
                                 (void) soqremque(so2, 1);                                  (void) soqremque(so2, 1);
                                 /* soabort drops the lock. */                                  /* soabort drops the lock. */
                                 (void) soabort(so2);                                  (void) soabort(so2);
                                 solock(so);                                  solock(so);
                                 continue;  
                         }                          }
                 } while (0);                  } while (!TAILQ_EMPTY(&so->so_q0));
         }          }
         if (so->so_pcb == 0)          if (so->so_pcb == 0)
                 goto discard;                  goto discard;

Legend:
Removed from v.1.168  
changed lines
  Added in v.1.169

CVSweb <webmaster@jp.NetBSD.org>