X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=second%2Ffs_of.c;h=7a22117b2e6f41176f7feaf583e95e3d87c091f2;hb=4d075ad792d6f99502a863a71d820658915dfcc1;hp=d9caa3226be9b24a29779354cf6fded84b193fb9;hpb=b58b7f84f40f96f61a1d5fc1f88a1abd9c1a4193;p=yaboot.git diff --git a/second/fs_of.c b/second/fs_of.c index d9caa32..7a22117 100644 --- a/second/fs_of.c +++ b/second/fs_of.c @@ -39,12 +39,14 @@ #include "prom.h" #include "string.h" #include "partition.h" +#include "fdisk-part.h" #include "fs.h" #include "errors.h" #include "debug.h" #define LOAD_BUFFER_POS 0x600000 -#define LOAD_BUFFER_SIZE 0x400000 +/* this cannot be safely increased any further */ +#define LOAD_BUFFER_SIZE 0x600000 static int of_open(struct boot_file_t* file, const char* dev_name, struct partition_t* part, const char* file_name); @@ -88,6 +90,13 @@ of_open(struct boot_file_t* file, const char* dev_name, DEBUG_ENTER; DEBUG_OPEN; + if (part->sys_ind == LINUX_RAID) + { + DEBUG_F("skipping because partition is marked LINUX_RAID\n"); + DEBUG_LEAVE(FILE_ERR_BAD_FSYS); + return FILE_ERR_BAD_FSYS; + } + strncpy(buffer, dev_name, 768); strcat(buffer, ":"); if (part) {