From patchwork Thu Jun 29 00:28:51 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sweet Tea Dorminy X-Patchwork-Id: 13296461 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 95319EB64D7 for ; Thu, 29 Jun 2023 00:35:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231450AbjF2Afl (ORCPT ); Wed, 28 Jun 2023 20:35:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58564 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231290AbjF2AfW (ORCPT ); Wed, 28 Jun 2023 20:35:22 -0400 Received: from box.fidei.email (box.fidei.email [71.19.144.250]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A6CEC210E; Wed, 28 Jun 2023 17:35:19 -0700 (PDT) Received: from authenticated-user (box.fidei.email [71.19.144.250]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by box.fidei.email (Postfix) with ESMTPSA id 9383E8079D; Wed, 28 Jun 2023 20:29:10 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=dorminy.me; s=mail; t=1687998550; bh=g0b35MrtF2uGyl8iDzN5bX4Wn/xb7o1sAgwZ2In2a1o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KzBiXw++myjXzO26U4YjM+kDm2tABjv2ds31/P3BmSkbXKCQOYUe95Pg8hX1bxZyo mcRR9YrKef7n/GlzxmLrj/2yrXf77SJLtPkFVI7mBGnRPZkez5qdSdmRvusLwhrNbe 2aNmqnn7AxD3F3YsJgGu0HT3vJfvW+arb/kdnUCljJdCOzGm//AtE1vrL8/f2tF+gx ggsSAPz3PsISfV4VHFB1CTyTp2Q4QHGF+jSgMxYz39JkjuQCZclJz9lqtDobKBNaDD XNTCREok7mt1olhg5owvCbOaUFnxR6vEcX5SHz7W48mTxLQh1vjJP0JQ3sHyi/XcIQ QFT1UL/lIPEHg== From: Sweet Tea Dorminy To: Chris Mason , Josef Bacik , David Sterba , Eric Biggers , "Theodore Y. Ts'o" , Jaegeuk Kim , kernel-team@meta.com, linux-btrfs@vger.kernel.org, linux-fscrypt@vger.kernel.org Cc: Sweet Tea Dorminy Subject: [PATCH v4 1/8] fscrypt: move inline crypt decision to info setup Date: Wed, 28 Jun 2023 20:28:51 -0400 Message-Id: In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-fscrypt@vger.kernel.org setup_file_encryption_key() is doing a lot of things at the moment -- setting the crypt_info's inline encryption bit, finding and locking a master key, and calling the functions to get the appropriate prepared key for this info. Since setting the inline encryption bit has nothing to do with finding the master key, it's easy and hopefully clearer to select the encryption implementation in fscrypt_setup_encryption_info(), the main fscrypt_info setup function, instead of in setup_file_encryption_key() which will long-term only deal in setting up the prepared key for the info. Signed-off-by: Sweet Tea Dorminy --- fs/crypto/keysetup.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/fs/crypto/keysetup.c b/fs/crypto/keysetup.c index 361f41ef46c7..b89c32ad19fb 100644 --- a/fs/crypto/keysetup.c +++ b/fs/crypto/keysetup.c @@ -443,10 +443,6 @@ static int setup_file_encryption_key(struct fscrypt_info *ci, struct fscrypt_master_key *mk; int err; - err = fscrypt_select_encryption_impl(ci); - if (err) - return err; - err = fscrypt_policy_to_key_spec(&ci->ci_policy, &mk_spec); if (err) return err; @@ -580,6 +576,10 @@ fscrypt_setup_encryption_info(struct inode *inode, WARN_ON_ONCE(mode->ivsize > FSCRYPT_MAX_IV_SIZE); crypt_info->ci_mode = mode; + res = fscrypt_select_encryption_impl(crypt_info); + if (res) + goto out; + res = setup_file_encryption_key(crypt_info, need_dirhash_key, &mk); if (res) goto out;