This patch fixes a problem with recognizing wrapped HFS+ volumes. This patch will eliminate the problem of seeing the file Where_have_all_my_files_gone? when listing the contents of a volume.
Index: trunk/openbios-devel/fs/hfsplus/hfsp_volume.c
===================================================================
--- trunk/openbios-devel/fs/hfsplus/hfsp_volume.c (revision 1075)
+++ trunk/openbios-devel/fs/hfsplus/hfsp_volume.c (working copy)
@@ -305,13 +305,14 @@
{
UInt16 *vol;
int ret = 0;
+ #define wrapper_offset 0x3e
vol = (UInt16 *)malloc(2 * 1 << HFSP_BLOCKSZ_BITS);
os_seek_offset( fd, 2 * (1 << HFSP_BLOCKSZ_BITS) + offset );
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[wrapper_offset]) == HFSP_VOLHEAD_SIG) {
ret = -1;
} else if (__be16_to_cpu(vol[0]) == HFSP_VOLHEAD_SIG) {
ret = -1;