Lines Matching full:dir

245 	while (clu.dir != EXFAT_EOF_CLUSTER) {  in exfat_search_empty_slot()
261 clu.dir, clu.size, clu.flags); in exfat_search_empty_slot()
277 p_dir->dir, clu.dir); in exfat_search_empty_slot()
294 clu.dir++; in exfat_search_empty_slot()
296 clu.dir = EXFAT_EOF_CLUSTER; in exfat_search_empty_slot()
298 if (exfat_get_next_cluster(sb, &clu.dir)) in exfat_search_empty_slot()
316 * exFAT spec allows a dir to grow up to 8388608(256MB) in exfat_check_max_dentries()
374 if (exfat_zeroed_cluster(inode, clu.dir)) in exfat_find_empty_entry()
378 ei->start_clu = clu.dir; in exfat_find_empty_entry()
379 p_dir->dir = clu.dir; in exfat_find_empty_entry()
387 exfat_chain_cont_cluster(sb, p_dir->dir, p_dir->size); in exfat_find_empty_entry()
393 if (exfat_ent_set(sb, last_clu, clu.dir)) in exfat_find_empty_entry()
396 if (hint_femp.cur.dir == EXFAT_EOF_CLUSTER) in exfat_find_empty_entry()
397 exfat_chain_set(&hint_femp.cur, clu.dir, 0, clu.flags); in exfat_find_empty_entry()
475 const unsigned char *path, struct exfat_chain *dir, in exfat_resolve_path() argument
478 return __exfat_resolve_path(inode, path, dir, uni, 0); in exfat_resolve_path()
482 const unsigned char *path, struct exfat_chain *dir, in exfat_resolve_path_for_lookup() argument
485 return __exfat_resolve_path(inode, path, dir, uni, 1); in exfat_resolve_path_for_lookup()
490 return ((loff_t) info->dir.dir << 32) | (info->entry & 0xffffffff); in exfat_make_i_pos()
526 start_clu = clu.dir; in exfat_add_entry()
543 info->dir = *p_dir; in exfat_add_entry()
571 static int exfat_create(struct mnt_idmap *idmap, struct inode *dir, in exfat_create() argument
574 struct super_block *sb = dir->i_sb; in exfat_create()
583 err = exfat_add_entry(dir, dentry->d_name.name, &cdir, TYPE_FILE, in exfat_create()
588 inode_inc_iversion(dir); in exfat_create()
589 inode_set_mtime_to_ts(dir, inode_set_ctime_current(dir)); in exfat_create()
590 if (IS_DIRSYNC(dir)) in exfat_create()
591 exfat_sync_inode(dir); in exfat_create()
593 mark_inode_dirty(dir); in exfat_create()
614 static int exfat_find(struct inode *dir, struct qstr *qname, in exfat_find() argument
620 struct super_block *sb = dir->i_sb; in exfat_find()
622 struct exfat_inode_info *ei = EXFAT_I(dir); in exfat_find()
625 /* for optimized dir & entry to prevent long traverse of cluster chain */ in exfat_find()
632 ret = exfat_resolve_path_for_lookup(dir, qname->name, &cdir, &uni_name); in exfat_find()
637 if (ei->version != (inode_peek_iversion_raw(dir) & 0xffffffff)) { in exfat_find()
638 ei->hint_stat.clu = cdir.dir; in exfat_find()
640 ei->version = (inode_peek_iversion_raw(dir) & 0xffffffff); in exfat_find()
649 info->dir = cdir; in exfat_find()
654 cdir.dir = hint_opt.clu; in exfat_find()
697 i_size_read(dir), ei->dir.dir, ei->entry); in exfat_find()
718 static struct dentry *exfat_lookup(struct inode *dir, struct dentry *dentry, in exfat_lookup() argument
721 struct super_block *sb = dir->i_sb; in exfat_lookup()
730 err = exfat_find(dir, &dentry->d_name, &info); in exfat_lookup()
750 * FS is not corrupted (especially double linked dir). in exfat_lookup()
786 exfat_d_version_set(dentry, inode_query_iversion(dir)); in exfat_lookup()
795 static int exfat_unlink(struct inode *dir, struct dentry *dentry) in exfat_unlink() argument
799 struct super_block *sb = dir->i_sb; in exfat_unlink()
806 exfat_chain_dup(&cdir, &ei->dir); in exfat_unlink()
808 if (ei->dir.dir == DIR_DELETED) { in exfat_unlink()
830 if (exfat_remove_entries(dir, &cdir, entry, 0, num_entries)) { in exfat_unlink()
836 ei->dir.dir = DIR_DELETED; in exfat_unlink()
838 inode_inc_iversion(dir); in exfat_unlink()
839 simple_inode_init_ts(dir); in exfat_unlink()
840 exfat_truncate_inode_atime(dir); in exfat_unlink()
841 if (IS_DIRSYNC(dir)) in exfat_unlink()
842 exfat_sync_inode(dir); in exfat_unlink()
844 mark_inode_dirty(dir); in exfat_unlink()
850 exfat_d_version_set(dentry, inode_query_iversion(dir)); in exfat_unlink()
856 static int exfat_mkdir(struct mnt_idmap *idmap, struct inode *dir, in exfat_mkdir() argument
859 struct super_block *sb = dir->i_sb; in exfat_mkdir()
868 err = exfat_add_entry(dir, dentry->d_name.name, &cdir, TYPE_DIR, in exfat_mkdir()
873 inode_inc_iversion(dir); in exfat_mkdir()
874 inode_set_mtime_to_ts(dir, inode_set_ctime_current(dir)); in exfat_mkdir()
875 if (IS_DIRSYNC(dir)) in exfat_mkdir()
876 exfat_sync_inode(dir); in exfat_mkdir()
878 mark_inode_dirty(dir); in exfat_mkdir()
879 inc_nlink(dir); in exfat_mkdir()
911 if (p_dir->dir == EXFAT_EOF_CLUSTER) in exfat_check_dir_empty()
916 while (clu.dir != EXFAT_EOF_CLUSTER) { in exfat_check_dir_empty()
934 clu.dir++; in exfat_check_dir_empty()
936 clu.dir = EXFAT_EOF_CLUSTER; in exfat_check_dir_empty()
938 if (exfat_get_next_cluster(sb, &(clu.dir))) in exfat_check_dir_empty()
946 static int exfat_rmdir(struct inode *dir, struct dentry *dentry) in exfat_rmdir() argument
959 exfat_chain_dup(&cdir, &ei->dir); in exfat_rmdir()
962 if (ei->dir.dir == DIR_DELETED) { in exfat_rmdir()
995 err = exfat_remove_entries(dir, &cdir, entry, 0, num_entries); in exfat_rmdir()
1000 ei->dir.dir = DIR_DELETED; in exfat_rmdir()
1002 inode_inc_iversion(dir); in exfat_rmdir()
1003 simple_inode_init_ts(dir); in exfat_rmdir()
1004 exfat_truncate_inode_atime(dir); in exfat_rmdir()
1005 if (IS_DIRSYNC(dir)) in exfat_rmdir()
1006 exfat_sync_inode(dir); in exfat_rmdir()
1008 mark_inode_dirty(dir); in exfat_rmdir()
1009 drop_nlink(dir); in exfat_rmdir()
1015 exfat_d_version_set(dentry, inode_query_iversion(dir)); in exfat_rmdir()
1086 ei->dir = *p_dir; in exfat_rename_file()
1167 exfat_chain_set(&ei->dir, p_newdir->dir, p_newdir->size, in exfat_move_file()
1199 if (ei->dir.dir == DIR_DELETED) { in __exfat_rename()
1209 /* check whether new dir is existing directory and empty */ in __exfat_rename()
1214 if (new_ei->dir.dir == DIR_DELETED) { in __exfat_rename()
1219 p_dir = &(new_ei->dir); in __exfat_rename()
1232 new_clu.dir = new_ei->start_clu; in __exfat_rename()
1252 if (olddir.dir == newdir.dir) in __exfat_rename()
1280 /* Free the clusters if new_inode is a dir(as if exfat_rmdir) */ in __exfat_rename()
1305 new_ei->dir.dir = DIR_DELETED; in __exfat_rename()
1346 i_pos = ((loff_t)EXFAT_I(old_inode)->dir.dir << 32) | in exfat_rename()