MTD block, Yaffs2 file system and booting

Recently, I found one issue on the booting of Android device.
At the booting sequence, Yaffs2 takes around 20 seconds for mounting MTD blocks.

According to the size of MTD blocks, the time will be changed.
The reason is the scan mechanism of Yaffs2 file system.
It should be done for the unsafe power off, but not for regular shut down.

Therefore, we have to make sure Yaffs2 is always got "ischeckpoint" before shut down.
The most important part, it is better to be the last one work before really power off.
Some recommend function are sys_sync(), emergency_sync(), or maybe do_sync() and sys_umount().