Beispiel #1
0
static void convert_stat(const struct stat *stbuf, struct fuse_attr *attr)
{
	attr->ino	= stbuf->st_ino;
	attr->mode	= stbuf->st_mode;
	attr->nlink	= stbuf->st_nlink;
	attr->uid	= stbuf->st_uid;
	attr->gid	= stbuf->st_gid;
	attr->rdev	= stbuf->st_rdev;
	attr->size	= stbuf->st_size;
	attr->blksize	= stbuf->st_blksize;
	attr->blocks	= stbuf->st_blocks;
	attr->atime	= stbuf->st_atime;
	attr->mtime	= stbuf->st_mtime;
	attr->ctime	= stbuf->st_ctime;
	attr->atimensec = ST_ATIM_NSEC(stbuf);
	attr->mtimensec = ST_MTIM_NSEC(stbuf);
	attr->ctimensec = ST_CTIM_NSEC(stbuf);
#ifdef __APPLE__
	attr->flags	= stbuf->st_flags;
#ifdef _DARWIN_USE_64_BIT_INODE
	attr->crtime	= stbuf->st_birthtime;
	attr->crtimensec= (uint32_t)(stbuf->st_birthtimensec);
#else
	attr->crtime	= (__u64)-1;
	attr->crtimensec= (__u32)-1;
#endif
#endif /* __APPLE__ */
}
Beispiel #2
0
static void convert_stat(const struct stat *stbuf, struct fuse_attr *attr)
{
    attr->ino       = stbuf->st_ino;
    attr->mode      = stbuf->st_mode;
    attr->nlink     = stbuf->st_nlink;
    attr->uid       = stbuf->st_uid;
    attr->gid       = stbuf->st_gid;
    attr->rdev      = stbuf->st_rdev;
    attr->size      = stbuf->st_size;
    attr->blocks    = stbuf->st_blocks;
    attr->atime     = stbuf->st_atime;
    attr->mtime     = stbuf->st_mtime;
    attr->ctime     = stbuf->st_ctime;
    attr->atimensec = ST_ATIM_NSEC(stbuf);
    attr->mtimensec = ST_MTIM_NSEC(stbuf);
    attr->ctimensec = ST_CTIM_NSEC(stbuf);
}
static void convert_stat(const struct stat *stbuf, struct fuse_attr *attr)
{
    attr->ino       = stbuf->st_ino;
    attr->mode      = stbuf->st_mode;
    attr->nlink     = stbuf->st_nlink;
    attr->uid       = stbuf->st_uid;
    attr->gid       = stbuf->st_gid;
    attr->rdev      = stbuf->st_rdev;
    attr->size      = stbuf->st_size;
    attr->blocks    = stbuf->st_blocks;
    attr->atime     = stbuf->st_atime;
    attr->mtime     = stbuf->st_mtime;
    attr->ctime     = stbuf->st_ctime;
    attr->atimensec = ST_ATIM_NSEC(stbuf);
    attr->mtimensec = ST_MTIM_NSEC(stbuf);
    attr->ctimensec = ST_CTIM_NSEC(stbuf);
#ifdef POSIXACLS
    attr->filling = 0; /* JPA trying to be safe */
#endif
}
Beispiel #4
0
static void
glfs_iatt_from_stat (struct stat *stat, int valid, struct iatt *iatt,
		     int *glvalid)
{
	/* validate in args */
	if ((stat == NULL) || (iatt == NULL) || (glvalid == NULL)) {
		errno = EINVAL;
		return;
	}

	*glvalid = 0;

	if (valid & GFAPI_SET_ATTR_MODE) {
		iatt->ia_prot = ia_prot_from_st_mode (stat->st_mode);
		*glvalid |= GF_SET_ATTR_MODE;
	}

	if (valid & GFAPI_SET_ATTR_UID) {
		iatt->ia_uid = stat->st_uid;
		*glvalid |= GF_SET_ATTR_UID;
	}

	if (valid & GFAPI_SET_ATTR_GID) {
		iatt->ia_gid = stat->st_gid;
		*glvalid |= GF_SET_ATTR_GID;
	}

	if (valid & GFAPI_SET_ATTR_ATIME) {
		iatt->ia_atime = stat->st_atime;
		iatt->ia_atime_nsec = ST_ATIM_NSEC (stat);
		*glvalid |= GF_SET_ATTR_ATIME;
	}

	if (valid & GFAPI_SET_ATTR_MTIME) {
		iatt->ia_mtime = stat->st_mtime;
		iatt->ia_mtime_nsec = ST_MTIM_NSEC (stat);
		*glvalid |= GF_SET_ATTR_MTIME;
	}

	return;
}