This looks good to me, Reviewed-by: Carlos Maiolino <cmaiolino@xxxxxxxxxx> On Mon, Oct 07, 2013 at 12:35:16PM -0500, Eric Sandeen wrote: > Commit e0607266 xfsprogs: add crc format support to repair > > added a 2nd assignment to l_sectBBsize: > > log.l_sectBBsize = 1 << mp->m_sb.sb_logsectlog; > > which is incorrect; sb_logsectlog is log2 of the sector size, > in bytes; l_sectBBsize is the size of the log sector in > 512-byte units. > > So for a 4k sector size log, we were assigning 4096 rather > than 8. This broke xlog_find_tail, and caused xfs_repair > to think that a log was dirty even when it was clean: > > "ERROR: The filesystem has valuable metadata changes in a log" > > (xfs_logprint didn't have this error, so xfs_logprint -t > agreed that the filesystem really was clean). > > Just remove the incorrect assignment; it was already properly > assigned about 12 lines prior: > > log.l_sectBBsize = BTOBB(x.lbsize); > > and things work again. > > (This worked accidentally for 512-sector devices, because > we special-case those and set sb_logsectlog to "0" rather > than 9, so l_sectBBsize came out to "1" (as in 1 sector), > as it should have). > > Reporteed-by: Markus Trippelsdorf <markus@xxxxxxxxxxxxxxx> > Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx> > --- > > diff --git a/repair/phase2.c b/repair/phase2.c > index a62854e..2817fed 100644 > --- a/repair/phase2.c > +++ b/repair/phase2.c > @@ -64,7 +64,6 @@ zero_log(xfs_mount_t *mp) > ASSERT(mp->m_sb.sb_logsectlog >= BBSHIFT); > } > log.l_sectbb_mask = (1 << log.l_sectbb_log) - 1; > - log.l_sectBBsize = 1 << mp->m_sb.sb_logsectlog; > > if ((error = xlog_find_tail(&log, &head_blk, &tail_blk))) { > do_warn(_("zero_log: cannot find log head/tail " > > _______________________________________________ > xfs mailing list > xfs@xxxxxxxxxxx > http://oss.sgi.com/mailman/listinfo/xfs -- Carlos _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs