Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 Jun 2012 19:48:55 +0000 (UTC)
From:      Pawel Jakub Dawidek <pjd@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r236910 - head/sys/kern
Message-ID:  <201206111948.q5BJmtpV006300@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: pjd
Date: Mon Jun 11 19:48:55 2012
New Revision: 236910
URL: http://svn.freebsd.org/changeset/base/236910

Log:
  Now that fdgrowtable() doesn't drop the filedesc lock we don't need to
  check if descriptor changed from under us. Replace the check with an
  assert.
  
  Discussed with:	kib
  Tested by:	pho
  MFC after:	1 month

Modified:
  head/sys/kern/kern_descrip.c

Modified: head/sys/kern/kern_descrip.c
==============================================================================
--- head/sys/kern/kern_descrip.c	Mon Jun 11 19:20:59 2012	(r236909)
+++ head/sys/kern/kern_descrip.c	Mon Jun 11 19:48:55 2012	(r236910)
@@ -871,19 +871,7 @@ do_dup(struct thread *td, int flags, int
 		}
 	}
 
-	/*
-	 * If the old file changed out from under us then treat it as a
-	 * bad file descriptor.  Userland should do its own locking to
-	 * avoid this case.
-	 */
-	if (fdp->fd_ofiles[old] != fp) {
-		/* we've allocated a descriptor which we won't use */
-		if (fdp->fd_ofiles[new] == NULL)
-			fdunused(fdp, new);
-		FILEDESC_XUNLOCK(fdp);
-		fdrop(fp, td);
-		return (EBADF);
-	}
+	KASSERT(fp == fdp->fd_ofiles[old], ("old fd has been modified"));
 	KASSERT(old != new, ("new fd is same as old"));
 
 	/*



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201206111948.q5BJmtpV006300>