rbd: timeout watch teardown on unmap with mount_timeout
authorIlya Dryomov <idryomov@gmail.com>
Tue, 12 May 2015 16:53:24 +0000 (19:53 +0300)
committerIlya Dryomov <idryomov@gmail.com>
Thu, 25 Jun 2015 08:49:30 +0000 (11:49 +0300)
commit2894e1d769743eb583bf8dc6be149f64a7c6a798
treee168d83ad58e8f9dbfa5e456ddfeecdd0e762f5b
parent5be73034771c8f18b241f1974803865a4de2cad1
rbd: timeout watch teardown on unmap with mount_timeout

As part of unmap sequence, kernel client has to talk to the OSDs to
teardown watch on the header object.  If none of the OSDs are available
it would hang forever, until interrupted by a signal - when that
happens we follow through with the rest of unmap procedure (i.e.
unregister the device and put all the data structures) and the unmap is
still considired successful (rbd cli tool exits with 0).  The watch on
the userspace side should eventually timeout so that's fine.

This isn't very nice, because various userspace tools (pacemaker rbd
resource agent, for example) then have to worry about setting up their
own timeouts.  Timeout it with mount_timeout (60 seconds by default).

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Reviewed-by: Sage Weil <sage@redhat.com>
drivers/block/rbd.c