[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Changing node alignment



On Tue, 25 Jun 2002 Sami.Liedes@xxxxxxx.fi wrote:

> Eep. Block 0x004a0000 taken from free_list had free_size of 0x0001fff0!!

Here we expect a clean block from the free_list to have _only_ a 12-byte 
'cleanmarker' node on it, but of course it takes 16 bytes now. 
Stick a PAD() around the sizeof(struct jffs2_unknown_node) in the check.

> mtd->write(mtd,0x6e0088,68,&retlen,buf)
> mtd->write(mtd,0x6e00cc,8,&retlen,buf)
> mtd: uneven page boundary write
> Write of 76 bytes at 0x004a0088 failed. returned 0, retlen 68

You need to implement a proper writev() function for your flash. JFFS2 
will only write PAD-aligned nodes, but it will write them using writev() 
with unaligned and variable-length vecs, and if your flash driver doesn't 
provide its own writev() then JFFS2 will just fall through to multiple 
write() calls -- some of which will _not_ be aligned nicely.

I wonder if you'd do better to use the wbuf support that we already have 
for NAND flash, though?

-- 
dwmw2


To unsubscribe from this list: send the line "unsubscribe jffs-dev" in
the body of a message to majordomo@xxxxxxx.com