Lines Matching refs:es

36 	struct exfat_entry_set_cache es;  in exfat_get_uniname_from_ext_entry()  local
39 err = exfat_get_dentry_set(&es, sb, p_dir, entry, ES_ALL_ENTRIES); in exfat_get_uniname_from_ext_entry()
49 for (i = ES_IDX_FIRST_FILENAME; i < es.num_entries; i++) { in exfat_get_uniname_from_ext_entry()
50 struct exfat_dentry *ep = exfat_get_dentry_cached(&es, i); in exfat_get_uniname_from_ext_entry()
63 exfat_put_dentry_set(&es, false); in exfat_get_uniname_from_ext_entry()
434 void exfat_init_dir_entry(struct exfat_entry_set_cache *es, in exfat_init_dir_entry() argument
438 struct super_block *sb = es->sb; in exfat_init_dir_entry()
442 ep = exfat_get_dentry_cached(es, ES_IDX_FILE); in exfat_init_dir_entry()
461 ep = exfat_get_dentry_cached(es, ES_IDX_STREAM); in exfat_init_dir_entry()
484 void exfat_init_ext_entry(struct exfat_entry_set_cache *es, int num_entries, in exfat_init_ext_entry() argument
491 ep = exfat_get_dentry_cached(es, ES_IDX_FILE); in exfat_init_ext_entry()
494 ep = exfat_get_dentry_cached(es, ES_IDX_STREAM); in exfat_init_ext_entry()
499 ep = exfat_get_dentry_cached(es, i); in exfat_init_ext_entry()
504 exfat_update_dir_chksum(es); in exfat_init_ext_entry()
507 void exfat_remove_entries(struct inode *inode, struct exfat_entry_set_cache *es, in exfat_remove_entries() argument
513 for (i = order; i < es->num_entries; i++) { in exfat_remove_entries()
514 ep = exfat_get_dentry_cached(es, i); in exfat_remove_entries()
522 if (order < es->num_entries) in exfat_remove_entries()
523 es->modified = true; in exfat_remove_entries()
526 void exfat_update_dir_chksum(struct exfat_entry_set_cache *es) in exfat_update_dir_chksum() argument
532 for (i = ES_IDX_FILE; i < es->num_entries; i++) { in exfat_update_dir_chksum()
533 ep = exfat_get_dentry_cached(es, i); in exfat_update_dir_chksum()
538 ep = exfat_get_dentry_cached(es, ES_IDX_FILE); in exfat_update_dir_chksum()
540 es->modified = true; in exfat_update_dir_chksum()
543 int exfat_put_dentry_set(struct exfat_entry_set_cache *es, int sync) in exfat_put_dentry_set() argument
547 if (es->modified) in exfat_put_dentry_set()
548 err = exfat_update_bhs(es->bh, es->num_bh, sync); in exfat_put_dentry_set()
550 for (i = 0; i < es->num_bh; i++) in exfat_put_dentry_set()
552 bforget(es->bh[i]); in exfat_put_dentry_set()
554 brelse(es->bh[i]); in exfat_put_dentry_set()
556 if (IS_DYNAMIC_ES(es)) in exfat_put_dentry_set()
557 kfree(es->bh); in exfat_put_dentry_set()
729 struct exfat_entry_set_cache *es, int num) in exfat_get_dentry_cached() argument
731 int off = es->start_off + num * DENTRY_SIZE; in exfat_get_dentry_cached()
732 struct buffer_head *bh = es->bh[EXFAT_B_TO_BLK(off, es->sb)]; in exfat_get_dentry_cached()
733 char *p = bh->b_data + EXFAT_BLK_OFFSET(off, es->sb); in exfat_get_dentry_cached()
757 static int __exfat_get_dentry_set(struct exfat_entry_set_cache *es, in __exfat_get_dentry_set() argument
776 memset(es, 0, sizeof(*es)); in __exfat_get_dentry_set()
777 es->sb = sb; in __exfat_get_dentry_set()
778 es->modified = false; in __exfat_get_dentry_set()
779 es->start_off = off; in __exfat_get_dentry_set()
780 es->bh = es->__bh; in __exfat_get_dentry_set()
785 es->bh[es->num_bh++] = bh; in __exfat_get_dentry_set()
790 ep = exfat_get_dentry_cached(es, ES_IDX_FILE); in __exfat_get_dentry_set()
799 es->num_entries = num_entries; in __exfat_get_dentry_set()
802 if (num_bh > ARRAY_SIZE(es->__bh)) { in __exfat_get_dentry_set()
803 es->bh = kmalloc_array(num_bh, sizeof(*es->bh), GFP_NOFS); in __exfat_get_dentry_set()
804 if (!es->bh) { in __exfat_get_dentry_set()
808 es->bh[0] = bh; in __exfat_get_dentry_set()
828 es->bh[es->num_bh++] = bh; in __exfat_get_dentry_set()
834 exfat_put_dentry_set(es, false); in __exfat_get_dentry_set()
838 int exfat_get_dentry_set(struct exfat_entry_set_cache *es, in exfat_get_dentry_set() argument
846 ret = __exfat_get_dentry_set(es, sb, p_dir, entry, num_entries); in exfat_get_dentry_set()
851 for (i = ES_IDX_STREAM; i < es->num_entries; i++) { in exfat_get_dentry_set()
852 ep = exfat_get_dentry_cached(es, i); in exfat_get_dentry_set()
859 exfat_put_dentry_set(es, false); in exfat_get_dentry_set()
863 static int exfat_validate_empty_dentry_set(struct exfat_entry_set_cache *es) in exfat_validate_empty_dentry_set() argument
876 for (i = 0; i < es->num_entries; i++) { in exfat_validate_empty_dentry_set()
877 ep = exfat_get_dentry_cached(es, i); in exfat_validate_empty_dentry_set()
891 off = es->start_off + (i << DENTRY_SIZE_BITS); in exfat_validate_empty_dentry_set()
892 bh = es->bh[EXFAT_B_TO_BLK(off, es->sb)]; in exfat_validate_empty_dentry_set()
894 exfat_fs_error(es->sb, in exfat_validate_empty_dentry_set()
901 es->num_entries = EXFAT_B_TO_DEN(EXFAT_BLK_TO_B(es->num_bh, es->sb) - es->start_off); in exfat_validate_empty_dentry_set()
902 for (; i < es->num_entries; i++) { in exfat_validate_empty_dentry_set()
903 ep = exfat_get_dentry_cached(es, i); in exfat_validate_empty_dentry_set()
925 int exfat_get_empty_dentry_set(struct exfat_entry_set_cache *es, in exfat_get_empty_dentry_set() argument
931 ret = __exfat_get_dentry_set(es, sb, p_dir, entry, num_entries); in exfat_get_empty_dentry_set()
935 ret = exfat_validate_empty_dentry_set(es); in exfat_get_empty_dentry_set()
937 exfat_put_dentry_set(es, false); in exfat_get_empty_dentry_set()
1254 struct exfat_entry_set_cache *es) in exfat_get_volume_label_dentry() argument
1294 memset(es, 0, sizeof(*es)); in exfat_get_volume_label_dentry()
1295 es->sb = sb; in exfat_get_volume_label_dentry()
1296 es->bh = es->__bh; in exfat_get_volume_label_dentry()
1297 es->bh[0] = bh; in exfat_get_volume_label_dentry()
1298 es->num_bh = 1; in exfat_get_volume_label_dentry()
1299 es->start_off = EXFAT_DEN_TO_B(i) % sb->s_blocksize; in exfat_get_volume_label_dentry()
1324 struct exfat_entry_set_cache es; in exfat_read_volume_label() local
1330 ret = exfat_get_volume_label_dentry(sb, &es); in exfat_read_volume_label()
1342 ep = exfat_get_dentry_cached(&es, 0); in exfat_read_volume_label()
1346 exfat_put_dentry_set(&es, false); in exfat_read_volume_label()
1353 exfat_put_dentry_set(&es, false); in exfat_read_volume_label()
1365 struct exfat_entry_set_cache es; in exfat_write_volume_label() local
1374 ret = exfat_get_volume_label_dentry(sb, &es); in exfat_write_volume_label()
1382 ret = exfat_find_empty_entry(root_inode, &clu, 1, &es); in exfat_write_volume_label()
1388 ep = exfat_get_dentry_cached(&es, 0); in exfat_write_volume_label()
1392 exfat_put_dentry_set(&es, 0); in exfat_write_volume_label()
1404 es.modified = true; in exfat_write_volume_label()
1406 ret = exfat_put_dentry_set(&es, IS_DIRSYNC(root_inode)); in exfat_write_volume_label()