Re: [PATCH] Btrfs: fix unaligned access at btrfs_csum_final()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Mar 23, 2010 at 11:34:20AM -0400, Chris Mason wrote:
> On Mon, Mar 22, 2010 at 02:31:08AM +0300, Alexander Beregalov wrote:
> > Btrfs on Sparc64 produces a lot of warnings
> > Kernel unaligned access at TPC[10148c84] btrfs_csum_final+0x44/0x60 [btrfs]
> 
> Great, thanks for trackign this down.
> 
> > 
> > It happens when btrfs_csum_final is called from write_dev_supers():
> > 2195:	btrfs_csum_final(crc, sb->csum);
> > 
> > crc is u32, aligning sb->csum on 4-byte boundary fixes the problem.
> 
> So the size of the csum field is already 4 byte aligned, I'm surprised
> we need this?

Jens did some testing and this patch changes the size of the super
struct, which changes things on disk.

But, the real problem is write_dev_supers operates on a copy of the
super struct and that copy isn't aligned.  So we just need to align the
copy in struct btrfs_fs_info, which Jens should have a neat little patch
for shortly.

So we should finally have this one fixed up shortly.  Thanks again.

-chris

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystem Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux