* syscalls.cc (stat_worker): Set st_nlink to 1 on remote drives.

This commit is contained in:
Corinna Vinschen 2000-03-19 11:05:14 +00:00
parent 5bc5ee4457
commit 1b16b354fa
2 changed files with 8 additions and 2 deletions

View 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> Sat Mar 18 23:04:27 2000 Christopher Faylor <cgf@cygnus.com>
* times.cc: Fix extern declarations for variables that are exported but * times.cc: Fix extern declarations for variables that are exported but

View File

@ -986,7 +986,7 @@ stat_worker (const char *caller, const char *name, struct stat *buf,
/* See the comment 10 lines below */ /* See the comment 10 lines below */
if (atts != -1 && (atts & FILE_ATTRIBUTE_DIRECTORY)) if (atts != -1 && (atts & FILE_ATTRIBUTE_DIRECTORY))
buf->st_nlink = buf->st_nlink =
(dtype == DRIVE_REMOTE ? 2 : num_entries (win32_name)); (dtype == DRIVE_REMOTE ? 1 : num_entries (win32_name));
} }
} }
else else
@ -998,7 +998,9 @@ stat_worker (const char *caller, const char *name, struct stat *buf,
those subdirectories point to it. those subdirectories point to it.
This is too slow on remote drives, so we do without it and This is too slow on remote drives, so we do without it and
set the number of links to 2. */ 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_dev = FHDEVN(FH_DISK) << 8;
buf->st_ino = hash_path_name (0, real_path.get_win32 ()); buf->st_ino = hash_path_name (0, real_path.get_win32 ());
buf->st_mode = S_IFDIR | STD_RBITS | STD_XBITS; buf->st_mode = S_IFDIR | STD_RBITS | STD_XBITS;