Lines Matching refs:bh

40 				    struct buffer_head *bh,  in fat_make_i_pos()  argument
43 return ((loff_t)bh->b_blocknr << MSDOS_SB(sb)->dir_per_block_bits) in fat_make_i_pos()
44 | (de - (struct msdos_dir_entry *)bh->b_data); in fat_make_i_pos()
52 struct buffer_head *bh; in fat_dir_readahead() local
62 bh = sb_find_get_block(sb, phys); in fat_dir_readahead()
63 if (bh == NULL || !buffer_uptodate(bh)) { in fat_dir_readahead()
67 brelse(bh); in fat_dir_readahead()
81 struct buffer_head **bh, struct msdos_dir_entry **de) in fat__get_entry() argument
89 if (*bh) in fat__get_entry()
90 brelse(*bh); in fat__get_entry()
92 *bh = NULL; in fat__get_entry()
100 *bh = sb_bread(sb, phys); in fat__get_entry()
101 if (*bh == NULL) { in fat__get_entry()
111 *de = (struct msdos_dir_entry *)((*bh)->b_data + offset); in fat__get_entry()
117 struct buffer_head **bh, in fat_get_entry() argument
121 if (*bh && *de && in fat_get_entry()
122 (*de - (struct msdos_dir_entry *)(*bh)->b_data) < in fat_get_entry()
128 return fat__get_entry(dir, pos, bh, de); in fat_get_entry()
280 struct buffer_head **bh, struct msdos_dir_entry **de, in fat_parse_long() argument
289 brelse(*bh); in fat_parse_long()
317 if (fat_get_entry(dir, pos, bh, de) < 0) in fat_parse_long()
467 struct buffer_head *bh = NULL; in fat_search_long() local
477 if (fat_get_entry(inode, &cpos, &bh, &de) == -1) in fat_search_long()
488 int status = fat_parse_long(inode, &cpos, &bh, &de, in fat_search_long()
530 sinfo->bh = bh; in fat_search_long()
531 sinfo->i_pos = fat_make_i_pos(sb, sinfo->bh, sinfo->de); in fat_search_long()
558 struct buffer_head *bh; in __fat_readdir() local
587 bh = NULL; in __fat_readdir()
589 if (fat_get_entry(inode, &cpos, &bh, &de) == -1) in __fat_readdir()
610 int status = fat_parse_long(inode, &cpos, &bh, &de, in __fat_readdir()
613 bh = NULL; in __fat_readdir()
669 loff_t i_pos = fat_make_i_pos(sb, bh, de); in __fat_readdir()
692 brelse(bh); in __fat_readdir()
873 struct buffer_head **bh, in fat_get_short_entry() argument
876 while (fat_get_entry(dir, pos, bh, de) >= 0) { in fat_get_short_entry()
893 int fat_get_dotdot_entry(struct inode *dir, struct buffer_head **bh, in fat_get_dotdot_entry() argument
899 while (fat_get_short_entry(dir, &offset, bh, de) >= 0) { in fat_get_dotdot_entry()
910 struct buffer_head *bh; in fat_dir_empty() local
915 bh = NULL; in fat_dir_empty()
917 while (fat_get_short_entry(dir, &cpos, &bh, &de) >= 0) { in fat_dir_empty()
924 brelse(bh); in fat_dir_empty()
935 struct buffer_head *bh; in fat_subdirs() local
940 bh = NULL; in fat_subdirs()
942 while (fat_get_short_entry(dir, &cpos, &bh, &de) >= 0) { in fat_subdirs()
946 brelse(bh); in fat_subdirs()
960 sinfo->bh = NULL; in fat_scan()
961 while (fat_get_short_entry(dir, &sinfo->slot_off, &sinfo->bh, in fat_scan()
966 sinfo->i_pos = fat_make_i_pos(sb, sinfo->bh, sinfo->de); in fat_scan()
984 sinfo->bh = NULL; in fat_scan_logstart()
985 while (fat_get_short_entry(dir, &sinfo->slot_off, &sinfo->bh, in fat_scan_logstart()
990 sinfo->i_pos = fat_make_i_pos(sb, sinfo->bh, sinfo->de); in fat_scan_logstart()
1000 struct buffer_head *bh; in __fat_remove_entries() local
1005 bh = NULL; in __fat_remove_entries()
1006 if (fat_get_entry(dir, &pos, &bh, &de) < 0) { in __fat_remove_entries()
1012 endp = (struct msdos_dir_entry *)(bh->b_data + sb->s_blocksize); in __fat_remove_entries()
1018 mark_buffer_dirty_inode(bh, dir); in __fat_remove_entries()
1020 err = sync_dirty_buffer(bh); in __fat_remove_entries()
1021 brelse(bh); in __fat_remove_entries()
1036 struct buffer_head *bh; in fat_remove_entries() local
1046 bh = sinfo->bh; in fat_remove_entries()
1047 sinfo->bh = NULL; in fat_remove_entries()
1048 while (nr_slots && de >= (struct msdos_dir_entry *)bh->b_data) { in fat_remove_entries()
1053 mark_buffer_dirty_inode(bh, dir); in fat_remove_entries()
1055 err = sync_dirty_buffer(bh); in fat_remove_entries()
1056 brelse(bh); in fat_remove_entries()
1197 struct buffer_head **bh, loff_t *i_pos) in fat_add_new_entries() argument
1252 *bh = bhs[n]; in fat_add_new_entries()
1253 *de = (struct msdos_dir_entry *)((*bh)->b_data + offset); in fat_add_new_entries()
1254 *i_pos = fat_make_i_pos(sb, *bh, *de); in fat_add_new_entries()
1264 brelse(*bh); in fat_add_new_entries()
1265 *bh = NULL; in fat_add_new_entries()
1280 struct buffer_head *bh, *prev, *bhs[3]; /* 32*slots (672bytes) */ in fat_add_entries() local
1289 bh = prev = NULL; in fat_add_entries()
1292 while (fat_get_entry(dir, &pos, &bh, &de) > -1) { in fat_add_entries()
1298 if (prev != bh) { in fat_add_entries()
1299 get_bh(bh); in fat_add_entries()
1300 bhs[nr_bhs] = prev = bh; in fat_add_entries()
1371 &de, &bh, &i_pos); in fat_add_entries()
1391 sinfo->bh = bh; in fat_add_entries()
1392 sinfo->i_pos = fat_make_i_pos(sb, sinfo->bh, sinfo->de); in fat_add_entries()
1397 brelse(bh); in fat_add_entries()
1403 brelse(bh); in fat_add_entries()