Files
mirror_zfs/module/zfs
Brian Behlendorf a32494d22a Fix suspend Godfather I/Os io_reexecute bits
After resuming a pool the godfather zio could have both the
ZIO_REEXECUTE_NOW and ZIO_REEXECUTE_SUSPEND bits set.  This
can occur if some child zios set ZIO_REEXECUTE_NOW while
other set ZIO_REEXECUTE_SUSPEND.  The godfather zio can
inherit both flags in zio_notify_parent().

The child zios which assigned the ZIO_REEXECUTE_SUSPEND flag
will be removed from the godfather's child list and added to
the spa->spa_suspend_zio_root child list.   While child zios
with the ZIO_REEXECUTE_NOW bit set remain being monitored
by the godfather zio.

When the godfather zio executes zio_done() the presence of
the ZIO_REEXECUTE_SUSPEND bit results in all io_reexecute
being cleared.  These child zios will then not be re-executed
and instead will be destroyed and lost.

The most straight forward way to address this situation is
to only clear the ZIO_REEXECUTE_SUSPEND bit and leave the
ZIO_REEXECUTE_NOW bit set.

Reviewed-by: George Melikov <mail@gmelikov.ru>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: yuxiang <guo.yong33@zte.com.cn>
2017-01-28 12:13:34 -08:00
..
2015-01-16 14:41:26 -08:00
2015-01-16 14:41:26 -08:00
2016-11-02 12:14:45 -07:00
2016-12-12 10:46:26 -08:00
2016-12-12 10:46:26 -08:00
2017-01-03 11:31:18 -06:00
2015-01-16 14:41:26 -08:00
2015-12-22 10:21:33 -08:00
2016-04-21 09:49:25 -07:00
2017-01-03 11:31:18 -06:00
2010-08-31 13:41:58 -07:00
2017-01-03 11:31:18 -06:00
2016-08-11 11:23:49 -07:00
2017-01-03 11:31:18 -06:00
2016-12-02 16:57:49 -07:00
2016-11-29 14:34:33 -08:00
2016-11-29 14:34:33 -08:00
2013-10-31 14:58:04 -07:00
2010-08-31 13:41:58 -07:00
2016-09-21 18:09:00 -07:00
2017-01-03 11:31:18 -06:00
2016-11-30 16:18:20 -07:00
2016-12-16 13:54:51 -08:00
2017-01-03 11:31:18 -06:00
2017-01-27 10:43:39 -08:00
2016-05-31 16:04:26 -07:00
2017-01-03 11:31:18 -06:00
2017-01-23 10:35:58 -08:00