Author: mjg Date: Fri Dec 7 16:44:52 2018 New Revision: 341700 URL: https://svnweb.freebsd.org/changeset/base/341700
Log: fd: try do less work with the lock in dup Sponsored by: The FreeBSD Foundation Modified: head/sys/kern/kern_descrip.c Modified: head/sys/kern/kern_descrip.c ============================================================================== --- head/sys/kern/kern_descrip.c Fri Dec 7 16:22:54 2018 (r341699) +++ head/sys/kern/kern_descrip.c Fri Dec 7 16:44:52 2018 (r341700) @@ -818,6 +818,7 @@ kern_dup(struct thread *td, u_int mode, int flags, int p = td->td_proc; fdp = p->p_fd; + oioctls = NULL; MPASS((flags & ~(FDDUP_FLAG_CLOEXEC)) == 0); MPASS(mode < FDDUP_LASTMODE); @@ -922,7 +923,6 @@ kern_dup(struct thread *td, u_int mode, int flags, int #ifdef CAPABILITIES seq_write_end(&newfde->fde_seq); #endif - filecaps_free_finish(oioctls); td->td_retval[0] = new; error = 0; @@ -935,6 +935,7 @@ unlock: FILEDESC_XUNLOCK(fdp); } + filecaps_free_finish(oioctls); return (error); } @@ -1511,7 +1512,7 @@ filecaps_copy_prep(const struct filecaps *src) u_long *ioctls; size_t size; - if (src->fc_ioctls == NULL) + if (__predict_true(src->fc_ioctls == NULL)) return (NULL); KASSERT(src->fc_nioctls > 0, @@ -1529,7 +1530,7 @@ filecaps_copy_finish(const struct filecaps *src, struc size_t size; *dst = *src; - if (src->fc_ioctls == NULL) { + if (__predict_true(src->fc_ioctls == NULL)) { MPASS(ioctls == NULL); return; } _______________________________________________ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"