Module Name: src
Committed By: njoly
Date: Mon Jul 6 11:46:49 UTC 2009
Modified Files:
src/sys/netsmb: smb_iod.c smb_rq.c
Log Message:
Do initialise the callout when fetching a new request structure from
the pool, not when starting the timer. Likewise, destroy the callout
when giving back the item to the pool.
To generate a diff of this commit:
cvs rdiff -u -r1.31 -r1.32 src/sys/netsmb/smb_iod.c src/sys/netsmb/smb_rq.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/netsmb/smb_iod.c
diff -u src/sys/netsmb/smb_iod.c:1.31 src/sys/netsmb/smb_iod.c:1.32
--- src/sys/netsmb/smb_iod.c:1.31 Wed Jul 1 10:01:28 2009
+++ src/sys/netsmb/smb_iod.c Mon Jul 6 11:46:49 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: smb_iod.c,v 1.31 2009/07/01 10:01:28 njoly Exp $ */
+/* $NetBSD: smb_iod.c,v 1.32 2009/07/06 11:46:49 njoly Exp $ */
/*
* Copyright (c) 2000-2001 Boris Popov
@@ -35,7 +35,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: smb_iod.c,v 1.31 2009/07/01 10:01:28 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD: smb_iod.c,v 1.32 2009/07/06 11:46:49 njoly Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -269,11 +269,9 @@
m = m_copym(rqp->sr_rq.mb_top, 0, M_COPYALL, M_WAIT);
error = rqp->sr_lerror = (m) ? SMB_TRAN_SEND(vcp, m, l) : ENOBUFS;
if (error == 0) {
- if (rqp->sr_timo > 0) {
- callout_init(&rqp->sr_timo_ch, 0);
+ if (rqp->sr_timo > 0)
callout_reset(&rqp->sr_timo_ch, rqp->sr_timo,
smb_iod_rqtimedout, rqp);
- }
if (rqp->sr_flags & SMBR_NOWAIT) {
/* caller doesn't want to wait, flag as processed */
Index: src/sys/netsmb/smb_rq.c
diff -u src/sys/netsmb/smb_rq.c:1.31 src/sys/netsmb/smb_rq.c:1.32
--- src/sys/netsmb/smb_rq.c:1.31 Wed Mar 18 16:00:24 2009
+++ src/sys/netsmb/smb_rq.c Mon Jul 6 11:46:49 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: smb_rq.c,v 1.31 2009/03/18 16:00:24 cegger Exp $ */
+/* $NetBSD: smb_rq.c,v 1.32 2009/07/06 11:46:49 njoly Exp $ */
/*
* Copyright (c) 2000-2001, Boris Popov
@@ -35,7 +35,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: smb_rq.c,v 1.31 2009/03/18 16:00:24 cegger Exp $");
+__KERNEL_RCSID(0, "$NetBSD: smb_rq.c,v 1.32 2009/07/06 11:46:49 njoly Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -95,6 +95,7 @@
rqp = pool_get(&smbrq_pool, PR_WAITOK);
error = smb_rq_init(rqp, layer, cmd, scred);
rqp->sr_flags |= SMBR_ALLOCED;
+ callout_init(&rqp->sr_timo_ch, 0);
if (error) {
smb_rq_done(rqp);
return error;
@@ -166,8 +167,10 @@
mb_done(&rqp->sr_rq);
md_done(&rqp->sr_rp);
smb_sl_destroy(&rqp->sr_slock);
- if (rqp->sr_flags & SMBR_ALLOCED)
+ if (rqp->sr_flags & SMBR_ALLOCED) {
+ callout_destroy(&rqp->sr_timo_ch);
pool_put(&smbrq_pool, rqp);
+ }
}
/*