[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.167.2.2 and 1.168

version 1.167.2.2, 2008/07/28 14:37:36 version 1.168, 2008/06/18 09:06:27
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 {
                         while ((so2 = TAILQ_FIRST(&so->so_q0)) != 0) {                          if ((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;
                         }                          }
                         while ((so2 = TAILQ_FIRST(&so->so_q)) != 0) {                          if ((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 (!TAILQ_EMPTY(&so->so_q0));                  } while (0);
         }          }
         if (so->so_pcb == 0)          if (so->so_pcb == 0)
                 goto discard;                  goto discard;

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

CVSweb <webmaster@jp.NetBSD.org>