Thank you for your help.

Your document is very interesting. It's not easy to find documentation about Yaffs. It helped !

I think I could have a lead about what happened to my system.
Maybe you could tell me if I'm right about it.

My mtd partition error, ringed a bell.
To summarize, my Kernel sees beyond what can see my BIOS (home made) (some other errors discovered in the partition table actually...)
There is a small part (the end) of my NAND (768Ko) that my BIOS is not able to see and flash erase, whereas my Kernel can handle the whole partition.

Then, I was in a case where data were written by the Kernel, then the BIOS flashed erased the NAND except some blocks at the end of the memory, still containing data. And this is at this moment I had my problem, because my system tried to mount the whole partition (with residual data at the end).

Is this possible the umount problem came from my residual data at the end of my partition ?
When I took a look at my system, there was only on directory and other ones created by my startup script. So there is only one reason this directory could be here after a flash_erase from the BIOS (my residual data). This directory is small enough to fit in the end of the NAND with the YAFFS filesystem data.

How is a yaffs filesystem supposed to behave in such a case ? Is is possible residual data could have blocked the umount procedure ?
Could umount be more sensitive to errors than mount ?

Thanks

Yoann Sculo


2011/3/4 Charles Manning <manningc2@actrix.gen.nz>
On Thursday 03 March 2011 05:26:03 Yoann Sculo wrote:
> Hello,
>
> I'm using a yaffs partition on a EABI arm920t platform and having strange
> problems while umounting my partition.
> In this case I'm using BusyBox v1.17.4 with the uClibC 0.9.31 for my umount
> binary.
> I'm looking for help, I can't find the possible reasons... I suppose it
> could comes from my yaffs partition or busybox umount applet. I have asked
> them for help.
> Meantime, I'm exploring the possibility my yaffs is corrupted.
>
> I have the following command in my linuxrc, that mounts my yaffs system
>
> /bin/mount -t yaffs /dev/mtdblock6 /usr
>
> which gets me the following system messages :
>
> yaffs: dev is 32505862 name is "mtdblock6"
> yaffs: passed flags ""
> yaffs: Attempting MTD mount on 31.6, "mtdblock6"
> yaffs: auto selecting yaffs2
> yaffs: restored from checkpoint
> yaffs_read_super: isCheckpointed 1
>
> In my case (a few seconds later) one of my scripts starts the following
> command :
>
> /bin/umount /usr || return 1
>
> For the record, in this particular case, I just want to umount my yaffs
> filesystem to flash erase it and get something brand new :)
> And before I have the time to flash erase it, that returns these errors :
>
> umount: can't umount /usr: Device or resource busy

This typically indicates that files in the file system are in use.

> save exit: isCheckpointed 1
> umount: /dev/mtdblock6 busy - remounted read-only
> umount: none busy - remounted read-only
>
> "isCheckpointed 1" rings a bell actually.

I doubt very much that this is having an impact.

> But I can't really find specs
> that explain checkpointing. Except here :
> http://www.yaffs.net/lurker/message/20070327.193931.32818f24.pl.html But It
> doesn't really help me.
> Could someone explain to me what the purpose of checkpointing flag ?

Have you read HowYaffsWorks.pdf?

> I
> could imagine there is something wrong with my partition. But I don't
> really understand what happened here.
>
> The problem is quite embarrassing because I can't change my system here. I
> just want to understand what could have happened :/
>
> Last thing I could add is that I have the following system message while
> creating my mtd partitions :
>
> mtd: partition "yaffs" extends beyond the end of device "NAND 256MiB 3,3V
> 8-bit" -- size truncated to 0xeac0000
>
> Could this be related ?

Possibly. This indicates that your partition table has been set up
incorrectly.


_______________________________________________
yaffs mailing list
yaffs@lists.aleph1.co.uk
http://lists.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs