Fwiw, I took a little closer look at the squashfs code. I still don't
quite understand it, but I sprinkled some printk()'s and got a better
idea of what is happening.

With a root.squashfs of 6428672 bytes, we get the error in a call:

  
squashfs_read_data(sb=(ptrval),index=0,length=6427986,next_index=16777224,output=
  (null))

it enters the loop at fs/squashfs/block.c:122 with b=0; bytes=-338; length=8; 
cur_index=0

    for (b = 0; bytes < length; b++, cur_index++) {
        bh[b] = sb_getblk(sb, cur_index);
        if (bh[b] == NULL)
            goto block_release;

sb_getblk() must return NULL, because it goes to block_release and falls
through to print the error message and exits with an error.


-- 
Russell Senior, President
[email protected]

_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to