From patchwork Tue Sep 29 18:05:09 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Schumaker, Anna" X-Patchwork-Id: 7288961 Return-Path: X-Original-To: patchwork-linux-fsdevel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 2E1959F7B5 for ; Tue, 29 Sep 2015 18:05:55 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 6079B20504 for ; Tue, 29 Sep 2015 18:05:54 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 6A4F7205C4 for ; Tue, 29 Sep 2015 18:05:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S935387AbbI2SFt (ORCPT ); Tue, 29 Sep 2015 14:05:49 -0400 Received: from mx144.netapp.com ([216.240.21.25]:61603 "EHLO mx144.netapp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S935363AbbI2SFb (ORCPT ); Tue, 29 Sep 2015 14:05:31 -0400 X-IronPort-AV: E=Sophos;i="5.17,609,1437462000"; d="scan'208";a="70861679" Received: from vmwexchts03-prd.hq.netapp.com ([10.122.105.31]) by mx144-out.netapp.com with ESMTP; 29 Sep 2015 11:05:30 -0700 Received: from smtp1.corp.netapp.com (10.57.156.124) by VMWEXCHTS03-PRD.hq.netapp.com (10.122.105.31) with Microsoft SMTP Server id 15.0.1104.5; Tue, 29 Sep 2015 11:05:30 -0700 Received: from davros.com ([10.63.231.171]) by smtp1.corp.netapp.com (8.13.1/8.13.1/NTAP-1.6) with ESMTP id t8TI5EeN008611; Tue, 29 Sep 2015 11:05:28 -0700 (PDT) From: Anna Schumaker To: , , , , , , , , , , Subject: [PATCH v4 6/9] vfs: Copy should use file_out rather than file_in Date: Tue, 29 Sep 2015 14:05:09 -0400 Message-ID: <1443549913-8091-7-git-send-email-Anna.Schumaker@Netapp.com> X-Mailer: git-send-email 2.5.3 In-Reply-To: <1443549913-8091-1-git-send-email-Anna.Schumaker@Netapp.com> References: <1443549913-8091-1-git-send-email-Anna.Schumaker@Netapp.com> MIME-Version: 1.0 Sender: linux-fsdevel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP The way to think about this is that the destination filesystem reads the data from the source file and processes it accordingly. This is especially important to avoid an infinate loop when doing a "server to server" copy on NFS. Signed-off-by: Anna Schumaker --- fs/read_write.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fs/read_write.c b/fs/read_write.c index 8e7cb33..6f74f1f 100644 --- a/fs/read_write.c +++ b/fs/read_write.c @@ -1355,7 +1355,7 @@ ssize_t vfs_copy_file_range(struct file *file_in, loff_t pos_in, if (!(file_in->f_mode & FMODE_READ) || !(file_out->f_mode & FMODE_WRITE) || (file_out->f_flags & O_APPEND) || - !file_in->f_op || !file_in->f_op->copy_file_range) + !file_out->f_op || !file_out->f_op->copy_file_range) return -EBADF; inode_in = file_inode(file_in); @@ -1378,8 +1378,8 @@ ssize_t vfs_copy_file_range(struct file *file_in, loff_t pos_in, if (ret) return ret; - ret = file_in->f_op->copy_file_range(file_in, pos_in, file_out, pos_out, - len, flags); + ret = file_out->f_op->copy_file_range(file_in, pos_in, file_out, pos_out, + len, flags); if (ret > 0) { fsnotify_access(file_in); add_rchar(current, ret);