Print this page
5133 Upstream SMB client fixes: Nexenta SUP-538 and SUP-548
@@ -30,13 +30,13 @@
* SUCH DAMAGE.
*
* $Id: smb_trantcp.c,v 1.39 2005/03/02 01:27:44 lindak Exp $
*/
/*
- * Copyright 2012 Nexenta Systems, Inc. All rights reserved.
* Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
+ * Copyright 2013 Nexenta Systems, Inc. All rights reserved.
*/
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/autoconf.h>
@@ -594,11 +594,14 @@
nbp->nbp_flags &= ~NBF_CONNECTED;
while (nbp->nbp_flags & (NBF_SENDLOCK | NBF_RECVLOCK)) {
nbp->nbp_flags |= NBF_LOCKWAIT;
cv_wait(&nbp->nbp_cv, &nbp->nbp_lock);
}
-
+ if (nbp->nbp_frag != NULL) {
+ freemsg(nbp->nbp_frag);
+ nbp->nbp_frag = NULL;
+ }
if (nbp->nbp_tiptr != NULL) {
(void) t_kclose(nbp->nbp_tiptr, 0);
nbp->nbp_tiptr = NULL;
}
nbp->nbp_state = NBST_CLOSED;
@@ -661,16 +664,10 @@
mutex_enter(&nbp->nbp_lock);
if ((nbp->nbp_flags & NBF_CONNECTED) != 0) {
nbp->nbp_flags &= ~NBF_CONNECTED;
-
- if (nbp->nbp_frag != NULL) {
- freemsg(nbp->nbp_frag);
- nbp->nbp_frag = NULL;
- }
-
err = nb_snddis(nbp);
}
mutex_exit(&nbp->nbp_lock);
return (err);