]> www.infradead.org Git - users/jedix/linux-maple.git/commit
dm resume: don't return EINVAL when signalled
authorKhazhismel Kumykov <khazhy@google.com>
Tue, 13 Aug 2024 10:39:52 +0000 (12:39 +0200)
committerMikulas Patocka <mpatocka@redhat.com>
Tue, 13 Aug 2024 11:51:34 +0000 (13:51 +0200)
commit7a636b4f03af9d541205f69e373672e7b2b60a8a
tree19574cfc4cf1dd481ab1be2ec32142694ffd01d5
parent1e1fd567d32fcf7544c6e09e0e5bc6c650da6e23
dm resume: don't return EINVAL when signalled

If the dm_resume method is called on a device that is not suspended, the
method will suspend the device briefly, before resuming it (so that the
table will be swapped).

However, there was a bug that the return value of dm_suspended_md was not
checked. dm_suspended_md may return an error when it is interrupted by a
signal. In this case, do_resume would call dm_swap_table, which would
return -EINVAL.

This commit fixes the logic, so that error returned by dm_suspend is
checked and the resume operation is undone.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Khazhismel Kumykov <khazhy@google.com>
Cc: stable@vger.kernel.org
drivers/md/dm-ioctl.c