Received: by 2002:ac0:946b:0:0:0:0:0 with SMTP id j40csp1422436imj; Sun, 10 Feb 2019 01:44:46 -0800 (PST) X-Google-Smtp-Source: AHgI3IbqJo+e369CF9/2yl03+vv6q5wlP3YqCTdv26ch8of8Y+cj1ALKFW9q5LRPhN0HhlrrkHpB X-Received: by 2002:a65:628e:: with SMTP id f14mr11787258pgv.193.1549791886300; Sun, 10 Feb 2019 01:44:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1549791886; cv=none; d=google.com; s=arc-20160816; b=Vkax0gTTbP0j7Bkuw05LTW0M0Fx5IQGl+YshRec05SJ8SHGE6YHLhjTgP9JFadOU23 0bNbWSVCRqiKbbl20/YZJmeoQcSFIbQ69nXJeO3GhD4ILI50jEQUZWKMDsKm/4wx3+Lc CBu8RPty+GerCVrmcTjaVJ1R6a5mr1hoDTDgzd1/bK/yaSTDYIOjBw+0WHYDvjkWZE1R Q+pu7NjmPH3tXFHVtIZiF/xuLnhdj2NpsxiaJuN+w0adUH9FS8+tzS+RKyVqITYXRzf0 zA7OXQJDVCJSpeV45Gujmc6MhIrT1BY7dForeF84G/TB9zOkj4Sd9JQNTjxMzR9aVeZQ RK5Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:message-id:date:subject:cc :to:from; bh=tAu4vw64vvZBc+PwHlGxrSizzOLNchlU9rT5ak0uh+U=; b=cLt1/tEFS1laYSYb/cJ4N0l4A56Nisu01Bw8lyRz6B5ZISnp05Y2TzD7tpdVyAP4IT fRp83ysioOxXYcmyC78M9kxckUzxNSBA7qi3DQCvPvIKIm8KKtBIJuGN8WiGMvdhxM3s vmK4SCRlMRTDYYwy2khcelwXmvjaLJOTb21awULnV5VXYkxYz2yTEHa3fJKYfx10Fdwd 6lL+s6YVrV23uwMVtmWnJldAJVeTE0XlT1HJLh2un2rnmDIyMMD9x0xozlxSrULn5cJI HLOxiuRtJitJ0287tQiGk9l0KfLY1MTvr6zkf364r1ZT3/oTZKalqEHhV92TOqdov93V Y9Jw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z7si6897607pgv.205.2019.02.10.01.44.30; Sun, 10 Feb 2019 01:44:46 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726157AbfBJJnv (ORCPT + 99 others); Sun, 10 Feb 2019 04:43:51 -0500 Received: from szxga04-in.huawei.com ([45.249.212.190]:3185 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725948AbfBJJnv (ORCPT ); Sun, 10 Feb 2019 04:43:51 -0500 Received: from DGGEMS403-HUB.china.huawei.com (unknown [172.30.72.58]) by Forcepoint Email with ESMTP id 50A8A121E3E2FAA17C9F; Sun, 10 Feb 2019 17:43:48 +0800 (CST) Received: from huawei.com (10.90.53.225) by DGGEMS403-HUB.china.huawei.com (10.3.19.203) with Microsoft SMTP Server id 14.3.408.0; Sun, 10 Feb 2019 17:43:38 +0800 From: Hou Tao To: , , CC: Subject: [PATCH] fat: enable .splice_write to support splice on O_DIRECT file Date: Sun, 10 Feb 2019 17:47:54 +0800 Message-ID: <20190210094754.56355-1-houtao1@huawei.com> X-Mailer: git-send-email 2.16.2.dirty MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.90.53.225] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Now splice() on O_DIRECT-opened fat file will return -EFAULT, that is because the default .splice_write, namely default_file_splice_write(), will construct an ITER_KVEC iov_iter and dio_refill_pages() in dio path can not handle it. Fix it by implementing .splice_write through iter_file_splice_write(). Spotted by xfs-tests generic/091. Signed-off-by: Hou Tao --- fs/fat/file.c | 1 + 1 file changed, 1 insertion(+) diff --git a/fs/fat/file.c b/fs/fat/file.c index 13935ee99e1e..b3bed32946b1 100644 --- a/fs/fat/file.c +++ b/fs/fat/file.c @@ -214,6 +214,7 @@ const struct file_operations fat_file_operations = { #endif .fsync = fat_file_fsync, .splice_read = generic_file_splice_read, + .splice_write = iter_file_splice_write, .fallocate = fat_fallocate, }; -- 2.16.2.dirty