Lines Matching refs:inode

25 static struct inode *f2fs_new_inode(struct inode *dir, umode_t mode)  in f2fs_new_inode()
29 struct inode *inode; in f2fs_new_inode() local
33 inode = new_inode(dir->i_sb); in f2fs_new_inode()
34 if (!inode) in f2fs_new_inode()
45 inode_init_owner(inode, dir, mode); in f2fs_new_inode()
47 inode->i_ino = ino; in f2fs_new_inode()
48 inode->i_blocks = 0; in f2fs_new_inode()
49 inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME; in f2fs_new_inode()
50 inode->i_generation = sbi->s_next_generation++; in f2fs_new_inode()
52 err = insert_inode_locked(inode); in f2fs_new_inode()
59 if (f2fs_may_inline(inode)) in f2fs_new_inode()
60 set_inode_flag(F2FS_I(inode), FI_INLINE_DATA); in f2fs_new_inode()
61 if (test_opt(sbi, INLINE_DENTRY) && S_ISDIR(inode->i_mode)) in f2fs_new_inode()
62 set_inode_flag(F2FS_I(inode), FI_INLINE_DENTRY); in f2fs_new_inode()
64 trace_f2fs_new_inode(inode, 0); in f2fs_new_inode()
65 mark_inode_dirty(inode); in f2fs_new_inode()
66 return inode; in f2fs_new_inode()
69 clear_nlink(inode); in f2fs_new_inode()
70 unlock_new_inode(inode); in f2fs_new_inode()
72 trace_f2fs_new_inode(inode, err); in f2fs_new_inode()
73 make_bad_inode(inode); in f2fs_new_inode()
74 iput(inode); in f2fs_new_inode()
94 static inline void set_cold_files(struct f2fs_sb_info *sbi, struct inode *inode, in set_cold_files() argument
103 file_set_cold(inode); in set_cold_files()
109 static int f2fs_create(struct inode *dir, struct dentry *dentry, umode_t mode, in f2fs_create()
113 struct inode *inode; in f2fs_create() local
119 inode = f2fs_new_inode(dir, mode); in f2fs_create()
120 if (IS_ERR(inode)) in f2fs_create()
121 return PTR_ERR(inode); in f2fs_create()
124 set_cold_files(sbi, inode, dentry->d_name.name); in f2fs_create()
126 inode->i_op = &f2fs_file_inode_operations; in f2fs_create()
127 inode->i_fop = &f2fs_file_operations; in f2fs_create()
128 inode->i_mapping->a_ops = &f2fs_dblock_aops; in f2fs_create()
129 ino = inode->i_ino; in f2fs_create()
132 err = f2fs_add_link(dentry, inode); in f2fs_create()
139 stat_inc_inline_inode(inode); in f2fs_create()
140 d_instantiate(dentry, inode); in f2fs_create()
141 unlock_new_inode(inode); in f2fs_create()
147 handle_failed_inode(inode); in f2fs_create()
151 static int f2fs_link(struct dentry *old_dentry, struct inode *dir, in f2fs_link()
154 struct inode *inode = d_inode(old_dentry); in f2fs_link() local
160 inode->i_ctime = CURRENT_TIME; in f2fs_link()
161 ihold(inode); in f2fs_link()
163 set_inode_flag(F2FS_I(inode), FI_INC_LINK); in f2fs_link()
165 err = f2fs_add_link(dentry, inode); in f2fs_link()
170 d_instantiate(dentry, inode); in f2fs_link()
176 clear_inode_flag(F2FS_I(inode), FI_INC_LINK); in f2fs_link()
177 iput(inode); in f2fs_link()
191 static int __recover_dot_dentries(struct inode *dir, nid_t pino) in __recover_dot_dentries()
229 static struct dentry *f2fs_lookup(struct inode *dir, struct dentry *dentry, in f2fs_lookup()
232 struct inode *inode = NULL; in f2fs_lookup() local
245 inode = f2fs_iget(dir->i_sb, ino); in f2fs_lookup()
246 if (IS_ERR(inode)) in f2fs_lookup()
247 return ERR_CAST(inode); in f2fs_lookup()
249 if (f2fs_has_inline_dots(inode)) { in f2fs_lookup()
252 err = __recover_dot_dentries(inode, dir->i_ino); in f2fs_lookup()
254 iget_failed(inode); in f2fs_lookup()
260 return d_splice_alias(inode, dentry); in f2fs_lookup()
263 static int f2fs_unlink(struct inode *dir, struct dentry *dentry) in f2fs_unlink()
266 struct inode *inode = d_inode(dentry); in f2fs_unlink() local
286 f2fs_delete_entry(de, page, dir, inode); in f2fs_unlink()
290 mark_inode_dirty(inode); in f2fs_unlink()
295 trace_f2fs_unlink_exit(inode, err); in f2fs_unlink()
314 static int f2fs_symlink(struct inode *dir, struct dentry *dentry, in f2fs_symlink()
318 struct inode *inode; in f2fs_symlink() local
324 inode = f2fs_new_inode(dir, S_IFLNK | S_IRWXUGO); in f2fs_symlink()
325 if (IS_ERR(inode)) in f2fs_symlink()
326 return PTR_ERR(inode); in f2fs_symlink()
328 inode->i_op = &f2fs_symlink_inode_operations; in f2fs_symlink()
329 inode->i_mapping->a_ops = &f2fs_dblock_aops; in f2fs_symlink()
332 err = f2fs_add_link(dentry, inode); in f2fs_symlink()
337 err = page_symlink(inode, symname, symlen); in f2fs_symlink()
338 alloc_nid_done(sbi, inode->i_ino); in f2fs_symlink()
340 d_instantiate(dentry, inode); in f2fs_symlink()
341 unlock_new_inode(inode); in f2fs_symlink()
352 filemap_write_and_wait_range(inode->i_mapping, 0, symlen - 1); in f2fs_symlink()
358 handle_failed_inode(inode); in f2fs_symlink()
362 static int f2fs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode) in f2fs_mkdir()
365 struct inode *inode; in f2fs_mkdir() local
370 inode = f2fs_new_inode(dir, S_IFDIR | mode); in f2fs_mkdir()
371 if (IS_ERR(inode)) in f2fs_mkdir()
372 return PTR_ERR(inode); in f2fs_mkdir()
374 inode->i_op = &f2fs_dir_inode_operations; in f2fs_mkdir()
375 inode->i_fop = &f2fs_dir_operations; in f2fs_mkdir()
376 inode->i_mapping->a_ops = &f2fs_dblock_aops; in f2fs_mkdir()
377 mapping_set_gfp_mask(inode->i_mapping, GFP_F2FS_HIGH_ZERO); in f2fs_mkdir()
379 set_inode_flag(F2FS_I(inode), FI_INC_LINK); in f2fs_mkdir()
381 err = f2fs_add_link(dentry, inode); in f2fs_mkdir()
386 stat_inc_inline_dir(inode); in f2fs_mkdir()
387 alloc_nid_done(sbi, inode->i_ino); in f2fs_mkdir()
389 d_instantiate(dentry, inode); in f2fs_mkdir()
390 unlock_new_inode(inode); in f2fs_mkdir()
397 clear_inode_flag(F2FS_I(inode), FI_INC_LINK); in f2fs_mkdir()
398 handle_failed_inode(inode); in f2fs_mkdir()
402 static int f2fs_rmdir(struct inode *dir, struct dentry *dentry) in f2fs_rmdir()
404 struct inode *inode = d_inode(dentry); in f2fs_rmdir() local
405 if (f2fs_empty_dir(inode)) in f2fs_rmdir()
410 static int f2fs_mknod(struct inode *dir, struct dentry *dentry, in f2fs_mknod()
414 struct inode *inode; in f2fs_mknod() local
422 inode = f2fs_new_inode(dir, mode); in f2fs_mknod()
423 if (IS_ERR(inode)) in f2fs_mknod()
424 return PTR_ERR(inode); in f2fs_mknod()
426 init_special_inode(inode, inode->i_mode, rdev); in f2fs_mknod()
427 inode->i_op = &f2fs_special_inode_operations; in f2fs_mknod()
430 err = f2fs_add_link(dentry, inode); in f2fs_mknod()
435 alloc_nid_done(sbi, inode->i_ino); in f2fs_mknod()
437 d_instantiate(dentry, inode); in f2fs_mknod()
438 unlock_new_inode(inode); in f2fs_mknod()
444 handle_failed_inode(inode); in f2fs_mknod()
448 static int f2fs_rename(struct inode *old_dir, struct dentry *old_dentry, in f2fs_rename()
449 struct inode *new_dir, struct dentry *new_dentry) in f2fs_rename()
452 struct inode *old_inode = d_inode(old_dentry); in f2fs_rename()
453 struct inode *new_inode = d_inode(new_dentry); in f2fs_rename()
575 static int f2fs_cross_rename(struct inode *old_dir, struct dentry *old_dentry, in f2fs_cross_rename()
576 struct inode *new_dir, struct dentry *new_dentry) in f2fs_cross_rename()
579 struct inode *old_inode = d_inode(old_dentry); in f2fs_cross_rename()
580 struct inode *new_inode = d_inode(new_dentry); in f2fs_cross_rename()
722 static int f2fs_rename2(struct inode *old_dir, struct dentry *old_dentry, in f2fs_rename2()
723 struct inode *new_dir, struct dentry *new_dentry, in f2fs_rename2()
740 static int f2fs_tmpfile(struct inode *dir, struct dentry *dentry, umode_t mode) in f2fs_tmpfile()
743 struct inode *inode; in f2fs_tmpfile() local
746 inode = f2fs_new_inode(dir, mode); in f2fs_tmpfile()
747 if (IS_ERR(inode)) in f2fs_tmpfile()
748 return PTR_ERR(inode); in f2fs_tmpfile()
750 inode->i_op = &f2fs_file_inode_operations; in f2fs_tmpfile()
751 inode->i_fop = &f2fs_file_operations; in f2fs_tmpfile()
752 inode->i_mapping->a_ops = &f2fs_dblock_aops; in f2fs_tmpfile()
759 err = f2fs_do_tmpfile(inode, dir); in f2fs_tmpfile()
767 add_orphan_inode(sbi, inode->i_ino); in f2fs_tmpfile()
770 alloc_nid_done(sbi, inode->i_ino); in f2fs_tmpfile()
772 stat_inc_inline_inode(inode); in f2fs_tmpfile()
773 d_tmpfile(dentry, inode); in f2fs_tmpfile()
774 unlock_new_inode(inode); in f2fs_tmpfile()
780 handle_failed_inode(inode); in f2fs_tmpfile()