Re: [PATCH 09/26] target_core_configfs: avoid pointless cred reference count bump

From: Al Viro
Date: Sun Nov 24 2024 - 14:25:19 EST


On Sun, Nov 24, 2024 at 02:43:55PM +0100, Christian Brauner wrote:
> The creds are allocated via prepare_kernel_cred() which has already
> taken a reference.
>
> Signed-off-by: Christian Brauner <brauner@xxxxxxxxxx>
> ---
> drivers/target/target_core_configfs.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/target/target_core_configfs.c b/drivers/target/target_core_configfs.c
> index ec7a5598719397da5cadfed12a05ca8eb81e46a9..d102ab79c56dd7977465f7455749e6e7a2c9fba1 100644
> --- a/drivers/target/target_core_configfs.c
> +++ b/drivers/target/target_core_configfs.c
> @@ -3756,10 +3756,9 @@ static int __init target_core_init_configfs(void)
> ret = -ENOMEM;
> goto out;
> }
> - old_cred = override_creds(get_new_cred(kern_cred));
> + old_cred = override_creds(kern_cred);
> target_init_dbroot();
> put_cred(revert_creds(old_cred));
> - put_cred(kern_cred);

FWIW, I agree with Amir -
revert_creds(old_cred);
put_cred(kern_cred);
might be easier to follow. In effect, you have two scopes here -
from prepare_kernel_cred() to put_cred() and, nested in it,
from override_creds() to revert_creds().

I'm not saying that __cleanup() is the right tool in those cases,
but the closing brackets of those scopes would be better off
separated.