From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754608AbcHSBO4 (ORCPT ); Thu, 18 Aug 2016 21:14:56 -0400 Received: from p3plsmtps2ded02.prod.phx3.secureserver.net ([208.109.80.59]:34494 "EHLO p3plsmtps2ded02.prod.phx3.secureserver.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754579AbcHSBAZ (ORCPT ); Thu, 18 Aug 2016 21:00:25 -0400 x-originating-ip: 72.167.245.219 From: kys@exchange.microsoft.com To: gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org, devel@linuxdriverproject.org, olaf@aepfle.de, apw@canonical.com, vkuznets@redhat.com, jasowang@redhat.com, leann.ogasawara@canonical.com Cc: Alex Ng , "K. Y. Srinivasan" Subject: [PATCH 2/2] Drivers: hv: utils: Check VSS daemon is listening before a hot backup Date: Thu, 18 Aug 2016 11:16:55 -0700 Message-Id: <1471544215-13999-2-git-send-email-kys@exchange.microsoft.com> X-Mailer: git-send-email 1.7.4.1 In-Reply-To: <1471544215-13999-1-git-send-email-kys@exchange.microsoft.com> References: <1471544167-13952-1-git-send-email-kys@exchange.microsoft.com> <1471544215-13999-1-git-send-email-kys@exchange.microsoft.com> Reply-To: kys@microsoft.com X-CMAE-Envelope: MS4wfDsn2fQEcDFkS2K3gpGzs1iA20rx+w6ZvaXl14/Lz7KJpyaaSgCws9t0r+F7t4vZsLTjBcW94w4bdxNTX/JgxCFyTTS7kmtzyk10ugrgnt9s9yrNimQW IhJRTZUFVHorosNOLUyq/AAloI/Ty6KydlooZPiJlIsp170pfpnaFYxxfb3x4rcoafg5FL5kXvukGjVzy4WeGBZC6VGCHAmLZHYSQAig0nOjXBcaPE9PmraT 7PvSMMoB69OTjJeHoGPmDnCyERykA+07Vp2dUOdyy5hCjUPRTnEt6yYJX6I7Al9UHj5IQiOMQFzZlyaJ056Tt+pd4WTOmHwFFGQGFqstN0gLvy1JN5NiJRms Bt34s+FmTpF4GXmQAZa4Nqpk+db0flzJEuG4xtT5cuTUDS/hezOozLBdXA6pTgpZFdmZTi6im+v0tC4l4+RMDXSnZCXz+ATof+masjfJQ54K0cYLkDfrdvje jlpqMjNH8D1RfrAVHDBk3G6fUChVFLm1douAHw== Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Alex Ng Hyper-V host will send a VSS_OP_HOT_BACKUP request to check if guest is ready for a live backup/snapshot. The driver should respond to the check only if the daemon is running and listening to requests. This allows the host to fallback to standard snapshots in case the VSS daemon is not running. Signed-off-by: Alex Ng Signed-off-by: K. Y. Srinivasan --- drivers/hv/hv_snapshot.c | 9 ++++++--- tools/hv/hv_vss_daemon.c | 3 +++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/hv/hv_snapshot.c b/drivers/hv/hv_snapshot.c index 4c8dd20..4cfd854 100644 --- a/drivers/hv/hv_snapshot.c +++ b/drivers/hv/hv_snapshot.c @@ -136,6 +136,11 @@ static int vss_on_msg(void *msg, int len) return vss_handle_handshake(vss_msg); } else if (vss_transaction.state == HVUTIL_USERSPACE_REQ) { vss_transaction.state = HVUTIL_USERSPACE_RECV; + + if (vss_msg->vss_hdr.operation == VSS_OP_HOT_BACKUP) + vss_transaction.msg->vss_cf.flags = + VSS_HBU_NO_AUTO_RECOVERY; + if (cancel_delayed_work_sync(&vss_timeout_work)) { vss_respond_to_host(vss_msg->error); /* Transaction is finished, reset the state. */ @@ -195,6 +200,7 @@ static void vss_handle_request(struct work_struct *dummy) */ case VSS_OP_THAW: case VSS_OP_FREEZE: + case VSS_OP_HOT_BACKUP: if (vss_transaction.state < HVUTIL_READY) { /* Userspace is not registered yet */ vss_respond_to_host(HV_E_FAIL); @@ -203,9 +209,6 @@ static void vss_handle_request(struct work_struct *dummy) vss_transaction.state = HVUTIL_HOSTMSG_RECEIVED; vss_send_op(); return; - case VSS_OP_HOT_BACKUP: - vss_transaction.msg->vss_cf.flags = VSS_HBU_NO_AUTO_RECOVERY; - break; case VSS_OP_GET_DM_INFO: vss_transaction.msg->dm_info.flags = 0; break; diff --git a/tools/hv/hv_vss_daemon.c b/tools/hv/hv_vss_daemon.c index 5d51d6f..e082980 100644 --- a/tools/hv/hv_vss_daemon.c +++ b/tools/hv/hv_vss_daemon.c @@ -250,6 +250,9 @@ int main(int argc, char *argv[]) syslog(LOG_ERR, "/etc/fstab and /proc/mounts"); } break; + case VSS_OP_HOT_BACKUP: + syslog(LOG_INFO, "VSS: op=CHECK HOT BACKUP\n"); + break; default: syslog(LOG_ERR, "Illegal op:%d\n", op); } -- 1.7.4.1