[PATCH] reiserfs endianness: comp_short_keys() cleanup
comp_short_keys() massaged into sane form, which kills the last place where pointer to in_core_key (or any object containing such) would be cast to or from something else. At that point we are free to change layout of in_core_key - nothing depends on it anymore. So we drop the mess with union in there and simply use (unconditional) __u64 k_offset and __u8 k_type instead; places using in_core_key switched to those. That gives _far_ better code than current mess - on all platforms. Signed-off-by: Al Viro <viro@parcelfarce.linux.theplanet.co.uk> Cc: <reiserfs-dev@namesys.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
@@ -218,8 +218,8 @@ static int finish_unfinished (struct super_block * s)
|
||||
item = B_I_PITEM (bh, ih);
|
||||
obj_key.on_disk_key.k_dir_id = le32_to_cpu (*(__le32 *)item);
|
||||
obj_key.on_disk_key.k_objectid = le32_to_cpu (ih->ih_key.k_objectid);
|
||||
obj_key.on_disk_key.u.k_offset_v1.k_offset = 0;
|
||||
obj_key.on_disk_key.u.k_offset_v1.k_uniqueness = 0;
|
||||
obj_key.on_disk_key.k_offset = 0;
|
||||
obj_key.on_disk_key.k_type = 0;
|
||||
|
||||
pathrelse (&path);
|
||||
|
||||
|
Reference in New Issue
Block a user