grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Split of raid scan code


From: Bean
Subject: Re: [PATCH] Split of raid scan code
Date: Sat, 16 Aug 2008 17:07:00 +0800

Hi,

This new patch seperates raid5 and raid6 recover code from raid.c, and
place them in module raid5rec.mod and raid6rec.mod. The recover code
is only needed when some of the disk are missing or corrupted, which
is not common. But raid.c is installed to mbr, so size is important.
If there is enough room in mbr for the extra module, they can use
--modules option in grub-install to add these modules.

2008-08-16  Bean  <address@hidden>

        * conf/common.rmk (grub_probe_SOURCES): Add disk/mdraid_linux.c.
        (grub_fstest_SOURCES): Add disk/raid5_recover.c, disk/raid6_recover.c,
        disk/mdraid_linux.c and disk/dmraid_nvidia.c.
        (pkglib_MODULES): Add raid5rec.mod, raid6rec.mod, mdraid.mod and
        dm_nv.mod.
        (raid5rec_mod_SOURCES): New macro.
        (raid5rec_mod_CFLAGS): Likewise.
        (raid5rec_mod_LDFLAGS): Likewise.
        (raid6rec_mod_SOURCES): Likewise.
        (raid6rec_mod_CFLAGS): Likewise.
        (raid6rec_mod_LDFLAGS): Likewise.
        (mdraid_mod_SOURCES): Likewise.
        (mdraid_mod_CFLAGS): Likewise.
        (mdraid_mod_LDFLAGS): Likewise.
        (dm_nv_mod_SOURCES): Likewise.
        (dm_nv_mod_CFLAGS): Likewise.
        (dm_nv_mod_LDFLAGS): Likewise.

        * conf/i386-pc.rmk (grub_setup_SOURCES): Add disk/mdraid_linux.c.
        (grub_emu_SOURCES):  Add disk/raid5_recover.c, disk/raid6_recover.c,
        disk/mdraid_linux.c and disk/dmraid_nvidia.c.

        * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add disk/raid5_recover.c,
        disk/raid6_recover.c, disk/mdraid_linux.c and disk/dmraid_nvidia.c.

        * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.

        * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.

        * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.

        * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.

        * disk/raid5_recover.c: New file.

        * disk/raid6_recover.c: Likewise.

        * disk/mdraid_linux.c: Likewise.

        * disk/dmraid_nvidia.c: Likewise.

        * disk/i386/pc/biosdisk.c: Set total_sectors of cdrom device to
        ULONG_MAX.

        * disk/raid.c (grub_raid_open): Use the size of the smallest disk to
        calculate the size of raid device.
        (grub_raid_read): Simplify raid0 code. Support raid4, raid6 and four
        different layout of raid5.
        (grub_raid_scan_device): Remove code specific to mdraid.
        (grub_raid_list): New variable.
        (free_array): New function.
        (grub_raid_register): Likewise.
        (grub_raid_unregister): Likewise.
        (grub_raid_rescan): Likewise.
        (GRUB_MOD_INIT): Don't iterate device here.
        (GRUB_MOD_FINI): Use free_array to release resource.

        * include/grub/raid.h: Remove macro and structure specific to mdraid.
        (grub_raid5_recover_func_t): New function variable type.
        (grub_raid6_recover_func_t): Likewise.
        (grub_raid5_recover_func): New variable.
        (grub_raid6_recover_func): Likewise.
        (grub_raid_register): New function.
        (grub_raid_unregister): Likewise.
        (grub_raid_rescan): Likewise.
        (grub_raid_block_xor): Likewise.

        * util/grub-fstest.c: Add #include <grub/raid.h>.
        (part): Removed.
        (cmd_hex): Handle partition as well.
        (fstest): Handle multiple disks.
        (options): Remove part, raw and long, add root and diskcount.
        (usage): Change hex, remove -p, -r, -l, add -r and -c.
        (main): Find the first non option entry and ignore subsequence options,
        add handling for the new options, support multiple disks.

        * util/grub-probe.c (probe): Add mdraid to abstraction_name.

-- 
Bean

Attachment: raid_9.diff
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]