Lines Matching refs:bh
44 struct buffer_head *bh, in fat_make_i_pos() argument
47 return ((loff_t)bh->b_blocknr << MSDOS_SB(sb)->dir_per_block_bits) in fat_make_i_pos()
48 | (de - (struct msdos_dir_entry *)bh->b_data); in fat_make_i_pos()
56 struct buffer_head *bh; in fat_dir_readahead() local
66 bh = sb_find_get_block(sb, phys); in fat_dir_readahead()
67 if (bh == NULL || !buffer_uptodate(bh)) { in fat_dir_readahead()
71 brelse(bh); in fat_dir_readahead()
85 struct buffer_head **bh, struct msdos_dir_entry **de) in fat__get_entry() argument
93 brelse(*bh); in fat__get_entry()
94 *bh = NULL; in fat__get_entry()
102 *bh = sb_bread(sb, phys); in fat__get_entry()
103 if (*bh == NULL) { in fat__get_entry()
113 *de = (struct msdos_dir_entry *)((*bh)->b_data + offset); in fat__get_entry()
119 struct buffer_head **bh, in fat_get_entry() argument
123 if (*bh && *de && in fat_get_entry()
124 (*de - (struct msdos_dir_entry *)(*bh)->b_data) < in fat_get_entry()
130 return fat__get_entry(dir, pos, bh, de); in fat_get_entry()
144 struct buffer_head **bh, in fat_get_entry_eod() argument
147 int err = fat_get_entry(dir, pos, bh, de); in fat_get_entry_eod()
150 brelse(*bh); in fat_get_entry_eod()
151 *bh = NULL; in fat_get_entry_eod()
319 struct buffer_head **bh, struct msdos_dir_entry **de, in fat_parse_long() argument
328 brelse(*bh); in fat_parse_long()
355 if (fat_get_entry_eod(dir, pos, bh, de) < 0) in fat_parse_long()
507 struct buffer_head *bh = NULL; in fat_search_long() local
517 if (fat_get_entry_eod(inode, &cpos, &bh, &de) == -1) in fat_search_long()
528 int status = fat_parse_long(inode, &cpos, &bh, &de, in fat_search_long()
570 sinfo->bh = bh; in fat_search_long()
571 sinfo->i_pos = fat_make_i_pos(sb, sinfo->bh, sinfo->de); in fat_search_long()
598 struct buffer_head *bh; in __fat_readdir() local
627 bh = NULL; in __fat_readdir()
629 if (fat_get_entry_eod(inode, &cpos, &bh, &de) == -1) in __fat_readdir()
650 int status = fat_parse_long(inode, &cpos, &bh, &de, in __fat_readdir()
653 bh = NULL; in __fat_readdir()
709 loff_t i_pos = fat_make_i_pos(sb, bh, de); in __fat_readdir()
732 brelse(bh); in __fat_readdir()
910 struct buffer_head **bh, in fat_get_short_entry() argument
913 while (fat_get_entry_eod(dir, pos, bh, de) >= 0) { in fat_get_short_entry()
930 int fat_get_dotdot_entry(struct inode *dir, struct buffer_head **bh, in fat_get_dotdot_entry() argument
936 while (fat_get_short_entry(dir, &offset, bh, de) >= 0) { in fat_get_dotdot_entry()
947 struct buffer_head *bh; in fat_dir_empty() local
952 bh = NULL; in fat_dir_empty()
954 while (fat_get_short_entry(dir, &cpos, &bh, &de) >= 0) { in fat_dir_empty()
961 brelse(bh); in fat_dir_empty()
972 struct buffer_head *bh; in fat_subdirs() local
977 bh = NULL; in fat_subdirs()
979 while (fat_get_short_entry(dir, &cpos, &bh, &de) >= 0) { in fat_subdirs()
983 brelse(bh); in fat_subdirs()
997 sinfo->bh = NULL; in fat_scan()
998 while (fat_get_short_entry(dir, &sinfo->slot_off, &sinfo->bh, in fat_scan()
1003 sinfo->i_pos = fat_make_i_pos(sb, sinfo->bh, sinfo->de); in fat_scan()
1021 sinfo->bh = NULL; in fat_scan_logstart()
1022 while (fat_get_short_entry(dir, &sinfo->slot_off, &sinfo->bh, in fat_scan_logstart()
1027 sinfo->i_pos = fat_make_i_pos(sb, sinfo->bh, sinfo->de); in fat_scan_logstart()
1037 struct buffer_head *bh; in __fat_remove_entries() local
1042 bh = NULL; in __fat_remove_entries()
1043 if (fat_get_entry(dir, &pos, &bh, &de) < 0) { in __fat_remove_entries()
1049 endp = (struct msdos_dir_entry *)(bh->b_data + sb->s_blocksize); in __fat_remove_entries()
1055 mmb_mark_buffer_dirty(bh, &MSDOS_I(dir)->i_metadata_bhs); in __fat_remove_entries()
1057 err = sync_dirty_buffer(bh); in __fat_remove_entries()
1058 brelse(bh); in __fat_remove_entries()
1073 struct buffer_head *bh; in fat_remove_entries() local
1083 bh = sinfo->bh; in fat_remove_entries()
1084 sinfo->bh = NULL; in fat_remove_entries()
1085 while (nr_slots && de >= (struct msdos_dir_entry *)bh->b_data) { in fat_remove_entries()
1090 mmb_mark_buffer_dirty(bh, &MSDOS_I(dir)->i_metadata_bhs); in fat_remove_entries()
1092 err = sync_dirty_buffer(bh); in fat_remove_entries()
1093 brelse(bh); in fat_remove_entries()
1240 struct buffer_head **bh) in fat_add_new_entries() argument
1299 *bh = bhs[n]; in fat_add_new_entries()
1300 *de = (struct msdos_dir_entry *)((*bh)->b_data + offset); in fat_add_new_entries()
1310 brelse(*bh); in fat_add_new_entries()
1311 *bh = NULL; in fat_add_new_entries()
1326 struct buffer_head *bh, *prev, *bhs[3]; /* 32*slots (672bytes) */ in fat_add_entries() local
1336 bh = prev = NULL; in fat_add_entries()
1340 while (fat_get_entry(dir, &pos, &bh, &de) > -1) { in fat_add_entries()
1348 if (prev != bh) { in fat_add_entries()
1349 get_bh(bh); in fat_add_entries()
1350 bhs[nr_bhs] = prev = bh; in fat_add_entries()
1430 &de, &bh); in fat_add_entries()
1450 sinfo->bh = bh; in fat_add_entries()
1451 sinfo->i_pos = fat_make_i_pos(sb, sinfo->bh, sinfo->de); in fat_add_entries()
1456 brelse(bh); in fat_add_entries()
1462 brelse(bh); in fat_add_entries()