HOSTFS_I
if (HOSTFS_I(inode)->fd != -1) {
close_file(&HOSTFS_I(inode)->fd);
HOSTFS_I(inode)->fd = -1;
HOSTFS_I(inode)->dev = 0;
kmem_cache_free(hostfs_inode_cache, HOSTFS_I(inode));
if ((mode & HOSTFS_I(ino)->mode) == mode)
mode |= HOSTFS_I(ino)->mode;
mutex_lock(&HOSTFS_I(ino)->open_mutex);
if ((mode & HOSTFS_I(ino)->mode) == mode) {
mutex_unlock(&HOSTFS_I(ino)->open_mutex);
if ((mode | HOSTFS_I(ino)->mode) != mode) {
mode |= HOSTFS_I(ino)->mode;
mutex_unlock(&HOSTFS_I(ino)->open_mutex);
if (HOSTFS_I(ino)->fd == -1) {
HOSTFS_I(ino)->fd = fd;
err = replace_file(fd, HOSTFS_I(ino)->fd);
mutex_unlock(&HOSTFS_I(ino)->open_mutex);
HOSTFS_I(ino)->mode = mode;
mutex_unlock(&HOSTFS_I(ino)->open_mutex);
ret = fsync_file(HOSTFS_I(inode)->fd, datasync);
ret = write_file(HOSTFS_I(inode)->fd, &pos, buffer, count);
#define FILE_HOSTFS_I(file) HOSTFS_I(file_inode(file))
HOSTFS_I(ino)->dev = dev;
HOSTFS_I(ino)->btime = st->btime;
return inode->i_ino == st->ino && HOSTFS_I(inode)->dev == dev &&
HOSTFS_I(inode)->btime.tv_sec == st->btime.tv_sec &&
HOSTFS_I(inode)->btime.tv_nsec == st->btime.tv_nsec;
HOSTFS_I(inode)->fd = fd;
HOSTFS_I(inode)->mode = FMODE_READ | FMODE_WRITE;
int fd = HOSTFS_I(inode)->fd;