Author: trociny
Date: Tue Feb 21 19:40:13 2012
New Revision: 231976
URL: http://svn.freebsd.org/changeset/base/231976

Log:
  unp_connect() may use a shared lock on the vnode to fetch the socket.
  
  Suggested by: jhb
  Reviewed by:  jhb, kib, rwatson
  MFC after:    2 weeks

Modified:
  head/sys/kern/uipc_usrreq.c

Modified: head/sys/kern/uipc_usrreq.c
==============================================================================
--- head/sys/kern/uipc_usrreq.c Tue Feb 21 19:35:59 2012        (r231975)
+++ head/sys/kern/uipc_usrreq.c Tue Feb 21 19:40:13 2012        (r231976)
@@ -1273,8 +1273,8 @@ unp_connect(struct socket *so, struct so
        UNP_PCB_UNLOCK(unp);
 
        sa = malloc(sizeof(struct sockaddr_un), M_SONAME, M_WAITOK);
-       NDINIT(&nd, LOOKUP, MPSAFE | FOLLOW | LOCKLEAF, UIO_SYSSPACE, buf,
-           td);
+       NDINIT(&nd, LOOKUP, MPSAFE | FOLLOW | LOCKSHARED | LOCKLEAF,
+           UIO_SYSSPACE, buf, td);
        error = namei(&nd);
        if (error)
                vp = NULL;
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to