svn commit: r237077 - head/sys/kern

Pawel Jakub Dawidek pjd at FreeBSD.org
Thu Jun 14 15:37:15 UTC 2012


Author: pjd
Date: Thu Jun 14 15:37:15 2012
New Revision: 237077
URL: http://svn.freebsd.org/changeset/base/237077

Log:
  Simplify the code by making more use of the fdtofp() function.
  
  MFC after:	1 month

Modified:
  head/sys/kern/kern_descrip.c

Modified: head/sys/kern/kern_descrip.c
==============================================================================
--- head/sys/kern/kern_descrip.c	Thu Jun 14 15:35:14 2012	(r237076)
+++ head/sys/kern/kern_descrip.c	Thu Jun 14 15:37:15 2012	(r237077)
@@ -679,8 +679,7 @@ kern_fcntl(struct thread *td, int fd, in
 		vfslocked = 0;
 		/* Check for race with close */
 		FILEDESC_SLOCK(fdp);
-		if (fd < 0 || fd >= fdp->fd_nfiles ||
-		    fp != fdp->fd_ofiles[fd]) {
+		if (fdtofp(fd, fdp) != fp) {
 			FILEDESC_SUNLOCK(fdp);
 			flp->l_whence = SEEK_SET;
 			flp->l_start = 0;
@@ -822,7 +821,7 @@ do_dup(struct thread *td, int flags, int
 		return (flags & DUP_FCNTL ? EINVAL : EBADF);
 
 	FILEDESC_XLOCK(fdp);
-	if (old >= fdp->fd_nfiles || fdp->fd_ofiles[old] == NULL) {
+	if (fdtofp(old, fdp) == NULL) {
 		FILEDESC_XUNLOCK(fdp);
 		return (EBADF);
 	}
@@ -1201,8 +1200,7 @@ kern_close(td, fd)
 	AUDIT_SYSCLOSE(td, fd);
 
 	FILEDESC_XLOCK(fdp);
-	if (fd < 0 || fd >= fdp->fd_nfiles ||
-	    (fp = fdp->fd_ofiles[fd]) == NULL) {
+	if ((fp = fdtofp(fd, fdp)) == NULL) {
 		FILEDESC_XUNLOCK(fdp);
 		return (EBADF);
 	}
@@ -2596,8 +2594,7 @@ dupfdopen(struct thread *td, struct file
 	 * closed, then reject.
 	 */
 	FILEDESC_XLOCK(fdp);
-	if (dfd < 0 || dfd >= fdp->fd_nfiles ||
-	    (fp = fdp->fd_ofiles[dfd]) == NULL) {
+	if ((fp = fdtofp(dfd, fdp)) == NULL) {
 		FILEDESC_XUNLOCK(fdp);
 		return (EBADF);
 	}


More information about the svn-src-all mailing list