diff options
author | Arne Jansen <sensille@gmx.net> | 2012-10-21 16:34:33 +0200 |
---|---|---|
committer | David Sterba <dsterba@suse.cz> | 2013-01-17 18:27:53 +0100 |
commit | 0b0a954e4383d2074c499523e2aa89527e5ac053 (patch) | |
tree | fdf81a3192e0fdfb6e444130f1f3edcf243345b8 /volumes.c | |
parent | bb2cfccf81691af1db5519cb1f4eb4abfbafbf9f (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.c | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -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) |