]> Zhao Yanbai Git Server - minix.git/commitdiff
Fixed bug that caused booting being aborted in some cases (e.g. after ls).
authorBen Gras <ben@minix3.org>
Wed, 20 Jul 2005 15:16:53 +0000 (15:16 +0000)
committerBen Gras <ben@minix3.org>
Wed, 20 Jul 2005 15:16:53 +0000 (15:16 +0000)
boot/bootimage.c

index 78db1843ad10386e5350b28b20e8140a4645aa4e..361b55026549317330962e5149d723e433725faf 100755 (executable)
@@ -273,7 +273,8 @@ char *get_sector(u32_t vsec)
 {
        u32_t sec;
        int r;
-       static char buf[32 * SECTOR_SIZE];
+#define SECBUFS 16
+       static char buf[SECBUFS * SECTOR_SIZE];
        static size_t count;            /* Number of sectors in the buffer. */
        static u32_t bufsec;            /* First Sector now in the buffer. */
 
@@ -298,7 +299,7 @@ char *get_sector(u32_t vsec)
        bufsec= sec;
 
        /* Read a whole track if possible. */
-       while (++count < 32 && !dev_boundary(bufsec + count)) {
+       while (++count < SECBUFS && !dev_boundary(bufsec + count)) {
                vsec++;
                if ((sec= (*vir2sec)(vsec)) == -1) break;
 
@@ -641,7 +642,7 @@ char *select_image(char *image)
        image= strcpy(malloc((strlen(image) + 1 + NAME_MAX + 1)
                                                 * sizeof(char)), image);
 
-       if (fsok == -1) fsok= r_super(&block_size) != 0;
+       fsok= r_super(&block_size) != 0;
        if (!fsok || (image_ino= r_lookup(ROOT_INO, image)) == 0) {
                char *size;