Commit 05c8de4f authored by Xiao Ni's avatar Xiao Ni Committed by Yu Kuai
Browse files

md: fix return value of mddev_trylock

A return value of 0 is treaded as successful lock acquisition. In fact, a
return value of 1 means getting the lock successfully.

Link: https://lore.kernel.org/linux-raid/20260127073951.17248-1-xni@redhat.com


Fixes: 9e59d609 ("md: call del_gendisk in control path")
Reported-by: default avatarBart Van Assche <bvanassche@acm.org>
Closes: https://lore.kernel.org/linux-raid/20250611073108.25463-1-xni@redhat.com/T/#mfa369ef5faa4aa58e13e6d9fdb88aecd862b8f2f


Signed-off-by: default avatarXiao Ni <xni@redhat.com>
Reviewed-by: default avatarBart Van Assche <bvanassche@acm.org>
Reviewed-by: default avatarLi Nan <linan122@huawei.com>
Signed-off-by: default avatarYu Kuai <yukuai@fnnas.com>
parent 6abc7d5d
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -735,8 +735,8 @@ static inline int mddev_trylock(struct mddev *mddev)
	int ret;

	ret = mutex_trylock(&mddev->reconfig_mutex);
	if (!ret && test_bit(MD_DELETED, &mddev->flags)) {
		ret = -ENODEV;
	if (ret && test_bit(MD_DELETED, &mddev->flags)) {
		ret = 0;
		mutex_unlock(&mddev->reconfig_mutex);
	}
	return ret;