| From b9d4efbe7f9c675fb7571cee52d87bc33fb17788 Mon Sep 17 00:00:00 2001 |
| From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| Date: Fri, 16 Mar 2018 15:00:50 +0100 |
| Subject: [PATCH] Revert "btrfs: use proper endianness accessors for |
| super_copy" |
| |
| This reverts commit 3c181c12c431fe33b669410d663beb9cceefcd1b as it |
| causes breakage on big endian systems with btrfs images. |
| |
| Reported-by: Christoph Biedl <linux-kernel.bfrz@manchmal.in-ulm.de> |
| Cc: Anand Jain <anand.jain@oracle.com> |
| Cc: Liu Bo <bo.li.liu@oracle.com> |
| Cc: David Sterba <dsterba@suse.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| fs/btrfs/sysfs.c | 8 +++++--- |
| fs/btrfs/transaction.c | 20 ++++++++------------ |
| 2 files changed, 13 insertions(+), 15 deletions(-) |
| |
| --- a/fs/btrfs/sysfs.c |
| +++ b/fs/btrfs/sysfs.c |
| @@ -422,7 +422,7 @@ static ssize_t btrfs_nodesize_show(struc |
| { |
| struct btrfs_fs_info *fs_info = to_fs_info(kobj); |
| |
| - return snprintf(buf, PAGE_SIZE, "%u\n", fs_info->nodesize); |
| + return snprintf(buf, PAGE_SIZE, "%u\n", fs_info->super_copy->nodesize); |
| } |
| |
| BTRFS_ATTR(nodesize, btrfs_nodesize_show); |
| @@ -432,7 +432,8 @@ static ssize_t btrfs_sectorsize_show(str |
| { |
| struct btrfs_fs_info *fs_info = to_fs_info(kobj); |
| |
| - return snprintf(buf, PAGE_SIZE, "%u\n", fs_info->sectorsize); |
| + return snprintf(buf, PAGE_SIZE, "%u\n", |
| + fs_info->super_copy->sectorsize); |
| } |
| |
| BTRFS_ATTR(sectorsize, btrfs_sectorsize_show); |
| @@ -442,7 +443,8 @@ static ssize_t btrfs_clone_alignment_sho |
| { |
| struct btrfs_fs_info *fs_info = to_fs_info(kobj); |
| |
| - return snprintf(buf, PAGE_SIZE, "%u\n", fs_info->sectorsize); |
| + return snprintf(buf, PAGE_SIZE, "%u\n", |
| + fs_info->super_copy->sectorsize); |
| } |
| |
| BTRFS_ATTR(clone_alignment, btrfs_clone_alignment_show); |
| --- a/fs/btrfs/transaction.c |
| +++ b/fs/btrfs/transaction.c |
| @@ -1722,23 +1722,19 @@ static void update_super_roots(struct bt |
| |
| super = fs_info->super_copy; |
| |
| - /* update latest btrfs_super_block::chunk_root refs */ |
| root_item = &fs_info->chunk_root->root_item; |
| - btrfs_set_super_chunk_root(super, root_item->bytenr); |
| - btrfs_set_super_chunk_root_generation(super, root_item->generation); |
| - btrfs_set_super_chunk_root_level(super, root_item->level); |
| + super->chunk_root = root_item->bytenr; |
| + super->chunk_root_generation = root_item->generation; |
| + super->chunk_root_level = root_item->level; |
| |
| - /* update latest btrfs_super_block::root refs */ |
| root_item = &fs_info->tree_root->root_item; |
| - btrfs_set_super_root(super, root_item->bytenr); |
| - btrfs_set_super_generation(super, root_item->generation); |
| - btrfs_set_super_root_level(super, root_item->level); |
| - |
| + super->root = root_item->bytenr; |
| + super->generation = root_item->generation; |
| + super->root_level = root_item->level; |
| if (btrfs_test_opt(fs_info, SPACE_CACHE)) |
| - btrfs_set_super_cache_generation(super, root_item->generation); |
| + super->cache_generation = root_item->generation; |
| if (test_bit(BTRFS_FS_UPDATE_UUID_TREE_GEN, &fs_info->flags)) |
| - btrfs_set_super_uuid_tree_generation(super, |
| - root_item->generation); |
| + super->uuid_tree_generation = root_item->generation; |
| } |
| |
| int btrfs_transaction_in_commit(struct btrfs_fs_info *info) |