View | Details | Raw Unified | Return to bug 243240 | Differences between
and this patch

Collapse All | Expand All

(-)modules/freebsd/vmblock/vnops.c (+4 lines)
Lines 1262-1273 struct vop_unlock_args { Link Here
1262
*/
1262
*/
1263
{
1263
{
1264
   struct vnode *vp = ap->a_vp;
1264
   struct vnode *vp = ap->a_vp;
1265
#if __FreeBSD_version < 1300074
1265
   int flags = ap->a_flags;
1266
   int flags = ap->a_flags;
1267
#endif
1266
   COMPAT_THREAD_VAR(td, ap->a_td);
1268
   COMPAT_THREAD_VAR(td, ap->a_td);
1267
   struct VMBlockNode *nn;
1269
   struct VMBlockNode *nn;
1268
   struct vnode *lvp;
1270
   struct vnode *lvp;
1269
   int error;
1271
   int error;
1270
1272
1273
#if __FreeBSD_version < 1300074
1271
   /*
1274
   /*
1272
    * If caller already holds interlock, drop it.  (Per VOP_UNLOCK() API.)
1275
    * If caller already holds interlock, drop it.  (Per VOP_UNLOCK() API.)
1273
    * Also strip LK_INTERLOCK from flags passed to lower layer.
1276
    * Also strip LK_INTERLOCK from flags passed to lower layer.
Lines 1276-1281 struct vop_unlock_args { Link Here
1276
      VI_UNLOCK(vp);
1279
      VI_UNLOCK(vp);
1277
      ap->a_flags = flags &= ~LK_INTERLOCK;
1280
      ap->a_flags = flags &= ~LK_INTERLOCK;
1278
   }
1281
   }
1282
#endif
1279
   nn = VPTOVMB(vp);
1283
   nn = VPTOVMB(vp);
1280
   if (nn != NULL && (lvp = VMBVPTOLOWERVP(vp)) != NULL) {
1284
   if (nn != NULL && (lvp = VMBVPTOLOWERVP(vp)) != NULL) {
1281
      error = COMPAT_VOP_UNLOCK(lvp, flags, td);
1285
      error = COMPAT_VOP_UNLOCK(lvp, flags, td);

Return to bug 243240