Lines Matching full:dn
490 block_t blkaddr, struct dnode_of_data *dn) in check_index_in_prev_nodes() argument
498 struct dnode_of_data tdn = *dn; in check_index_in_prev_nodes()
530 max_addrs = ADDRS_PER_PAGE(dn->node_folio, dn->inode); in check_index_in_prev_nodes()
533 ofs_in_node, dn->inode->i_ino, nid, max_addrs); in check_index_in_prev_nodes()
538 if (dn->inode->i_ino == nid) { in check_index_in_prev_nodes()
540 if (!dn->inode_folio_locked) in check_index_in_prev_nodes()
541 folio_lock(dn->inode_folio); in check_index_in_prev_nodes()
542 tdn.node_folio = dn->inode_folio; in check_index_in_prev_nodes()
545 } else if (dn->nid == nid) { in check_index_in_prev_nodes()
559 if (ino != dn->inode->i_ino) { in check_index_in_prev_nodes()
573 inode = dn->inode; in check_index_in_prev_nodes()
583 if (ino == dn->inode->i_ino && dn->inode_folio_locked) in check_index_in_prev_nodes()
584 folio_unlock(dn->inode_folio); in check_index_in_prev_nodes()
595 if (ino != dn->inode->i_ino) in check_index_in_prev_nodes()
597 else if (dn->inode_folio_locked) in check_index_in_prev_nodes()
598 folio_lock(dn->inode_folio); in check_index_in_prev_nodes()
604 if (dn->inode->i_ino == nid && !dn->inode_folio_locked) in check_index_in_prev_nodes()
605 folio_unlock(dn->inode_folio); in check_index_in_prev_nodes()
609 static int f2fs_reserve_new_block_retry(struct dnode_of_data *dn) in f2fs_reserve_new_block_retry() argument
614 err = f2fs_reserve_new_block(dn); in f2fs_reserve_new_block_retry()
625 struct dnode_of_data dn; in do_recover_data() local
654 set_new_dnode(&dn, inode, NULL, NULL, 0); in do_recover_data()
656 err = f2fs_get_dnode_of_data(&dn, start, ALLOC_NODE); in do_recover_data()
665 f2fs_folio_wait_writeback(dn.node_folio, NODE, true, true); in do_recover_data()
667 err = f2fs_get_node_info(sbi, dn.nid, &ni, false); in do_recover_data()
673 if (ofs_of_node(dn.node_folio) != ofs_of_node(folio)) { in do_recover_data()
675 inode->i_ino, ofs_of_node(dn.node_folio), in do_recover_data()
682 for (index = start; index < end; index++, dn.ofs_in_node++) { in do_recover_data()
685 src = f2fs_data_blkaddr(&dn); in do_recover_data()
686 dest = data_blkaddr(dn.inode, folio, dn.ofs_in_node); in do_recover_data()
706 f2fs_truncate_data_blocks_range(&dn, 1); in do_recover_data()
720 f2fs_truncate_data_blocks_range(&dn, 1); in do_recover_data()
722 err = f2fs_reserve_new_block_retry(&dn); in do_recover_data()
731 err = f2fs_reserve_new_block_retry(&dn); in do_recover_data()
737 err = check_index_in_prev_nodes(sbi, dest, &dn); in do_recover_data()
749 dest, inode->i_ino, dn.ofs_in_node); in do_recover_data()
755 f2fs_replace_block(sbi, &dn, src, dest, in do_recover_data()
761 copy_node_footer(dn.node_folio, folio); in do_recover_data()
762 fill_node_footer(dn.node_folio, dn.nid, ni.ino, in do_recover_data()
764 folio_mark_dirty(dn.node_folio); in do_recover_data()
766 f2fs_put_dnode(&dn); in do_recover_data()