[PATCH 2/5] xfs_repair: fix unaligned accesses

Dave Chinner david at fromorbit.com
Mon Oct 12 19:35:07 CDT 2015


On Fri, Oct 09, 2015 at 04:08:22PM -0400, Brian Foster wrote:
> On Fri, Oct 09, 2015 at 02:51:09PM -0500, Eric Sandeen wrote:
> > This fixes some unaligned accesses spotted by libubsan in repair.
> > 
> > See Documentation/unaligned-memory-access.txt in the kernel
> > tree for why these can be a problem.
> > 
> > Signed-off-by: Eric Sandeen <sandeen at redhat.com>
> > ---
> 
> Reviewed-by: Brian Foster <bfoster at redhat.com>
....
> > @@ -960,15 +960,17 @@ _("bad numrecs 0 in inode %" PRIu64 " bmap btree root block\n"),
> >  		 * btree, we'd do it right here.  For now, if there's a
> >  		 * problem, we'll bail out and presumably clear the inode.
> >  		 */
> > -		if (!verify_dfsbno(mp, be64_to_cpu(pp[i])))  {
> > -			do_warn(_("bad bmap btree ptr 0x%llx in ino %" PRIu64 "\n"),
> > -			       (unsigned long long) be64_to_cpu(pp[i]), lino);
> > +		if (!verify_dfsbno(mp, get_unaligned_be64(&pp[i])))  {
> > +			do_warn(
> > +("bad bmap btree ptr 0x%" PRIx64 " in ino %" PRIu64 "\n"),
> > +				get_unaligned_be64(&pp[i]), lino);

drops the "_" from the translation string. I'll fix it on commit.

/me can't help but think that a local variable or two would make
this code so much more readable....

Cheers,

Dave.
-- 
Dave Chinner
david at fromorbit.com



More information about the xfs mailing list