Johannes Hirte wrote:
Am Freitag 11 Dezember 2009 12:17:29 schrieb Edward Shishkin:
Johannes Hirte wrote:
Am Freitag 11 Dezember 2009 00:15:46 schrieb Johannes Hirte:
Am Freitag 25 September 2009 00:06:23 schrieb Edward Shishkin:
Hello everyone.
...

The following patches are for Fedora 10(**).
The distro-independent package will be put to kernel.org a bit later.


All comments, bugreports, etc. are welcome as usual.
Ok, I have another comment/bugreport *g*.

I'm testing this patch with gentoo, so the grub sources are not identicaly
 the same. With this patches applied, grub is unable to detect JFS or XFS
 filesystems. XFS is reported as unknown, JFS is reported as btrfs.
 Reiserfs and ext2/3 are detected as expected.
Yes, this patch is for Fedora. For other distros
some issues are possible, so please be careful..

I've also tested now with the fedora sources. There is the same bug. The btrfs
patch breaks the filesystem detection. All filesystems after btrfs in fsys_table aren't detected. Moving btrfs to the end of fsys_table is a workaround but will
interfere with FFS. So this should better be fixed in the btrfs-part of grub,
so that it:

a) doesn't missdetect a JFS filesystem as btrfs
b) doesn't break the detection for remaining filesystems in the array.

Hello.

Yes, I confirm that xfs, etc. file systems are not detected,
but missdetection jfs as btrfs looks rather fantastic :)

Please, try the attached patch. Report if any problems.

Thanks,
Edward.
Problem:
XFS, JFS, etc. file systems of the fsys_table are not
detected by grub with grub-0.97-btrfs.patch applied.

BUG:
btrfs_mount() sets ERR_FSYS_MOUNT to the global variable
errnum if no btrfs metadata were found on a partition.
As the result all next calls of devread() (and, hence,
attempts to find metadata of other file systems) failed.

Solution:
Don't set ERR_FSYS_MOUNT, if btrfs metadata were found,
just return 0.

Signed-off-by: Edward Shishkin <edw...@redhat.com>
---
 stage2/fsys_btrfs.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- grub-0.97.orig/stage2/fsys_btrfs.c
+++ grub-0.97/stage2/fsys_btrfs.c
@@ -638,7 +638,7 @@ int btrfs_mount(void)
        if (ret) {
                btrfs_msg("Drive %lu, partition %lu: no Btrfs metadata\n",
                          current_drive, part_start);
-               goto error;
+               return 0;
        }
        ret = btrfs_uptodate_super_copy(BTRFS_FS_INFO);
        if (ret)

Reply via email to