diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2013-07-01 09:57:25 +0200 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2013-07-01 09:57:25 +0200 |
commit | 24a72acac155576d630cf4304fa9cefb9b62ea1f (patch) | |
tree | 84d09427b319c613512316c658a3f6d6d8fe3dd1 /fs/xfs/xfs_btree.c | |
parent | powerpc/pseries: Inform the hypervisor we are using EBB regs (diff) | |
parent | Linux 3.10 (diff) | |
download | linux-24a72acac155576d630cf4304fa9cefb9b62ea1f.tar.xz linux-24a72acac155576d630cf4304fa9cefb9b62ea1f.zip |
Merge tag 'v3.10' into next
Merge 3.10 in order to get some of the last minute powerpc
changes, resolve conflicts and add additional fixes on top
of them.
Diffstat (limited to 'fs/xfs/xfs_btree.c')
-rw-r--r-- | fs/xfs/xfs_btree.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/fs/xfs/xfs_btree.c b/fs/xfs/xfs_btree.c index 8804b8a3c310..0903960410a2 100644 --- a/fs/xfs/xfs_btree.c +++ b/fs/xfs/xfs_btree.c @@ -2544,7 +2544,17 @@ xfs_btree_new_iroot( if (error) goto error0; + /* + * we can't just memcpy() the root in for CRC enabled btree blocks. + * In that case have to also ensure the blkno remains correct + */ memcpy(cblock, block, xfs_btree_block_len(cur)); + if (cur->bc_flags & XFS_BTREE_CRC_BLOCKS) { + if (cur->bc_flags & XFS_BTREE_LONG_PTRS) + cblock->bb_u.l.bb_blkno = cpu_to_be64(cbp->b_bn); + else + cblock->bb_u.s.bb_blkno = cpu_to_be64(cbp->b_bn); + } be16_add_cpu(&block->bb_level, 1); xfs_btree_set_numrecs(block, 1); |