Ejemplo n.º 1
0
/* ARGSUSED */
static int
ctfs_root_getattr(vnode_t *vp, vattr_t *vap, int flags, cred_t *cr)
{
	vap->va_type = VDIR;
	vap->va_mode = 0555;
	vap->va_nlink = 2 + ct_ntypes + 1;
	vap->va_size = vap->va_nlink;
	vap->va_atime.tv_sec = vp->v_vfsp->vfs_mtime;
	vap->va_atime.tv_nsec = 0;
	vap->va_mtime = vap->va_ctime = vap->va_atime;
	ctfs_common_getattr(vp, vap);

	return (0);
}
Ejemplo n.º 2
0
/* ARGSUSED */
static int
ctfs_sym_getattr(vnode_t *vp, vattr_t *vap, int flags, cred_t *cr)
{
	ctfs_symnode_t *symnode = vp->v_data;

	vap->va_type = VLNK;
	vap->va_mode = 0444;
	vap->va_nlink = 1;
	vap->va_size = symnode->ctfs_sn_size - 1;
	vap->va_mtime = vap->va_atime = vap->va_ctime =
	    symnode->ctfs_sn_contract->ct_ctime;
	ctfs_common_getattr(vp, vap);

	return (0);
}
Ejemplo n.º 3
0
/* ARGSUSED */
static int
ctfs_tdir_getattr(
	vnode_t *vp,
	vattr_t *vap,
	int flags,
	cred_t *cr,
	caller_context_t *ct)
{
	vap->va_type = VDIR;
	vap->va_mode = 0555;
	vap->va_nlink = 2 + CTFS_NSPECIALS;
	vap->va_size = vap->va_nlink +
	    contract_type_count(ct_types[gfs_file_index(vp)]);
	vap->va_ctime.tv_sec = vp->v_vfsp->vfs_mtime;
	vap->va_ctime.tv_nsec = 0;
	contract_type_time(ct_types[gfs_file_index(vp)], &vap->va_atime);
	vap->va_mtime = vap->va_atime;
	ctfs_common_getattr(vp, vap);

	return (0);
}
Ejemplo n.º 4
0
/* ARGSUSED */
static int
ctfs_cdir_getattr(
	vnode_t *vp,
	vattr_t *vap,
	int flags,
	cred_t *cr,
	caller_context_t *ct)
{
	ctfs_cdirnode_t *cdirnode = vp->v_data;

	vap->va_type = VDIR;
	vap->va_mode = 0555;
	vap->va_nlink = 2 + CTFS_NCTLS;
	vap->va_size = vap->va_nlink;
	vap->va_ctime = cdirnode->ctfs_cn_contract->ct_ctime;
	mutex_enter(&cdirnode->ctfs_cn_contract->ct_events.ctq_lock);
	vap->va_atime = vap->va_mtime =
	    cdirnode->ctfs_cn_contract->ct_events.ctq_atime;
	mutex_exit(&cdirnode->ctfs_cn_contract->ct_events.ctq_lock);
	ctfs_common_getattr(vp, vap);

	return (0);
}