summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/os/strsubr.c
diff options
context:
space:
mode:
authorYu Xiangning <Eric.Yu@Sun.COM>2008-12-11 20:04:13 -0800
committerYu Xiangning <Eric.Yu@Sun.COM>2008-12-11 20:04:13 -0800
commit0f1702c5201310f0529cd5abb77652e5e9b241b6 (patch)
tree83bbea7ada9d11097f73645900c06c37d8346669 /usr/src/uts/common/os/strsubr.c
parent9a9ae70f32271d74856130e37667ca926b27feb4 (diff)
downloadillumos-joyent-0f1702c5201310f0529cd5abb77652e5e9b241b6.tar.gz
PSARC 2007/587 Volo -- Low Latency Socket Framework
PSARC 2008/694 Volo Interfaces Amendment 6765829 Integration of project Volo PSARC/2007/587 6644935 mblk cred_t reference counting limits scalability 6693633 TCP receive does not scale because of heavy refcounting of cred structures 4764841 connect/accept is slow on Solaris when compared to Linux 5105708 socket creation retains hold on accessvp 4764836 setsockopt is slow on Solaris when compared to Linux 4772191 socket close(2) is slow on Solaris when compared to Linux --HG-- rename : usr/src/uts/common/fs/sockfs/socksctp.c => usr/src/uts/common/inet/sockmods/socksctp.c rename : usr/src/uts/common/fs/sockfs/socksctp.h => usr/src/uts/common/inet/sockmods/socksctp.h rename : usr/src/uts/common/fs/sockfs/socksctpsubr.c => usr/src/uts/common/inet/sockmods/socksctpsubr.c rename : usr/src/uts/common/fs/sockfs/socksdp.c => usr/src/uts/common/inet/sockmods/socksdp.c rename : usr/src/uts/common/fs/sockfs/socksdp.h => usr/src/uts/common/inet/sockmods/socksdp.h
Diffstat (limited to 'usr/src/uts/common/os/strsubr.c')
-rw-r--r--usr/src/uts/common/os/strsubr.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/usr/src/uts/common/os/strsubr.c b/usr/src/uts/common/os/strsubr.c
index 442ced2b51..469ef329db 100644
--- a/usr/src/uts/common/os/strsubr.c
+++ b/usr/src/uts/common/os/strsubr.c
@@ -286,7 +286,6 @@ static void outer_insert(syncq_t *, syncq_t *);
static void outer_remove(syncq_t *, syncq_t *);
static void write_now(syncq_t *);
static void clr_qfull(queue_t *);
-static void enable_svc(queue_t *);
static void runbufcalls(void);
static void sqenable(syncq_t *);
static void sqfill_events(syncq_t *, queue_t *, mblk_t *, void (*)());
@@ -8401,6 +8400,21 @@ mblk_setcred(mblk_t *mp, cred_t *cr)
}
}
+/*
+ * Set the cred and pid for each mblk in the message. It is assumed that
+ * the message passed in does not already have a cred.
+ */
+void
+msg_setcredpid(mblk_t *mp, cred_t *cr, pid_t pid)
+{
+ while (mp != NULL) {
+ ASSERT(DB_CRED(mp) == NULL);
+ mblk_setcred(mp, cr);
+ DB_CPID(mp) = pid;
+ mp = mp->b_cont;
+ }
+}
+
int
hcksum_assoc(mblk_t *mp, multidata_t *mmd, pdesc_t *pd,
uint32_t start, uint32_t stuff, uint32_t end, uint32_t value,