[libcheckers] async path checking in the framework
authorChristophe Varoqui <christophe.varoqui@free.fr>
Thu, 14 Jun 2007 23:12:40 +0000 (01:12 +0200)
committerChristophe Varoqui <christophe.varoqui@free.fr>
Thu, 14 Jun 2007 23:12:40 +0000 (01:12 +0200)
commit8a9de22b049f332a574eead7fa738678397f47fc
tree2c456da339bc8d68d843de32917027c41a4fe63c
parent57adc6a5d562eb1a309655f1b1be1040f0f9f732
[libcheckers] async path checking in the framework

The directio path checker was recently moved to aio API, but the behaviour is still synchronous : io_getevents() blocks until (long) timeout expires.

Truely asynchronous behaviour imposes to
o lower the io_getevents timeout to mininum
o treat a new "pending" checker return status in the daemon (reschedule the checker early for a new io_getevents until the "long" timeout expires)

This patch explores this. This approach has the nice effect to behave well with still-synchronous checker. The daemon should see no regression. But multipath, which assumes synchronous path checking, is for now broken ... to be repaired.

Please comment abundantly this approach, before I start moving ahead.
libcheckers/checkers.h
libcheckers/directio.c
multipathd/main.c