Re: [Yaffs] Not removing all files with "rm -rf", getting "D…

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Charles Manning
Date:  
To: yaffs
Subject: Re: [Yaffs] Not removing all files with "rm -rf", getting "Directory not empty" error
On Saturday 10 April 2010 19:23:26 JoSH Lehan wrote:
> On Fri, Apr 9, 2010 at 9:29 PM, Charles Manning <>

wrote:
> > The latest set of changes to support nfs introduced a couple of
> > changes wrt readdir. At the time of editing in I was concerned this
> > could impact on the busybox rm/dir issue of old, but in the end I
> > forgot to test this. My bad!
>
> Thanks for responding!
>
> Does Busybox rm/dir traverse directories differently than the
> "standard" GNU coreutils rm/dir?
>
> > I don't currently have a running busybox set up that would test this.
> > Could you please test with the previous version
> > (03c76f6c10acaf6b8fe36e663abd9a87cf76b9de) and see if the problem goes
> > away?
>
> I'll test it probably on Monday, will let you know the results.


I think the difference is in the way uclibc implements readdir.

I built busybox with glibc and ran it on a PC without being able to reproduce
the problem.

I expect that the offending part of the nfs checkin is:
@@ -1342,12 +1442,13 @@ static int yaffs_readdir(struct file *f, void *dirent,
filldir_t filldir)

        /* If the directory has changed since the open or last call to
           readdir, rewind to after the 2 canned entries. */
-
+#if 0 /* For exportfs patch */
        if (f->f_version != inode->i_version) {
                offset = 2;
                f->f_pos = offset;
                f->f_version = inode->i_version;
        }
+#endif


        while(sc->nextReturn){
                curoffs++;


Try changing
#if 0 /* For exportfs patch */
to
#if 1

I'll have a look too.

-- Charles