Nitpick: why hoist here and refactor in the previous patches subject? > + xfs_agino_t target_agino, > + xfs_ino_t *ino, > + struct xfs_imap *imap, > + struct xfs_dinode **dipp, > + struct xfs_buf **bpp) > +{ > + struct xfs_imap last_imap; > + struct xfs_mount *mp = tp->t_mountp; > + struct xfs_buf *last_ibp = NULL; > + struct xfs_dinode *last_dip; > + xfs_ino_t next_ino = NULLFSINO; > + xfs_agino_t next_agino; > + int error; > + > + ASSERT(head_agino != target_agino); > + > + next_agino = head_agino; > + while (next_agino != target_agino) { > + xfs_agino_t unlinked_agino; > + > + if (last_ibp) > + xfs_trans_brelse(tp, last_ibp); > + > + next_ino = XFS_AGINO_TO_INO(mp, pag->pag_agno, next_agino); > + error = xfs_iunlink_map_ino(tp, next_ino, &last_imap, > + &last_dip, &last_ibp); And reason we stop formatting directly into the passed in imap, as the old code did?