Lines Matching refs:shadow
1221 struct logfs_shadow *shadow; in alloc_shadow() local
1223 shadow = mempool_alloc(super->s_shadow_pool, GFP_NOFS); in alloc_shadow()
1224 memset(shadow, 0, sizeof(*shadow)); in alloc_shadow()
1225 shadow->ino = inode->i_ino; in alloc_shadow()
1226 shadow->bix = bix; in alloc_shadow()
1227 shadow->gc_level = expand_level(inode->i_ino, level); in alloc_shadow()
1228 shadow->old_ofs = old_ofs & ~LOGFS_FULLY_POPULATED; in alloc_shadow()
1229 return shadow; in alloc_shadow()
1232 static void free_shadow(struct inode *inode, struct logfs_shadow *shadow) in free_shadow() argument
1236 mempool_free(shadow, super->s_shadow_pool); in free_shadow()
1275 struct logfs_shadow *shadow) in fill_shadow_tree() argument
1288 if (shadow) { in fill_shadow_tree()
1289 if (shadow->old_ofs) in fill_shadow_tree()
1290 btree_insert64(&tree->old, shadow->old_ofs, shadow, in fill_shadow_tree()
1293 btree_insert64(&tree->new, shadow->new_ofs, shadow, in fill_shadow_tree()
1296 super->s_dirty_used_bytes += shadow->new_len; in fill_shadow_tree()
1297 super->s_dirty_free_bytes += shadow->old_len; in fill_shadow_tree()
1298 mark_segment(tree, shadow->old_ofs >> super->s_segshift); in fill_shadow_tree()
1299 mark_segment(tree, shadow->new_ofs >> super->s_segshift); in fill_shadow_tree()
1326 static void set_iused(struct inode *inode, struct logfs_shadow *shadow) in set_iused() argument
1330 if (shadow->new_len == shadow->old_len) in set_iused()
1334 li->li_used_bytes += shadow->new_len - shadow->old_len; in set_iused()
1343 struct logfs_shadow *shadow; in logfs_write_i0() local
1353 shadow = alloc_shadow(inode, bix, level, wc->ofs); in logfs_write_i0()
1355 err = logfs_segment_write(inode, page, shadow); in logfs_write_i0()
1357 logfs_segment_delete(inode, shadow); in logfs_write_i0()
1359 free_shadow(inode, shadow); in logfs_write_i0()
1363 set_iused(inode, shadow); in logfs_write_i0()
1369 fill_shadow_tree(inode, page, shadow); in logfs_write_i0()
1370 wc->ofs = shadow->new_ofs; in logfs_write_i0()
1645 u64 ofs, struct logfs_shadow *shadow, u64 size) in truncate_data_block() argument
1664 return logfs_segment_write(inode, page, shadow); in truncate_data_block()
1670 struct logfs_shadow *shadow; in logfs_truncate_i0() local
1677 shadow = alloc_shadow(inode, bix, level, wc->ofs); in logfs_truncate_i0()
1679 err = truncate_data_block(inode, page, wc->ofs, shadow, size); in logfs_truncate_i0()
1681 free_shadow(inode, shadow); in logfs_truncate_i0()
1685 logfs_segment_delete(inode, shadow); in logfs_truncate_i0()
1686 set_iused(inode, shadow); in logfs_truncate_i0()
1687 fill_shadow_tree(inode, page, shadow); in logfs_truncate_i0()
1688 wc->ofs = shadow->new_ofs; in logfs_truncate_i0()