fatent 230 fs/fat/cache.c struct fat_entry fatent; fatent 255 fs/fat/cache.c fatent_init(&fatent); fatent 266 fs/fat/cache.c nr = fat_ent_read(inode, &fatent, *dclus); fatent 287 fs/fat/cache.c fatent_brelse(&fatent); fatent 353 fs/fat/fat.h static inline void fatent_init(struct fat_entry *fatent) fatent 355 fs/fat/fat.h fatent->nr_bhs = 0; fatent 356 fs/fat/fat.h fatent->entry = 0; fatent 357 fs/fat/fat.h fatent->u.ent32_p = NULL; fatent 358 fs/fat/fat.h fatent->bhs[0] = fatent->bhs[1] = NULL; fatent 359 fs/fat/fat.h fatent->fat_inode = NULL; fatent 362 fs/fat/fat.h static inline void fatent_set_entry(struct fat_entry *fatent, int entry) fatent 364 fs/fat/fat.h fatent->entry = entry; fatent 365 fs/fat/fat.h fatent->u.ent32_p = NULL; fatent 368 fs/fat/fat.h static inline void fatent_brelse(struct fat_entry *fatent) fatent 371 fs/fat/fat.h fatent->u.ent32_p = NULL; fatent 372 fs/fat/fat.h for (i = 0; i < fatent->nr_bhs; i++) fatent 373 fs/fat/fat.h brelse(fatent->bhs[i]); fatent 374 fs/fat/fat.h fatent->nr_bhs = 0; fatent 375 fs/fat/fat.h fatent->bhs[0] = fatent->bhs[1] = NULL; fatent 376 fs/fat/fat.h fatent->fat_inode = NULL; fatent 385 fs/fat/fat.h extern int fat_ent_read(struct inode *inode, struct fat_entry *fatent, fatent 387 fs/fat/fat.h extern int fat_ent_write(struct inode *inode, struct fat_entry *fatent, fatent 42 fs/fat/fatent.c static void fat12_ent_set_ptr(struct fat_entry *fatent, int offset) fatent 44 fs/fat/fatent.c struct buffer_head **bhs = fatent->bhs; fatent 45 fs/fat/fatent.c if (fatent->nr_bhs == 1) { fatent 47 fs/fat/fatent.c fatent->u.ent12_p[0] = bhs[0]->b_data + offset; fatent 48 fs/fat/fatent.c fatent->u.ent12_p[1] = bhs[0]->b_data + (offset + 1); fatent 51 fs/fat/fatent.c fatent->u.ent12_p[0] = bhs[0]->b_data + offset; fatent 52 fs/fat/fatent.c fatent->u.ent12_p[1] = bhs[1]->b_data; fatent 56 fs/fat/fatent.c static void fat16_ent_set_ptr(struct fat_entry *fatent, int offset) fatent 59 fs/fat/fatent.c fatent->u.ent16_p = (__le16 *)(fatent->bhs[0]->b_data + offset); fatent 62 fs/fat/fatent.c static void fat32_ent_set_ptr(struct fat_entry *fatent, int offset) fatent 65 fs/fat/fatent.c fatent->u.ent32_p = (__le32 *)(fatent->bhs[0]->b_data + offset); fatent 68 fs/fat/fatent.c static int fat12_ent_bread(struct super_block *sb, struct fat_entry *fatent, fatent 71 fs/fat/fatent.c struct buffer_head **bhs = fatent->bhs; fatent 74 fs/fat/fatent.c fatent->fat_inode = MSDOS_SB(sb)->fat_inode; fatent 81 fs/fat/fatent.c fatent->nr_bhs = 1; fatent 88 fs/fat/fatent.c fatent->nr_bhs = 2; fatent 90 fs/fat/fatent.c fat12_ent_set_ptr(fatent, offset); fatent 100 fs/fat/fatent.c static int fat_ent_bread(struct super_block *sb, struct fat_entry *fatent, fatent 106 fs/fat/fatent.c fatent->fat_inode = MSDOS_SB(sb)->fat_inode; fatent 107 fs/fat/fatent.c fatent->bhs[0] = sb_bread(sb, blocknr); fatent 108 fs/fat/fatent.c if (!fatent->bhs[0]) { fatent 113 fs/fat/fatent.c fatent->nr_bhs = 1; fatent 114 fs/fat/fatent.c ops->ent_set_ptr(fatent, offset); fatent 118 fs/fat/fatent.c static int fat12_ent_get(struct fat_entry *fatent) fatent 120 fs/fat/fatent.c u8 **ent12_p = fatent->u.ent12_p; fatent 124 fs/fat/fatent.c if (fatent->entry & 1) fatent 136 fs/fat/fatent.c static int fat16_ent_get(struct fat_entry *fatent) fatent 138 fs/fat/fatent.c int next = le16_to_cpu(*fatent->u.ent16_p); fatent 139 fs/fat/fatent.c WARN_ON((unsigned long)fatent->u.ent16_p & (2 - 1)); fatent 145 fs/fat/fatent.c static int fat32_ent_get(struct fat_entry *fatent) fatent 147 fs/fat/fatent.c int next = le32_to_cpu(*fatent->u.ent32_p) & 0x0fffffff; fatent 148 fs/fat/fatent.c WARN_ON((unsigned long)fatent->u.ent32_p & (4 - 1)); fatent 154 fs/fat/fatent.c static void fat12_ent_put(struct fat_entry *fatent, int new) fatent 156 fs/fat/fatent.c u8 **ent12_p = fatent->u.ent12_p; fatent 162 fs/fat/fatent.c if (fatent->entry & 1) { fatent 171 fs/fat/fatent.c mark_buffer_dirty_inode(fatent->bhs[0], fatent->fat_inode); fatent 172 fs/fat/fatent.c if (fatent->nr_bhs == 2) fatent 173 fs/fat/fatent.c mark_buffer_dirty_inode(fatent->bhs[1], fatent->fat_inode); fatent 176 fs/fat/fatent.c static void fat16_ent_put(struct fat_entry *fatent, int new) fatent 181 fs/fat/fatent.c *fatent->u.ent16_p = cpu_to_le16(new); fatent 182 fs/fat/fatent.c mark_buffer_dirty_inode(fatent->bhs[0], fatent->fat_inode); fatent 185 fs/fat/fatent.c static void fat32_ent_put(struct fat_entry *fatent, int new) fatent 188 fs/fat/fatent.c new |= le32_to_cpu(*fatent->u.ent32_p) & ~0x0fffffff; fatent 189 fs/fat/fatent.c *fatent->u.ent32_p = cpu_to_le32(new); fatent 190 fs/fat/fatent.c mark_buffer_dirty_inode(fatent->bhs[0], fatent->fat_inode); fatent 193 fs/fat/fatent.c static int fat12_ent_next(struct fat_entry *fatent) fatent 195 fs/fat/fatent.c u8 **ent12_p = fatent->u.ent12_p; fatent 196 fs/fat/fatent.c struct buffer_head **bhs = fatent->bhs; fatent 197 fs/fat/fatent.c u8 *nextp = ent12_p[1] + 1 + (fatent->entry & 1); fatent 199 fs/fat/fatent.c fatent->entry++; fatent 200 fs/fat/fatent.c if (fatent->nr_bhs == 1) { fatent 218 fs/fat/fatent.c fatent->nr_bhs = 1; fatent 226 fs/fat/fatent.c static int fat16_ent_next(struct fat_entry *fatent) fatent 228 fs/fat/fatent.c const struct buffer_head *bh = fatent->bhs[0]; fatent 229 fs/fat/fatent.c fatent->entry++; fatent 230 fs/fat/fatent.c if (fatent->u.ent16_p < (__le16 *)(bh->b_data + (bh->b_size - 2))) { fatent 231 fs/fat/fatent.c fatent->u.ent16_p++; fatent 234 fs/fat/fatent.c fatent->u.ent16_p = NULL; fatent 238 fs/fat/fatent.c static int fat32_ent_next(struct fat_entry *fatent) fatent 240 fs/fat/fatent.c const struct buffer_head *bh = fatent->bhs[0]; fatent 241 fs/fat/fatent.c fatent->entry++; fatent 242 fs/fat/fatent.c if (fatent->u.ent32_p < (__le32 *)(bh->b_data + (bh->b_size - 4))) { fatent 243 fs/fat/fatent.c fatent->u.ent32_p++; fatent 246 fs/fat/fatent.c fatent->u.ent32_p = NULL; fatent 318 fs/fat/fatent.c struct fat_entry *fatent, fatent 323 fs/fat/fatent.c struct buffer_head **bhs = fatent->bhs; fatent 326 fs/fat/fatent.c if (!fatent->nr_bhs || bhs[0]->b_blocknr != blocknr) fatent 331 fs/fat/fatent.c if (fatent->nr_bhs == 2) { fatent 333 fs/fat/fatent.c fatent->nr_bhs = 1; fatent 337 fs/fat/fatent.c if (fatent->nr_bhs != 2) fatent 343 fs/fat/fatent.c ops->ent_set_ptr(fatent, offset); fatent 347 fs/fat/fatent.c int fat_ent_read(struct inode *inode, struct fat_entry *fatent, int entry) fatent 356 fs/fat/fatent.c fatent_brelse(fatent); fatent 361 fs/fat/fatent.c fatent_set_entry(fatent, entry); fatent 364 fs/fat/fatent.c if (!fat_ent_update_ptr(sb, fatent, offset, blocknr)) { fatent 365 fs/fat/fatent.c fatent_brelse(fatent); fatent 366 fs/fat/fatent.c err = ops->ent_bread(sb, fatent, offset, blocknr); fatent 370 fs/fat/fatent.c return ops->ent_get(fatent); fatent 408 fs/fat/fatent.c int fat_ent_write(struct inode *inode, struct fat_entry *fatent, fatent 415 fs/fat/fatent.c ops->ent_put(fatent, new); fatent 417 fs/fat/fatent.c err = fat_sync_bhs(fatent->bhs, fatent->nr_bhs); fatent 421 fs/fat/fatent.c return fat_mirror_bhs(sb, fatent->bhs, fatent->nr_bhs); fatent 425 fs/fat/fatent.c struct fat_entry *fatent) fatent 427 fs/fat/fatent.c if (sbi->fatent_ops->ent_next(fatent)) { fatent 428 fs/fat/fatent.c if (fatent->entry < sbi->max_cluster) fatent 435 fs/fat/fatent.c struct fat_entry *fatent) fatent 441 fs/fat/fatent.c fatent_brelse(fatent); fatent 442 fs/fat/fatent.c ops->ent_blocknr(sb, fatent->entry, &offset, &blocknr); fatent 443 fs/fat/fatent.c return ops->ent_bread(sb, fatent, offset, blocknr); fatent 447 fs/fat/fatent.c struct fat_entry *fatent) fatent 451 fs/fat/fatent.c for (n = 0; n < fatent->nr_bhs; n++) { fatent 453 fs/fat/fatent.c if (fatent->bhs[n] == bhs[i]) fatent 457 fs/fat/fatent.c get_bh(fatent->bhs[n]); fatent 458 fs/fat/fatent.c bhs[i] = fatent->bhs[n]; fatent 469 fs/fat/fatent.c struct fat_entry fatent, prev_ent; fatent 485 fs/fat/fatent.c fatent_init(&fatent); fatent 486 fs/fat/fatent.c fatent_set_entry(&fatent, sbi->prev_free + 1); fatent 488 fs/fat/fatent.c if (fatent.entry >= sbi->max_cluster) fatent 489 fs/fat/fatent.c fatent.entry = FAT_START_ENT; fatent 490 fs/fat/fatent.c fatent_set_entry(&fatent, fatent.entry); fatent 491 fs/fat/fatent.c err = fat_ent_read_block(sb, &fatent); fatent 497 fs/fat/fatent.c if (ops->ent_get(&fatent) == FAT_ENT_FREE) { fatent 498 fs/fat/fatent.c int entry = fatent.entry; fatent 501 fs/fat/fatent.c ops->ent_put(&fatent, FAT_ENT_EOF); fatent 505 fs/fat/fatent.c fat_collect_bhs(bhs, &nr_bhs, &fatent); fatent 520 fs/fat/fatent.c prev_ent = fatent; fatent 525 fs/fat/fatent.c } while (fat_ent_next(sbi, &fatent)); fatent 536 fs/fat/fatent.c fatent_brelse(&fatent); fatent 557 fs/fat/fatent.c struct fat_entry fatent; fatent 563 fs/fat/fatent.c fatent_init(&fatent); fatent 566 fs/fat/fatent.c cluster = fat_ent_read(inode, &fatent, cluster); fatent 583 fs/fat/fatent.c if (cluster != fatent.entry + 1) { fatent 584 fs/fat/fatent.c int nr_clus = fatent.entry - first_cl + 1; fatent 595 fs/fat/fatent.c ops->ent_put(&fatent, FAT_ENT_FREE); fatent 601 fs/fat/fatent.c if (nr_bhs + fatent.nr_bhs > MAX_BUF_PER_PAGE) { fatent 614 fs/fat/fatent.c fat_collect_bhs(bhs, &nr_bhs, &fatent); fatent 624 fs/fat/fatent.c fatent_brelse(&fatent); fatent 638 fs/fat/fatent.c static void fat_ent_reada(struct super_block *sb, struct fat_entry *fatent, fatent 645 fs/fat/fatent.c ops->ent_blocknr(sb, fatent->entry, &offset, &blocknr); fatent 655 fs/fat/fatent.c struct fat_entry fatent; fatent 668 fs/fat/fatent.c fatent_init(&fatent); fatent 669 fs/fat/fatent.c fatent_set_entry(&fatent, FAT_START_ENT); fatent 670 fs/fat/fatent.c while (fatent.entry < sbi->max_cluster) { fatent 674 fs/fat/fatent.c fat_ent_reada(sb, &fatent, min(reada_blocks, rest)); fatent 678 fs/fat/fatent.c err = fat_ent_read_block(sb, &fatent); fatent 683 fs/fat/fatent.c if (ops->ent_get(&fatent) == FAT_ENT_FREE) fatent 685 fs/fat/fatent.c } while (fat_ent_next(sbi, &fatent)); fatent 691 fs/fat/fatent.c fatent_brelse(&fatent); fatent 709 fs/fat/fatent.c struct fat_entry fatent; fatent 733 fs/fat/fatent.c fatent_init(&fatent); fatent 735 fs/fat/fatent.c fatent_set_entry(&fatent, ent_start); fatent 736 fs/fat/fatent.c while (fatent.entry <= ent_end) { fatent 740 fs/fat/fatent.c fat_ent_reada(sb, &fatent, min(reada_blocks, rest)); fatent 744 fs/fat/fatent.c err = fat_ent_read_block(sb, &fatent); fatent 748 fs/fat/fatent.c if (ops->ent_get(&fatent) == FAT_ENT_FREE) { fatent 752 fs/fat/fatent.c u32 clus = fatent.entry - free; fatent 763 fs/fat/fatent.c } while (fat_ent_next(sbi, &fatent) && fatent.entry <= ent_end); fatent 771 fs/fat/fatent.c fatent_brelse(&fatent); fatent 779 fs/fat/fatent.c u32 clus = fatent.entry - free; fatent 790 fs/fat/fatent.c fatent_brelse(&fatent); fatent 353 fs/fat/file.c struct fat_entry fatent; fatent 362 fs/fat/file.c fatent_init(&fatent); fatent 363 fs/fat/file.c ret = fat_ent_read(inode, &fatent, dclus); fatent 365 fs/fat/file.c fatent_brelse(&fatent); fatent 373 fs/fat/file.c err = fat_ent_write(inode, &fatent, FAT_ENT_EOF, wait); fatent 377 fs/fat/file.c fatent_brelse(&fatent); fatent 124 fs/fat/misc.c struct fat_entry fatent; fatent 126 fs/fat/misc.c fatent_init(&fatent); fatent 127 fs/fat/misc.c ret = fat_ent_read(inode, &fatent, last); fatent 130 fs/fat/misc.c ret = fat_ent_write(inode, &fatent, new_dclus, wait); fatent 131 fs/fat/misc.c fatent_brelse(&fatent);