OSDN Git Service

* syscalls.cc (stat_worker): Set st_nlink to 1 on remote drives.
authorcorinna <corinna>
Sun, 19 Mar 2000 11:05:14 +0000 (11:05 +0000)
committercorinna <corinna>
Sun, 19 Mar 2000 11:05:14 +0000 (11:05 +0000)
winsup/cygwin/ChangeLog
winsup/cygwin/syscalls.cc

index 4c9903f..1508dee 100644 (file)
@@ -1,3 +1,7 @@
+Sun Mar 19 12:01:00 2000  Corinna Vinschen <corinna@vinschen.de>
+
+        * syscalls.cc (stat_worker): Set st_nlink to 1 on remote drives.
+
 Sat Mar 18 23:04:27 2000  Christopher Faylor <cgf@cygnus.com>
 
        * times.cc: Fix extern declarations for variables that are exported but
index e94e8ea..a52faf8 100644 (file)
@@ -986,7 +986,7 @@ stat_worker (const char *caller, const char *name, struct stat *buf,
           /* See the comment 10 lines below */
          if (atts != -1 && (atts & FILE_ATTRIBUTE_DIRECTORY))
             buf->st_nlink =
-                (dtype == DRIVE_REMOTE ? 2 : num_entries (win32_name));
+                (dtype == DRIVE_REMOTE ? 1 : num_entries (win32_name));
        }
     }
   else
@@ -998,7 +998,9 @@ stat_worker (const char *caller, const char *name, struct stat *buf,
          those subdirectories point to it.
          This is too slow on remote drives, so we do without it and
          set the number of links to 2. */
-      buf->st_nlink = (dtype == DRIVE_REMOTE ? 2 : num_entries (win32_name));
+      /* Unfortunately the count of 2 confuses `find(1)' command. So
+         let's try it with `1' as link count. */
+      buf->st_nlink = (dtype == DRIVE_REMOTE ? 1 : num_entries (win32_name));
       buf->st_dev = FHDEVN(FH_DISK) << 8;
       buf->st_ino = hash_path_name (0, real_path.get_win32 ());
       buf->st_mode = S_IFDIR | STD_RBITS | STD_XBITS;