The code for checking for a wrapped HFS+ volume looks at the wrong offset.
Index: fs/hfsplus/hfsp_volume.c
===================================================================
--- fs/hfsplus/hfsp_volume.c (revision 1041)
+++ fs/hfsplus/hfsp_volume.c (working copy)
@@ -302,7 +302,7 @@
os_read(fd, vol, 2, HFSP_BLOCKSZ_BITS);
if (__be16_to_cpu(vol[0]) == HFS_VOLHEAD_SIG &&
- __be16_to_cpu(vol[0x7c]) == HFSP_VOLHEAD_SIG) {
+ __be16_to_cpu(vol[0x3e]) == HFSP_VOLHEAD_SIG) {
ret = -1;
} else if (__be16_to_cpu(vol[0]) == HFSP_VOLHEAD_SIG) {
ret = -1;