fix
authorMiklos Szeredi <miklos@szeredi.hu>
Fri, 19 Aug 2005 14:40:27 +0000 (14:40 +0000)
committerMiklos Szeredi <miklos@szeredi.hu>
Fri, 19 Aug 2005 14:40:27 +0000 (14:40 +0000)
ChangeLog
lib/fuse.c

index c3dbd4714c15f8fe3242d62368c7f306dfb62c57..925dbc6e44150f2412a086c1d9fad76aaa974d09 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2005-08-19  Miklos Szeredi <miklos@szeredi.hu>
+
+       * lib: always refresh directory contents after rewinddir() to
+       conform to SUS.  Bug found by John Muir.
+
 2005-08-15  Miklos Szeredi <miklos@szeredi.hu>
 
        * Released 2.4.0-pre1
index 0f3da23aa713282ff60eed690fffa24397120f32..f9b15439193aee2f4d3601ac80ceb3211908d2c4 100644 (file)
@@ -1353,6 +1353,11 @@ static void fuse_readdir(fuse_req_t req, fuse_ino_t ino, size_t size,
     struct fuse_dirhandle *dh = get_dirhandle(llfi, &fi);
 
     pthread_mutex_lock(&dh->lock);
+    /* According to SUS, directory contents need to be refreshed on
+       rewinddir() */
+    if (!off)
+        dh->filled = 0;
+
     if (!dh->filled) {
         int err = readdir_fill(f, ino, size, off, dh, &fi);
         if (err) {