Changeset 24134


Ignore:
Timestamp:
2010-11-24T17:18:34+01:00 (7 years ago)
Author:
jow
Message:

[package] mtd: fix r24132

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/package/mtd/src/mtd.c

    r24132 r24134  
    520520 
    521521                /* need to erase the next block before writing data to it */ 
    522     if(no_erase) 
    523     { 
    524                 while (w + buflen > e) { 
    525                         if (!quiet) 
    526                                 fprintf(stderr, "\b\b\b[e]"); 
    527  
    528  
    529                         if (mtd_erase_block(fd, e) < 0) { 
    530                                 if (next) { 
    531                                         if (w < e) { 
    532                                                 write(fd, buf + offset, e - w); 
    533                                                 offset = e - w; 
     522                if(!no_erase) 
     523                { 
     524                        while (w + buflen > e) { 
     525                                if (!quiet) 
     526                                        fprintf(stderr, "\b\b\b[e]"); 
     527 
     528 
     529                                if (mtd_erase_block(fd, e) < 0) { 
     530                                        if (next) { 
     531                                                if (w < e) { 
     532                                                        write(fd, buf + offset, e - w); 
     533                                                        offset = e - w; 
     534                                                } 
     535                                                w = 0; 
     536                                                e = 0; 
     537                                                close(fd); 
     538                                                mtd = next; 
     539                                                fprintf(stderr, "\b\b\b   \n"); 
     540                                                goto resume; 
     541                                        } else { 
     542                                                fprintf(stderr, "Failed to erase block\n"); 
     543                                                exit(1); 
    534544                                        } 
    535                                         w = 0; 
    536                                         e = 0; 
    537                                         close(fd); 
    538                                         mtd = next; 
    539                                         fprintf(stderr, "\b\b\b   \n"); 
    540                                         goto resume; 
    541                                 } else { 
    542                                         fprintf(stderr, "Failed to erase block\n"); 
    543                                         exit(1); 
    544545                                } 
     546 
     547                                /* erase the chunk */ 
     548                                e += erasesize; 
    545549                        } 
    546  
    547                         /* erase the chunk */ 
    548                         e += erasesize; 
    549                 } 
    550     } 
     550            } 
    551551 
    552552                if (!quiet) 
     
    666666                                boot = 1; 
    667667                                break; 
    668       case 'n': 
    669         no_erase = 1; 
    670         break; 
     668                        case 'n': 
     669                                no_erase = 1; 
     670                                break; 
    671671                        case 'j': 
    672672                                jffs2file = optarg; 
Note: See TracChangeset for help on using the changeset viewer.