svn commit: r273959 - head/sys/kern

Mateusz Guzik mjg at FreeBSD.org
Sun Nov 2 02:32:34 UTC 2014


Author: mjg
Date: Sun Nov  2 02:32:33 2014
New Revision: 273959
URL: https://svnweb.freebsd.org/changeset/base/273959

Log:
  filedesc: tidy up fdcheckstd
  
  No functional changes.

Modified:
  head/sys/kern/kern_descrip.c

Modified: head/sys/kern/kern_descrip.c
==============================================================================
--- head/sys/kern/kern_descrip.c	Sun Nov  2 02:01:55 2014	(r273958)
+++ head/sys/kern/kern_descrip.c	Sun Nov  2 02:32:33 2014	(r273959)
@@ -2189,29 +2189,28 @@ fdcheckstd(struct thread *td)
 
 	fdp = td->td_proc->p_fd;
 	KASSERT(fdp->fd_refcnt == 1, ("the fdtable should not be shared"));
+	MPASS(fdp->fd_nfiles >= 3);
 	devnull = -1;
-	error = 0;
-	for (i = 0; i < 3; i++) {
+	for (i = 0; i <= 2; i++) {
 		if (fdp->fd_ofiles[i].fde_file != NULL)
 			continue;
-		if (devnull < 0) {
-			save = td->td_retval[0];
+
+		save = td->td_retval[0];
+		if (devnull != -1) {
+			error = do_dup(td, DUP_FIXED, devnull, i);
+		} else {
 			error = kern_open(td, "/dev/null", UIO_SYSSPACE,
 			    O_RDWR, 0);
-			devnull = td->td_retval[0];
-			td->td_retval[0] = save;
-			if (error)
-				break;
-			KASSERT(devnull == i, ("oof, we didn't get our fd"));
-		} else {
-			save = td->td_retval[0];
-			error = do_dup(td, DUP_FIXED, devnull, i);
-			td->td_retval[0] = save;
-			if (error != 0)
-				break;
+			if (error == 0) {
+				devnull = td->td_retval[0];
+				KASSERT(devnull == i, ("we didn't get our fd"));
+			}
 		}
+		td->td_retval[0] = save;
+		if (error != 0)
+			return (error);
 	}
-	return (error);
+	return (0);
 }
 
 /*


More information about the svn-src-head mailing list