diff options
author | Markus Elfring <elfring@users.sourceforge.net> | 2024-09-18 16:05:29 +0300 |
---|---|---|
committer | Mikulas Patocka <mpatocka@redhat.com> | 2024-09-18 19:10:40 +0300 |
commit | c5391c0e04f1b6ede3623962192b08a4eb224491 (patch) | |
tree | 1877d7dfdb0d61d3a628d5ba8d0d62a68c63427c /drivers/md | |
parent | c8691cd0fc11197515ed148de0780d927bfca38b (diff) | |
download | linux-c5391c0e04f1b6ede3623962192b08a4eb224491.tar.xz |
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 <elfring@users.sourceforge.net>
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Diffstat (limited to 'drivers/md')
-rw-r--r-- | drivers/md/dm-crypt.c | 7 |
1 files changed, 2 insertions, 5 deletions
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); |