From: Markus Elfring Date: Wed, 18 Sep 2024 13:05:29 +0000 (+0200) Subject: dm-crypt: Use up_read() together with key_put() only once in crypt_set_keyring_key() X-Git-Tag: v6.12-rc1~30^2~7 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=c5391c0e04f1b6ede3623962192b08a4eb224491;p=linux-2.6-block.git dm-crypt: Use up_read() together with key_put() only once in crypt_set_keyring_key() The combination of the calls “up_read(&key->sem)” and “key_put(key)” was immediately used after a return code check for a set_key() call in this function implementation. Thus use such a function call pair only once instead directly before the check. This issue was transformed by using the Coccinelle software. Signed-off-by: Markus Elfring Signed-off-by: Mikulas Patocka --- diff --git a/drivers/md/dm-crypt.c b/drivers/md/dm-crypt.c index d5533b43054e..dae2fe3cb182 100644 --- a/drivers/md/dm-crypt.c +++ b/drivers/md/dm-crypt.c @@ -2621,16 +2621,13 @@ static int crypt_set_keyring_key(struct crypt_config *cc, const char *key_string down_read(&key->sem); ret = set_key(cc, key); + up_read(&key->sem); + key_put(key); if (ret < 0) { - up_read(&key->sem); - key_put(key); kfree_sensitive(new_key_string); return ret; } - up_read(&key->sem); - key_put(key); - /* clear the flag since following operations may invalidate previously valid key */ clear_bit(DM_CRYPT_KEY_VALID, &cc->flags);