Hi,
When the directory is NOT
empty, I try to remove dir by "rmdir" command. Normal should return fail, but
YAFFS return true. The files under this directory is lost, and the file
space can not be free.
Seems "yaffs_UnlinkWorker"
don't check if the directory is empty when obj->variantType is
YAFFS_OBJECT_TYPE_DIRECTORY
# # mount -t yaffs2
/dev/block/mtdblock9 /debug
# # cd
/debug
# # ls
-l
drw-rw-rw-
root
root
1970-01-01 05:31 lost+found
# # mkdir aaa
# # cp
/data/flash_eraseall aaa
# # df
.
.: 9216K total, 2780K
used, 6436K available (block size 4096)
# # ls -l
drwxrwxrwx
root
root
1970-01-01 05:32 aaa
drw-rw-rw- root
root
1970-01-01 05:31 lost+found
# # rm aaa
rm failed for aaa, Is a
directory
#
# ls -l aaa
-rwxrwxrwx
root root 1660816
1970-01-01 05:32 flash_eraseall
# # rmdir aaa
# # ls
-l
drw-rw-rw-
root
root
1970-01-01 05:31 lost+found
# # df .
.: 9216K total, 2780K
used, 6436K available (block size 4096)
# #
#
/data/busybox uname -a
Linux localhost 2.6.29-omap1 #1 Sun Aug 2 22:32:04 CDT
2009 armv7l unknown
Thanks
Li Yingchao