Module Name: src Committed By: mlelstv Date: Sun Mar 7 12:30:03 UTC 2021
Modified Files: src/sys/dev/iscsi: iscsi_main.c Log Message: Stop advertising more openings after limit is reached. To generate a diff of this commit: cvs rdiff -u -r1.33 -r1.34 src/sys/dev/iscsi/iscsi_main.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/dev/iscsi/iscsi_main.c diff -u src/sys/dev/iscsi/iscsi_main.c:1.33 src/sys/dev/iscsi/iscsi_main.c:1.34 --- src/sys/dev/iscsi/iscsi_main.c:1.33 Wed May 13 21:59:45 2020 +++ src/sys/dev/iscsi/iscsi_main.c Sun Mar 7 12:30:03 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: iscsi_main.c,v 1.33 2020/05/13 21:59:45 jdolecek Exp $ */ +/* $NetBSD: iscsi_main.c,v 1.34 2021/03/07 12:30:03 mlelstv Exp $ */ /*- * Copyright (c) 2004,2005,2006,2011 The NetBSD Foundation, Inc. @@ -422,11 +422,12 @@ unmap_session(session_t *sess) * grow_resources * Try to grow openings up to current window size */ -static void +static int grow_resources(session_t *sess) { struct scsipi_adapter *adapt = &sess->s_sc_adapter; int win; + int rc = -1; mutex_enter(&sess->s_lock); if (sess->s_refcount < CCBS_FOR_SCSIPI && @@ -435,10 +436,13 @@ grow_resources(session_t *sess) if (win > sess->s_send_window) { sess->s_send_window++; adapt->adapt_openings++; + rc = 0; DEB(5, ("Grow send window to %d\n", sess->s_send_window)); } } mutex_exit(&sess->s_lock); + + return rc; } /******************************************************************************/ @@ -508,7 +512,10 @@ iscsi_scsipi_request(struct scsipi_chann case ADAPTER_REQ_GROW_RESOURCES: DEB(5, ("ISCSI: scsipi_request GROW_RESOURCES\n")); - grow_resources(sess); + if (grow_resources(sess)) { + /* reached maximum */ + chan->chan_flags &= ~SCSIPI_CHAN_CANGROW; + } break; case ADAPTER_REQ_SET_XFER_MODE: