FreeBSD/sys/fs/nfsserver/nfs_nfsdport.c
/*
 * Updates the file rev and sets the mtime and ctime
 * to the current clock time, returning the va_filerev and va_Xtime
 * values.
 * Return ESTALE to indicate the vnode is VI_DOOMED.
 */
Updates the file rev and sets the mtime and ctime
to the current clock time, returning the va_filerev and va_Xtime
values.
Return ESTALE to indicate the vnode is VI_DOOMED.
Updates the file rev and sets the mtime and ctime to the current clock time returning the va_filerev and va_Xtime values . Return ESTALE to indicate the vnode is VI_DOOMED .
int
nfsvno_updfilerev(struct vnode *vp, struct nfsvattr *nvap,
    struct ucred *cred, struct thread *p)
{
	struct vattr va;
	VATTR_NULL(&va);
	vfs_timestamp(&va.va_mtime);
	if (NFSVOPISLOCKED(vp) != LK_EXCLUSIVE) {
		NFSVOPLOCK(vp, LK_UPGRADE | LK_RETRY);
		if ((vp->v_iflag & VI_DOOMED) != 0)
			return (ESTALE);
	}
	(void) VOP_SETATTR(vp, &va, cred);
	(void) nfsvno_getattr(vp, nvap, cred, p, 1);
	return (0);
}
int nfsvno_updfilerev ( struct vnode * vp , struct nfsvattr * nvap , struct ucred * cred , struct thread * p ) { struct vattr va ; VATTR_NULL ( & va ) ; vfs_timestamp ( & va . va_mtime ) ; if ( NFSVOPISLOCKED ( vp ) != LK_EXCLUSIVE ) { NFSVOPLOCK ( vp , LK_UPGRADE | LK_RETRY ) ; if ( ( vp -> v_iflag & VI_DOOMED ) != 0 ) return ( ESTALE ) ; } ( void ) VOP_SETATTR ( vp , & va , cred ) ; ( void ) nfsvno_getattr ( vp , nvap , cred , p , 1 ) ; return ( 0 ) ; }
Updates the file rev and sets the mtime and ctime
 to the current clock time, returning the va_filerev and va_Xtime
 values.
Updates the file rev and sets the mtime and ctime to the current clock time returning the va_filerev and va_Xtime values .