Lines Matching refs:dir

139 static void set_compress_new_inode(struct f2fs_sb_info *sbi, struct inode *dir,  in set_compress_new_inode()  argument
185 if (F2FS_I(dir)->i_flags & F2FS_NOCOMP_FL) { in set_compress_new_inode()
188 } else if (F2FS_I(dir)->i_flags & F2FS_COMPR_FL) { in set_compress_new_inode()
220 struct inode *dir, umode_t mode, in f2fs_new_inode() argument
223 struct f2fs_sb_info *sbi = F2FS_I_SB(dir); in f2fs_new_inode()
231 inode = new_inode(dir->i_sb); in f2fs_new_inode()
242 inode_init_owner(idmap, inode, dir, mode); in f2fs_new_inode()
260 (F2FS_I(dir)->i_flags & F2FS_PROJINHERIT_FL)) in f2fs_new_inode()
261 F2FS_I(inode)->i_projid = F2FS_I(dir)->i_projid; in f2fs_new_inode()
266 err = fscrypt_prepare_new_inode(dir, inode, &encrypt); in f2fs_new_inode()
302 f2fs_mask_flags(mode, F2FS_I(dir)->i_flags & F2FS_FL_INHERITED); in f2fs_new_inode()
311 set_compress_new_inode(sbi, dir, inode, name); in f2fs_new_inode()
350 static int f2fs_create(struct mnt_idmap *idmap, struct inode *dir, in f2fs_create() argument
353 struct f2fs_sb_info *sbi = F2FS_I_SB(dir); in f2fs_create()
363 err = f2fs_dquot_initialize(dir); in f2fs_create()
367 inode = f2fs_new_inode(idmap, dir, mode, dentry->d_name.name); in f2fs_create()
386 if (IS_DIRSYNC(dir)) in f2fs_create()
396 static int f2fs_link(struct dentry *old_dentry, struct inode *dir, in f2fs_link() argument
400 struct f2fs_sb_info *sbi = F2FS_I_SB(dir); in f2fs_link()
408 err = fscrypt_prepare_link(old_dentry, dir, dentry); in f2fs_link()
412 if (is_inode_flag_set(dir, FI_PROJ_INHERIT) && in f2fs_link()
413 (!projid_eq(F2FS_I(dir)->i_projid, in f2fs_link()
417 err = f2fs_dquot_initialize(dir); in f2fs_link()
435 if (IS_DIRSYNC(dir)) in f2fs_link()
458 static int __recover_dot_dentries(struct inode *dir, nid_t pino) in __recover_dot_dentries() argument
460 struct f2fs_sb_info *sbi = F2FS_I_SB(dir); in __recover_dot_dentries()
469 dir->i_ino, pino); in __recover_dot_dentries()
473 if (!S_ISDIR(dir->i_mode)) { in __recover_dot_dentries()
475 dir->i_ino, dir->i_mode, pino); in __recover_dot_dentries()
480 err = f2fs_dquot_initialize(dir); in __recover_dot_dentries()
488 de = f2fs_find_entry(dir, &dot, &page); in __recover_dot_dentries()
495 err = f2fs_do_add_link(dir, &dot, NULL, dir->i_ino, S_IFDIR); in __recover_dot_dentries()
500 de = f2fs_find_entry(dir, &dotdot, &page); in __recover_dot_dentries()
506 err = f2fs_do_add_link(dir, &dotdot, NULL, pino, S_IFDIR); in __recover_dot_dentries()
509 clear_inode_flag(dir, FI_INLINE_DOTS); in __recover_dot_dentries()
515 static struct dentry *f2fs_lookup(struct inode *dir, struct dentry *dentry, in f2fs_lookup() argument
524 unsigned int root_ino = F2FS_ROOT_INO(F2FS_I_SB(dir)); in f2fs_lookup()
527 trace_f2fs_lookup_start(dir, dentry, flags); in f2fs_lookup()
534 err = f2fs_prepare_lookup(dir, dentry, &fname); in f2fs_lookup()
540 de = __f2fs_find_entry(dir, &fname, &page); in f2fs_lookup()
555 inode = f2fs_iget(dir->i_sb, ino); in f2fs_lookup()
561 if ((dir->i_ino == root_ino) && f2fs_has_inline_dots(dir)) { in f2fs_lookup()
562 err = __recover_dot_dentries(dir, root_ino); in f2fs_lookup()
568 err = __recover_dot_dentries(inode, dir->i_ino); in f2fs_lookup()
572 if (IS_ENCRYPTED(dir) && in f2fs_lookup()
574 !fscrypt_has_permitted_context(dir, inode)) { in f2fs_lookup()
576 dir->i_ino, inode->i_ino); in f2fs_lookup()
582 if (!inode && IS_CASEFOLDED(dir)) { in f2fs_lookup()
588 trace_f2fs_lookup_end(dir, dentry, ino, err); in f2fs_lookup()
593 trace_f2fs_lookup_end(dir, !IS_ERR_OR_NULL(new) ? new : dentry, in f2fs_lookup()
599 trace_f2fs_lookup_end(dir, dentry, ino, err); in f2fs_lookup()
603 static int f2fs_unlink(struct inode *dir, struct dentry *dentry) in f2fs_unlink() argument
605 struct f2fs_sb_info *sbi = F2FS_I_SB(dir); in f2fs_unlink()
611 trace_f2fs_unlink_enter(dir, dentry); in f2fs_unlink()
618 err = f2fs_dquot_initialize(dir); in f2fs_unlink()
625 de = f2fs_find_entry(dir, &dentry->d_name, &page); in f2fs_unlink()
641 f2fs_delete_entry(de, page, dir, inode); in f2fs_unlink()
651 if (IS_CASEFOLDED(dir)) in f2fs_unlink()
654 if (IS_DIRSYNC(dir)) in f2fs_unlink()
676 static int f2fs_symlink(struct mnt_idmap *idmap, struct inode *dir, in f2fs_symlink() argument
679 struct f2fs_sb_info *sbi = F2FS_I_SB(dir); in f2fs_symlink()
690 err = fscrypt_prepare_symlink(dir, symname, len, dir->i_sb->s_blocksize, in f2fs_symlink()
695 err = f2fs_dquot_initialize(dir); in f2fs_symlink()
699 inode = f2fs_new_inode(idmap, dir, S_IFLNK | S_IRWXUGO, NULL); in f2fs_symlink()
739 if (IS_DIRSYNC(dir)) in f2fs_symlink()
742 f2fs_unlink(dir, dentry); in f2fs_symlink()
756 static int f2fs_mkdir(struct mnt_idmap *idmap, struct inode *dir, in f2fs_mkdir() argument
759 struct f2fs_sb_info *sbi = F2FS_I_SB(dir); in f2fs_mkdir()
766 err = f2fs_dquot_initialize(dir); in f2fs_mkdir()
770 inode = f2fs_new_inode(idmap, dir, S_IFDIR | mode, NULL); in f2fs_mkdir()
790 if (IS_DIRSYNC(dir)) in f2fs_mkdir()
802 static int f2fs_rmdir(struct inode *dir, struct dentry *dentry) in f2fs_rmdir() argument
807 return f2fs_unlink(dir, dentry); in f2fs_rmdir()
811 static int f2fs_mknod(struct mnt_idmap *idmap, struct inode *dir, in f2fs_mknod() argument
814 struct f2fs_sb_info *sbi = F2FS_I_SB(dir); in f2fs_mknod()
823 err = f2fs_dquot_initialize(dir); in f2fs_mknod()
827 inode = f2fs_new_inode(idmap, dir, mode, NULL); in f2fs_mknod()
844 if (IS_DIRSYNC(dir)) in f2fs_mknod()
854 static int __f2fs_tmpfile(struct mnt_idmap *idmap, struct inode *dir, in __f2fs_tmpfile() argument
858 struct f2fs_sb_info *sbi = F2FS_I_SB(dir); in __f2fs_tmpfile()
862 err = f2fs_dquot_initialize(dir); in __f2fs_tmpfile()
866 inode = f2fs_new_inode(idmap, dir, mode, NULL); in __f2fs_tmpfile()
884 err = f2fs_do_tmpfile(inode, dir, fname); in __f2fs_tmpfile()
924 static int f2fs_tmpfile(struct mnt_idmap *idmap, struct inode *dir, in f2fs_tmpfile() argument
927 struct f2fs_sb_info *sbi = F2FS_I_SB(dir); in f2fs_tmpfile()
935 err = __f2fs_tmpfile(idmap, dir, file, mode, false, NULL, NULL); in f2fs_tmpfile()
941 struct inode *dir, struct inode **whiteout, in f2fs_create_whiteout() argument
944 return __f2fs_tmpfile(idmap, dir, NULL, S_IFCHR | WHITEOUT_MODE, in f2fs_create_whiteout()
948 int f2fs_get_tmpfile(struct mnt_idmap *idmap, struct inode *dir, in f2fs_get_tmpfile() argument
951 return __f2fs_tmpfile(idmap, dir, NULL, S_IFREG, in f2fs_get_tmpfile()