Lines Matching refs:inode

18 static unsigned long dir_blocks(struct inode *inode)  in dir_blocks()  argument
20 return ((unsigned long long) (i_size_read(inode) + PAGE_CACHE_SIZE - 1)) in dir_blocks()
158 static struct f2fs_dir_entry *find_in_level(struct inode *dir, in find_in_level()
216 struct f2fs_dir_entry *f2fs_find_entry(struct inode *dir, in f2fs_find_entry()
252 struct f2fs_dir_entry *f2fs_parent_dir(struct inode *dir, struct page **p) in f2fs_parent_dir()
272 ino_t f2fs_inode_by_name(struct inode *dir, struct qstr *qstr) in f2fs_inode_by_name()
288 void f2fs_set_link(struct inode *dir, struct f2fs_dir_entry *de, in f2fs_set_link()
289 struct page *page, struct inode *inode) in f2fs_set_link() argument
294 de->ino = cpu_to_le32(inode->i_ino); in f2fs_set_link()
295 set_de_type(de, inode->i_mode); in f2fs_set_link()
317 int update_dent_inode(struct inode *inode, struct inode *to, in update_dent_inode() argument
325 page = get_node_page(F2FS_I_SB(inode), inode->i_ino); in update_dent_inode()
335 void do_make_empty_dir(struct inode *inode, struct inode *parent, in do_make_empty_dir() argument
343 de->ino = cpu_to_le32(inode->i_ino); in do_make_empty_dir()
345 set_de_type(de, inode->i_mode); in do_make_empty_dir()
358 static int make_empty_dir(struct inode *inode, in make_empty_dir() argument
359 struct inode *parent, struct page *page) in make_empty_dir()
365 if (f2fs_has_inline_dentry(inode)) in make_empty_dir()
366 return make_empty_inline_dir(inode, parent, page); in make_empty_dir()
368 dentry_page = get_new_data_page(inode, page, 0, true); in make_empty_dir()
375 do_make_empty_dir(inode, parent, &d); in make_empty_dir()
384 struct page *init_inode_metadata(struct inode *inode, struct inode *dir, in init_inode_metadata() argument
390 if (is_inode_flag_set(F2FS_I(inode), FI_NEW_INODE)) { in init_inode_metadata()
391 page = new_inode_page(inode); in init_inode_metadata()
395 if (S_ISDIR(inode->i_mode)) { in init_inode_metadata()
396 err = make_empty_dir(inode, dir, page); in init_inode_metadata()
401 err = f2fs_init_acl(inode, dir, page, dpage); in init_inode_metadata()
405 err = f2fs_init_security(inode, dir, name, page); in init_inode_metadata()
409 if (f2fs_encrypted_inode(dir) && f2fs_may_encrypt(inode)) { in init_inode_metadata()
410 err = f2fs_inherit_context(dir, inode, page); in init_inode_metadata()
415 page = get_node_page(F2FS_I_SB(dir), inode->i_ino); in init_inode_metadata()
419 set_cold_node(inode, page); in init_inode_metadata()
429 if (is_inode_flag_set(F2FS_I(inode), FI_INC_LINK)) { in init_inode_metadata()
430 file_lost_pino(inode); in init_inode_metadata()
435 if (inode->i_nlink == 0) in init_inode_metadata()
436 remove_orphan_inode(F2FS_I_SB(dir), inode->i_ino); in init_inode_metadata()
437 inc_nlink(inode); in init_inode_metadata()
445 truncate_inode_pages(&inode->i_data, 0); in init_inode_metadata()
446 truncate_blocks(inode, 0, false); in init_inode_metadata()
447 remove_dirty_dir_inode(inode); in init_inode_metadata()
448 remove_inode_page(inode); in init_inode_metadata()
452 void update_parent_metadata(struct inode *dir, struct inode *inode, in update_parent_metadata() argument
455 if (inode && is_inode_flag_set(F2FS_I(inode), FI_NEW_INODE)) { in update_parent_metadata()
456 if (S_ISDIR(inode->i_mode)) { in update_parent_metadata()
460 clear_inode_flag(F2FS_I(inode), FI_NEW_INODE); in update_parent_metadata()
470 if (inode && is_inode_flag_set(F2FS_I(inode), FI_INC_LINK)) in update_parent_metadata()
471 clear_inode_flag(F2FS_I(inode), FI_INC_LINK); in update_parent_metadata()
516 int __f2fs_add_link(struct inode *dir, const struct qstr *name, in __f2fs_add_link()
517 struct inode *inode, nid_t ino, umode_t mode) in __f2fs_add_link() argument
541 err = f2fs_add_inline_entry(dir, &new_name, inode, ino, mode); in __f2fs_add_link()
597 if (inode) { in __f2fs_add_link()
598 down_write(&F2FS_I(inode)->i_sem); in __f2fs_add_link()
599 page = init_inode_metadata(inode, dir, &new_name, NULL); in __f2fs_add_link()
605 file_set_enc_name(inode); in __f2fs_add_link()
613 if (inode) { in __f2fs_add_link()
615 F2FS_I(inode)->i_pino = dir->i_ino; in __f2fs_add_link()
616 update_inode(inode, page); in __f2fs_add_link()
620 update_parent_metadata(dir, inode, current_depth); in __f2fs_add_link()
622 if (inode) in __f2fs_add_link()
623 up_write(&F2FS_I(inode)->i_sem); in __f2fs_add_link()
636 int f2fs_do_tmpfile(struct inode *inode, struct inode *dir) in f2fs_do_tmpfile() argument
641 down_write(&F2FS_I(inode)->i_sem); in f2fs_do_tmpfile()
642 page = init_inode_metadata(inode, dir, NULL, NULL); in f2fs_do_tmpfile()
648 update_inode(inode, page); in f2fs_do_tmpfile()
651 clear_inode_flag(F2FS_I(inode), FI_NEW_INODE); in f2fs_do_tmpfile()
653 up_write(&F2FS_I(inode)->i_sem); in f2fs_do_tmpfile()
657 void f2fs_drop_nlink(struct inode *dir, struct inode *inode, struct page *page) in f2fs_drop_nlink() argument
661 down_write(&F2FS_I(inode)->i_sem); in f2fs_drop_nlink()
663 if (S_ISDIR(inode->i_mode)) { in f2fs_drop_nlink()
670 inode->i_ctime = CURRENT_TIME; in f2fs_drop_nlink()
672 drop_nlink(inode); in f2fs_drop_nlink()
673 if (S_ISDIR(inode->i_mode)) { in f2fs_drop_nlink()
674 drop_nlink(inode); in f2fs_drop_nlink()
675 i_size_write(inode, 0); in f2fs_drop_nlink()
677 up_write(&F2FS_I(inode)->i_sem); in f2fs_drop_nlink()
678 update_inode_page(inode); in f2fs_drop_nlink()
680 if (inode->i_nlink == 0) in f2fs_drop_nlink()
681 add_orphan_inode(sbi, inode->i_ino); in f2fs_drop_nlink()
691 struct inode *dir, struct inode *inode) in f2fs_delete_entry() argument
699 return f2fs_delete_inline_entry(dentry, page, dir, inode); in f2fs_delete_entry()
718 if (inode) in f2fs_delete_entry()
719 f2fs_drop_nlink(dir, inode, NULL); in f2fs_delete_entry()
731 bool f2fs_empty_dir(struct inode *dir) in f2fs_empty_dir()
793 if (f2fs_encrypted_inode(d->inode)) { in f2fs_fill_dentries()
803 ret = f2fs_fname_disk_to_usr(d->inode, &de->hash_code, in f2fs_fill_dentries()
825 struct inode *inode = file_inode(file); in f2fs_readdir() local
826 unsigned long npages = dir_blocks(inode); in f2fs_readdir()
835 if (f2fs_encrypted_inode(inode)) { in f2fs_readdir()
836 err = f2fs_get_encryption_info(inode); in f2fs_readdir()
840 err = f2fs_fname_crypto_alloc_buffer(inode, F2FS_NAME_LEN, in f2fs_readdir()
846 if (f2fs_has_inline_dentry(inode)) { in f2fs_readdir()
853 page_cache_sync_readahead(inode->i_mapping, ra, file, n, in f2fs_readdir()
857 dentry_page = get_lock_data_page(inode, n, false); in f2fs_readdir()
863 make_dentry_ptr(inode, &d, (void *)dentry_blk, 1); in f2fs_readdir()