[dm-devel] [PATCH 0/2] Add suspended state check for target messages
Kiyoshi Ueda
k-ueda at ct.jp.nec.com
Fri Nov 13 10:22:16 UTC 2009
Hi Mike,
On 11/13/2009 05:06 PM +0900, Mike Anderson wrote:
> This patch adds a accessor function that allows determining if a
> mapped_device is in the suspended state and then adds this check to the
> multipath targets multipath_message function.
>
> As previously described in the email at the archive url provided below the
> target_message ioctl can call into the target after suspend completes.
> This can cause new work to be queued and actions to be taken by the target
> that should be prevented in the suspended state.
>
> http://permalink.gmane.org/gmane.linux.kernel.device-mapper.devel/10486
>
> ---
>
> Mike Anderson (2):
> dm: Add accessor dm_table_md_suspended
> dm: Add suspended check to multipath_message
Thank you for the patch.
But this patch-set doesn't solve the race problem.
Multipath must start rejecting message ioctl *before* flushing
workqueues in postsuspend.
(*) With my patch, all multipath works are flushed in postsuspend.
http://patchwork.kernel.org/patch/59556/
However, your patch starts rejecting message ioctl *after* postsuspend.
So there is a small window below:
dm_suspend() multipath_message()
------------------------------------------------------------------
dm_table_post_suspend()
-> flush_multipath_works()
if (!test_bit(DMF_SUSPENDED))
queue_work()
set_bit(DMF_SUSPENDED)
...
dm_swap_table()
[de]activate_path()
Thanks,
Kiyoshi Ueda
More information about the dm-devel
mailing list