summaryrefslogtreecommitdiff
path: root/volumes.c
diff options
context:
space:
mode:
authorArne Jansen <sensille@gmx.net>2012-10-21 16:34:33 +0200
committerDavid Sterba <dsterba@suse.cz>2013-01-17 18:27:53 +0100
commit0b0a954e4383d2074c499523e2aa89527e5ac053 (patch)
treefdf81a3192e0fdfb6e444130f1f3edcf243345b8 /volumes.c
parentbb2cfccf81691af1db5519cb1f4eb4abfbafbf9f (diff)
Btrfs-progs: fix unaligned accesses
There are some unaligned accesses in progs that cause malfunction or crashes on ARM. This patch fixes the ones we stumbled upon. Signed-off-by: Arne Jansen <sensille@gmx.net>
Diffstat (limited to 'volumes.c')
-rw-r--r--volumes.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/volumes.c b/volumes.c
index 8dca5e10..581c298f 100644
--- a/volumes.c
+++ b/volumes.c
@@ -652,6 +652,7 @@ int btrfs_alloc_chunk(struct btrfs_trans_handle *trans,
int index;
int stripe_len = 64 * 1024;
struct btrfs_key key;
+ u64 offset;
if (list_empty(dev_list)) {
return -ENOSPC;
@@ -757,12 +758,13 @@ again:
}
return -ENOSPC;
}
- key.objectid = BTRFS_FIRST_CHUNK_TREE_OBJECTID;
- key.type = BTRFS_CHUNK_ITEM_KEY;
ret = find_next_chunk(chunk_root, BTRFS_FIRST_CHUNK_TREE_OBJECTID,
- &key.offset);
+ &offset);
if (ret)
return ret;
+ key.objectid = BTRFS_FIRST_CHUNK_TREE_OBJECTID;
+ key.type = BTRFS_CHUNK_ITEM_KEY;
+ key.offset = offset;
chunk = kmalloc(btrfs_chunk_item_size(num_stripes), GFP_NOFS);
if (!chunk)