diff options
-rw-r--r-- | drivers/hv/hv_snapshot.c | 9 | ||||
-rw-r--r-- | 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 c4013c859bcd..a6707133c297 100644 --- a/drivers/hv/hv_snapshot.c +++ b/drivers/hv/hv_snapshot.c | |||
@@ -142,6 +142,11 @@ static int vss_on_msg(void *msg, int len) | |||
142 | return vss_handle_handshake(vss_msg); | 142 | return vss_handle_handshake(vss_msg); |
143 | } else if (vss_transaction.state == HVUTIL_USERSPACE_REQ) { | 143 | } else if (vss_transaction.state == HVUTIL_USERSPACE_REQ) { |
144 | vss_transaction.state = HVUTIL_USERSPACE_RECV; | 144 | vss_transaction.state = HVUTIL_USERSPACE_RECV; |
145 | |||
146 | if (vss_msg->vss_hdr.operation == VSS_OP_HOT_BACKUP) | ||
147 | vss_transaction.msg->vss_cf.flags = | ||
148 | VSS_HBU_NO_AUTO_RECOVERY; | ||
149 | |||
145 | if (cancel_delayed_work_sync(&vss_timeout_work)) { | 150 | if (cancel_delayed_work_sync(&vss_timeout_work)) { |
146 | vss_respond_to_host(vss_msg->error); | 151 | vss_respond_to_host(vss_msg->error); |
147 | /* Transaction is finished, reset the state. */ | 152 | /* Transaction is finished, reset the state. */ |
@@ -202,6 +207,7 @@ static void vss_handle_request(struct work_struct *dummy) | |||
202 | */ | 207 | */ |
203 | case VSS_OP_THAW: | 208 | case VSS_OP_THAW: |
204 | case VSS_OP_FREEZE: | 209 | case VSS_OP_FREEZE: |
210 | case VSS_OP_HOT_BACKUP: | ||
205 | if (vss_transaction.state < HVUTIL_READY) { | 211 | if (vss_transaction.state < HVUTIL_READY) { |
206 | /* Userspace is not registered yet */ | 212 | /* Userspace is not registered yet */ |
207 | vss_respond_to_host(HV_E_FAIL); | 213 | vss_respond_to_host(HV_E_FAIL); |
@@ -210,9 +216,6 @@ static void vss_handle_request(struct work_struct *dummy) | |||
210 | vss_transaction.state = HVUTIL_HOSTMSG_RECEIVED; | 216 | vss_transaction.state = HVUTIL_HOSTMSG_RECEIVED; |
211 | vss_send_op(); | 217 | vss_send_op(); |
212 | return; | 218 | return; |
213 | case VSS_OP_HOT_BACKUP: | ||
214 | vss_transaction.msg->vss_cf.flags = VSS_HBU_NO_AUTO_RECOVERY; | ||
215 | break; | ||
216 | case VSS_OP_GET_DM_INFO: | 219 | case VSS_OP_GET_DM_INFO: |
217 | vss_transaction.msg->dm_info.flags = 0; | 220 | vss_transaction.msg->dm_info.flags = 0; |
218 | break; | 221 | break; |
diff --git a/tools/hv/hv_vss_daemon.c b/tools/hv/hv_vss_daemon.c index 5d51d6ff08e6..e0829809c897 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[]) | |||
250 | syslog(LOG_ERR, "/etc/fstab and /proc/mounts"); | 250 | syslog(LOG_ERR, "/etc/fstab and /proc/mounts"); |
251 | } | 251 | } |
252 | break; | 252 | break; |
253 | case VSS_OP_HOT_BACKUP: | ||
254 | syslog(LOG_INFO, "VSS: op=CHECK HOT BACKUP\n"); | ||
255 | break; | ||
253 | default: | 256 | default: |
254 | syslog(LOG_ERR, "Illegal op:%d\n", op); | 257 | syslog(LOG_ERR, "Illegal op:%d\n", op); |
255 | } | 258 | } |