btrfs-progs: fix endian bug in update_super()
authorByongho Lee <bhlee.kernel@gmail.com>
Mon, 4 Jan 2016 01:01:33 +0000 (10:01 +0900)
committerDavid Sterba <dsterba@suse.com>
Tue, 12 Jan 2016 14:01:05 +0000 (15:01 +0100)
In update_super() 'chunk->stripe.devid' and 'super->dev_item.devid' both
are little endian. So we should not use endian helper
btrfs_set_stack_stripe_devid().

Signed-off-by: Byongho Lee <bhlee.kernel@gmail.com>
Signed-off-by: David Sterba <dsterba@suse.com>
btrfs-image.c

index 4a0a7c5..bb1f635 100644 (file)
@@ -1464,8 +1464,7 @@ static int update_super(struct mdrestore_struct *mdres, u8 *buffer)
                        btrfs_set_stack_chunk_sub_stripes(chunk, 0);
                        btrfs_set_stack_chunk_type(chunk,
                                                   BTRFS_BLOCK_GROUP_SYSTEM);
-                       btrfs_set_stack_stripe_devid(&chunk->stripe,
-                                                    super->dev_item.devid);
+                       chunk->stripe.devid = super->dev_item.devid;
                        physical = logical_to_physical(mdres, key.offset,
                                                       &size);
                        if (size != (u64)-1)