[libvirt] [PATCH v4 0/9] add close callback for drivers with persistent connection
nshirokovskiy at virtuozzo.com
Sat Feb 6 12:42:20 UTC 2016
Suddenly I realize I need to check that peer supports
introduced driver close callbacks. Without it registering
close callbacks from new client to old server will fail.
So, don't hurry to push )
On 05.02.2016 16:44, Nikolay Shirokovskiy wrote:
> Currently close callback API can only inform us of closing the connection
> between remote driver and daemon. But what if a driver running in the
> daemon itself can have another persistent connection? In this case
> we want to be informed of that connection changes state too.
> This patch series extends meaning of current close callback API so
> that now it notifies of closing of any internal persistent connection.
> The overall approach is to move close callback support to drivers.
> Changes from v3:
> Add patch  "close callback: make unregister clean after connect close event."
> Make register/unregister methods of connection close callback object
> return void. This solves the problem of patch  "daemon: add connection close rpc"
> ( in previous version) of consistent unregistering. All checks are
> moved outside of the methods. I hesitate whether to add or not means
> that track connection close callback object consinstency and finally
> decided to add (checks and warnings inside methods). The reason is that
> without these checks we get memory leaks which are rather difficult
> to find out. Unfortunately this change touch a number of patches as
> the first change is done in the first patch of the series.
> Changes from v2:
> Split patches further to make it more comprehensible.
> Nikolay Shirokovskiy (9):
> factor out virConnectCloseCallbackDataPtr methods
> virConnectCloseCallbackData: fix connection object refcount
> close callback: make unregister clean after connect close event
> virConnectCloseCallbackData: factor out callback disarming
> close callback API: remove unnecessary locks
> virConnectCloseCallbackDataDispose: remove unnecessary locks
> close callback: move it to driver
> daemon: add connection close rpc
> vz: implement connection close notification
> daemon/libvirtd.h | 1 +
> daemon/remote.c | 84 ++++++++++++++++++++++++++++++
> src/datatypes.c | 118 ++++++++++++++++++++++++++++++++++---------
> src/datatypes.h | 16 ++++--
> src/driver-hypervisor.h | 12 +++++
> src/libvirt-host.c | 46 ++---------------
> src/remote/remote_driver.c | 114 ++++++++++++++++++++++++++++++++++-------
> src/remote/remote_protocol.x | 24 ++++++++-
> src/remote_protocol-structs | 6 +++
> src/vz/vz_driver.c | 59 ++++++++++++++++++++++
> src/vz/vz_sdk.c | 4 ++
> src/vz/vz_utils.h | 3 ++
> 12 files changed, 397 insertions(+), 90 deletions(-)
More information about the libvir-list