Author: kib
Date: Mon Nov  3 14:35:43 2008
New Revision: 184593
URL: http://svn.freebsd.org/changeset/base/184593

Log:
  MFC r184408:
  Provide an explanation for getinoquota() call in the ufs_access vop.
  
  Approved by:  re (kensmith)

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/ufs/ufs/ufs_vnops.c

Modified: stable/7/sys/ufs/ufs/ufs_vnops.c
==============================================================================
--- stable/7/sys/ufs/ufs/ufs_vnops.c    Mon Nov  3 14:23:15 2008        
(r184592)
+++ stable/7/sys/ufs/ufs/ufs_vnops.c    Mon Nov  3 14:35:43 2008        
(r184593)
@@ -330,7 +330,18 @@ ufs_access(ap)
                        if (vp->v_mount->mnt_flag & MNT_RDONLY)
                                return (EROFS);
 #ifdef QUOTA
+                       /*
+                        * Inode is accounted in the quotas only if struct
+                        * dquot is attached to it. VOP_ACCESS() is called
+                        * from vn_open_cred() and provides a convenient
+                        * point to call getinoquota().
+                        */
                        if (VOP_ISLOCKED(vp, ap->a_td) != LK_EXCLUSIVE) {
+
+                               /*
+                                * Upgrade vnode lock, since getinoquota()
+                                * requires exclusive lock to modify inode.
+                                */
                                relocked = 1;
                                vhold(vp);
                                vn_lock(vp, LK_UPGRADE | LK_RETRY, ap->a_td);
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to