Lines Matching refs:dn
259 block_t blkaddr, struct dnode_of_data *dn) in check_index_in_prev_nodes() argument
267 struct dnode_of_data tdn = *dn; in check_index_in_prev_nodes()
294 if (dn->inode->i_ino == nid) { in check_index_in_prev_nodes()
296 if (!dn->inode_page_locked) in check_index_in_prev_nodes()
297 lock_page(dn->inode_page); in check_index_in_prev_nodes()
298 tdn.node_page = dn->inode_page; in check_index_in_prev_nodes()
301 } else if (dn->nid == nid) { in check_index_in_prev_nodes()
315 if (ino != dn->inode->i_ino) { in check_index_in_prev_nodes()
321 inode = dn->inode; in check_index_in_prev_nodes()
331 if (ino == dn->inode->i_ino && dn->inode_page_locked) in check_index_in_prev_nodes()
332 unlock_page(dn->inode_page); in check_index_in_prev_nodes()
343 if (ino != dn->inode->i_ino) in check_index_in_prev_nodes()
345 else if (dn->inode_page_locked) in check_index_in_prev_nodes()
346 lock_page(dn->inode_page); in check_index_in_prev_nodes()
352 if (dn->inode->i_ino == nid && !dn->inode_page_locked) in check_index_in_prev_nodes()
353 unlock_page(dn->inode_page); in check_index_in_prev_nodes()
362 struct dnode_of_data dn; in do_recover_data() local
386 set_new_dnode(&dn, inode, NULL, NULL, 0); in do_recover_data()
388 err = get_dnode_of_data(&dn, start, ALLOC_NODE); in do_recover_data()
392 f2fs_wait_on_page_writeback(dn.node_page, NODE); in do_recover_data()
394 get_node_info(sbi, dn.nid, &ni); in do_recover_data()
396 f2fs_bug_on(sbi, ofs_of_node(dn.node_page) != ofs_of_node(page)); in do_recover_data()
398 for (; start < end; start++, dn.ofs_in_node++) { in do_recover_data()
401 src = datablock_addr(dn.node_page, dn.ofs_in_node); in do_recover_data()
402 dest = datablock_addr(page, dn.ofs_in_node); in do_recover_data()
410 truncate_data_blocks_range(&dn, 1); in do_recover_data()
419 truncate_data_blocks_range(&dn, 1); in do_recover_data()
420 err = reserve_new_block(&dn); in do_recover_data()
429 err = reserve_new_block(&dn); in do_recover_data()
435 err = check_index_in_prev_nodes(sbi, dest, &dn); in do_recover_data()
440 f2fs_replace_block(sbi, &dn, src, dest, in do_recover_data()
446 if (IS_INODE(dn.node_page)) in do_recover_data()
447 sync_inode_page(&dn); in do_recover_data()
449 copy_node_footer(dn.node_page, page); in do_recover_data()
450 fill_node_footer(dn.node_page, dn.nid, ni.ino, in do_recover_data()
452 set_page_dirty(dn.node_page); in do_recover_data()
454 f2fs_put_dnode(&dn); in do_recover_data()