On Tue, Oct 25, 2016 at 06:13:09PM -0700, Darrick J. Wong wrote: > On Wed, Oct 26, 2016 at 11:49:20AM +1100, Dave Chinner wrote: > > On Tue, Oct 25, 2016 at 04:04:39PM -0700, Darrick J. Wong wrote: > > > Do some basic checks of the refcount btree. xfs_repair will have to > > > check that the reference counts match the various bmbt mappings. > > > > > > Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> > > ..... > > > @@ -1561,10 +1597,15 @@ check_set_dbmap( > > > agbno, agbno + len - 1, c_agno, c_agbno); > > > return; > > > } > > > - check_dbmap(agno, agbno, len, type1); > > > + check_dbmap(agno, agbno, len, type1, is_reflink(type2)); > > > mayprint = verbose | blist_size; > > > for (i = 0, p = &dbmap[agno][agbno]; i < len; i++, p++) { > > > - *p = (char)type2; > > > + if (*p == DBM_RLDATA && type2 == DBM_DATA) > > > + ; /* do nothing */ > > > + if (*p == DBM_DATA && type2 == DBM_DATA) > > > + *p = (char)DBM_RLDATA; > > > + else > > > + *p = (char)type2; > > > > What this /* do nothing */ case for? > > Handles the case that a data block with multiple owners encounters > another owner. The second case in the block handles the case that > a data block with a single owner encounters a second owner. > > (Assuming you're prodding me to add a comment, I'll go do that.) Ah, no, I'm asking why you added dead code: if (foo) ; if (bar) .... else .... the "if (foo) ;" case is dead code - it doesn't need to exist. Did you mean this: if (foo) ; else if (bar) .... else .... Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe linux-xfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html