Lines Matching refs:inode

36 	struct inode *inode = AFS_VNODE_TO_I(vnode);  in afs_inode_map_status()  local
47 inode->i_mode = S_IFREG | vnode->status.mode; in afs_inode_map_status()
48 inode->i_op = &afs_file_inode_operations; in afs_inode_map_status()
49 inode->i_fop = &afs_file_operations; in afs_inode_map_status()
52 inode->i_mode = S_IFDIR | vnode->status.mode; in afs_inode_map_status()
53 inode->i_op = &afs_dir_inode_operations; in afs_inode_map_status()
54 inode->i_fop = &afs_dir_file_operations; in afs_inode_map_status()
57 inode->i_mode = S_IFLNK | vnode->status.mode; in afs_inode_map_status()
58 inode->i_op = &page_symlink_inode_operations; in afs_inode_map_status()
66 if (vnode->status.size != inode->i_size) in afs_inode_map_status()
70 set_nlink(inode, vnode->status.nlink); in afs_inode_map_status()
71 inode->i_uid = vnode->status.owner; in afs_inode_map_status()
72 inode->i_gid = GLOBAL_ROOT_GID; in afs_inode_map_status()
73 inode->i_size = vnode->status.size; in afs_inode_map_status()
74 inode->i_ctime.tv_sec = vnode->status.mtime_server; in afs_inode_map_status()
75 inode->i_ctime.tv_nsec = 0; in afs_inode_map_status()
76 inode->i_atime = inode->i_mtime = inode->i_ctime; in afs_inode_map_status()
77 inode->i_blocks = 0; in afs_inode_map_status()
78 inode->i_generation = vnode->fid.unique; in afs_inode_map_status()
79 inode->i_version = vnode->status.data_version; in afs_inode_map_status()
80 inode->i_mapping->a_ops = &afs_fs_aops; in afs_inode_map_status()
87 inode->i_mode = S_IFDIR | vnode->status.mode; in afs_inode_map_status()
88 inode->i_op = &afs_mntpt_inode_operations; in afs_inode_map_status()
89 inode->i_fop = &afs_mntpt_file_operations; in afs_inode_map_status()
99 static int afs_iget5_test(struct inode *inode, void *opaque) in afs_iget5_test() argument
103 return inode->i_ino == data->fid.vnode && in afs_iget5_test()
104 inode->i_generation == data->fid.unique; in afs_iget5_test()
112 static int afs_iget5_autocell_test(struct inode *inode, void *opaque) in afs_iget5_autocell_test() argument
120 static int afs_iget5_set(struct inode *inode, void *opaque) in afs_iget5_set() argument
123 struct afs_vnode *vnode = AFS_FS_I(inode); in afs_iget5_set()
125 inode->i_ino = data->fid.vnode; in afs_iget5_set()
126 inode->i_generation = data->fid.unique; in afs_iget5_set()
136 struct inode *afs_iget_autocell(struct inode *dir, const char *dev_name, in afs_iget_autocell()
143 struct inode *inode; in afs_iget_autocell() local
157 inode = iget5_locked(sb, atomic_inc_return(&afs_autocell_ino), in afs_iget_autocell()
160 if (!inode) { in afs_iget_autocell()
166 inode, inode->i_ino, data.fid.vid, data.fid.vnode, in afs_iget_autocell()
169 vnode = AFS_FS_I(inode); in afs_iget_autocell()
172 BUG_ON(!(inode->i_state & I_NEW)); in afs_iget_autocell()
174 inode->i_size = 0; in afs_iget_autocell()
175 inode->i_mode = S_IFDIR | S_IRUGO | S_IXUGO; in afs_iget_autocell()
176 inode->i_op = &afs_autocell_inode_operations; in afs_iget_autocell()
177 set_nlink(inode, 2); in afs_iget_autocell()
178 inode->i_uid = GLOBAL_ROOT_UID; in afs_iget_autocell()
179 inode->i_gid = GLOBAL_ROOT_GID; in afs_iget_autocell()
180 inode->i_ctime.tv_sec = get_seconds(); in afs_iget_autocell()
181 inode->i_ctime.tv_nsec = 0; in afs_iget_autocell()
182 inode->i_atime = inode->i_mtime = inode->i_ctime; in afs_iget_autocell()
183 inode->i_blocks = 0; in afs_iget_autocell()
184 inode->i_version = 0; in afs_iget_autocell()
185 inode->i_generation = 0; in afs_iget_autocell()
189 inode->i_flags |= S_AUTOMOUNT | S_NOATIME; in afs_iget_autocell()
190 unlock_new_inode(inode); in afs_iget_autocell()
191 _leave(" = %p", inode); in afs_iget_autocell()
192 return inode; in afs_iget_autocell()
198 struct inode *afs_iget(struct super_block *sb, struct key *key, in afs_iget()
205 struct inode *inode; in afs_iget() local
213 inode = iget5_locked(sb, fid->vnode, afs_iget5_test, afs_iget5_set, in afs_iget()
215 if (!inode) { in afs_iget()
221 inode, fid->vid, fid->vnode, fid->unique); in afs_iget()
223 vnode = AFS_FS_I(inode); in afs_iget()
226 if (!(inode->i_state & I_NEW)) { in afs_iget()
227 _leave(" = %p", inode); in afs_iget()
228 return inode; in afs_iget()
258 inode->i_size = vnode->status.size; in afs_iget()
271 inode->i_flags |= S_NOATIME; in afs_iget()
272 unlock_new_inode(inode); in afs_iget()
273 _leave(" = %p [CB { v=%u t=%u }]", inode, vnode->cb_version, vnode->cb_type); in afs_iget()
274 return inode; in afs_iget()
282 iget_failed(inode); in afs_iget()
380 struct inode *inode; in afs_getattr() local
382 inode = d_inode(dentry); in afs_getattr()
384 _enter("{ ino=%lu v=%u }", inode->i_ino, inode->i_generation); in afs_getattr()
386 generic_fillattr(inode, stat); in afs_getattr()
393 int afs_drop_inode(struct inode *inode) in afs_drop_inode() argument
397 if (test_bit(AFS_VNODE_PSEUDODIR, &AFS_FS_I(inode)->flags)) in afs_drop_inode()
398 return generic_delete_inode(inode); in afs_drop_inode()
400 return generic_drop_inode(inode); in afs_drop_inode()
406 void afs_evict_inode(struct inode *inode) in afs_evict_inode() argument
411 vnode = AFS_FS_I(inode); in afs_evict_inode()
421 _debug("CLEAR INODE %p", inode); in afs_evict_inode()
423 ASSERTCMP(inode->i_ino, ==, vnode->fid.vnode); in afs_evict_inode()
425 truncate_inode_pages_final(&inode->i_data); in afs_evict_inode()
426 clear_inode(inode); in afs_evict_inode()