Author: kib
Date: Sat Sep  7 16:10:57 2019
New Revision: 352017
URL: https://svnweb.freebsd.org/changeset/base/352017

Log:
  In do_execve(), use shared text vnode lock consistently.
  
  Reviewed by:  markj
  MFC after:    1 week
  Differential revision:        https://reviews.freebsd.org/D21560

Modified:
  head/sys/kern/kern_exec.c

Modified: head/sys/kern/kern_exec.c
==============================================================================
--- head/sys/kern/kern_exec.c   Sat Sep  7 16:05:17 2019        (r352016)
+++ head/sys/kern/kern_exec.c   Sat Sep  7 16:10:57 2019        (r352017)
@@ -526,7 +526,7 @@ interpret:
                        euip = uifind(attr.va_uid);
                        change_euid(imgp->newcred, euip);
                }
-               vn_lock(imgp->vp, LK_EXCLUSIVE | LK_RETRY);
+               vn_lock(imgp->vp, LK_SHARED | LK_RETRY);
                if (attr.va_mode & S_ISGID)
                        change_egid(imgp->newcred, attr.va_gid);
                /*
@@ -555,7 +555,7 @@ interpret:
                    oldcred->cr_svgid != oldcred->cr_gid) {
                        VOP_UNLOCK(imgp->vp, 0);
                        imgp->newcred = crdup(oldcred);
-                       vn_lock(imgp->vp, LK_EXCLUSIVE | LK_RETRY);
+                       vn_lock(imgp->vp, LK_SHARED | LK_RETRY);
                        change_svuid(imgp->newcred, imgp->newcred->cr_uid);
                        change_svgid(imgp->newcred, imgp->newcred->cr_gid);
                }
@@ -572,7 +572,7 @@ interpret:
                if (vn_fullpath(td, imgp->vp, &imgp->execpath,
                    &imgp->freepath) != 0)
                        imgp->execpath = args->fname;
-               vn_lock(imgp->vp, LK_EXCLUSIVE | LK_RETRY);
+               vn_lock(imgp->vp, LK_SHARED | LK_RETRY);
        }
 
        /*
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to