Page MenuHomeFreeBSD

D44494.id.diff
No OneTemporary

D44494.id.diff

diff --git a/sys/dev/mpi3mr/mpi3mr_cam.c b/sys/dev/mpi3mr/mpi3mr_cam.c
--- a/sys/dev/mpi3mr/mpi3mr_cam.c
+++ b/sys/dev/mpi3mr/mpi3mr_cam.c
@@ -1839,6 +1839,7 @@
{
int retval = 0;
struct mpi3mr_target *target;
+ unsigned int target_outstanding;
mpi3mr_dprint(sc, MPI3MR_EVENT,
"Removing Device (dev_handle: %d)\n", handle);
@@ -1856,16 +1857,17 @@
target->flags |= MPI3MRSAS_TARGET_INREMOVAL;
- if (mpi3mr_atomic_read(&target->outstanding)) {
- mpi3mr_dprint(sc, MPI3MR_ERROR, "there are [%2d] outstanding IOs on target: %d"
- "Poll reply queue once\n", mpi3mr_atomic_read(&target->outstanding),
- target->per_id);
- mpi3mr_poll_pend_io_completions(sc);
- if (mpi3mr_atomic_read(&target->outstanding))
- mpi3mr_dprint(sc, MPI3MR_ERROR, "[%2d] outstanding IOs present on target: %d"
- "despite poll\n", mpi3mr_atomic_read(&target->outstanding),
- target->per_id);
- }
+ target_outstanding = mpi3mr_atomic_read(&target->outstanding);
+ if (target_outstanding) {
+ mpi3mr_dprint(sc, MPI3MR_ERROR, "there are [%2d] outstanding IOs on target: %d "
+ "Poll reply queue once\n", target_outstanding, target->per_id);
+ mpi3mr_poll_pend_io_completions(sc);
+ target_outstanding = mpi3mr_atomic_read(&target->outstanding);
+ if (target_outstanding)
+ target_outstanding = mpi3mr_atomic_read(&target->outstanding);
+ mpi3mr_dprint(sc, MPI3MR_ERROR, "[%2d] outstanding IOs present on target: %d "
+ "despite poll\n", target_outstanding, target->per_id);
+ }
if (target->exposed_to_os && !sc->reset_in_progress) {
mpi3mr_rescan_target(sc, target);

File Metadata

Mime Type
text/plain
Expires
Tue, Apr 7, 4:50 PM (10 h, 50 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31042607
Default Alt Text
D44494.id.diff (1 KB)

Event Timeline