freebsd: CM changes targeting RELENG_8
[openafs.git] / src / afs / FBSD / osi_vm.c
index 804b473..6a2f136 100644 (file)
@@ -85,7 +85,9 @@
  * therefore obsolescent.
  *
  * OSF/1 Locking:  VN_LOCK has been called.
- * XXX - should FreeBSD have done this, too?  Certainly looks like it.
+ * We do not lock the vnode here, but instead require that it be exclusive
+ * locked by code calling osi_VM_StoreAllSegments directly, or scheduling it
+ * from the bqueue - Matt
  * Maybe better to just call vnode_pager_setsize()?
  */
 int
@@ -159,13 +161,7 @@ osi_VM_StoreAllSegments(struct vcache *avc)
      */
     do {
        anyio = 0;
-#ifdef AFS_FBSD80_ENV
-       lock_vnode(vp);
-#endif
        if (VOP_GETVOBJECT(vp, &obj) == 0 && (obj->flags & OBJ_MIGHTBEDIRTY)) {
-#ifdef AFS_FBSD80_ENV
-           unlock_vnode(vp);
-#endif
 #ifdef AFS_FBSD50_ENV
            if (!vget(vp, LK_EXCLUSIVE | LK_RETRY, curthread)) {
 #else
@@ -180,10 +176,6 @@ osi_VM_StoreAllSegments(struct vcache *avc)
                    vput(vp);
                }
            }
-#ifdef AFS_FBSD80_ENV
-           else
-               unlock_vnode(vp);
-#endif
     } while (anyio && (--tries > 0));
     AFS_GLOCK();
     ObtainWriteLock(&avc->lock, 94);
@@ -202,8 +194,7 @@ void
 osi_VM_TryToSmush(struct vcache *avc, afs_ucred_t *acred, int sync)
 {
     struct vnode *vp;
-    struct vm_object *obj;
-    int anyio, tries, code;
+    int tries, code;
 
     SPLVAR;
 
@@ -211,7 +202,7 @@ osi_VM_TryToSmush(struct vcache *avc, afs_ucred_t *acred, int sync)
 
     if (vp->v_iflag & VI_DOOMED) {
       USERPRI;
-      return 0;
+      return;
     }
 
     if (vp->v_bufobj.bo_object != NULL) {