Lines Matching refs:inode
238 struct inode *v9fs_alloc_inode(struct super_block *sb) in v9fs_alloc_inode()
262 struct inode *inode = container_of(head, struct inode, i_rcu); in v9fs_i_callback() local
263 kmem_cache_free(v9fs_inode_cache, V9FS_I(inode)); in v9fs_i_callback()
266 void v9fs_destroy_inode(struct inode *inode) in v9fs_destroy_inode() argument
268 call_rcu(&inode->i_rcu, v9fs_i_callback); in v9fs_destroy_inode()
272 struct inode *inode, umode_t mode, dev_t rdev) in v9fs_init_inode() argument
276 inode_init_owner(inode, NULL, mode); in v9fs_init_inode()
277 inode->i_blocks = 0; in v9fs_init_inode()
278 inode->i_rdev = rdev; in v9fs_init_inode()
279 inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME; in v9fs_init_inode()
280 inode->i_mapping->a_ops = &v9fs_addr_operations; in v9fs_init_inode()
288 inode->i_op = &v9fs_file_inode_operations_dotl; in v9fs_init_inode()
290 inode->i_op = &v9fs_file_inode_operations; in v9fs_init_inode()
297 init_special_inode(inode, inode->i_mode, inode->i_rdev); in v9fs_init_inode()
301 inode->i_op = &v9fs_file_inode_operations_dotl; in v9fs_init_inode()
304 inode->i_fop = in v9fs_init_inode()
307 inode->i_fop = &v9fs_mmap_file_operations_dotl; in v9fs_init_inode()
309 inode->i_fop = &v9fs_file_operations_dotl; in v9fs_init_inode()
311 inode->i_op = &v9fs_file_inode_operations; in v9fs_init_inode()
314 inode->i_fop = in v9fs_init_inode()
317 inode->i_fop = &v9fs_mmap_file_operations; in v9fs_init_inode()
319 inode->i_fop = &v9fs_file_operations; in v9fs_init_inode()
332 inode->i_op = &v9fs_symlink_inode_operations_dotl; in v9fs_init_inode()
334 inode->i_op = &v9fs_symlink_inode_operations; in v9fs_init_inode()
338 inc_nlink(inode); in v9fs_init_inode()
340 inode->i_op = &v9fs_dir_inode_operations_dotl; in v9fs_init_inode()
342 inode->i_op = &v9fs_dir_inode_operations_dotu; in v9fs_init_inode()
344 inode->i_op = &v9fs_dir_inode_operations; in v9fs_init_inode()
347 inode->i_fop = &v9fs_dir_operations_dotl; in v9fs_init_inode()
349 inode->i_fop = &v9fs_dir_operations; in v9fs_init_inode()
370 struct inode *v9fs_get_inode(struct super_block *sb, umode_t mode, dev_t rdev) in v9fs_get_inode()
373 struct inode *inode; in v9fs_get_inode() local
378 inode = new_inode(sb); in v9fs_get_inode()
379 if (!inode) { in v9fs_get_inode()
384 err = v9fs_init_inode(v9ses, inode, mode, rdev); in v9fs_get_inode()
386 iput(inode); in v9fs_get_inode()
389 return inode; in v9fs_get_inode()
450 void v9fs_evict_inode(struct inode *inode) in v9fs_evict_inode() argument
452 struct v9fs_inode *v9inode = V9FS_I(inode); in v9fs_evict_inode()
454 truncate_inode_pages_final(inode->i_mapping); in v9fs_evict_inode()
455 clear_inode(inode); in v9fs_evict_inode()
456 filemap_fdatawrite(inode->i_mapping); in v9fs_evict_inode()
458 v9fs_cache_inode_put_cookie(inode); in v9fs_evict_inode()
466 static int v9fs_test_inode(struct inode *inode, void *data) in v9fs_test_inode() argument
470 struct v9fs_inode *v9inode = V9FS_I(inode); in v9fs_test_inode()
472 struct v9fs_session_info *v9ses = v9fs_inode2v9ses(inode); in v9fs_test_inode()
476 if ((inode->i_mode & S_IFMT) != (umode & S_IFMT)) in v9fs_test_inode()
489 static int v9fs_test_new_inode(struct inode *inode, void *data) in v9fs_test_new_inode() argument
494 static int v9fs_set_inode(struct inode *inode, void *data) in v9fs_set_inode() argument
496 struct v9fs_inode *v9inode = V9FS_I(inode); in v9fs_set_inode()
503 static struct inode *v9fs_qid_iget(struct super_block *sb, in v9fs_qid_iget()
512 struct inode *inode; in v9fs_qid_iget() local
514 int (*test)(struct inode *, void *); in v9fs_qid_iget()
522 inode = iget5_locked(sb, i_ino, test, v9fs_set_inode, st); in v9fs_qid_iget()
523 if (!inode) in v9fs_qid_iget()
525 if (!(inode->i_state & I_NEW)) in v9fs_qid_iget()
526 return inode; in v9fs_qid_iget()
532 inode->i_ino = i_ino; in v9fs_qid_iget()
534 retval = v9fs_init_inode(v9ses, inode, umode, rdev); in v9fs_qid_iget()
538 v9fs_stat2inode(st, inode, sb); in v9fs_qid_iget()
539 v9fs_cache_inode_get_cookie(inode); in v9fs_qid_iget()
540 unlock_new_inode(inode); in v9fs_qid_iget()
541 return inode; in v9fs_qid_iget()
543 iget_failed(inode); in v9fs_qid_iget()
548 struct inode *
553 struct inode *inode = NULL; in v9fs_inode_from_fid() local
559 inode = v9fs_qid_iget(sb, &st->qid, st, new); in v9fs_inode_from_fid()
562 return inode; in v9fs_inode_from_fid()
586 static int v9fs_remove(struct inode *dir, struct dentry *dentry, int flags) in v9fs_remove()
588 struct inode *inode; in v9fs_remove() local
597 inode = d_inode(dentry); in v9fs_remove()
620 clear_nlink(inode); in v9fs_remove()
623 drop_nlink(inode); in v9fs_remove()
625 v9fs_invalidate_inode_attr(inode); in v9fs_remove()
642 v9fs_create(struct v9fs_session_info *v9ses, struct inode *dir, in v9fs_create()
648 struct inode *inode; in v9fs_create() local
690 inode = v9fs_get_new_inode_from_fid(v9ses, fid, dir->i_sb); in v9fs_create()
691 if (IS_ERR(inode)) { in v9fs_create()
692 err = PTR_ERR(inode); in v9fs_create()
698 d_instantiate(dentry, inode); in v9fs_create()
724 v9fs_vfs_create(struct inode *dir, struct dentry *dentry, umode_t mode, in v9fs_vfs_create()
750 static int v9fs_vfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode) in v9fs_vfs_mkdir()
784 struct dentry *v9fs_vfs_lookup(struct inode *dir, struct dentry *dentry, in v9fs_vfs_lookup()
790 struct inode *inode; in v9fs_vfs_lookup() local
820 inode = v9fs_get_inode_from_fid(v9ses, fid, dir->i_sb); in v9fs_vfs_lookup()
822 inode = v9fs_get_new_inode_from_fid(v9ses, fid, dir->i_sb); in v9fs_vfs_lookup()
823 if (IS_ERR(inode)) { in v9fs_vfs_lookup()
825 return ERR_CAST(inode); in v9fs_vfs_lookup()
834 res = d_splice_alias(inode, dentry); in v9fs_vfs_lookup()
845 v9fs_vfs_atomic_open(struct inode *dir, struct dentry *dentry, in v9fs_vfs_atomic_open()
930 int v9fs_vfs_unlink(struct inode *i, struct dentry *d) in v9fs_vfs_unlink()
942 int v9fs_vfs_rmdir(struct inode *i, struct dentry *d) in v9fs_vfs_rmdir()
957 v9fs_vfs_rename(struct inode *old_dir, struct dentry *old_dentry, in v9fs_vfs_rename()
958 struct inode *new_dir, struct dentry *new_dentry) in v9fs_vfs_rename()
961 struct inode *old_inode; in v9fs_vfs_rename()
962 struct inode *new_inode; in v9fs_vfs_rename()
1156 v9fs_stat2inode(struct p9_wstat *stat, struct inode *inode, in v9fs_stat2inode() argument
1164 struct v9fs_inode *v9inode = V9FS_I(inode); in v9fs_stat2inode()
1166 set_nlink(inode, 1); in v9fs_stat2inode()
1168 inode->i_atime.tv_sec = stat->atime; in v9fs_stat2inode()
1169 inode->i_mtime.tv_sec = stat->mtime; in v9fs_stat2inode()
1170 inode->i_ctime.tv_sec = stat->mtime; in v9fs_stat2inode()
1172 inode->i_uid = v9ses->dfltuid; in v9fs_stat2inode()
1173 inode->i_gid = v9ses->dfltgid; in v9fs_stat2inode()
1176 inode->i_uid = stat->n_uid; in v9fs_stat2inode()
1177 inode->i_gid = stat->n_gid; in v9fs_stat2inode()
1179 if ((S_ISREG(inode->i_mode)) || (S_ISDIR(inode->i_mode))) { in v9fs_stat2inode()
1192 set_nlink(inode, i_nlink); in v9fs_stat2inode()
1196 mode |= inode->i_mode & ~S_IALLUGO; in v9fs_stat2inode()
1197 inode->i_mode = mode; in v9fs_stat2inode()
1198 i_size_write(inode, stat->length); in v9fs_stat2inode()
1201 inode->i_blocks = (i_size_read(inode) + 512 - 1) >> 9; in v9fs_stat2inode()
1331 static int v9fs_vfs_mkspecial(struct inode *dir, struct dentry *dentry, in v9fs_vfs_mkspecial()
1364 v9fs_vfs_symlink(struct inode *dir, struct dentry *dentry, const char *symname) in v9fs_vfs_symlink()
1381 v9fs_vfs_link(struct dentry *old_dentry, struct inode *dir, in v9fs_vfs_link()
1423 v9fs_vfs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode, dev_t rdev) in v9fs_vfs_mknod()
1461 int v9fs_refresh_inode(struct p9_fid *fid, struct inode *inode) in v9fs_refresh_inode() argument
1469 v9ses = v9fs_inode2v9ses(inode); in v9fs_refresh_inode()
1477 if ((inode->i_mode & S_IFMT) != (umode & S_IFMT)) in v9fs_refresh_inode()
1480 spin_lock(&inode->i_lock); in v9fs_refresh_inode()
1485 i_size = inode->i_size; in v9fs_refresh_inode()
1486 v9fs_stat2inode(st, inode, inode->i_sb); in v9fs_refresh_inode()
1488 inode->i_size = i_size; in v9fs_refresh_inode()
1489 spin_unlock(&inode->i_lock); in v9fs_refresh_inode()