Date: Wed, 29 May 2013 18:37:17 -0400 From: Mark Johnston <markj@freebsd.org> To: src-committers@freebsd.org Cc: svn-src-stable@freebsd.org, svn-src-all@freebsd.org, svn-src-stable-9@freebsd.org Subject: Re: svn commit: r251113 - stable/9/usr.sbin/newsyslog Message-ID: <20130529223717.GB59966@raichu> In-Reply-To: <201305292230.r4TMUUPX079884@svn.freebsd.org> References: <201305292230.r4TMUUPX079884@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
I'm very sorry about this. I was going to merge r235647 first so that I wouldn't make the same mistake a second time, but I decided against it when I saw that the commit extended beyond newsyslog, and then managed to do the MFC incorrectly after verifying that newsyslog built on the stable branches. Is it possible to only do the newsyslog portion of this MFC, or is it a rule that either all or none of a given revision should be merged to the stable branches? Sorry again, -Mark On Wed, May 29, 2013 at 10:30:30PM +0000, Mark Johnston wrote: > Author: markj > Date: Wed May 29 22:30:29 2013 > New Revision: 251113 > URL: http://svnweb.freebsd.org/changeset/base/251113 > > Log: > Revert my previous merge. There's a variable name difference between head > and stable (dirfd vs. dir_fd) and I managed to get it wrong again when I > did the MFC, even after I tested. > > Modified: > stable/9/usr.sbin/newsyslog/newsyslog.c > Directory Properties: > stable/9/usr.sbin/newsyslog/ (props changed) > > Modified: stable/9/usr.sbin/newsyslog/newsyslog.c > ============================================================================== > --- stable/9/usr.sbin/newsyslog/newsyslog.c Wed May 29 22:29:33 2013 (r251112) > +++ stable/9/usr.sbin/newsyslog/newsyslog.c Wed May 29 22:30:29 2013 (r251113) > @@ -1450,27 +1450,16 @@ oldlog_entry_compare(const void *a, cons > * tm if this is the case; otherwise return false. > */ > static int > -validate_old_timelog(int fd, const struct dirent *dp, const char *logfname, > - struct tm *tm) > +validate_old_timelog(const struct dirent *dp, const char *logfname, struct tm *tm) > { > - struct stat sb; > size_t logfname_len; > char *s; > int c; > > logfname_len = strlen(logfname); > > - if (dp->d_type != DT_REG) { > - /* > - * Some filesystems (e.g. NFS) don't fill out the d_type field > - * and leave it set to DT_UNKNOWN; in this case we must obtain > - * the file type ourselves. > - */ > - if (dp->d_type != DT_UNKNOWN || > - fstatat(fd, dp->d_name, &sb, AT_SYMLINK_NOFOLLOW) != 0 || > - !S_ISREG(sb.st_mode)) > - return (0); > - } > + if (dp->d_type != DT_REG) > + return (0); > /* Ignore everything but files with our logfile prefix. */ > if (strncmp(dp->d_name, logfname, logfname_len) != 0) > return (0); > @@ -1556,7 +1545,7 @@ delete_oldest_timelog(const struct conf_ > err(1, "Cannot open log directory '%s'", dir); > dirfd = dirfd(dirp); > while ((dp = readdir(dirp)) != NULL) { > - if (validate_old_timelog(dir_fd, dp, logfname, &tm) == 0) > + if (validate_old_timelog(dp, logfname, &tm) == 0) > continue; > > /* > @@ -2321,10 +2310,10 @@ mtime_old_timelog(const char *file) > dir_fd = dirfd(dirp); > /* Open the archive dir and find the most recent archive of logfname. */ > while ((dp = readdir(dirp)) != NULL) { > - if (validate_old_timelog(dir_fd, dp, logfname, &tm) == 0) > + if (validate_old_timelog(dp, logfname, &tm) == 0) > continue; > > - if (fstatat(dir_fd, logfname, &sb, AT_SYMLINK_NOFOLLOW) == -1) { > + if (fstatat(dir_fd, logfname, &sb, 0) == -1) { > warn("Cannot stat '%s'", file); > continue; > }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130529223717.GB59966>