OK, fine. If this is the case, then this section of code should
have
been executed:
if (de_len == 0) {
brelse(bh);
filp->f_pos = ((filp->f_pos & ~(ISOFS_BLOCK_SIZE -
1))
+ ISOFS_BLOCK_SIZE);
offset = 0;
block = isofs_bmap(inode, (filp->f_pos) >> bufbits);
if (!block)
return 0;
bh = breada(inode->i_dev, block, bufsize,
filp->f_pos, inode->i_size);
if (!bh)
return 0;
continue;
}
which should be doing exactly the same thing that the code you added
is doing.
-Eric
-- "The woods are lovely, dark and deep. But I have promises to keep, And lines to code before I sleep, And lines to code before I sleep."