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()
668 loff_t i_pos = fat_make_i_pos(sb, bh, de); in __fat_readdir()
687 brelse(bh); in __fat_readdir()
867 struct buffer_head **bh, in fat_get_short_entry() argument
870 while (fat_get_entry(dir, pos, bh, de) >= 0) { in fat_get_short_entry()
887 int fat_get_dotdot_entry(struct inode *dir, struct buffer_head **bh, in fat_get_dotdot_entry() argument
893 while (fat_get_short_entry(dir, &offset, bh, de) >= 0) { in fat_get_dotdot_entry()
904 struct buffer_head *bh; in fat_dir_empty() local
909 bh = NULL; in fat_dir_empty()
911 while (fat_get_short_entry(dir, &cpos, &bh, &de) >= 0) { in fat_dir_empty()
918 brelse(bh); in fat_dir_empty()
929 struct buffer_head *bh; in fat_subdirs() local
934 bh = NULL; in fat_subdirs()
936 while (fat_get_short_entry(dir, &cpos, &bh, &de) >= 0) { in fat_subdirs()
940 brelse(bh); in fat_subdirs()
954 sinfo->bh = NULL; in fat_scan()
955 while (fat_get_short_entry(dir, &sinfo->slot_off, &sinfo->bh, in fat_scan()
960 sinfo->i_pos = fat_make_i_pos(sb, sinfo->bh, sinfo->de); in fat_scan()
978 sinfo->bh = NULL; in fat_scan_logstart()
979 while (fat_get_short_entry(dir, &sinfo->slot_off, &sinfo->bh, in fat_scan_logstart()
984 sinfo->i_pos = fat_make_i_pos(sb, sinfo->bh, sinfo->de); in fat_scan_logstart()
994 struct buffer_head *bh; in __fat_remove_entries() local
999 bh = NULL; in __fat_remove_entries()
1000 if (fat_get_entry(dir, &pos, &bh, &de) < 0) { in __fat_remove_entries()
1006 endp = (struct msdos_dir_entry *)(bh->b_data + sb->s_blocksize); in __fat_remove_entries()
1012 mark_buffer_dirty_inode(bh, dir); in __fat_remove_entries()
1014 err = sync_dirty_buffer(bh); in __fat_remove_entries()
1015 brelse(bh); in __fat_remove_entries()
1030 struct buffer_head *bh; in fat_remove_entries() local
1040 bh = sinfo->bh; in fat_remove_entries()
1041 sinfo->bh = NULL; in fat_remove_entries()
1042 while (nr_slots && de >= (struct msdos_dir_entry *)bh->b_data) { in fat_remove_entries()
1047 mark_buffer_dirty_inode(bh, dir); in fat_remove_entries()
1049 err = sync_dirty_buffer(bh); in fat_remove_entries()
1050 brelse(bh); in fat_remove_entries()
1191 struct buffer_head **bh, loff_t *i_pos) in fat_add_new_entries() argument
1246 *bh = bhs[n]; in fat_add_new_entries()
1247 *de = (struct msdos_dir_entry *)((*bh)->b_data + offset); in fat_add_new_entries()
1248 *i_pos = fat_make_i_pos(sb, *bh, *de); in fat_add_new_entries()
1258 brelse(*bh); in fat_add_new_entries()
1259 *bh = NULL; in fat_add_new_entries()
1274 struct buffer_head *bh, *prev, *bhs[3]; /* 32*slots (672bytes) */ in fat_add_entries() local
1283 bh = prev = NULL; in fat_add_entries()
1286 while (fat_get_entry(dir, &pos, &bh, &de) > -1) { in fat_add_entries()
1292 if (prev != bh) { in fat_add_entries()
1293 get_bh(bh); in fat_add_entries()
1294 bhs[nr_bhs] = prev = bh; in fat_add_entries()
1365 &de, &bh, &i_pos); in fat_add_entries()
1385 sinfo->bh = bh; in fat_add_entries()
1386 sinfo->i_pos = fat_make_i_pos(sb, sinfo->bh, sinfo->de); in fat_add_entries()
1391 brelse(bh); in fat_add_entries()
1397 brelse(bh); in fat_add_entries()