Lines Matching refs:llbitmap
276 struct llbitmap { struct
310 struct llbitmap *llbitmap; argument
418 static enum llbitmap_state llbitmap_read(struct llbitmap *llbitmap, loff_t pos) in llbitmap_read() argument
427 return llbitmap->pctl[idx]->state[offset]; in llbitmap_read()
431 static void llbitmap_infect_dirty_bits(struct llbitmap *llbitmap, in llbitmap_infect_dirty_bits() argument
435 bool level_456 = raid_is_456(llbitmap->mddev); in llbitmap_infect_dirty_bits()
436 unsigned int io_size = llbitmap->io_size; in llbitmap_infect_dirty_bits()
452 static void llbitmap_set_page_dirty(struct llbitmap *llbitmap, int idx, in llbitmap_set_page_dirty() argument
455 struct llbitmap_page_ctl *pctl = llbitmap->pctl[idx]; in llbitmap_set_page_dirty()
456 unsigned int io_size = llbitmap->io_size; in llbitmap_set_page_dirty()
468 if (llbitmap->mddev->degraded || !infect) { in llbitmap_set_page_dirty()
481 llbitmap_infect_dirty_bits(llbitmap, pctl, block); in llbitmap_set_page_dirty()
490 llbitmap_infect_dirty_bits(llbitmap, pctl, block); in llbitmap_set_page_dirty()
496 static void llbitmap_write(struct llbitmap *llbitmap, enum llbitmap_state state, in llbitmap_write() argument
506 llbitmap->pctl[idx]->state[bit] = state; in llbitmap_write()
508 llbitmap_set_page_dirty(llbitmap, idx, bit, true); in llbitmap_write()
510 llbitmap_set_page_dirty(llbitmap, idx, bit, false); in llbitmap_write()
513 static struct page *llbitmap_read_page(struct llbitmap *llbitmap, int idx) in llbitmap_read_page() argument
515 struct mddev *mddev = llbitmap->mddev; in llbitmap_read_page()
519 if (llbitmap->pctl && llbitmap->pctl[idx]) in llbitmap_read_page()
520 page = llbitmap->pctl[idx]->page; in llbitmap_read_page()
549 static void llbitmap_write_page(struct llbitmap *llbitmap, int idx) in llbitmap_write_page() argument
551 struct page *page = llbitmap->pctl[idx]->page; in llbitmap_write_page()
552 struct mddev *mddev = llbitmap->mddev; in llbitmap_write_page()
556 for (block = 0; block < llbitmap->blocks_per_page; block++) { in llbitmap_write_page()
557 struct llbitmap_page_ctl *pctl = llbitmap->pctl[idx]; in llbitmap_write_page()
564 sector_t bit_sector = llbitmap->io_size >> SECTOR_SHIFT; in llbitmap_write_page()
573 llbitmap->io_size, page, in llbitmap_write_page()
574 block * llbitmap->io_size); in llbitmap_write_page()
587 static void llbitmap_free_pages(struct llbitmap *llbitmap) in llbitmap_free_pages() argument
591 if (!llbitmap->pctl) in llbitmap_free_pages()
594 for (i = 0; i < llbitmap->nr_pages; i++) { in llbitmap_free_pages()
595 struct llbitmap_page_ctl *pctl = llbitmap->pctl[i]; in llbitmap_free_pages()
604 kfree(llbitmap->pctl[0]); in llbitmap_free_pages()
605 kfree(llbitmap->pctl); in llbitmap_free_pages()
606 llbitmap->pctl = NULL; in llbitmap_free_pages()
609 static int llbitmap_cache_pages(struct llbitmap *llbitmap) in llbitmap_cache_pages() argument
612 unsigned int nr_pages = DIV_ROUND_UP(llbitmap->chunks + in llbitmap_cache_pages()
615 llbitmap->blocks_per_page)); in llbitmap_cache_pages()
618 llbitmap->pctl = kmalloc_array(nr_pages, sizeof(void *), in llbitmap_cache_pages()
620 if (!llbitmap->pctl) in llbitmap_cache_pages()
626 kfree(llbitmap->pctl); in llbitmap_cache_pages()
630 llbitmap->nr_pages = nr_pages; in llbitmap_cache_pages()
633 struct page *page = llbitmap_read_page(llbitmap, i); in llbitmap_cache_pages()
635 llbitmap->pctl[i] = pctl; in llbitmap_cache_pages()
638 llbitmap_free_pages(llbitmap); in llbitmap_cache_pages()
645 llbitmap_free_pages(llbitmap); in llbitmap_cache_pages()
660 static bool llbitmap_all_disks_support_wzeroes_unmap(struct llbitmap *llbitmap) in llbitmap_all_disks_support_wzeroes_unmap() argument
662 struct mddev *mddev = llbitmap->mddev; in llbitmap_all_disks_support_wzeroes_unmap()
681 static bool llbitmap_zero_all_disks(struct llbitmap *llbitmap) in llbitmap_zero_all_disks() argument
683 struct mddev *mddev = llbitmap->mddev; in llbitmap_zero_all_disks()
706 static void llbitmap_init_state(struct llbitmap *llbitmap) in llbitmap_init_state() argument
708 struct mddev *mddev = llbitmap->mddev; in llbitmap_init_state()
712 if (test_and_clear_bit(BITMAP_CLEAN, &llbitmap->flags)) { in llbitmap_init_state()
715 llbitmap_all_disks_support_wzeroes_unmap(llbitmap)) { in llbitmap_init_state()
721 if (llbitmap_zero_all_disks(llbitmap)) in llbitmap_init_state()
725 for (i = 0; i < llbitmap->chunks; i++) in llbitmap_init_state()
726 llbitmap_write(llbitmap, state, i); in llbitmap_init_state()
730 static enum llbitmap_state llbitmap_state_machine(struct llbitmap *llbitmap, in llbitmap_state_machine() argument
735 struct mddev *mddev = llbitmap->mddev; in llbitmap_state_machine()
737 bool level_456 = raid_is_456(llbitmap->mddev); in llbitmap_state_machine()
741 if (test_bit(BITMAP_WRITE_ERROR, &llbitmap->flags)) in llbitmap_state_machine()
745 llbitmap_init_state(llbitmap); in llbitmap_state_machine()
750 enum llbitmap_state c = llbitmap_read(llbitmap, start); in llbitmap_state_machine()
788 llbitmap_write(llbitmap, state, start); in llbitmap_state_machine()
792 !timer_pending(&llbitmap->pending_timer)) in llbitmap_state_machine()
793 mod_timer(&llbitmap->pending_timer, in llbitmap_state_machine()
815 static void llbitmap_raise_barrier(struct llbitmap *llbitmap, int page_idx) in llbitmap_raise_barrier() argument
817 struct llbitmap_page_ctl *pctl = llbitmap->pctl[page_idx]; in llbitmap_raise_barrier()
821 WRITE_ONCE(pctl->expire, jiffies + llbitmap->barrier_idle * HZ); in llbitmap_raise_barrier()
829 static void llbitmap_release_barrier(struct llbitmap *llbitmap, int page_idx) in llbitmap_release_barrier() argument
831 struct llbitmap_page_ctl *pctl = llbitmap->pctl[page_idx]; in llbitmap_release_barrier()
836 static int llbitmap_suspend_timeout(struct llbitmap *llbitmap, int page_idx) in llbitmap_suspend_timeout() argument
838 struct llbitmap_page_ctl *pctl = llbitmap->pctl[page_idx]; in llbitmap_suspend_timeout()
843 llbitmap->mddev->bitmap_info.daemon_sleep * HZ)) { in llbitmap_suspend_timeout()
851 static void llbitmap_resume(struct llbitmap *llbitmap, int page_idx) in llbitmap_resume() argument
853 struct llbitmap_page_ctl *pctl = llbitmap->pctl[page_idx]; in llbitmap_resume()
903 static int llbitmap_init(struct llbitmap *llbitmap) in llbitmap_init() argument
905 struct mddev *mddev = llbitmap->mddev; in llbitmap_init()
917 llbitmap->barrier_idle = DEFAULT_BARRIER_IDLE; in llbitmap_init()
918 llbitmap->chunkshift = ffz(~chunksize); in llbitmap_init()
919 llbitmap->chunksize = chunksize; in llbitmap_init()
920 llbitmap->chunks = chunks; in llbitmap_init()
923 ret = llbitmap_cache_pages(llbitmap); in llbitmap_init()
927 llbitmap_state_machine(llbitmap, 0, llbitmap->chunks - 1, in llbitmap_init()
935 static int llbitmap_read_sb(struct llbitmap *llbitmap) in llbitmap_read_sb() argument
937 struct mddev *mddev = llbitmap->mddev; in llbitmap_read_sb()
950 sb_page = llbitmap_read_page(llbitmap, 0); in llbitmap_read_sb()
984 llbitmap->flags = le32_to_cpu(sb->state); in llbitmap_read_sb()
985 if (test_and_clear_bit(BITMAP_FIRST_USE, &llbitmap->flags)) { in llbitmap_read_sb()
986 ret = llbitmap_init(llbitmap); in llbitmap_read_sb()
1016 set_bit(BITMAP_STALE, &llbitmap->flags); in llbitmap_read_sb()
1023 llbitmap->barrier_idle = DEFAULT_BARRIER_IDLE; in llbitmap_read_sb()
1024 llbitmap->chunksize = chunksize; in llbitmap_read_sb()
1025 llbitmap->chunks = DIV_ROUND_UP_SECTOR_T(mddev->resync_max_sectors, chunksize); in llbitmap_read_sb()
1026 llbitmap->chunkshift = ffz(~chunksize); in llbitmap_read_sb()
1027 ret = llbitmap_cache_pages(llbitmap); in llbitmap_read_sb()
1037 struct llbitmap *llbitmap = in llbitmap_pending_timer_fn() local
1038 container_of(pending_timer, struct llbitmap, pending_timer); in llbitmap_pending_timer_fn()
1040 if (work_busy(&llbitmap->daemon_work)) { in llbitmap_pending_timer_fn()
1042 mdname(llbitmap->mddev), in llbitmap_pending_timer_fn()
1043 llbitmap->mddev->bitmap_info.daemon_sleep); in llbitmap_pending_timer_fn()
1044 set_bit(BITMAP_DAEMON_BUSY, &llbitmap->flags); in llbitmap_pending_timer_fn()
1048 queue_work(md_llbitmap_io_wq, &llbitmap->daemon_work); in llbitmap_pending_timer_fn()
1053 struct llbitmap *llbitmap = in md_llbitmap_daemon_fn() local
1054 container_of(work, struct llbitmap, daemon_work); in md_llbitmap_daemon_fn()
1060 if (llbitmap->mddev->degraded) in md_llbitmap_daemon_fn()
1064 end = min(llbitmap->chunks, PAGE_SIZE - BITMAP_DATA_OFFSET) - 1; in md_llbitmap_daemon_fn()
1067 for (idx = 0; idx < llbitmap->nr_pages; idx++) { in md_llbitmap_daemon_fn()
1068 struct llbitmap_page_ctl *pctl = llbitmap->pctl[idx]; in md_llbitmap_daemon_fn()
1072 end = min(end + PAGE_SIZE, llbitmap->chunks - 1); in md_llbitmap_daemon_fn()
1081 if (llbitmap_suspend_timeout(llbitmap, idx) < 0) { in md_llbitmap_daemon_fn()
1083 mdname(llbitmap->mddev), __func__, idx); in md_llbitmap_daemon_fn()
1087 llbitmap_state_machine(llbitmap, start, end, BitmapActionDaemon); in md_llbitmap_daemon_fn()
1088 llbitmap_resume(llbitmap, idx); in md_llbitmap_daemon_fn()
1095 if (test_and_clear_bit(BITMAP_DAEMON_BUSY, &llbitmap->flags)) in md_llbitmap_daemon_fn()
1100 mod_timer(&llbitmap->pending_timer, in md_llbitmap_daemon_fn()
1101 jiffies + llbitmap->mddev->bitmap_info.daemon_sleep * HZ); in md_llbitmap_daemon_fn()
1106 struct llbitmap *llbitmap; in llbitmap_create() local
1113 llbitmap = kzalloc_obj(*llbitmap); in llbitmap_create()
1114 if (!llbitmap) in llbitmap_create()
1117 llbitmap->mddev = mddev; in llbitmap_create()
1118 llbitmap->io_size = bdev_logical_block_size(mddev->gendisk->part0); in llbitmap_create()
1119 llbitmap->blocks_per_page = PAGE_SIZE / llbitmap->io_size; in llbitmap_create()
1121 timer_setup(&llbitmap->pending_timer, llbitmap_pending_timer_fn, 0); in llbitmap_create()
1122 INIT_WORK(&llbitmap->daemon_work, md_llbitmap_daemon_fn); in llbitmap_create()
1123 atomic_set(&llbitmap->behind_writes, 0); in llbitmap_create()
1124 init_waitqueue_head(&llbitmap->behind_wait); in llbitmap_create()
1127 mddev->bitmap = llbitmap; in llbitmap_create()
1128 ret = llbitmap_read_sb(llbitmap); in llbitmap_create()
1131 kfree(llbitmap); in llbitmap_create()
1140 struct llbitmap *llbitmap = mddev->bitmap; in llbitmap_resize() local
1144 chunksize = llbitmap->chunksize; in llbitmap_resize()
1153 llbitmap->chunkshift = ffz(~chunksize); in llbitmap_resize()
1154 llbitmap->chunksize = chunksize; in llbitmap_resize()
1155 llbitmap->chunks = chunks; in llbitmap_resize()
1163 struct llbitmap *llbitmap = mddev->bitmap; in llbitmap_load() local
1165 if (test_and_clear_bit(BITMAP_STALE, &llbitmap->flags)) in llbitmap_load()
1168 llbitmap_state_machine(llbitmap, 0, llbitmap->chunks - 1, action); in llbitmap_load()
1174 struct llbitmap *llbitmap = mddev->bitmap; in llbitmap_destroy() local
1176 if (!llbitmap) in llbitmap_destroy()
1181 timer_delete_sync(&llbitmap->pending_timer); in llbitmap_destroy()
1186 llbitmap_free_pages(llbitmap); in llbitmap_destroy()
1187 kfree(llbitmap); in llbitmap_destroy()
1194 struct llbitmap *llbitmap = mddev->bitmap; in llbitmap_start_write() local
1195 unsigned long start = offset >> llbitmap->chunkshift; in llbitmap_start_write()
1196 unsigned long end = (offset + sectors - 1) >> llbitmap->chunkshift; in llbitmap_start_write()
1201 llbitmap_raise_barrier(llbitmap, page_start); in llbitmap_start_write()
1205 llbitmap_state_machine(llbitmap, start, end, BitmapActionStartwrite); in llbitmap_start_write()
1211 struct llbitmap *llbitmap = mddev->bitmap; in llbitmap_end_write() local
1212 unsigned long start = offset >> llbitmap->chunkshift; in llbitmap_end_write()
1213 unsigned long end = (offset + sectors - 1) >> llbitmap->chunkshift; in llbitmap_end_write()
1218 llbitmap_release_barrier(llbitmap, page_start); in llbitmap_end_write()
1226 struct llbitmap *llbitmap = mddev->bitmap; in llbitmap_start_discard() local
1227 unsigned long start = DIV_ROUND_UP_SECTOR_T(offset, llbitmap->chunksize); in llbitmap_start_discard()
1228 unsigned long end = (offset + sectors - 1) >> llbitmap->chunkshift; in llbitmap_start_discard()
1233 llbitmap_raise_barrier(llbitmap, page_start); in llbitmap_start_discard()
1237 llbitmap_state_machine(llbitmap, start, end, BitmapActionDiscard); in llbitmap_start_discard()
1243 struct llbitmap *llbitmap = mddev->bitmap; in llbitmap_end_discard() local
1244 unsigned long start = DIV_ROUND_UP_SECTOR_T(offset, llbitmap->chunksize); in llbitmap_end_discard()
1245 unsigned long end = (offset + sectors - 1) >> llbitmap->chunkshift; in llbitmap_end_discard()
1250 llbitmap_release_barrier(llbitmap, page_start); in llbitmap_end_discard()
1259 struct llbitmap *llbitmap = unplug_work->llbitmap; in llbitmap_unplug_fn() local
1265 for (i = 0; i < llbitmap->nr_pages; i++) { in llbitmap_unplug_fn()
1266 if (!test_bit(LLPageDirty, &llbitmap->pctl[i]->flags) || in llbitmap_unplug_fn()
1267 !test_and_clear_bit(LLPageDirty, &llbitmap->pctl[i]->flags)) in llbitmap_unplug_fn()
1270 llbitmap_write_page(llbitmap, i); in llbitmap_unplug_fn()
1274 md_super_wait(llbitmap->mddev); in llbitmap_unplug_fn()
1278 static bool llbitmap_dirty(struct llbitmap *llbitmap) in llbitmap_dirty() argument
1282 for (i = 0; i < llbitmap->nr_pages; i++) in llbitmap_dirty()
1283 if (test_bit(LLPageDirty, &llbitmap->pctl[i]->flags)) in llbitmap_dirty()
1292 struct llbitmap *llbitmap = mddev->bitmap; in llbitmap_unplug() local
1294 .llbitmap = llbitmap, in llbitmap_unplug()
1298 if (!llbitmap_dirty(llbitmap)) in llbitmap_unplug()
1320 struct llbitmap *llbitmap = mddev->bitmap; in __llbitmap_flush() local
1325 for (i = 0; i < llbitmap->nr_pages; i++) { in __llbitmap_flush()
1326 struct llbitmap_page_ctl *pctl = llbitmap->pctl[i]; in __llbitmap_flush()
1330 bitmap_fill(pctl->dirty, llbitmap->blocks_per_page); in __llbitmap_flush()
1331 llbitmap_write_page(llbitmap, i); in __llbitmap_flush()
1334 md_super_wait(llbitmap->mddev); in __llbitmap_flush()
1339 struct llbitmap *llbitmap = mddev->bitmap; in llbitmap_flush() local
1342 for (i = 0; i < llbitmap->nr_pages; i++) in llbitmap_flush()
1343 set_bit(LLPageFlush, &llbitmap->pctl[i]->flags); in llbitmap_flush()
1345 timer_delete_sync(&llbitmap->pending_timer); in llbitmap_flush()
1346 queue_work(md_llbitmap_io_wq, &llbitmap->daemon_work); in llbitmap_flush()
1347 flush_work(&llbitmap->daemon_work); in llbitmap_flush()
1355 struct llbitmap *llbitmap = mddev->bitmap; in llbitmap_blocks_synced() local
1356 unsigned long p = offset >> llbitmap->chunkshift; in llbitmap_blocks_synced()
1357 enum llbitmap_state c = llbitmap_read(llbitmap, p); in llbitmap_blocks_synced()
1364 struct llbitmap *llbitmap = mddev->bitmap; in llbitmap_skip_sync_blocks() local
1365 unsigned long p = offset >> llbitmap->chunkshift; in llbitmap_skip_sync_blocks()
1366 int blocks = llbitmap->chunksize - (offset & (llbitmap->chunksize - 1)); in llbitmap_skip_sync_blocks()
1367 enum llbitmap_state c = llbitmap_read(llbitmap, p); in llbitmap_skip_sync_blocks()
1393 struct llbitmap *llbitmap = mddev->bitmap; in llbitmap_start_sync() local
1394 unsigned long p = offset >> llbitmap->chunkshift; in llbitmap_start_sync()
1403 llbitmap_state_machine(llbitmap, 0, llbitmap->chunks - 1, in llbitmap_start_sync()
1411 *blocks = llbitmap->chunksize - (offset & (llbitmap->chunksize - 1)); in llbitmap_start_sync()
1412 state = llbitmap_state_machine(llbitmap, p, p, BitmapActionStartsync); in llbitmap_start_sync()
1420 struct llbitmap *llbitmap = mddev->bitmap; in llbitmap_end_sync() local
1421 unsigned long p = offset >> llbitmap->chunkshift; in llbitmap_end_sync()
1423 *blocks = llbitmap->chunksize - (offset & (llbitmap->chunksize - 1)); in llbitmap_end_sync()
1424 llbitmap_state_machine(llbitmap, p, llbitmap->chunks - 1, in llbitmap_end_sync()
1431 struct llbitmap *llbitmap = mddev->bitmap; in llbitmap_close_sync() local
1434 for (i = 0; i < llbitmap->nr_pages; i++) { in llbitmap_close_sync()
1435 struct llbitmap_page_ctl *pctl = llbitmap->pctl[i]; in llbitmap_close_sync()
1441 llbitmap_state_machine(llbitmap, 0, llbitmap->chunks - 1, in llbitmap_close_sync()
1452 struct llbitmap *llbitmap = mddev->bitmap; in llbitmap_cond_end_sync() local
1455 llbitmap->last_end_sync = jiffies; in llbitmap_cond_end_sync()
1459 if (time_before(jiffies, llbitmap->last_end_sync + in llbitmap_cond_end_sync()
1467 llbitmap_state_machine(llbitmap, 0, sector >> llbitmap->chunkshift, in llbitmap_cond_end_sync()
1471 llbitmap->last_end_sync = jiffies; in llbitmap_cond_end_sync()
1477 struct llbitmap *llbitmap = data; in llbitmap_enabled() local
1479 return llbitmap && !test_bit(BITMAP_WRITE_ERROR, &llbitmap->flags); in llbitmap_enabled()
1488 static void llbitmap_write_sb(struct llbitmap *llbitmap) in llbitmap_write_sb() argument
1490 int nr_blocks = DIV_ROUND_UP(BITMAP_DATA_OFFSET, llbitmap->io_size); in llbitmap_write_sb()
1492 bitmap_fill(llbitmap->pctl[0]->dirty, nr_blocks); in llbitmap_write_sb()
1493 llbitmap_write_page(llbitmap, 0); in llbitmap_write_sb()
1494 md_super_wait(llbitmap->mddev); in llbitmap_write_sb()
1499 struct llbitmap *llbitmap = data; in llbitmap_update_sb() local
1500 struct mddev *mddev = llbitmap->mddev; in llbitmap_update_sb()
1504 if (test_bit(BITMAP_WRITE_ERROR, &llbitmap->flags)) in llbitmap_update_sb()
1507 sb_page = llbitmap_read_page(llbitmap, 0); in llbitmap_update_sb()
1511 set_bit(BITMAP_WRITE_ERROR, &llbitmap->flags); in llbitmap_update_sb()
1515 if (mddev->events < llbitmap->events_cleared) in llbitmap_update_sb()
1516 llbitmap->events_cleared = mddev->events; in llbitmap_update_sb()
1520 sb->state = cpu_to_le32(llbitmap->flags); in llbitmap_update_sb()
1521 sb->chunksize = cpu_to_le32(llbitmap->chunksize); in llbitmap_update_sb()
1523 sb->events_cleared = cpu_to_le64(llbitmap->events_cleared); in llbitmap_update_sb()
1528 llbitmap_write_sb(llbitmap); in llbitmap_update_sb()
1533 struct llbitmap *llbitmap = data; in llbitmap_get_stats() local
1538 stats->pages = llbitmap->nr_pages; in llbitmap_get_stats()
1539 stats->file_pages = llbitmap->nr_pages; in llbitmap_get_stats()
1541 stats->behind_writes = atomic_read(&llbitmap->behind_writes); in llbitmap_get_stats()
1542 stats->behind_wait = wq_has_sleeper(&llbitmap->behind_wait); in llbitmap_get_stats()
1543 stats->events_cleared = llbitmap->events_cleared; in llbitmap_get_stats()
1552 struct llbitmap *llbitmap = mddev->bitmap; in llbitmap_write_all() local
1554 for (i = 0; i < llbitmap->nr_pages; i++) { in llbitmap_write_all()
1555 struct llbitmap_page_ctl *pctl = llbitmap->pctl[i]; in llbitmap_write_all()
1558 bitmap_fill(pctl->dirty, llbitmap->blocks_per_page); in llbitmap_write_all()
1564 struct llbitmap *llbitmap = mddev->bitmap; in llbitmap_start_behind_write() local
1566 atomic_inc(&llbitmap->behind_writes); in llbitmap_start_behind_write()
1571 struct llbitmap *llbitmap = mddev->bitmap; in llbitmap_end_behind_write() local
1573 if (atomic_dec_and_test(&llbitmap->behind_writes)) in llbitmap_end_behind_write()
1574 wake_up(&llbitmap->behind_wait); in llbitmap_end_behind_write()
1579 struct llbitmap *llbitmap = mddev->bitmap; in llbitmap_wait_behind_writes() local
1581 if (!llbitmap) in llbitmap_wait_behind_writes()
1584 wait_event(llbitmap->behind_wait, in llbitmap_wait_behind_writes()
1585 atomic_read(&llbitmap->behind_writes) == 0); in llbitmap_wait_behind_writes()
1591 struct llbitmap *llbitmap; in bits_show() local
1596 llbitmap = mddev->bitmap; in bits_show()
1597 if (!llbitmap || !llbitmap->pctl) { in bits_show()
1602 if (test_bit(BITMAP_WRITE_ERROR, &llbitmap->flags)) { in bits_show()
1607 while (start < llbitmap->chunks) { in bits_show()
1608 enum llbitmap_state c = llbitmap_read(llbitmap, start); in bits_show()
1634 struct llbitmap *llbitmap; in metadata_show() local
1638 llbitmap = mddev->bitmap; in metadata_show()
1639 if (!llbitmap) { in metadata_show()
1645 llbitmap->chunksize, llbitmap->chunkshift, in metadata_show()
1646 llbitmap->chunks, mddev->bitmap_info.offset, in metadata_show()
1647 llbitmap->mddev->bitmap_info.daemon_sleep); in metadata_show()
1679 struct llbitmap *llbitmap = mddev->bitmap; in barrier_idle_show() local
1681 return sprintf(page, "%lu\n", llbitmap->barrier_idle); in barrier_idle_show()
1687 struct llbitmap *llbitmap = mddev->bitmap; in barrier_idle_store() local
1694 llbitmap->barrier_idle = timeout; in barrier_idle_store()
1703 struct llbitmap *llbitmap; in proactive_sync_store() local
1710 llbitmap = mddev->bitmap; in proactive_sync_store()
1711 if (!llbitmap || !llbitmap->pctl) { in proactive_sync_store()
1717 llbitmap_state_machine(llbitmap, 0, llbitmap->chunks - 1, in proactive_sync_store()