• Home
  • Raw
  • Download

Lines Matching refs:bb

82 static void erofs_bupdate_mapped(struct erofs_buffer_block *bb)  in erofs_bupdate_mapped()  argument
86 if (bb->blkaddr == NULL_ADDR) in erofs_bupdate_mapped()
89 bkt = mapped_buckets[bb->type] + bb->buffers.off % EROFS_BLKSIZ; in erofs_bupdate_mapped()
90 list_del(&bb->mapped_list); in erofs_bupdate_mapped()
91 list_add_tail(&bb->mapped_list, bkt); in erofs_bupdate_mapped()
95 static int __erofs_battach(struct erofs_buffer_block *bb, in __erofs_battach() argument
102 const erofs_off_t alignedoffset = roundup(bb->buffers.off, alignsize); in __erofs_battach()
103 const int oob = cmpsgn(roundup((bb->buffers.off - 1) % EROFS_BLKSIZ + 1, in __erofs_battach()
111 if (oob && list_next_entry(bb, list)->blkaddr != NULL_ADDR) in __erofs_battach()
114 blkaddr = bb->blkaddr; in __erofs_battach()
117 BLK_ROUND_UP(bb->buffers.off)); in __erofs_battach()
126 bh->block = bb; in __erofs_battach()
127 list_add_tail(&bh->list, &bb->buffers.list); in __erofs_battach()
129 bb->buffers.off = alignedoffset + incr; in __erofs_battach()
132 tail_blkaddr = blkaddr + BLK_ROUND_UP(bb->buffers.off); in __erofs_battach()
133 erofs_bupdate_mapped(bb); in __erofs_battach()
140 struct erofs_buffer_block *const bb = bh->block; in erofs_bh_balloon() local
143 if (bh->list.next != &bb->buffers.list) in erofs_bh_balloon()
146 return __erofs_battach(bb, NULL, incr, 1, 0, false); in erofs_bh_balloon()
155 struct erofs_buffer_block *cur, *bb; in erofs_bfind_for_attach() local
170 bb = NULL; in erofs_bfind_for_attach()
207 bb = cur; in erofs_bfind_for_attach()
247 bb = cur; in erofs_bfind_for_attach()
251 *bbp = bb; in erofs_bfind_for_attach()
259 struct erofs_buffer_block *bb; in erofs_balloc() local
273 alignsize, &bb); in erofs_balloc()
277 if (bb) { in erofs_balloc()
283 bb = malloc(sizeof(struct erofs_buffer_block)); in erofs_balloc()
284 if (!bb) in erofs_balloc()
287 bb->type = type; in erofs_balloc()
288 bb->blkaddr = NULL_ADDR; in erofs_balloc()
289 bb->buffers.off = 0; in erofs_balloc()
290 init_list_head(&bb->buffers.list); in erofs_balloc()
291 list_add_tail(&bb->list, &blkh.list); in erofs_balloc()
292 init_list_head(&bb->mapped_list); in erofs_balloc()
296 free(bb); in erofs_balloc()
301 ret = __erofs_battach(bb, bh, size, alignsize, in erofs_balloc()
311 struct erofs_buffer_block *const bb = bh->block; in erofs_battach() local
321 if (bh->list.next != &bb->buffers.list) in erofs_battach()
328 ret = __erofs_battach(bb, nbh, size, alignsize, 0, false); in erofs_battach()
337 static erofs_blk_t __erofs_mapbh(struct erofs_buffer_block *bb) in __erofs_mapbh() argument
341 if (bb->blkaddr == NULL_ADDR) { in __erofs_mapbh()
342 bb->blkaddr = tail_blkaddr; in __erofs_mapbh()
343 last_mapped_block = bb; in __erofs_mapbh()
344 erofs_bupdate_mapped(bb); in __erofs_mapbh()
347 blkaddr = bb->blkaddr + BLK_ROUND_UP(bb->buffers.off); in __erofs_mapbh()
354 erofs_blk_t erofs_mapbh(struct erofs_buffer_block *bb) in erofs_mapbh() argument
358 if (bb && bb->blkaddr != NULL_ADDR) in erofs_mapbh()
359 return bb->blkaddr; in erofs_mapbh()
367 } while (t != bb); in erofs_mapbh()
371 bool erofs_bflush(struct erofs_buffer_block *bb) in erofs_bflush() argument
381 if (p == bb) in erofs_bflush()
418 struct erofs_buffer_block *const bb = bh->block; in erofs_bdrop() local
424 tail_blkaddr == blkaddr + BLK_ROUND_UP(bb->buffers.off)) in erofs_bdrop()
430 if (!list_empty(&bb->buffers.list)) in erofs_bdrop()
433 if (bb == last_mapped_block) in erofs_bdrop()
434 last_mapped_block = list_prev_entry(bb, list); in erofs_bdrop()
436 list_del(&bb->mapped_list); in erofs_bdrop()
437 list_del(&bb->list); in erofs_bdrop()
438 free(bb); in erofs_bdrop()