Messages in this thread Patch in this message | | | From | Dexuan Cui <> | Subject | [PATCH v2] hv: hv_fcopy: drop the obsolete message on transfer failure | Date | Wed, 26 Nov 2014 23:31:31 -0800 |
| |
In the case the user-space daemon crashes, hangs or is killed, we need to down the semaphore, otherwise, after the daemon starts next time, the obsolete data in fcopy_transaction.message or fcopy_transaction.fcopy_msg will be used immediately.
Reviewed-by: Vitaly Kuznetsov <vkuznets@redhat.com> Cc: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Dexuan Cui <decui@microsoft.com> ---
v2: I removed the "FCP" prefix as Greg asked.
I also updated the output message a little: "FCP: failed to acquire the semaphore" --> "can not acquire the semaphore: it is benign"
drivers/hv/hv_fcopy.c | 9 +++++++++ 1 file changed, 9 insertions(+)
diff --git a/drivers/hv/hv_fcopy.c b/drivers/hv/hv_fcopy.c index 23b2ce2..c518ad9 100644 --- a/drivers/hv/hv_fcopy.c +++ b/drivers/hv/hv_fcopy.c @@ -86,6 +86,15 @@ static void fcopy_work_func(struct work_struct *dummy) * process the pending transaction. */ fcopy_respond_to_host(HV_E_FAIL); + + /* In the case the user-space daemon crashes, hangs or is killed, we + * need to down the semaphore, otherwise, after the daemon starts next + * time, the obsolete data in fcopy_transaction.message or + * fcopy_transaction.fcopy_msg will be used immediately. + */ + if (down_trylock(&fcopy_transaction.read_sema)) + pr_debug("can not acquire the semaphore: it is benign\n"); + } static int fcopy_handle_handshake(u32 version) -- 1.9.1
| |