From: Keir Fraser Date: Thu, 18 Sep 2008 09:43:08 +0000 (+0100) Subject: pvgrub: Allow to work with a partitionless virtual disc. X-Git-Tag: 3.4.0-rc1~214^2~49 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=b57d0354bfa2d3c3f7f515fee7243f2a68a9c76a;p=people%2Fpauldu%2Fxen.git pvgrub: Allow to work with a partitionless virtual disc. From: Bastian Blank Acked-by: Samuel Thibault Signed-off-by: Keir Fraser --- diff --git a/stubdom/grub.patches/50fs_fulldisk.diff b/stubdom/grub.patches/50fs_fulldisk.diff new file mode 100644 index 0000000000..d0fbb07bc1 --- /dev/null +++ b/stubdom/grub.patches/50fs_fulldisk.diff @@ -0,0 +1,72 @@ +diff -urN grub-0.97.orig/stage2/fsys_ext2fs.c grub-0.97/stage2/fsys_ext2fs.c +--- grub-0.97.orig/stage2/fsys_ext2fs.c 2004-08-08 18:19:18.000000000 +0000 ++++ grub-0.97/stage2/fsys_ext2fs.c 2008-09-16 19:31:15.000000000 +0000 +@@ -254,7 +254,7 @@ + { + int retval = 1; + +- if ((((current_drive & 0x80) || (current_slice != 0)) ++ if ((((current_slice != 0)) + && (current_slice != PC_SLICE_TYPE_EXT2FS) + && (current_slice != PC_SLICE_TYPE_LINUX_RAID) + && (! IS_PC_SLICE_TYPE_BSD_WITH_FS (current_slice, FS_EXT2FS)) +diff -urN grub-0.97.orig/stage2/fsys_fat.c grub-0.97/stage2/fsys_fat.c +--- grub-0.97.orig/stage2/fsys_fat.c 2005-03-15 16:52:00.000000000 +0000 ++++ grub-0.97/stage2/fsys_fat.c 2008-09-16 19:31:26.000000000 +0000 +@@ -70,7 +70,7 @@ + __u32 magic, first_fat; + + /* Check partition type for harddisk */ +- if (((current_drive & 0x80) || (current_slice != 0)) ++ if (((current_slice != 0)) + && ! IS_PC_SLICE_TYPE_FAT (current_slice) + && (! IS_PC_SLICE_TYPE_BSD_WITH_FS (current_slice, FS_MSDOS))) + return 0; +diff -urN grub-0.97.orig/stage2/fsys_ffs.c grub-0.97/stage2/fsys_ffs.c +--- grub-0.97.orig/stage2/fsys_ffs.c 2003-07-09 11:45:52.000000000 +0000 ++++ grub-0.97/stage2/fsys_ffs.c 2008-09-16 19:31:32.000000000 +0000 +@@ -82,7 +82,7 @@ + { + int retval = 1; + +- if ((((current_drive & 0x80) || (current_slice != 0)) ++ if ((((current_slice != 0)) + && ! IS_PC_SLICE_TYPE_BSD_WITH_FS (current_slice, FS_BSDFFS)) + || part_length < (SBLOCK + (SBSIZE / DEV_BSIZE)) + || !devread (SBLOCK, 0, SBSIZE, (char *) SUPERBLOCK) +diff -urN grub-0.97.orig/stage2/fsys_minix.c grub-0.97/stage2/fsys_minix.c +--- grub-0.97.orig/stage2/fsys_minix.c 2003-07-09 11:45:53.000000000 +0000 ++++ grub-0.97/stage2/fsys_minix.c 2008-09-16 19:32:01.000000000 +0000 +@@ -160,7 +160,7 @@ + int + minix_mount (void) + { +- if (((current_drive & 0x80) || current_slice != 0) ++ if ((current_slice != 0) + && ! IS_PC_SLICE_TYPE_MINIX (current_slice) + && ! IS_PC_SLICE_TYPE_BSD_WITH_FS (current_slice, FS_OTHER)) + return 0; /* The partition is not of MINIX type */ +diff -urN grub-0.97.orig/stage2/fsys_ufs2.c grub-0.97/stage2/fsys_ufs2.c +--- grub-0.97.orig/stage2/fsys_ufs2.c 2004-06-19 12:17:52.000000000 +0000 ++++ grub-0.97/stage2/fsys_ufs2.c 2008-09-16 19:32:32.000000000 +0000 +@@ -87,7 +87,7 @@ + sblockloc = -1; + type = 0; + +- if (! (((current_drive & 0x80) || (current_slice != 0)) ++ if (! (((current_slice != 0)) + && ! IS_PC_SLICE_TYPE_BSD_WITH_FS (current_slice, FS_BSDFFS))) + { + for (i = 0; sblock_try[i] != -1; ++i) +diff -urN grub-0.97.orig/stage2/fsys_vstafs.c grub-0.97/stage2/fsys_vstafs.c +--- grub-0.97.orig/stage2/fsys_vstafs.c 2003-07-09 11:45:53.000000000 +0000 ++++ grub-0.97/stage2/fsys_vstafs.c 2008-09-16 19:32:39.000000000 +0000 +@@ -47,7 +47,7 @@ + { + int retval = 1; + +- if( (((current_drive & 0x80) || (current_slice != 0)) ++ if( (((current_slice != 0)) + && current_slice != PC_SLICE_TYPE_VSTAFS) + || ! devread (0, 0, BLOCK_SIZE, (char *) FSYS_BUF) + || FIRST_SECTOR->fs_magic != 0xDEADFACE)