Lines Matching refs:subpage

69 	struct btrfs_subpage *subpage = NULL;  in btrfs_attach_subpage()  local
82 ret = btrfs_alloc_subpage(fs_info, &subpage, type); in btrfs_attach_subpage()
85 attach_page_private(page, subpage); in btrfs_attach_subpage()
92 struct btrfs_subpage *subpage; in btrfs_detach_subpage() local
98 subpage = (struct btrfs_subpage *)detach_page_private(page); in btrfs_detach_subpage()
99 ASSERT(subpage); in btrfs_detach_subpage()
100 btrfs_free_subpage(subpage); in btrfs_detach_subpage()
123 void btrfs_free_subpage(struct btrfs_subpage *subpage) in btrfs_free_subpage() argument
125 kfree(subpage); in btrfs_free_subpage()
140 struct btrfs_subpage *subpage; in btrfs_page_inc_eb_refs() local
148 subpage = (struct btrfs_subpage *)page->private; in btrfs_page_inc_eb_refs()
149 atomic_inc(&subpage->eb_refs); in btrfs_page_inc_eb_refs()
155 struct btrfs_subpage *subpage; in btrfs_page_dec_eb_refs() local
163 subpage = (struct btrfs_subpage *)page->private; in btrfs_page_dec_eb_refs()
164 ASSERT(atomic_read(&subpage->eb_refs)); in btrfs_page_dec_eb_refs()
165 atomic_dec(&subpage->eb_refs); in btrfs_page_dec_eb_refs()
187 struct btrfs_subpage *subpage = (struct btrfs_subpage *)page->private; in btrfs_subpage_start_reader() local
192 atomic_add(nbits, &subpage->readers); in btrfs_subpage_start_reader()
198 struct btrfs_subpage *subpage = (struct btrfs_subpage *)page->private; in btrfs_subpage_end_reader() local
205 ASSERT(atomic_read(&subpage->readers) >= nbits); in btrfs_subpage_end_reader()
206 last = atomic_sub_and_test(nbits, &subpage->readers); in btrfs_subpage_end_reader()
232 struct btrfs_subpage *subpage = (struct btrfs_subpage *)page->private; in btrfs_subpage_start_writer() local
238 ASSERT(atomic_read(&subpage->readers) == 0); in btrfs_subpage_start_writer()
239 ret = atomic_add_return(nbits, &subpage->writers); in btrfs_subpage_start_writer()
246 struct btrfs_subpage *subpage = (struct btrfs_subpage *)page->private; in btrfs_subpage_end_and_test_writer() local
251 ASSERT(atomic_read(&subpage->writers) >= nbits); in btrfs_subpage_end_and_test_writer()
252 return atomic_sub_and_test(nbits, &subpage->writers); in btrfs_subpage_end_and_test_writer()
316 struct btrfs_subpage *subpage = (struct btrfs_subpage *)page->private; in btrfs_subpage_set_uptodate() local
320 spin_lock_irqsave(&subpage->lock, flags); in btrfs_subpage_set_uptodate()
321 subpage->uptodate_bitmap |= tmp; in btrfs_subpage_set_uptodate()
322 if (subpage->uptodate_bitmap == U16_MAX) in btrfs_subpage_set_uptodate()
324 spin_unlock_irqrestore(&subpage->lock, flags); in btrfs_subpage_set_uptodate()
330 struct btrfs_subpage *subpage = (struct btrfs_subpage *)page->private; in btrfs_subpage_clear_uptodate() local
334 spin_lock_irqsave(&subpage->lock, flags); in btrfs_subpage_clear_uptodate()
335 subpage->uptodate_bitmap &= ~tmp; in btrfs_subpage_clear_uptodate()
337 spin_unlock_irqrestore(&subpage->lock, flags); in btrfs_subpage_clear_uptodate()
343 struct btrfs_subpage *subpage = (struct btrfs_subpage *)page->private; in btrfs_subpage_set_error() local
347 spin_lock_irqsave(&subpage->lock, flags); in btrfs_subpage_set_error()
348 subpage->error_bitmap |= tmp; in btrfs_subpage_set_error()
350 spin_unlock_irqrestore(&subpage->lock, flags); in btrfs_subpage_set_error()
356 struct btrfs_subpage *subpage = (struct btrfs_subpage *)page->private; in btrfs_subpage_clear_error() local
360 spin_lock_irqsave(&subpage->lock, flags); in btrfs_subpage_clear_error()
361 subpage->error_bitmap &= ~tmp; in btrfs_subpage_clear_error()
362 if (subpage->error_bitmap == 0) in btrfs_subpage_clear_error()
364 spin_unlock_irqrestore(&subpage->lock, flags); in btrfs_subpage_clear_error()
370 struct btrfs_subpage *subpage = (struct btrfs_subpage *)page->private; in btrfs_subpage_set_dirty() local
374 spin_lock_irqsave(&subpage->lock, flags); in btrfs_subpage_set_dirty()
375 subpage->dirty_bitmap |= tmp; in btrfs_subpage_set_dirty()
376 spin_unlock_irqrestore(&subpage->lock, flags); in btrfs_subpage_set_dirty()
393 struct btrfs_subpage *subpage = (struct btrfs_subpage *)page->private; in btrfs_subpage_clear_and_test_dirty() local
398 spin_lock_irqsave(&subpage->lock, flags); in btrfs_subpage_clear_and_test_dirty()
399 subpage->dirty_bitmap &= ~tmp; in btrfs_subpage_clear_and_test_dirty()
400 if (subpage->dirty_bitmap == 0) in btrfs_subpage_clear_and_test_dirty()
402 spin_unlock_irqrestore(&subpage->lock, flags); in btrfs_subpage_clear_and_test_dirty()
419 struct btrfs_subpage *subpage = (struct btrfs_subpage *)page->private; in btrfs_subpage_set_writeback() local
423 spin_lock_irqsave(&subpage->lock, flags); in btrfs_subpage_set_writeback()
424 subpage->writeback_bitmap |= tmp; in btrfs_subpage_set_writeback()
426 spin_unlock_irqrestore(&subpage->lock, flags); in btrfs_subpage_set_writeback()
432 struct btrfs_subpage *subpage = (struct btrfs_subpage *)page->private; in btrfs_subpage_clear_writeback() local
436 spin_lock_irqsave(&subpage->lock, flags); in btrfs_subpage_clear_writeback()
437 subpage->writeback_bitmap &= ~tmp; in btrfs_subpage_clear_writeback()
438 if (subpage->writeback_bitmap == 0) { in btrfs_subpage_clear_writeback()
442 spin_unlock_irqrestore(&subpage->lock, flags); in btrfs_subpage_clear_writeback()
448 struct btrfs_subpage *subpage = (struct btrfs_subpage *)page->private; in btrfs_subpage_set_ordered() local
452 spin_lock_irqsave(&subpage->lock, flags); in btrfs_subpage_set_ordered()
453 subpage->ordered_bitmap |= tmp; in btrfs_subpage_set_ordered()
455 spin_unlock_irqrestore(&subpage->lock, flags); in btrfs_subpage_set_ordered()
461 struct btrfs_subpage *subpage = (struct btrfs_subpage *)page->private; in btrfs_subpage_clear_ordered() local
465 spin_lock_irqsave(&subpage->lock, flags); in btrfs_subpage_clear_ordered()
466 subpage->ordered_bitmap &= ~tmp; in btrfs_subpage_clear_ordered()
467 if (subpage->ordered_bitmap == 0) in btrfs_subpage_clear_ordered()
469 spin_unlock_irqrestore(&subpage->lock, flags); in btrfs_subpage_clear_ordered()
479 struct btrfs_subpage *subpage = (struct btrfs_subpage *)page->private; \
484 spin_lock_irqsave(&subpage->lock, flags); \
485 ret = ((subpage->name##_bitmap & tmp) == tmp); \
486 spin_unlock_irqrestore(&subpage->lock, flags); \
572 struct btrfs_subpage *subpage = (struct btrfs_subpage *)page->private; in btrfs_page_assert_not_dirty() local
582 ASSERT(subpage->dirty_bitmap == 0); in btrfs_page_assert_not_dirty()