svn commit: r341700 - head/sys/kern
Mateusz Guzik
mjg at FreeBSD.org
Fri Dec 7 16:44:53 UTC 2018
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;
}
More information about the svn-src-all
mailing list