Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/vfs_default.c
Show First 20 Lines • Show All 606 Lines • ▼ Show 20 Lines | vop_stdgetwritemount(ap) | ||||
} | } | ||||
if (vfs_op_thread_enter(mp)) { | if (vfs_op_thread_enter(mp)) { | ||||
if (mp == vp->v_mount) | if (mp == vp->v_mount) | ||||
vfs_mp_count_add_pcpu(mp, ref, 1); | vfs_mp_count_add_pcpu(mp, ref, 1); | ||||
else | else | ||||
mp = NULL; | mp = NULL; | ||||
vfs_op_thread_exit(mp); | vfs_op_thread_exit(mp); | ||||
} else { | } else { | ||||
if ((ap->a_flags & V_NONBLOCKING) != 0) | |||||
mp = NULL; | |||||
else { | |||||
MNT_ILOCK(mp); | MNT_ILOCK(mp); | ||||
if (mp == vp->v_mount) { | if (mp == vp->v_mount) { | ||||
MNT_REF(mp); | MNT_REF(mp); | ||||
MNT_IUNLOCK(mp); | MNT_IUNLOCK(mp); | ||||
} else { | } else { | ||||
MNT_IUNLOCK(mp); | MNT_IUNLOCK(mp); | ||||
mp = NULL; | mp = NULL; | ||||
} | |||||
} | } | ||||
} | } | ||||
*(ap->a_mpp) = mp; | *(ap->a_mpp) = mp; | ||||
return (0); | return (0); | ||||
} | } | ||||
/* | /* | ||||
* If the file system doesn't implement VOP_BMAP, then return sensible defaults: | * If the file system doesn't implement VOP_BMAP, then return sensible defaults: | ||||
▲ Show 20 Lines • Show All 777 Lines • Show Last 20 Lines |