Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 17 Jun 2012 16:32:33 +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: r237198 - head/sys/kern
Message-ID:  <201206171632.q5HGWXKq017784@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: pjd
Date: Sun Jun 17 16:32:32 2012
New Revision: 237198
URL: http://svn.freebsd.org/changeset/base/237198

Log:
  If VOP_ADVLOCK() call or earlier checks failed don't check for a race with
  close, because even if we had a race there is nothing to unlock.
  
  Discussed with:	kib
  MFC after:	1 month

Modified:
  head/sys/kern/kern_descrip.c

Modified: head/sys/kern/kern_descrip.c
==============================================================================
--- head/sys/kern/kern_descrip.c	Sun Jun 17 16:19:09 2012	(r237197)
+++ head/sys/kern/kern_descrip.c	Sun Jun 17 16:32:32 2012	(r237198)
@@ -668,6 +668,10 @@ kern_fcntl(struct thread *td, int fd, in
 		}
 		VFS_UNLOCK_GIANT(vfslocked);
 		vfslocked = 0;
+		if (error != 0) {
+			fdrop(fp, td);
+			break;
+		}
 		/* Check for race with close */
 		FILEDESC_SLOCK(fdp);
 		if (fget_locked(fdp, fd) != fp) {



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