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); |