rem: dec_vnode_ref_count(vnode, true, false);
add: put_vnode(vnode);
context: user_read_stat(const char *upath, struct stat *ustat){	char path[SYS_MAX_PATH_LEN];	struct vnode *vnode = NULL;	struct stat stat;	int rc;	if ((addr)upath >= KERNEL_BASE && (addr)upath <= KERNEL_TOP)		return ERR_VM_BAD_USER_MEMORY;	if ((addr)ustat >= KERNEL_BASE && (addr)ustat <= KERNEL_TOP)		return ERR_VM_BAD_USER_MEMORY;	rc = user_strncpy(path, upath, SYS_MAX_PATH_LEN-1);	if (rc < 0)		return rc;	path[SYS_MAX_PATH_LEN-1] = 0;	rc = path_to_vnode(path, &vnode, false);	if (rc < 0)		return rc;	if (FS_CALL(vnode,fs_read_stat))		rc = FS_CALL(vnode,fs_read_stat)(vnode->mount->cookie, vnode->priv_vnode, &stat);	dec_vnode_ref_count(vnode, true, false);	if (rc < 0)		return rc;	rc = user_memcpy(ustat, &stat, sizeof(struct stat));	return rc;}