• Home
  • Raw
  • Download

Lines Matching refs:block

389 static void indirect_write_block(struct logfs_block *block)  in indirect_write_block()  argument
395 page = block->page; in indirect_write_block()
416 static void inode_write_block(struct logfs_block *block) in inode_write_block() argument
421 inode = block->inode; in inode_write_block()
462 struct logfs_block *block, write_alias_t *write_one_alias) in inode_write_alias() argument
464 struct inode *inode = block->inode; in inode_write_alias()
473 pos = fnb(block->alias_map, LOGFS_BLOCK_FACTOR, pos); in inode_write_alias()
504 struct logfs_block *block, write_alias_t *write_one_alias) in indirect_write_alias() argument
507 struct page *page = block->page; in indirect_write_alias()
514 pos = fnb(block->alias_map, LOGFS_BLOCK_FACTOR, pos); in indirect_write_alias()
532 struct logfs_block *block; in logfs_write_obj_aliases_pagecache() local
535 list_for_each_entry(block, &super->s_object_alias, alias_list) { in logfs_write_obj_aliases_pagecache()
536 err = block->ops->write_alias(sb, block, write_alias_journal); in logfs_write_obj_aliases_pagecache()
543 void __free_block(struct super_block *sb, struct logfs_block *block) in __free_block() argument
545 BUG_ON(!list_empty(&block->item_list)); in __free_block()
546 list_del(&block->alias_list); in __free_block()
547 mempool_free(block, logfs_super(sb)->s_block_pool); in __free_block()
550 static void inode_free_block(struct super_block *sb, struct logfs_block *block) in inode_free_block() argument
552 struct inode *inode = block->inode; in inode_free_block()
555 __free_block(sb, block); in inode_free_block()
559 struct logfs_block *block) in indirect_free_block() argument
561 struct page *page = block->page; in indirect_free_block()
568 __free_block(sb, block); in indirect_free_block()
588 struct logfs_block *block; in __alloc_block() local
590 block = mempool_alloc(super->s_block_pool, GFP_NOFS); in __alloc_block()
591 memset(block, 0, sizeof(*block)); in __alloc_block()
592 INIT_LIST_HEAD(&block->alias_list); in __alloc_block()
593 INIT_LIST_HEAD(&block->item_list); in __alloc_block()
594 block->sb = sb; in __alloc_block()
595 block->ino = ino; in __alloc_block()
596 block->bix = bix; in __alloc_block()
597 block->level = level; in __alloc_block()
598 return block; in __alloc_block()
604 struct logfs_block *block; in alloc_inode_block() local
609 block = __alloc_block(inode->i_sb, LOGFS_INO_MASTER, inode->i_ino, 0); in alloc_inode_block()
610 block->inode = inode; in alloc_inode_block()
611 li->li_block = block; in alloc_inode_block()
612 block->ops = &inode_block_ops; in alloc_inode_block()
615 void initialize_block_counters(struct page *page, struct logfs_block *block, in initialize_block_counters() argument
621 block->partial = 0; in initialize_block_counters()
622 block->full = 0; in initialize_block_counters()
631 block->full = I0_BLOCKS; in initialize_block_counters()
637 block->partial++; in initialize_block_counters()
639 block->full++; in initialize_block_counters()
646 struct logfs_block *block; in alloc_data_block() local
654 block = __alloc_block(inode->i_sb, inode->i_ino, bix, level); in alloc_data_block()
655 block->page = page; in alloc_data_block()
659 set_page_private(page, (unsigned long) block); in alloc_data_block()
661 block->ops = &indirect_block_ops; in alloc_data_block()
667 struct logfs_block *block; in alloc_indirect_block() local
675 block = logfs_block(page); in alloc_indirect_block()
677 initialize_block_counters(page, block, array, page_is_empty); in alloc_indirect_block()
683 struct logfs_block *block = logfs_block(page); in block_set_pointer() local
687 BUG_ON(!block); in block_set_pointer()
694 block->full += !!(ptr & LOGFS_FULLY_POPULATED) in block_set_pointer()
696 block->partial += !!ptr - !!oldptr; in block_set_pointer()
701 __be64 *block; in block_get_pointer() local
704 block = kmap_atomic(page); in block_get_pointer()
705 ptr = be64_to_cpu(block[index]); in block_get_pointer()
706 kunmap_atomic(block); in block_get_pointer()
720 u64 block; in logfs_read_direct() local
722 block = li->li_data[index]; in logfs_read_direct()
723 if (!block) in logfs_read_direct()
726 return logfs_segment_read(inode, page, block, index, 0); in logfs_read_direct()
1104 struct logfs_block *block = logfs_block(page); in get_page_reserve() local
1107 if (block && block->reserved_bytes) in get_page_reserve()
1113 block = list_entry(super->s_writeback_list.next, in get_page_reserve()
1115 block->ops->write_block(block); in get_page_reserve()
1119 block = logfs_block(page); in get_page_reserve()
1120 block->reserved_bytes += 6 * LOGFS_MAX_OBJECTSIZE; in get_page_reserve()
1122 list_move_tail(&block->alias_list, &super->s_writeback_list); in get_page_reserve()
1278 struct logfs_block *block = logfs_block(page); in fill_shadow_tree() local
1282 if (block->alias_map) in fill_shadow_tree()
1284 block->alias_map, LOGFS_BLOCK_FACTOR); in fill_shadow_tree()
1285 logfs_handle_transaction(inode, block->ta); in fill_shadow_tree()
1286 block->ops->free_block(inode->i_sb, block); in fill_shadow_tree()
1303 static void logfs_set_alias(struct super_block *sb, struct logfs_block *block, in logfs_set_alias() argument
1308 if (block->inode && block->inode->i_ino == LOGFS_INO_MASTER) { in logfs_set_alias()
1313 if (!test_bit(child_no, block->alias_map)) { in logfs_set_alias()
1314 set_bit(child_no, block->alias_map); in logfs_set_alias()
1317 list_move_tail(&block->alias_list, &super->s_object_alias); in logfs_set_alias()
1400 struct logfs_block *block = logfs_block(page); in ptr_change() local
1404 empty1 = block->partial == 0; in ptr_change()
1410 full1 = block->full == LOGFS_BLOCK_FACTOR; in ptr_change()
1503 struct logfs_block *block = logfs_inode(inode)->li_block; in logfs_del_transaction() local
1505 if (block && block->ta) in logfs_del_transaction()
1506 block->ta = NULL; in logfs_del_transaction()
1901 struct logfs_block *block = logfs_block(page); in move_page_to_inode() local
1903 if (!block) in move_page_to_inode()
1907 block->ino, block->bix, block->level); in move_page_to_inode()
1909 block->ops = &inode_block_ops; in move_page_to_inode()
1910 block->inode = inode; in move_page_to_inode()
1911 li->li_block = block; in move_page_to_inode()
1913 block->page = NULL; in move_page_to_inode()
1924 struct logfs_block *block = li->li_block; in move_inode_to_page() local
1926 if (!block) in move_inode_to_page()
1930 block->ino, block->bix, block->level); in move_inode_to_page()
1932 block->ops = &indirect_block_ops; in move_inode_to_page()
1933 block->page = page; in move_inode_to_page()
1938 set_page_private(page, (unsigned long) block); in move_inode_to_page()
1941 block->inode = NULL; in move_inode_to_page()
2166 struct logfs_block *block = li->li_block; in logfs_evict_inode() local
2185 if (!block) in logfs_evict_inode()
2188 block->ops->free_block(inode->i_sb, block); in logfs_evict_inode()
2198 void btree_write_block(struct logfs_block *block) in btree_write_block() argument
2204 inode = logfs_safe_iget(block->sb, block->ino, &cookie); in btree_write_block()
2205 page = logfs_get_write_page(inode, block->bix, block->level); in btree_write_block()
2210 BUG_ON(logfs_block(page) != block); in btree_write_block()