I have tried Andrew's fix. It worked. And I also tried to execute "rm -rf some_folder" in my yaffs2 partition, but I didn't see issues. Anybody knows what's that issue "rewind" fixed ? Thanks. Regards, Yang 2008/11/5 Yang Chen > Andrew, > > Thanks for your info. I will try the fix. Btw , have you tested below > fix with more cases? > I searched archived mails and found an old mailloop regarding the rewind > change . Looks like that was for rm -rf issues of busybox ... > http://aleph1.co.uk/lurker/message/20051105.003401.0b8fec14.en.html > If we removed the "offset = 2;" , will it cause above issue again ? Or do > we still need above workaround for the rm -rf issue for now ...As i > understood , it was more like a application issue e.g busybox (i didn't > check if bb has supported rewind now) , rather than the relatively low level > file system issue. > > Charles, > > Appreciate your comments ! > > > Regards, > Yang > > > 2008/11/5 Andrew McKay > > yang chen wrote: >> >>> McKay,All >>> >>> Any new update on this issue? Thanks. I just came across similar issue >>> in which readdir(..) can't return NULL...causing endless loop... >>> >>> >> I just stopped the directory from rewinding if it was read or written. It >> would cause a loop where it would continuously rewind if there were more >> entries than could be buffered in a single read. >> >> Here's a patch. Not sure if it'll apply directly to your source, but >> should give you the idea of how I fixed it. >> >> --- yaffs_fs.c 21 Dec 2007 00:24:37 -0000 1.1.8.1 >> +++ yaffs_fs.c 5 Sep 2008 19:36:29 -0000 1.1.8.1.24.1 >> @@ -960,7 +960,7 @@ >> readdir, rewind to after the 2 canned entries. */ >> >> if (f->f_version != inode->i_version) { >> - offset = 2; >> + //offset = 2; //ARG!!! This is causing readdir to >> infinitely repeat directory listings. Don't Rewind! >> >> f->f_pos = offset; >> f->f_version = inode->i_version; >> } >> >> Andrew McKay >> Iders Inc. >> > >