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.


signed-off-by: John Arbuckle <programmingkidx@gmail.com>

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;