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()
33 inode = new_inode(dir->i_sb); in f2fs_new_inode()
45 inode_init_owner(inode, dir, mode); in f2fs_new_inode()
60 if (f2fs_encrypted_inode(dir) && f2fs_may_encrypt(inode)) in f2fs_new_inode()
123 static int f2fs_create(struct inode *dir, struct dentry *dentry, umode_t mode, in f2fs_create() argument
126 struct f2fs_sb_info *sbi = F2FS_I_SB(dir); in f2fs_create()
133 inode = f2fs_new_inode(dir, mode); in f2fs_create()
156 if (IS_DIRSYNC(dir)) in f2fs_create()
164 static int f2fs_link(struct dentry *old_dentry, struct inode *dir, in f2fs_link() argument
168 struct f2fs_sb_info *sbi = F2FS_I_SB(dir); in f2fs_link()
171 if (f2fs_encrypted_inode(dir) && in f2fs_link()
172 !f2fs_is_child_context_consistent_with_parent(dir, inode)) in f2fs_link()
189 if (IS_DIRSYNC(dir)) in f2fs_link()
208 static int __recover_dot_dentries(struct inode *dir, nid_t pino) in __recover_dot_dentries() argument
210 struct f2fs_sb_info *sbi = F2FS_I_SB(dir); in __recover_dot_dentries()
219 de = f2fs_find_entry(dir, &dot, &page); in __recover_dot_dentries()
221 f2fs_dentry_kunmap(dir, page); in __recover_dot_dentries()
224 err = __f2fs_add_link(dir, &dot, NULL, dir->i_ino, S_IFDIR); in __recover_dot_dentries()
229 de = f2fs_find_entry(dir, &dotdot, &page); in __recover_dot_dentries()
231 f2fs_dentry_kunmap(dir, page); in __recover_dot_dentries()
234 err = __f2fs_add_link(dir, &dotdot, NULL, pino, S_IFDIR); in __recover_dot_dentries()
238 clear_inode_flag(F2FS_I(dir), FI_INLINE_DOTS); in __recover_dot_dentries()
239 mark_inode_dirty(dir); in __recover_dot_dentries()
246 static struct dentry *f2fs_lookup(struct inode *dir, struct dentry *dentry, in f2fs_lookup() argument
258 de = f2fs_find_entry(dir, &dentry->d_name, &page); in f2fs_lookup()
263 f2fs_dentry_kunmap(dir, page); in f2fs_lookup()
266 inode = f2fs_iget(dir->i_sb, ino); in f2fs_lookup()
271 err = __recover_dot_dentries(inode, dir->i_ino); in f2fs_lookup()
282 static int f2fs_unlink(struct inode *dir, struct dentry *dentry) in f2fs_unlink() argument
284 struct f2fs_sb_info *sbi = F2FS_I_SB(dir); in f2fs_unlink()
290 trace_f2fs_unlink_enter(dir, dentry); in f2fs_unlink()
293 de = f2fs_find_entry(dir, &dentry->d_name, &page); in f2fs_unlink()
301 f2fs_dentry_kunmap(dir, page); in f2fs_unlink()
305 f2fs_delete_entry(de, page, dir, inode); in f2fs_unlink()
311 if (IS_DIRSYNC(dir)) in f2fs_unlink()
329 static int f2fs_symlink(struct inode *dir, struct dentry *dentry, in f2fs_symlink() argument
332 struct f2fs_sb_info *sbi = F2FS_I_SB(dir); in f2fs_symlink()
341 if (len > dir->i_sb->s_blocksize) in f2fs_symlink()
346 inode = f2fs_new_inode(dir, S_IFLNK | S_IRWXUGO); in f2fs_symlink()
363 if (f2fs_encrypted_inode(dir)) { in f2fs_symlink()
380 if (p_len > dir->i_sb->s_blocksize) { in f2fs_symlink()
416 if (IS_DIRSYNC(dir)) in f2fs_symlink()
419 f2fs_unlink(dir, dentry); in f2fs_symlink()
430 static int f2fs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode) in f2fs_mkdir() argument
432 struct f2fs_sb_info *sbi = F2FS_I_SB(dir); in f2fs_mkdir()
438 inode = f2fs_new_inode(dir, S_IFDIR | mode); in f2fs_mkdir()
459 if (IS_DIRSYNC(dir)) in f2fs_mkdir()
469 static int f2fs_rmdir(struct inode *dir, struct dentry *dentry) in f2fs_rmdir() argument
473 return f2fs_unlink(dir, dentry); in f2fs_rmdir()
477 static int f2fs_mknod(struct inode *dir, struct dentry *dentry, in f2fs_mknod() argument
480 struct f2fs_sb_info *sbi = F2FS_I_SB(dir); in f2fs_mknod()
486 inode = f2fs_new_inode(dir, mode); in f2fs_mknod()
504 if (IS_DIRSYNC(dir)) in f2fs_mknod()
512 static int __f2fs_tmpfile(struct inode *dir, struct dentry *dentry, in __f2fs_tmpfile() argument
515 struct f2fs_sb_info *sbi = F2FS_I_SB(dir); in __f2fs_tmpfile()
522 inode = f2fs_new_inode(dir, mode); in __f2fs_tmpfile()
540 err = f2fs_do_tmpfile(inode, dir); in __f2fs_tmpfile()
569 static int f2fs_tmpfile(struct inode *dir, struct dentry *dentry, umode_t mode) in f2fs_tmpfile() argument
571 if (f2fs_encrypted_inode(dir)) { in f2fs_tmpfile()
572 int err = f2fs_get_encryption_info(dir); in f2fs_tmpfile()
577 return __f2fs_tmpfile(dir, dentry, mode, NULL); in f2fs_tmpfile()
580 static int f2fs_create_whiteout(struct inode *dir, struct inode **whiteout) in f2fs_create_whiteout() argument
582 return __f2fs_tmpfile(dir, NULL, S_IFCHR | WHITEOUT_MODE, whiteout); in f2fs_create_whiteout()