diff options
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | src/dd.c | 8 | ||||
-rw-r--r-- | src/remove.c | 2 |
3 files changed, 15 insertions, 5 deletions
@@ -1,3 +1,13 @@ +2006-10-05 Paul Eggert <eggert@cs.ucla.edu> + + * src/dd.c (flags): noatime and nofollow now depend on + HAVE_WORKING_O_NOATIME and HAVE_WORKING_O_NOFOLLOW, too. + (usage): Output info about noatime and nofollow only if + they are known to work. + * src/remove.c (AD_push): Inspect HAVE_WORKING_O_NOFOLLOW rather + than O_NOFOLLOW, when testing whether it's possible to avoid a + race condition reliably. + 2006-10-05 Jim Meyering <jim@meyering.net> * tests/install/basic-1: Skip the latter part of this test if the @@ -265,9 +265,9 @@ static struct symbol_value const flags[] = {"direct", O_DIRECT}, {"directory", O_DIRECTORY}, {"dsync", O_DSYNC}, - {"noatime", O_NOATIME}, + {"noatime", HAVE_WORKING_O_NOATIME ? O_NOATIME : 0}, {"noctty", O_NOCTTY}, - {"nofollow", O_NOFOLLOW}, + {"nofollow", HAVE_WORKING_O_NOFOLLOW ? O_NOFOLLOW : 0}, {"nolinks", O_NOLINKS}, {"nonblock", O_NONBLOCK}, {"sync", O_SYNC}, @@ -470,12 +470,12 @@ Each FLAG symbol may be:\n\ fputs (_(" sync likewise, but also for metadata\n"), stdout); if (O_NONBLOCK) fputs (_(" nonblock use non-blocking I/O\n"), stdout); - if (O_NOATIME) + if (HAVE_WORKING_O_NOATIME) fputs (_(" noatime do not update access time\n"), stdout); if (O_NOCTTY) fputs (_(" noctty do not assign controlling terminal from file\n"), stdout); - if (O_NOFOLLOW) + if (HAVE_WORKING_O_NOFOLLOW) fputs (_(" nofollow do not follow symlinks\n"), stdout); if (O_NOLINKS) fputs (_(" nolinks fail if multiply-linked\n"), stdout); diff --git a/src/remove.c b/src/remove.c index 13a6e2768..d362db0ee 100644 --- a/src/remove.c +++ b/src/remove.c @@ -621,7 +621,7 @@ AD_push (int fd_cwd, Dirstack_state *ds, char const *dir, /* If our uses of openat are guaranteed not to follow a symlink, then we can skip this check. */ - if ( ! O_NOFOLLOW) + if (! HAVE_WORKING_O_NOFOLLOW) { struct stat sb; if (fstat (fd_cwd, &sb) != 0) |