Received: by 2002:ac0:da4c:0:0:0:0:0 with SMTP id a12csp960126imi; Fri, 22 Jul 2022 13:37:15 -0700 (PDT) X-Google-Smtp-Source: AGRyM1uCBsmykA+Y7juQSkcoocIFi9S3sCWkdz171r8mPDa3L99ha7n31fWrgl6S2oAYYt9ZvXP1 X-Received: by 2002:a63:d004:0:b0:41a:aea0:95bc with SMTP id z4-20020a63d004000000b0041aaea095bcmr1309002pgf.26.1658522235479; Fri, 22 Jul 2022 13:37:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1658522235; cv=none; d=google.com; s=arc-20160816; b=dHuNOQAzLmAJ7O8G9K31tAieSMNRb/403JnSYdN2Z/q99WsjGaEZZq7A7O/G6ym1k3 n3qkAhlwBf6YXfxymS4PXtWRUKzHMIky/kqcziLpgcWkN8aE7gjWl6fB0NTwJ0tIppXt zH4MlBLnp9lVtV2G69uRZzE+sxgBBEspRiZE6cBA0Uuhuzles9DFlKWcm/cIx4yvszFi howWFyGRDQ9ICBGjzqvskyxDVMHh3dwktRPbXlcKpG0dkOYVmTDa+/s1i1HRY3/3DmQV Hf07doDoV12t52dyVM/0ZJZ6/0NqgEpFokEN7Ui3Gdp+JQLb+9SwprvdnTi9cEcePy0c OYUw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:to:from:subject; bh=IRIBIoERfGbsdEjMxa0oH8hIjke10N8abRjmgEEqPfs=; b=Ph28Ul1sWvCM5TlSXE0Gl/+xXaXCsEiaoweoS2YpSHhkZuxmjGDi26D+zhdVWnD6X7 4yrk5YoERGzL8e8sNb1FbKDPDu7Pbg3lLoD0VX2vNbGY2sh8mWkvHzl1PC0E42uyKYcs zViB9o9hm8R8gVR9/xQufUOd/JAsvu4FJbZ8vpLW66d648cCvNB09LP+FLXjM7cf+nND Pgpi9MepC1zHUdakYO8ErTe214cEnTTwy8eL3XDRNPsxqPCytSBL1/4CqMo0vRBxjXs0 RZfXSMcqX3S8SUdRCLlci1qXBezpjfl7XhLQslupixov4nFnxaoiz3NHs1MrIWgwa6gk AFdQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=oracle.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id c18-20020a631c12000000b00414df9a7dedsi6097917pgc.208.2022.07.22.13.37.00; Fri, 22 Jul 2022 13:37:15 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236531AbiGVUT5 (ORCPT + 99 others); Fri, 22 Jul 2022 16:19:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46554 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234603AbiGVUT4 (ORCPT ); Fri, 22 Jul 2022 16:19:56 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 30DBAAF70E for ; Fri, 22 Jul 2022 13:19:56 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id DF755B82A1E for ; Fri, 22 Jul 2022 20:19:54 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9D03FC341C6 for ; Fri, 22 Jul 2022 20:19:53 +0000 (UTC) Subject: [PATCH v1 09/11] NFSD: Remove kmalloc from nfsd4_do_async_copy() From: Chuck Lever To: linux-nfs@vger.kernel.org Date: Fri, 22 Jul 2022 16:19:52 -0400 Message-ID: <165852119268.11403.4801478667056229494.stgit@manet.1015granger.net> In-Reply-To: <165852076926.11403.44005570813790008.stgit@manet.1015granger.net> References: <165852076926.11403.44005570813790008.stgit@manet.1015granger.net> User-Agent: StGit/1.5.dev2+g9ce680a5 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-6.7 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_HI,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org Instead of manufacturing a phony struct nfsd_file, pass the struct file returned by nfs42_ssc_open() directly to nfsd4_do_copy(). Signed-off-by: Chuck Lever --- fs/nfsd/nfs4proc.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c index 347a86a6730e..0365a5575236 100644 --- a/fs/nfsd/nfs4proc.c +++ b/fs/nfsd/nfs4proc.c @@ -1763,29 +1763,31 @@ static void cleanup_async_copy(struct nfsd4_copy *copy) nfs4_put_copy(copy); } +/** + * nfsd4_do_async_copy - kthread function for background server-side COPY + * @data: arguments for COPY operation + * + * Return values: + * %0: Copy operation is done. + */ static int nfsd4_do_async_copy(void *data) { struct nfsd4_copy *copy = (struct nfsd4_copy *)data; struct nfsd4_copy *cb_copy; if (nfsd4_ssc_is_inter(copy)) { - copy->nf_src = kzalloc(sizeof(struct nfsd_file), GFP_KERNEL); - if (!copy->nf_src) { - copy->nfserr = nfserr_serverfault; - nfsd4_interssc_disconnect(copy->ss_mnt); - goto do_callback; - } - copy->nf_src->nf_file = nfs42_ssc_open(copy->ss_mnt, ©->c_fh, - ©->stateid); - if (IS_ERR(copy->nf_src->nf_file)) { + struct file *filp; + + filp = nfs42_ssc_open(copy->ss_mnt, ©->c_fh, + ©->stateid); + if (IS_ERR(filp)) { copy->nfserr = nfserr_offload_denied; nfsd4_interssc_disconnect(copy->ss_mnt); goto do_callback; } - copy->nfserr = nfsd4_do_copy(copy, copy->nf_src->nf_file, + copy->nfserr = nfsd4_do_copy(copy, filp, copy->nf_dst->nf_file, false); - nfsd4_cleanup_inter_ssc(copy->ss_mnt, copy->nf_src->nf_file, - copy->nf_dst); + nfsd4_cleanup_inter_ssc(copy->ss_mnt, filp, copy->nf_dst); } else { copy->nfserr = nfsd4_do_copy(copy, copy->nf_src->nf_file, copy->nf_dst->nf_file, false); @@ -1807,8 +1809,6 @@ static int nfsd4_do_async_copy(void *data) ©->fh, copy->cp_count, copy->nfserr); nfsd4_run_cb(&cb_copy->cp_cb); out: - if (nfsd4_ssc_is_inter(copy)) - kfree(copy->nf_src); cleanup_async_copy(copy); return 0; }