Messages in this thread Patch in this message | | | Subject | isofs patch for (bad?) CD-R's | Date | Fri, 11 Jun 1999 11:10:26 -0400 | From | Humberto Ortiz Zuazaga <> |
| |
I need someone who actually knows what they're doing to look over this (trivial) patch.
I need this patch to be able to read CD-R disks recorded on a Win98 machine with a HP CD-Writer+ 8100, by dragging and dropping files onto the disk in explorer. Of course, Windows has no problem reading the disk.
With the stock isofs module in redhat 5.2, upgraded with kernel 2.0.36, listing certain directories with large (25MB) files resulted in a bunch of:
isofs_read_level3_size: More than 100 file sections ?!?, aborting...
messages. The reported file sizes for these files were also too low. Copying the files also generate the same errors, and the resulting files are too short.
I raised the threshold for aborting to 200, and the errors still occurred, at 500 they no longer occur on the test disk I have. I also tested with the threshold set at 10000, without problems. I'm not certain what bad effects (long read times for bad CD's?) raising the threshold further may have.
Here's a patch against 2.3.5, but 2.0 kernels need a slightly different one.
--- linux-2.3.5/fs/isofs/inode.c Wed May 26 13:01:43 1999 +++ linux/fs/isofs/inode.c Fri Jun 11 10:42:18 1999 @@ -976,8 +976,8 @@ nextino = ino->u.isofs_i.i_next_section_ino; iput(ino); - if(++i > 100) { - printk("isofs_bmap: More than 100 file sections ?!?, aborting...\n"); + if(++i > 1000) { + printk("isofs_bmap: More than 1000 file sections ?!?, aborting...\n"); printk("isofs_bmap: ino=%lu block=%d firstext=%u size=%u nextino=%lu\n", inode->i_ino, block, firstext, (unsigned)size, nextino); return 0; @@ -1067,7 +1067,7 @@ if (cpnt) kfree (cpnt); i++; - if(i > 100) + if(i > 1000) goto out_toomany; } while(raw_inode->flags[-high_sierra] & 0x80); out: @@ -1085,7 +1085,7 @@ return 1; out_toomany: printk(KERN_INFO "isofs_read_level3_size: " - "More than 100 file sections ?!?, aborting...\n" + "More than 1000 file sections ?!?, aborting...\n" "isofs_read_level3_size: inode=%lu ino=%lu\n", inode->i_ino, ino); goto out;
-- Humberto Ortiz Zuazaga Bioinformatics Specialist Institute of Neurobiology hortiz@neurobio.upr.clu.edu
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |