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()
60 if (f2fs_encrypted_inode(dir) && f2fs_may_encrypt(inode)) in f2fs_new_inode()
61 f2fs_set_encrypted_inode(inode); in f2fs_new_inode()
63 if (f2fs_may_inline_data(inode)) in f2fs_new_inode()
64 set_inode_flag(F2FS_I(inode), FI_INLINE_DATA); in f2fs_new_inode()
65 if (f2fs_may_inline_dentry(inode)) in f2fs_new_inode()
66 set_inode_flag(F2FS_I(inode), FI_INLINE_DENTRY); in f2fs_new_inode()
68 f2fs_init_extent_tree(inode, NULL); in f2fs_new_inode()
70 stat_inc_inline_xattr(inode); in f2fs_new_inode()
71 stat_inc_inline_inode(inode); in f2fs_new_inode()
72 stat_inc_inline_dir(inode); in f2fs_new_inode()
74 trace_f2fs_new_inode(inode, 0); in f2fs_new_inode()
75 mark_inode_dirty(inode); in f2fs_new_inode()
76 return inode; in f2fs_new_inode()
79 trace_f2fs_new_inode(inode, err); in f2fs_new_inode()
80 make_bad_inode(inode); in f2fs_new_inode()
82 set_inode_flag(F2FS_I(inode), FI_FREE_NID); in f2fs_new_inode()
83 iput(inode); in f2fs_new_inode()
108 static inline void set_cold_files(struct f2fs_sb_info *sbi, struct inode *inode, in set_cold_files() argument
117 file_set_cold(inode); in set_cold_files()
123 static int f2fs_create(struct inode *dir, struct dentry *dentry, umode_t mode, in f2fs_create()
127 struct inode *inode; in f2fs_create() local
133 inode = f2fs_new_inode(dir, mode); in f2fs_create()
134 if (IS_ERR(inode)) in f2fs_create()
135 return PTR_ERR(inode); in f2fs_create()
138 set_cold_files(sbi, inode, dentry->d_name.name); in f2fs_create()
140 inode->i_op = &f2fs_file_inode_operations; in f2fs_create()
141 inode->i_fop = &f2fs_file_operations; in f2fs_create()
142 inode->i_mapping->a_ops = &f2fs_dblock_aops; in f2fs_create()
143 ino = inode->i_ino; in f2fs_create()
146 err = f2fs_add_link(dentry, inode); in f2fs_create()
153 d_instantiate(dentry, inode); in f2fs_create()
154 unlock_new_inode(inode); in f2fs_create()
160 handle_failed_inode(inode); in f2fs_create()
164 static int f2fs_link(struct dentry *old_dentry, struct inode *dir, in f2fs_link()
167 struct inode *inode = d_inode(old_dentry); in f2fs_link() local
172 !f2fs_is_child_context_consistent_with_parent(dir, inode)) in f2fs_link()
177 inode->i_ctime = CURRENT_TIME; in f2fs_link()
178 ihold(inode); in f2fs_link()
180 set_inode_flag(F2FS_I(inode), FI_INC_LINK); in f2fs_link()
182 err = f2fs_add_link(dentry, inode); in f2fs_link()
187 d_instantiate(dentry, inode); in f2fs_link()
193 clear_inode_flag(F2FS_I(inode), FI_INC_LINK); in f2fs_link()
194 iput(inode); in f2fs_link()
208 static int __recover_dot_dentries(struct inode *dir, nid_t pino) in __recover_dot_dentries()
246 static struct dentry *f2fs_lookup(struct inode *dir, struct dentry *dentry, in f2fs_lookup()
249 struct inode *inode = NULL; in f2fs_lookup() local
260 return d_splice_alias(inode, dentry); in f2fs_lookup()
266 inode = f2fs_iget(dir->i_sb, ino); in f2fs_lookup()
267 if (IS_ERR(inode)) in f2fs_lookup()
268 return ERR_CAST(inode); in f2fs_lookup()
270 if (f2fs_has_inline_dots(inode)) { in f2fs_lookup()
271 err = __recover_dot_dentries(inode, dir->i_ino); in f2fs_lookup()
275 return d_splice_alias(inode, dentry); in f2fs_lookup()
278 iget_failed(inode); in f2fs_lookup()
282 static int f2fs_unlink(struct inode *dir, struct dentry *dentry) in f2fs_unlink()
285 struct inode *inode = d_inode(dentry); in f2fs_unlink() local
305 f2fs_delete_entry(de, page, dir, inode); in f2fs_unlink()
309 mark_inode_dirty(inode); in f2fs_unlink()
314 trace_f2fs_unlink_exit(inode, err); in f2fs_unlink()
329 static int f2fs_symlink(struct inode *dir, struct dentry *dentry, in f2fs_symlink()
333 struct inode *inode; in f2fs_symlink() local
346 inode = f2fs_new_inode(dir, S_IFLNK | S_IRWXUGO); in f2fs_symlink()
347 if (IS_ERR(inode)) in f2fs_symlink()
348 return PTR_ERR(inode); in f2fs_symlink()
350 if (f2fs_encrypted_inode(inode)) in f2fs_symlink()
351 inode->i_op = &f2fs_encrypted_symlink_inode_operations; in f2fs_symlink()
353 inode->i_op = &f2fs_symlink_inode_operations; in f2fs_symlink()
354 inode->i_mapping->a_ops = &f2fs_dblock_aops; in f2fs_symlink()
357 err = f2fs_add_link(dentry, inode); in f2fs_symlink()
361 alloc_nid_done(sbi, inode->i_ino); in f2fs_symlink()
366 err = f2fs_get_encryption_info(inode); in f2fs_symlink()
370 err = f2fs_fname_crypto_alloc_buffer(inode, len, &disk_link); in f2fs_symlink()
374 err = f2fs_fname_usr_to_disk(inode, &istr, &disk_link); in f2fs_symlink()
398 err = page_symlink(inode, p_str, p_len); in f2fs_symlink()
401 d_instantiate(dentry, inode); in f2fs_symlink()
402 unlock_new_inode(inode); in f2fs_symlink()
414 filemap_write_and_wait_range(inode->i_mapping, 0, p_len - 1); in f2fs_symlink()
426 handle_failed_inode(inode); in f2fs_symlink()
430 static int f2fs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode) in f2fs_mkdir()
433 struct inode *inode; in f2fs_mkdir() local
438 inode = f2fs_new_inode(dir, S_IFDIR | mode); in f2fs_mkdir()
439 if (IS_ERR(inode)) in f2fs_mkdir()
440 return PTR_ERR(inode); in f2fs_mkdir()
442 inode->i_op = &f2fs_dir_inode_operations; in f2fs_mkdir()
443 inode->i_fop = &f2fs_dir_operations; in f2fs_mkdir()
444 inode->i_mapping->a_ops = &f2fs_dblock_aops; in f2fs_mkdir()
445 mapping_set_gfp_mask(inode->i_mapping, GFP_F2FS_HIGH_ZERO); in f2fs_mkdir()
447 set_inode_flag(F2FS_I(inode), FI_INC_LINK); in f2fs_mkdir()
449 err = f2fs_add_link(dentry, inode); in f2fs_mkdir()
454 alloc_nid_done(sbi, inode->i_ino); in f2fs_mkdir()
456 d_instantiate(dentry, inode); in f2fs_mkdir()
457 unlock_new_inode(inode); in f2fs_mkdir()
464 clear_inode_flag(F2FS_I(inode), FI_INC_LINK); in f2fs_mkdir()
465 handle_failed_inode(inode); in f2fs_mkdir()
469 static int f2fs_rmdir(struct inode *dir, struct dentry *dentry) in f2fs_rmdir()
471 struct inode *inode = d_inode(dentry); in f2fs_rmdir() local
472 if (f2fs_empty_dir(inode)) in f2fs_rmdir()
477 static int f2fs_mknod(struct inode *dir, struct dentry *dentry, in f2fs_mknod()
481 struct inode *inode; in f2fs_mknod() local
486 inode = f2fs_new_inode(dir, mode); in f2fs_mknod()
487 if (IS_ERR(inode)) in f2fs_mknod()
488 return PTR_ERR(inode); in f2fs_mknod()
490 init_special_inode(inode, inode->i_mode, rdev); in f2fs_mknod()
491 inode->i_op = &f2fs_special_inode_operations; in f2fs_mknod()
494 err = f2fs_add_link(dentry, inode); in f2fs_mknod()
499 alloc_nid_done(sbi, inode->i_ino); in f2fs_mknod()
501 d_instantiate(dentry, inode); in f2fs_mknod()
502 unlock_new_inode(inode); in f2fs_mknod()
508 handle_failed_inode(inode); in f2fs_mknod()
512 static int __f2fs_tmpfile(struct inode *dir, struct dentry *dentry, in __f2fs_tmpfile()
513 umode_t mode, struct inode **whiteout) in __f2fs_tmpfile()
516 struct inode *inode; in __f2fs_tmpfile() local
522 inode = f2fs_new_inode(dir, mode); in __f2fs_tmpfile()
523 if (IS_ERR(inode)) in __f2fs_tmpfile()
524 return PTR_ERR(inode); in __f2fs_tmpfile()
527 init_special_inode(inode, inode->i_mode, WHITEOUT_DEV); in __f2fs_tmpfile()
528 inode->i_op = &f2fs_special_inode_operations; in __f2fs_tmpfile()
530 inode->i_op = &f2fs_file_inode_operations; in __f2fs_tmpfile()
531 inode->i_fop = &f2fs_file_operations; in __f2fs_tmpfile()
532 inode->i_mapping->a_ops = &f2fs_dblock_aops; in __f2fs_tmpfile()
540 err = f2fs_do_tmpfile(inode, dir); in __f2fs_tmpfile()
548 add_orphan_inode(sbi, inode->i_ino); in __f2fs_tmpfile()
551 alloc_nid_done(sbi, inode->i_ino); in __f2fs_tmpfile()
554 inode_dec_link_count(inode); in __f2fs_tmpfile()
555 *whiteout = inode; in __f2fs_tmpfile()
557 d_tmpfile(dentry, inode); in __f2fs_tmpfile()
559 unlock_new_inode(inode); in __f2fs_tmpfile()
565 handle_failed_inode(inode); in __f2fs_tmpfile()
569 static int f2fs_tmpfile(struct inode *dir, struct dentry *dentry, umode_t mode) in f2fs_tmpfile()
580 static int f2fs_create_whiteout(struct inode *dir, struct inode **whiteout) in f2fs_create_whiteout()
585 static int f2fs_rename(struct inode *old_dir, struct dentry *old_dentry, in f2fs_rename()
586 struct inode *new_dir, struct dentry *new_dentry, in f2fs_rename()
590 struct inode *old_inode = d_inode(old_dentry); in f2fs_rename()
591 struct inode *new_inode = d_inode(new_dentry); in f2fs_rename()
592 struct inode *whiteout = NULL; in f2fs_rename()
745 static int f2fs_cross_rename(struct inode *old_dir, struct dentry *old_dentry, in f2fs_cross_rename()
746 struct inode *new_dir, struct dentry *new_dentry) in f2fs_cross_rename()
749 struct inode *old_inode = d_inode(old_dentry); in f2fs_cross_rename()
750 struct inode *new_inode = d_inode(new_dentry); in f2fs_cross_rename()
907 static int f2fs_rename2(struct inode *old_dir, struct dentry *old_dentry, in f2fs_rename2()
908 struct inode *new_dir, struct dentry *new_dentry, in f2fs_rename2()
932 struct inode *inode = d_inode(dentry); in f2fs_encrypted_follow_link() local
934 loff_t size = min_t(loff_t, i_size_read(inode), PAGE_SIZE - 1); in f2fs_encrypted_follow_link()
935 u32 max_size = inode->i_sb->s_blocksize; in f2fs_encrypted_follow_link()
938 res = f2fs_get_encryption_info(inode); in f2fs_encrypted_follow_link()
942 cpage = read_mapping_page(inode->i_mapping, 0, NULL); in f2fs_encrypted_follow_link()
970 res = f2fs_fname_crypto_alloc_buffer(inode, cstr.len, &pstr); in f2fs_encrypted_follow_link()
974 res = f2fs_fname_disk_to_usr(inode, NULL, &cstr, &pstr); in f2fs_encrypted_follow_link()