Lines Matching refs:dir
25 static struct inode *f2fs_new_inode(struct inode *dir, umode_t mode) in f2fs_new_inode() argument
27 struct f2fs_sb_info *sbi = F2FS_I_SB(dir); in f2fs_new_inode()
34 inode = new_inode(dir->i_sb); in f2fs_new_inode()
48 inode_init_owner(inode, dir, mode); in f2fs_new_inode()
66 (F2FS_I(dir)->i_flags & F2FS_PROJINHERIT_FL)) in f2fs_new_inode()
67 F2FS_I(inode)->i_projid = F2FS_I(dir)->i_projid; in f2fs_new_inode()
78 if (f2fs_may_encrypt(dir, inode)) in f2fs_new_inode()
112 f2fs_mask_flags(mode, F2FS_I(dir)->i_flags & F2FS_FL_INHERITED); in f2fs_new_inode()
122 if ((F2FS_I(dir)->i_flags & F2FS_COMPR_FL) && in f2fs_new_inode()
312 static int f2fs_create(struct inode *dir, struct dentry *dentry, umode_t mode, in f2fs_create() argument
315 struct f2fs_sb_info *sbi = F2FS_I_SB(dir); in f2fs_create()
325 err = dquot_initialize(dir); in f2fs_create()
329 inode = f2fs_new_inode(dir, mode); in f2fs_create()
353 if (IS_DIRSYNC(dir)) in f2fs_create()
363 static int f2fs_link(struct dentry *old_dentry, struct inode *dir, in f2fs_link() argument
367 struct f2fs_sb_info *sbi = F2FS_I_SB(dir); in f2fs_link()
375 err = fscrypt_prepare_link(old_dentry, dir, dentry); in f2fs_link()
379 if (is_inode_flag_set(dir, FI_PROJ_INHERIT) && in f2fs_link()
380 (!projid_eq(F2FS_I(dir)->i_projid, in f2fs_link()
384 err = dquot_initialize(dir); in f2fs_link()
402 if (IS_DIRSYNC(dir)) in f2fs_link()
425 static int __recover_dot_dentries(struct inode *dir, nid_t pino) in __recover_dot_dentries() argument
427 struct f2fs_sb_info *sbi = F2FS_I_SB(dir); in __recover_dot_dentries()
436 dir->i_ino, pino); in __recover_dot_dentries()
440 err = dquot_initialize(dir); in __recover_dot_dentries()
448 de = f2fs_find_entry(dir, &dot, &page); in __recover_dot_dentries()
455 err = f2fs_do_add_link(dir, &dot, NULL, dir->i_ino, S_IFDIR); in __recover_dot_dentries()
460 de = f2fs_find_entry(dir, &dotdot, &page); in __recover_dot_dentries()
466 err = f2fs_do_add_link(dir, &dotdot, NULL, pino, S_IFDIR); in __recover_dot_dentries()
469 clear_inode_flag(dir, FI_INLINE_DOTS); in __recover_dot_dentries()
475 static struct dentry *f2fs_lookup(struct inode *dir, struct dentry *dentry, in f2fs_lookup() argument
484 unsigned int root_ino = F2FS_ROOT_INO(F2FS_I_SB(dir)); in f2fs_lookup()
487 trace_f2fs_lookup_start(dir, dentry, flags); in f2fs_lookup()
494 err = f2fs_prepare_lookup(dir, dentry, &fname); in f2fs_lookup()
495 generic_set_encrypted_ci_d_ops(dir, dentry); in f2fs_lookup()
500 de = __f2fs_find_entry(dir, &fname, &page); in f2fs_lookup()
515 inode = f2fs_iget(dir->i_sb, ino); in f2fs_lookup()
521 if ((dir->i_ino == root_ino) && f2fs_has_inline_dots(dir)) { in f2fs_lookup()
522 err = __recover_dot_dentries(dir, root_ino); in f2fs_lookup()
528 err = __recover_dot_dentries(inode, dir->i_ino); in f2fs_lookup()
532 if (IS_ENCRYPTED(dir) && in f2fs_lookup()
534 !fscrypt_has_permitted_context(dir, inode)) { in f2fs_lookup()
536 dir->i_ino, inode->i_ino); in f2fs_lookup()
542 if (!inode && IS_CASEFOLDED(dir)) { in f2fs_lookup()
548 trace_f2fs_lookup_end(dir, dentry, ino, err); in f2fs_lookup()
554 trace_f2fs_lookup_end(dir, dentry, ino, !new ? -ENOENT : err); in f2fs_lookup()
559 trace_f2fs_lookup_end(dir, dentry, ino, err); in f2fs_lookup()
563 static int f2fs_unlink(struct inode *dir, struct dentry *dentry) in f2fs_unlink() argument
565 struct f2fs_sb_info *sbi = F2FS_I_SB(dir); in f2fs_unlink()
571 trace_f2fs_unlink_enter(dir, dentry); in f2fs_unlink()
576 err = dquot_initialize(dir); in f2fs_unlink()
583 de = f2fs_find_entry(dir, &dentry->d_name, &page); in f2fs_unlink()
599 f2fs_delete_entry(de, page, dir, inode); in f2fs_unlink()
607 if (IS_CASEFOLDED(dir)) in f2fs_unlink()
612 if (IS_DIRSYNC(dir)) in f2fs_unlink()
633 static int f2fs_symlink(struct inode *dir, struct dentry *dentry, in f2fs_symlink() argument
636 struct f2fs_sb_info *sbi = F2FS_I_SB(dir); in f2fs_symlink()
647 err = fscrypt_prepare_symlink(dir, symname, len, dir->i_sb->s_blocksize, in f2fs_symlink()
652 err = dquot_initialize(dir); in f2fs_symlink()
656 inode = f2fs_new_inode(dir, S_IFLNK | S_IRWXUGO); in f2fs_symlink()
696 if (IS_DIRSYNC(dir)) in f2fs_symlink()
699 f2fs_unlink(dir, dentry); in f2fs_symlink()
713 static int f2fs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode) in f2fs_mkdir() argument
715 struct f2fs_sb_info *sbi = F2FS_I_SB(dir); in f2fs_mkdir()
722 err = dquot_initialize(dir); in f2fs_mkdir()
726 inode = f2fs_new_inode(dir, S_IFDIR | mode); in f2fs_mkdir()
746 if (IS_DIRSYNC(dir)) in f2fs_mkdir()
758 static int f2fs_rmdir(struct inode *dir, struct dentry *dentry) in f2fs_rmdir() argument
762 return f2fs_unlink(dir, dentry); in f2fs_rmdir()
766 static int f2fs_mknod(struct inode *dir, struct dentry *dentry, in f2fs_mknod() argument
769 struct f2fs_sb_info *sbi = F2FS_I_SB(dir); in f2fs_mknod()
778 err = dquot_initialize(dir); in f2fs_mknod()
782 inode = f2fs_new_inode(dir, mode); in f2fs_mknod()
799 if (IS_DIRSYNC(dir)) in f2fs_mknod()
809 static int __f2fs_tmpfile(struct inode *dir, struct dentry *dentry, in __f2fs_tmpfile() argument
812 struct f2fs_sb_info *sbi = F2FS_I_SB(dir); in __f2fs_tmpfile()
816 err = dquot_initialize(dir); in __f2fs_tmpfile()
820 inode = f2fs_new_inode(dir, mode); in __f2fs_tmpfile()
838 err = f2fs_do_tmpfile(inode, dir); in __f2fs_tmpfile()
874 static int f2fs_tmpfile(struct inode *dir, struct dentry *dentry, umode_t mode) in f2fs_tmpfile() argument
876 struct f2fs_sb_info *sbi = F2FS_I_SB(dir); in f2fs_tmpfile()
883 return __f2fs_tmpfile(dir, dentry, mode, NULL); in f2fs_tmpfile()
886 static int f2fs_create_whiteout(struct inode *dir, struct inode **whiteout) in f2fs_create_whiteout() argument
888 if (unlikely(f2fs_cp_error(F2FS_I_SB(dir)))) in f2fs_create_whiteout()
891 return __f2fs_tmpfile(dir, NULL, S_IFCHR | WHITEOUT_MODE, whiteout); in f2fs_create_whiteout()