Lines Matching defs:dir

241 	       clu.dir != EXFAT_EOF_CLUSTER) {
256 clu.dir++;
258 clu.dir = EXFAT_EOF_CLUSTER;
260 if (exfat_get_next_cluster(sb, &clu.dir))
270 if (dentry == total_entries || clu.dir == EXFAT_EOF_CLUSTER)
283 * exFAT spec allows a dir to grow up to 8388608(256MB)
342 if (exfat_zeroed_cluster(inode, clu.dir))
346 ei->start_clu = clu.dir;
347 p_dir->dir = clu.dir;
355 exfat_chain_cont_cluster(sb, p_dir->dir, p_dir->size);
361 if (exfat_ent_set(sb, last_clu, clu.dir))
364 if (hint_femp.cur.dir == EXFAT_EOF_CLUSTER)
365 exfat_chain_set(&hint_femp.cur, clu.dir, 0, clu.flags);
443 const unsigned char *path, struct exfat_chain *dir,
446 return __exfat_resolve_path(inode, path, dir, uni, 0);
450 const unsigned char *path, struct exfat_chain *dir,
453 return __exfat_resolve_path(inode, path, dir, uni, 1);
458 return ((loff_t) info->dir.dir << 32) | (info->entry & 0xffffffff);
498 start_clu = clu.dir;
513 info->dir = *p_dir;
541 static int exfat_create(struct mnt_idmap *idmap, struct inode *dir,
544 struct super_block *sb = dir->i_sb;
550 loff_t size = i_size_read(dir);
554 err = exfat_add_entry(dir, dentry->d_name.name, &cdir, TYPE_FILE,
559 inode_inc_iversion(dir);
560 inode_set_mtime_to_ts(dir, inode_set_ctime_current(dir));
561 if (IS_DIRSYNC(dir) && size != i_size_read(dir))
562 exfat_sync_inode(dir);
564 mark_inode_dirty(dir);
585 static int exfat_find(struct inode *dir, struct qstr *qname,
591 struct super_block *sb = dir->i_sb;
593 struct exfat_inode_info *ei = EXFAT_I(dir);
596 /* for optimized dir & entry to prevent long traverse of cluster chain */
603 ret = exfat_resolve_path_for_lookup(dir, qname->name, &cdir, &uni_name);
608 if (ei->version != (inode_peek_iversion_raw(dir) & 0xffffffff)) {
609 ei->hint_stat.clu = cdir.dir;
611 ei->version = (inode_peek_iversion_raw(dir) & 0xffffffff);
620 info->dir = cdir;
625 cdir.dir = hint_opt.clu;
668 i_size_read(dir), ei->dir.dir, ei->entry);
689 static struct dentry *exfat_lookup(struct inode *dir, struct dentry *dentry,
692 struct super_block *sb = dir->i_sb;
701 err = exfat_find(dir, &dentry->d_name, &info);
721 * FS is not corrupted (especially double linked dir).
757 exfat_d_version_set(dentry, inode_query_iversion(dir));
766 static int exfat_unlink(struct inode *dir, struct dentry *dentry)
769 struct super_block *sb = dir->i_sb;
776 exfat_chain_dup(&cdir, &ei->dir);
778 if (ei->dir.dir == DIR_DELETED) {
800 ei->dir.dir = DIR_DELETED;
802 inode_inc_iversion(dir);
803 simple_inode_init_ts(dir);
804 exfat_truncate_inode_atime(dir);
805 mark_inode_dirty(dir);
811 exfat_d_version_set(dentry, inode_query_iversion(dir));
817 static int exfat_mkdir(struct mnt_idmap *idmap, struct inode *dir,
820 struct super_block *sb = dir->i_sb;
826 loff_t size = i_size_read(dir);
830 err = exfat_add_entry(dir, dentry->d_name.name, &cdir, TYPE_DIR,
835 inode_inc_iversion(dir);
836 inode_set_mtime_to_ts(dir, inode_set_ctime_current(dir));
837 if (IS_DIRSYNC(dir) && size != i_size_read(dir))
838 exfat_sync_inode(dir);
840 mark_inode_dirty(dir);
841 inc_nlink(dir);
873 if (p_dir->dir == EXFAT_EOF_CLUSTER)
878 while (clu.dir != EXFAT_EOF_CLUSTER) {
896 clu.dir++;
898 clu.dir = EXFAT_EOF_CLUSTER;
900 if (exfat_get_next_cluster(sb, &(clu.dir)))
908 static int exfat_rmdir(struct inode *dir, struct dentry *dentry)
920 exfat_chain_dup(&cdir, &ei->dir);
923 if (ei->dir.dir == DIR_DELETED) {
950 err = exfat_put_dentry_set(&es, IS_DIRSYNC(dir));
954 ei->dir.dir = DIR_DELETED;
956 inode_inc_iversion(dir);
957 simple_inode_init_ts(dir);
958 exfat_truncate_inode_atime(dir);
959 if (IS_DIRSYNC(dir))
960 exfat_sync_inode(dir);
962 mark_inode_dirty(dir);
963 drop_nlink(dir);
969 exfat_d_version_set(dentry, inode_query_iversion(dir));
1025 ei->dir = *p_dir;
1083 exfat_chain_set(&ei->dir, p_newdir->dir, p_newdir->size,
1124 if (ei->dir.dir == DIR_DELETED) {
1134 /* check whether new dir is existing directory and empty */
1139 if (new_ei->dir.dir == DIR_DELETED) {
1144 p_dir = &(new_ei->dir);
1157 new_clu.dir = new_ei->start_clu;
1177 if (olddir.dir == newdir.dir)
1201 /* Free the clusters if new_inode is a dir(as if exfat_rmdir) */
1226 new_ei->dir.dir = DIR_DELETED;
1268 i_pos = ((loff_t)EXFAT_I(old_inode)->dir.dir << 32) |