svn commit: r184593 - in stable/7/sys: . ufs/ufs
Konstantin Belousov
kib at FreeBSD.org
Mon Nov 3 06:35:43 PST 2008
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);
More information about the svn-src-stable-7
mailing list