Changeset View
Changeset View
Standalone View
Standalone View
sys/fs/nullfs/null_vnops.c
Show First 20 Lines • Show All 433 Lines • ▼ Show 20 Lines | |||||
null_open(struct vop_open_args *ap) | null_open(struct vop_open_args *ap) | ||||
{ | { | ||||
int retval; | int retval; | ||||
struct vnode *vp, *ldvp; | struct vnode *vp, *ldvp; | ||||
vp = ap->a_vp; | vp = ap->a_vp; | ||||
ldvp = NULLVPTOLOWERVP(vp); | ldvp = NULLVPTOLOWERVP(vp); | ||||
retval = null_bypass(&ap->a_gen); | retval = null_bypass(&ap->a_gen); | ||||
if (retval == 0) | if (retval == 0) { | ||||
vp->v_object = ldvp->v_object; | vp->v_object = ldvp->v_object; | ||||
if ((ldvp->v_irflag & VIRF_PGREAD) != 0) { | |||||
MPASS(vp->v_object != NULL); | |||||
if ((vp->v_irflag & VIRF_PGREAD) == 0) { | |||||
VI_LOCK(vp); | |||||
vp->v_irflag |= VIRF_PGREAD; | |||||
VI_UNLOCK(vp); | |||||
} | |||||
} | |||||
} | |||||
return (retval); | return (retval); | ||||
} | } | ||||
/* | /* | ||||
* Setattr call. Disallow write attempts if the layer is mounted read-only. | * Setattr call. Disallow write attempts if the layer is mounted read-only. | ||||
*/ | */ | ||||
static int | static int | ||||
null_setattr(struct vop_setattr_args *ap) | null_setattr(struct vop_setattr_args *ap) | ||||
▲ Show 20 Lines • Show All 504 Lines • Show Last 20 Lines |