On Saturday 10 April 2010 19:23:26 JoSH Lehan wrote:
> On Fri, Apr 9, 2010 at 9:29 PM, Charles Manning <cdhmanning@gmail.com>
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