My kenel is 2.6.19 , yaffs is 09-2-24 from cvs
If I delete a dir named "oop ", use rmdir cmd , found that:
1. yaffs_DoGenericObjectDeletion is called (frist time) ,
the oop is move to yaffs's deletedDir, now oop's parnet is deletedDir , then yaffs_RemoveObjectFromDirectory ( yaffs_gus.c :5201 )is called , so the oop 's parnet is NULL; (
2. Then in the do_rmdir function, after the vfs_rmdir , will call :
dput ----->yaffs_delete_inode( from inode get the yaffs_object , but the obj's parnet is NULL )
--->yaffs_DeleteFile--->yaffs_DoGenericObjectDeletion( second time) , from here yaffs complain:
==>> yaffs bug: fs/yaffs2/yaffs_guts.c 6836
==>> yaffs bug: fs/yaffs2/yaffs_guts.c 6763
The problem is oop->parent=NULL , so run in yaffs_VerifyDirectory , page fault come.
Any Tips? I want change the yaffs_delete_inode like this:
yaffs_Object *obj = yaffs_InodeToObject(inode);
if( obj && obj->parent){
dev = obj->myDev;
yaffs_GrossLock(dev);
yaffs_DeleteFile(obj);
yaffs_GrossUnlock(dev);
}