xdisk - Fix improper EIO
commit5dafdfbab36647ae8d1630acfbb14873721b4f2a
authorMatthew Dillon <dillon@apollo.backplane.com>
Mon, 9 Mar 2015 07:36:18 +0000 (9 00:36 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Mon, 9 Mar 2015 07:36:18 +0000 (9 00:36 -0700)
tree8cffe36896d5e462f665698c695e9c7205f3ff88
parent7924b8f170b2092270cb76df04583eac018ad827
xdisk - Fix improper EIO

* Fix an issue when xa_strategy() is called when no spans are valid,
  but before open_tag could be terminated.  This improperly caused the
  BIO to fail.

  If the BIO is not flagged to allow failures, place the BIO on sc->bioq
  when this situation occurs instead of causing it to fail.  The BIO will
  be requeued when a new span becomes valid.

* With this change a hammer2 mount on a xdisk appears to survive multiple
  communications failures without error (i.e. killing the hammer2 service
  demon either box, then restarting it).

* Fix a locking panic.
sys/dev/disk/xdisk/xdisk.c