fix-vrefcount-20050513
authorJim Rees <rees@umich.edu>
Sun, 15 May 2005 21:54:50 +0000 (21:54 +0000)
committerJim Rees <rees@umich.edu>
Sun, 15 May 2005 21:54:50 +0000 (21:54 +0000)
fix VREFCOUNT macro for XBSD

====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================

and everything else.

src/afs/OBSD/osi_machdep.h
src/afs/VNOPS/afs_vnop_remove.c
src/afs/afs.h
src/afs/afs_osi.h

index 43a118b..3bd3af5 100644 (file)
@@ -63,7 +63,7 @@ extern struct simplelock afs_rxglobal_lock;
 #define        AFS_PROC        struct proc
 #define        AFS_UCRED       ucred
 #define afs_suser(x)   afs_osi_suser(osi_curcred())
-#define getpid()       curproc
+#define getpid()       (curproc->p_pid)
 #define osi_curcred()  (curproc->p_cred->pc_ucred)
 #define osi_curproc()  curproc
 #define p_rcred         p_ucred
index d78554c..a00b80e 100644 (file)
@@ -377,13 +377,12 @@ afs_remove(OSI_VC_ARG(adp), aname, acred)
        Ttvcr = VREFCOUNT(tvc);
 #endif
 #ifdef AFS_AIX_ENV
-    if (tvc && (VREFCOUNT(tvc) > 2) && tvc->opens > 0
-       && !(tvc->states & CUnlinked))
+    if (tvc && VREFCOUNT_GT(tvc, 2) && tvc->opens > 0
+       && !(tvc->states & CUnlinked)) {
 #else
-    if (tvc && (VREFCOUNT_GT(tvc), 1) && tvc->opens > 0
-       && !(tvc->states & CUnlinked))
+    if (tvc && VREFCOUNT_GT(tvc, 1) && tvc->opens > 0
+       && !(tvc->states & CUnlinked)) {
 #endif
-    {
        char *unlname = afs_newname();
 
        ReleaseWriteLock(&adp->lock);
index b0d8c2d..10ddf60 100644 (file)
@@ -557,11 +557,11 @@ struct SimpleLocks {
 #define vrefCount   v.v_count
 #endif /* AFS_XBSD_ENV */
 
-/* VREFCOUNT_GT works on vnodes, not vcaches. maybe this is bad? */
 #if defined(AFS_DARWIN80_ENV)
-#define VREFCOUNT_GT(v, y)     vnode_isinuse(AFSTOV(v), y)
+#define VREFCOUNT_GT(v, y)     vnode_isinuse(AFSTOV(v), (y))
 #elif defined(AFS_XBSD_ENV) || defined(AFS_DARWIN_ENV)
-#define VREFCOUNT_GT(v, y)   (AFSTOV(v)->v_usecount>y?1:0)
+#define VREFCOUNT(v)           ((v)->vrefCount)
+#define VREFCOUNT_GT(v, y)     (AFSTOV(v)->v_usecount > (y))
 #elif defined(AFS_LINUX24_ENV)
 #define VREFCOUNT(v)           atomic_read(&((vnode_t *) v)->v_count)
 #define VREFCOUNT_GT(v, y)     ((atomic_read(&((vnode_t *) v)->v_count)>y)?1:0)
@@ -570,7 +570,7 @@ struct SimpleLocks {
 #define VREFCOUNT_INC(v)       atomic_inc(&((vnode_t *) v)->v_count)
 #else
 #define VREFCOUNT(v)           ((v)->vrefCount)
-#define VREFCOUNT_GT(v,y)      ((v).v_count>y?1:0)
+#define VREFCOUNT_GT(v,y)      ((v)->vrefCount > (y))
 #define VREFCOUNT_SET(v, c)    (v)->vrefCount = c;
 #define VREFCOUNT_DEC(v)       (v)->vrefCount--;
 #define VREFCOUNT_INC(v)       (v)->vrefCount++;
index b2ba0cc..ed3919a 100644 (file)
@@ -125,8 +125,7 @@ struct afs_osi_WaitHandle {
  */
 #if defined(AFS_DARWIN80_ENV)
 #define vType(vc)               vnode_vtype(AFSTOV(vc))
-#else
-#if defined(AFS_DARWIN_ENV) || defined(AFS_FBSD_ENV)
+#elif defined(AFS_DARWIN_ENV) || defined(AFS_XBSD_ENV)
 #define vSetVfsp(vc, vfsp)      AFSTOV(vc)->v_mount = (vfsp)
 #define vSetType(vc, type)      AFSTOV(vc)->v_type = (type)
 #define vType(vc)               AFSTOV(vc)->v_type
@@ -141,7 +140,6 @@ extern struct vnodeops *afs_ops;
 #define        IsAfsVnode(v)       ((v)->v_op == afs_ops)
 #define        SetAfsVnode(v)      (v)->v_op = afs_ops
 #endif
-#endif
 
 #ifdef AFS_SGI65_ENV
 #define        gop_lookupname(fnamep,segflg,followlink,compvpp) \