return;
}
-static int
+static void
clear_dinode_unlinked(xfs_mount_t *mp, xfs_dinode_t *dino)
{
- if (be32_to_cpu(dino->di_next_unlinked) != NULLAGINO) {
- if (!no_modify)
- dino->di_next_unlinked = cpu_to_be32(NULLAGINO);
- return(1);
- }
-
- return(0);
+ dino->di_next_unlinked = cpu_to_be32(NULLAGINO);
}
/*
* this clears the unlinked list too so it should not be called
* until after the agi unlinked lists are walked in phase 3.
- * returns > zero if the inode has been altered while being cleared
*/
static void
clear_dinode(xfs_mount_t *mp, xfs_dinode_t *dino, xfs_ino_t ino_num)
return 1;
}
- /*
- * verify that the blocks listed in the record
- * are multiples of an extent
- */
- if (xfs_sb_version_hasextflgbit(&mp->m_sb) == 0 &&
- (irec->br_startblock % mp->m_sb.sb_rextsize != 0 ||
- irec->br_blockcount % mp->m_sb.sb_rextsize != 0)) {
- do_warn(
-_("malformed rt inode extent [%" PRIu64 " %" PRIu64 "] (fs rtext size = %u)\n"),
- irec->br_startblock,
- irec->br_blockcount,
- mp->m_sb.sb_rextsize);
- return 1;
- }
-
/*
* set the appropriate number of extents
* this iterates block by block, this can be optimised using extents
for (b = irec->br_startblock; b < irec->br_startblock +
irec->br_blockcount; b += mp->m_sb.sb_rextsize) {
ext = (xfs_rtblock_t) b / mp->m_sb.sb_rextsize;
- pwe = xfs_sb_version_hasextflgbit(&mp->m_sb) &&
- irec->br_state == XFS_EXT_UNWRITTEN &&
+ pwe = irec->br_state == XFS_EXT_UNWRITTEN &&
(b % mp->m_sb.sb_rextsize != 0);
if (check_dups == 1) {
struct xfs_buf *bp;
xfs_filblks_t dqchunklen;
uint dqperchunk;
- int quota_type;
- char *quota_string;
+ int quota_type = 0;
+ char *quota_string = NULL;
xfs_dqid_t dqid;
xfs_fileoff_t qbno;
int i;
* we're going to find. check_dups is set to 1 only during
* phase 4. Ugly.
*/
- if (check_dups && !no_modify) {
- clear_dinode_unlinked(mp, dino);
- *dirty += 1;
+ if (check_dups && be32_to_cpu(dino->di_next_unlinked) != NULLAGINO) {
+ if (no_modify) {
+ do_warn(
+ _("Would clear next_unlinked in inode %" PRIu64 "\n"), lino);
+ } else {
+ clear_dinode_unlinked(mp, dino);
+ do_warn(
+ _("Cleared next_unlinked in inode %" PRIu64 "\n"), lino);
+ *dirty += 1;
+ }
}
/* set type and map type info */