Blame grub-0.95-ext2-sparse.patch

abdcfd5
Index: grub/stage2/fsys_ext2fs.c
abdcfd5
diff -u grub/stage2/fsys_ext2fs.c:1.13 grub/stage2/fsys_ext2fs.c:1.14
abdcfd5
--- grub/stage2/fsys_ext2fs.c:1.13	Tue Dec 30 12:36:13 2003
abdcfd5
+++ grub/stage2/fsys_ext2fs.c	Sat Aug  7 06:48:58 2004
abdcfd5
@@ -432,12 +432,16 @@
abdcfd5
       if (size > len)
abdcfd5
 	size = len;
abdcfd5
 
abdcfd5
-      disk_read_func = disk_read_hook;
abdcfd5
+      if (map == 0) {
abdcfd5
+        memset ((char *) buf, 0, size);
abdcfd5
+      } else {
abdcfd5
+        disk_read_func = disk_read_hook;
abdcfd5
 
abdcfd5
-      devread (map * (EXT2_BLOCK_SIZE (SUPERBLOCK) / DEV_BSIZE),
abdcfd5
-	       offset, size, buf);
abdcfd5
+        devread (map * (EXT2_BLOCK_SIZE (SUPERBLOCK) / DEV_BSIZE),
abdcfd5
+	         offset, size, buf);
abdcfd5
 
abdcfd5
-      disk_read_func = NULL;
abdcfd5
+        disk_read_func = NULL;
abdcfd5
+      }
abdcfd5
 
abdcfd5
       buf += size;
abdcfd5
       len -= size;