Esempio n. 1
0
int
RUMP_VOP_DELETEEXTATTR(struct vnode *vp,
    int attrnamespace,
    const char *name,
    struct kauth_cred *cred)
{
	int error;

	rump_schedule();
	error = VOP_DELETEEXTATTR(vp, attrnamespace, name, cred);
	rump_unschedule();

	return error;
}
Esempio n. 2
0
int
vn_extattr_rm(struct vnode *vp, int ioflg, int attrnamespace,
    const char *attrname, struct lwp *l)
{
	int error;

	if ((ioflg & IO_NODELOCKED) == 0) {
		vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
	}

	error = VOP_DELETEEXTATTR(vp, attrnamespace, attrname, NULL);
	if (error == EOPNOTSUPP)
		error = VOP_SETEXTATTR(vp, attrnamespace, attrname, NULL, NULL);

	if ((ioflg & IO_NODELOCKED) == 0) {
		VOP_UNLOCK(vp);
	}

	return (error);
}