Lines Matching refs:inode
51 v9fs_vfs_mknod_dotl(struct inode *dir, struct dentry *dentry, umode_t omode,
60 static kgid_t v9fs_get_fsgid_for_create(struct inode *dir_inode) in v9fs_get_fsgid_for_create()
71 static int v9fs_test_inode_dotl(struct inode *inode, void *data) in v9fs_test_inode_dotl() argument
73 struct v9fs_inode *v9inode = V9FS_I(inode); in v9fs_test_inode_dotl()
77 if ((inode->i_mode & S_IFMT) != (st->st_mode & S_IFMT)) in v9fs_test_inode_dotl()
80 if (inode->i_generation != st->st_gen) in v9fs_test_inode_dotl()
94 static int v9fs_test_new_inode_dotl(struct inode *inode, void *data) in v9fs_test_new_inode_dotl() argument
99 static int v9fs_set_inode_dotl(struct inode *inode, void *data) in v9fs_set_inode_dotl() argument
101 struct v9fs_inode *v9inode = V9FS_I(inode); in v9fs_set_inode_dotl()
105 inode->i_generation = st->st_gen; in v9fs_set_inode_dotl()
109 static struct inode *v9fs_qid_iget_dotl(struct super_block *sb, in v9fs_qid_iget_dotl()
117 struct inode *inode; in v9fs_qid_iget_dotl() local
119 int (*test)(struct inode *, void *); in v9fs_qid_iget_dotl()
127 inode = iget5_locked(sb, i_ino, test, v9fs_set_inode_dotl, st); in v9fs_qid_iget_dotl()
128 if (!inode) in v9fs_qid_iget_dotl()
130 if (!(inode->i_state & I_NEW)) in v9fs_qid_iget_dotl()
131 return inode; in v9fs_qid_iget_dotl()
137 inode->i_ino = i_ino; in v9fs_qid_iget_dotl()
138 retval = v9fs_init_inode(v9ses, inode, in v9fs_qid_iget_dotl()
143 v9fs_stat2inode_dotl(st, inode); in v9fs_qid_iget_dotl()
144 v9fs_cache_inode_get_cookie(inode); in v9fs_qid_iget_dotl()
145 retval = v9fs_get_acl(inode, fid); in v9fs_qid_iget_dotl()
149 unlock_new_inode(inode); in v9fs_qid_iget_dotl()
150 return inode; in v9fs_qid_iget_dotl()
152 iget_failed(inode); in v9fs_qid_iget_dotl()
157 struct inode *
162 struct inode *inode = NULL; in v9fs_inode_from_fid_dotl() local
168 inode = v9fs_qid_iget_dotl(sb, &st->qid, fid, st, new); in v9fs_inode_from_fid_dotl()
170 return inode; in v9fs_inode_from_fid_dotl()
233 v9fs_vfs_create_dotl(struct inode *dir, struct dentry *dentry, umode_t omode, in v9fs_vfs_create_dotl()
240 v9fs_vfs_atomic_open_dotl(struct inode *dir, struct dentry *dentry, in v9fs_vfs_atomic_open_dotl()
249 struct inode *inode; in v9fs_vfs_atomic_open_dotl() local
318 inode = v9fs_get_new_inode_from_fid(v9ses, fid, dir->i_sb); in v9fs_vfs_atomic_open_dotl()
319 if (IS_ERR(inode)) { in v9fs_vfs_atomic_open_dotl()
320 err = PTR_ERR(inode); in v9fs_vfs_atomic_open_dotl()
325 v9fs_set_create_acl(inode, fid, dacl, pacl); in v9fs_vfs_atomic_open_dotl()
328 d_instantiate(dentry, inode); in v9fs_vfs_atomic_open_dotl()
330 v9inode = V9FS_I(inode); in v9fs_vfs_atomic_open_dotl()
357 v9fs_cache_inode_set_cookie(inode, file); in v9fs_vfs_atomic_open_dotl()
381 static int v9fs_vfs_mkdir_dotl(struct inode *dir, in v9fs_vfs_mkdir_dotl()
390 struct inode *inode; in v9fs_vfs_mkdir_dotl() local
437 inode = v9fs_get_new_inode_from_fid(v9ses, fid, dir->i_sb); in v9fs_vfs_mkdir_dotl()
438 if (IS_ERR(inode)) { in v9fs_vfs_mkdir_dotl()
439 err = PTR_ERR(inode); in v9fs_vfs_mkdir_dotl()
445 v9fs_set_create_acl(inode, fid, dacl, pacl); in v9fs_vfs_mkdir_dotl()
446 d_instantiate(dentry, inode); in v9fs_vfs_mkdir_dotl()
455 inode = v9fs_get_inode(dir->i_sb, mode, 0); in v9fs_vfs_mkdir_dotl()
456 if (IS_ERR(inode)) { in v9fs_vfs_mkdir_dotl()
457 err = PTR_ERR(inode); in v9fs_vfs_mkdir_dotl()
460 v9fs_set_create_acl(inode, fid, dacl, pacl); in v9fs_vfs_mkdir_dotl()
461 d_instantiate(dentry, inode); in v9fs_vfs_mkdir_dotl()
559 struct inode *inode = d_inode(dentry); in v9fs_vfs_setattr_dotl() local
563 retval = inode_change_ok(inode, iattr); in v9fs_vfs_setattr_dotl()
582 if (S_ISREG(inode->i_mode)) in v9fs_vfs_setattr_dotl()
583 filemap_write_and_wait(inode->i_mapping); in v9fs_vfs_setattr_dotl()
590 iattr->ia_size != i_size_read(inode)) in v9fs_vfs_setattr_dotl()
591 truncate_setsize(inode, iattr->ia_size); in v9fs_vfs_setattr_dotl()
593 v9fs_invalidate_inode_attr(inode); in v9fs_vfs_setattr_dotl()
594 setattr_copy(inode, iattr); in v9fs_vfs_setattr_dotl()
595 mark_inode_dirty(inode); in v9fs_vfs_setattr_dotl()
598 retval = v9fs_acl_chmod(inode, fid); in v9fs_vfs_setattr_dotl()
613 v9fs_stat2inode_dotl(struct p9_stat_dotl *stat, struct inode *inode) in v9fs_stat2inode_dotl() argument
616 struct v9fs_inode *v9inode = V9FS_I(inode); in v9fs_stat2inode_dotl()
619 inode->i_atime.tv_sec = stat->st_atime_sec; in v9fs_stat2inode_dotl()
620 inode->i_atime.tv_nsec = stat->st_atime_nsec; in v9fs_stat2inode_dotl()
621 inode->i_mtime.tv_sec = stat->st_mtime_sec; in v9fs_stat2inode_dotl()
622 inode->i_mtime.tv_nsec = stat->st_mtime_nsec; in v9fs_stat2inode_dotl()
623 inode->i_ctime.tv_sec = stat->st_ctime_sec; in v9fs_stat2inode_dotl()
624 inode->i_ctime.tv_nsec = stat->st_ctime_nsec; in v9fs_stat2inode_dotl()
625 inode->i_uid = stat->st_uid; in v9fs_stat2inode_dotl()
626 inode->i_gid = stat->st_gid; in v9fs_stat2inode_dotl()
627 set_nlink(inode, stat->st_nlink); in v9fs_stat2inode_dotl()
630 mode |= inode->i_mode & ~S_IALLUGO; in v9fs_stat2inode_dotl()
631 inode->i_mode = mode; in v9fs_stat2inode_dotl()
633 i_size_write(inode, stat->st_size); in v9fs_stat2inode_dotl()
634 inode->i_blocks = stat->st_blocks; in v9fs_stat2inode_dotl()
637 inode->i_atime.tv_sec = stat->st_atime_sec; in v9fs_stat2inode_dotl()
638 inode->i_atime.tv_nsec = stat->st_atime_nsec; in v9fs_stat2inode_dotl()
641 inode->i_mtime.tv_sec = stat->st_mtime_sec; in v9fs_stat2inode_dotl()
642 inode->i_mtime.tv_nsec = stat->st_mtime_nsec; in v9fs_stat2inode_dotl()
645 inode->i_ctime.tv_sec = stat->st_ctime_sec; in v9fs_stat2inode_dotl()
646 inode->i_ctime.tv_nsec = stat->st_ctime_nsec; in v9fs_stat2inode_dotl()
649 inode->i_uid = stat->st_uid; in v9fs_stat2inode_dotl()
651 inode->i_gid = stat->st_gid; in v9fs_stat2inode_dotl()
653 set_nlink(inode, stat->st_nlink); in v9fs_stat2inode_dotl()
655 inode->i_mode = stat->st_mode; in v9fs_stat2inode_dotl()
656 if ((S_ISBLK(inode->i_mode)) || in v9fs_stat2inode_dotl()
657 (S_ISCHR(inode->i_mode))) in v9fs_stat2inode_dotl()
658 init_special_inode(inode, inode->i_mode, in v9fs_stat2inode_dotl()
659 inode->i_rdev); in v9fs_stat2inode_dotl()
662 inode->i_rdev = new_decode_dev(stat->st_rdev); in v9fs_stat2inode_dotl()
664 i_size_write(inode, stat->st_size); in v9fs_stat2inode_dotl()
666 inode->i_blocks = stat->st_blocks; in v9fs_stat2inode_dotl()
669 inode->i_generation = stat->st_gen; in v9fs_stat2inode_dotl()
678 v9fs_vfs_symlink_dotl(struct inode *dir, struct dentry *dentry, in v9fs_vfs_symlink_dotl()
685 struct inode *inode; in v9fs_vfs_symlink_dotl() local
724 inode = v9fs_get_new_inode_from_fid(v9ses, fid, dir->i_sb); in v9fs_vfs_symlink_dotl()
725 if (IS_ERR(inode)) { in v9fs_vfs_symlink_dotl()
726 err = PTR_ERR(inode); in v9fs_vfs_symlink_dotl()
732 d_instantiate(dentry, inode); in v9fs_vfs_symlink_dotl()
737 inode = v9fs_get_inode(dir->i_sb, S_IFLNK, 0); in v9fs_vfs_symlink_dotl()
738 if (IS_ERR(inode)) { in v9fs_vfs_symlink_dotl()
739 err = PTR_ERR(inode); in v9fs_vfs_symlink_dotl()
742 d_instantiate(dentry, inode); in v9fs_vfs_symlink_dotl()
761 v9fs_vfs_link_dotl(struct dentry *old_dentry, struct inode *dir, in v9fs_vfs_link_dotl()
814 v9fs_vfs_mknod_dotl(struct inode *dir, struct dentry *dentry, umode_t omode, in v9fs_vfs_mknod_dotl()
823 struct inode *inode; in v9fs_vfs_mknod_dotl() local
872 inode = v9fs_get_new_inode_from_fid(v9ses, fid, dir->i_sb); in v9fs_vfs_mknod_dotl()
873 if (IS_ERR(inode)) { in v9fs_vfs_mknod_dotl()
874 err = PTR_ERR(inode); in v9fs_vfs_mknod_dotl()
879 v9fs_set_create_acl(inode, fid, dacl, pacl); in v9fs_vfs_mknod_dotl()
881 d_instantiate(dentry, inode); in v9fs_vfs_mknod_dotl()
889 inode = v9fs_get_inode(dir->i_sb, mode, rdev); in v9fs_vfs_mknod_dotl()
890 if (IS_ERR(inode)) { in v9fs_vfs_mknod_dotl()
891 err = PTR_ERR(inode); in v9fs_vfs_mknod_dotl()
894 v9fs_set_create_acl(inode, fid, dacl, pacl); in v9fs_vfs_mknod_dotl()
895 d_instantiate(dentry, inode); in v9fs_vfs_mknod_dotl()
944 int v9fs_refresh_inode_dotl(struct p9_fid *fid, struct inode *inode) in v9fs_refresh_inode_dotl() argument
950 v9ses = v9fs_inode2v9ses(inode); in v9fs_refresh_inode_dotl()
957 if ((inode->i_mode & S_IFMT) != (st->st_mode & S_IFMT)) in v9fs_refresh_inode_dotl()
960 spin_lock(&inode->i_lock); in v9fs_refresh_inode_dotl()
965 i_size = inode->i_size; in v9fs_refresh_inode_dotl()
966 v9fs_stat2inode_dotl(st, inode); in v9fs_refresh_inode_dotl()
968 inode->i_size = i_size; in v9fs_refresh_inode_dotl()
969 spin_unlock(&inode->i_lock); in v9fs_refresh_inode_dotl()