summaryrefslogtreecommitdiff
path: root/ctree.h
diff options
context:
space:
mode:
Diffstat (limited to 'ctree.h')
-rw-r--r--ctree.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/ctree.h b/ctree.h
index 293b24fe..06759896 100644
--- a/ctree.h
+++ b/ctree.h
@@ -1086,15 +1086,19 @@ static inline u##bits btrfs_##name(struct extent_buffer *eb, \
type *s) \
{ \
unsigned long offset = (unsigned long)s; \
+ u##bits m; \
type *p = (type *) (eb->data + offset); \
- return le##bits##_to_cpu(p->member); \
+ memcpy(&m, &p->member, sizeof(m)); \
+ return le##bits##_to_cpu(m); \
} \
static inline void btrfs_set_##name(struct extent_buffer *eb, \
type *s, u##bits val) \
{ \
unsigned long offset = (unsigned long)s; \
+ u##bits m; \
type *p = (type *) (eb->data + offset); \
- p->member = cpu_to_le##bits(val); \
+ m = cpu_to_le##bits(val); \
+ memcpy(&p->member, &m, sizeof(m)); \
}
#define BTRFS_SETGET_STACK_FUNCS(name, type, member, bits) \