svn commit: r251113 - stable/9/usr.sbin/newsyslog

Brooks Davis brooks at FreeBSD.org
Thu May 30 00:55:35 UTC 2013


On Wed, May 29, 2013 at 06:37:17PM -0400, Mark Johnston wrote:
> 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?

The approved way to merge a change like r235647 would be per-library and
per-program so only merging changes to a single program would be fine.

-- Brooks

> 
> 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;
> >  		}
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 188 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/svn-src-stable-9/attachments/20130529/04e01d26/attachment.sig>


More information about the svn-src-stable-9 mailing list