Author: trasz
Date: Wed Aug 25 21:32:08 2010
New Revision: 211826
URL: http://svn.freebsd.org/changeset/base/211826

Log:
  Revert r210194, adding a comment explaining why calls to chgproccnt()
  in unionfs are actually needed.  I have a better fix in trasz_hrl p4 branch,
  but now is not a good moment to commit it.
  
  Reported by:  Alex Kozlov

Modified:
  head/sys/fs/unionfs/union_subr.c

Modified: head/sys/fs/unionfs/union_subr.c
==============================================================================
--- head/sys/fs/unionfs/union_subr.c    Wed Aug 25 21:13:23 2010        
(r211825)
+++ head/sys/fs/unionfs/union_subr.c    Wed Aug 25 21:32:08 2010        
(r211826)
@@ -775,6 +775,11 @@ unionfs_mkshadowdir(struct unionfs_mount
        /* Authority change to root */
        rootinfo = uifind((uid_t)0);
        cred = crdup(cnp->cn_cred);
+       /*
+        * The calls to chgproccnt() are needed to compensate for change_ruid()
+        * calling chgproccnt().
+        */
+       chgproccnt(cred->cr_ruidinfo, 1, 0);
        change_euid(cred, rootinfo);
        change_ruid(cred, rootinfo);
        change_svuid(cred, (uid_t)0);
@@ -824,6 +829,7 @@ unionfs_mkshadowdir_free_out:
 
 unionfs_mkshadowdir_abort:
        cnp->cn_cred = credbk;
+       chgproccnt(cred->cr_ruidinfo, -1, 0);
        crfree(cred);
 
        return (error);
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to