From patchwork Wed Nov 4 08:27:33 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christoph Hellwig X-Patchwork-Id: 11879923 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 621C2139F for ; Wed, 4 Nov 2020 08:32:16 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 3B2712074B for ; Wed, 4 Nov 2020 08:32:15 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b="mW2BzPoS" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727857AbgKDIcM (ORCPT ); Wed, 4 Nov 2020 03:32:12 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45830 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725812AbgKDIcL (ORCPT ); Wed, 4 Nov 2020 03:32:11 -0500 Received: from casper.infradead.org (casper.infradead.org [IPv6:2001:8b0:10b:1236::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A4869C0613D3; Wed, 4 Nov 2020 00:32:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=qwoS/ldP8oxvQDl6Sqqe37ZwIbpdpdCdtB8HHVc24Ec=; b=mW2BzPoSpKXihmEZAjG+QFYUSq FxvVTagg1vofgsm8BF/7KkBQ7l3d1jmMQgczWlH7qDchs9jHxDpZnICXCzTnTJGggq9w3CswT6OxL fhH++/i9oPy6VwJF0pAHTnwmN3LDlq3XhU0LkJhXLGqLSUaOW1sCu2wnkkQr6U+lwtMOsOiYsOlts C1ii/AwUYNxdaBrQkOmIUkL5PvqmfubpmufolrbHgY1KW6SEgZYGTwnK2zalqoRef7Yz31oiOQH7c ED6dX+dUDMZ3+zTUGfZmsX/wDvAWd0dyhnitn4t2L1VwS6y03itn4h6EIphfVpprP5N8jI6pUjgm0 7a9DmqbQ==; Received: from 089144208145.atnat0017.highway.a1.net ([89.144.208.145] helo=localhost) by casper.infradead.org with esmtpsa (Exim 4.92.3 #3 (Red Hat Linux)) id 1kaED5-0004OC-Qx; Wed, 04 Nov 2020 08:32:07 +0000 From: Christoph Hellwig To: Al Viro Cc: Greg KH , Linus Torvalds , Alexey Dobriyan , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/6] seq_file: add seq_read_iter Date: Wed, 4 Nov 2020 09:27:33 +0100 Message-Id: <20201104082738.1054792-2-hch@lst.de> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201104082738.1054792-1-hch@lst.de> References: <20201104082738.1054792-1-hch@lst.de> MIME-Version: 1.0 X-SRS-Rewrite: SMTP reverse-path rewritten from by casper.infradead.org. See http://www.infradead.org/rpr.html Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org iov_iter based variant for reading a seq_file. seq_read is reimplemented on top of the iter variant. Signed-off-by: Christoph Hellwig Tested-by: Greg Kroah-Hartman Signed-off-by: Al Viro Tested-by: Nathan Chancellor Tested-by: Nathan Chancellor --- fs/seq_file.c | 45 ++++++++++++++++++++++++++++------------ include/linux/seq_file.h | 1 + 2 files changed, 33 insertions(+), 13 deletions(-) diff --git a/fs/seq_file.c b/fs/seq_file.c index 31219c1db17de3..3b20e21604e74a 100644 --- a/fs/seq_file.c +++ b/fs/seq_file.c @@ -18,6 +18,7 @@ #include #include #include +#include #include #include @@ -146,7 +147,28 @@ static int traverse(struct seq_file *m, loff_t offset) */ ssize_t seq_read(struct file *file, char __user *buf, size_t size, loff_t *ppos) { - struct seq_file *m = file->private_data; + struct iovec iov = { .iov_base = buf, .iov_len = size}; + struct kiocb kiocb; + struct iov_iter iter; + ssize_t ret; + + init_sync_kiocb(&kiocb, file); + iov_iter_init(&iter, READ, &iov, 1, size); + + kiocb.ki_pos = *ppos; + ret = seq_read_iter(&kiocb, &iter); + *ppos = kiocb.ki_pos; + return ret; +} +EXPORT_SYMBOL(seq_read); + +/* + * Ready-made ->f_op->read_iter() + */ +ssize_t seq_read_iter(struct kiocb *iocb, struct iov_iter *iter) +{ + struct seq_file *m = iocb->ki_filp->private_data; + size_t size = iov_iter_count(iter); size_t copied = 0; size_t n; void *p; @@ -158,14 +180,14 @@ ssize_t seq_read(struct file *file, char __user *buf, size_t size, loff_t *ppos) * if request is to read from zero offset, reset iterator to first * record as it might have been already advanced by previous requests */ - if (*ppos == 0) { + if (iocb->ki_pos == 0) { m->index = 0; m->count = 0; } - /* Don't assume *ppos is where we left it */ - if (unlikely(*ppos != m->read_pos)) { - while ((err = traverse(m, *ppos)) == -EAGAIN) + /* Don't assume ki_pos is where we left it */ + if (unlikely(iocb->ki_pos != m->read_pos)) { + while ((err = traverse(m, iocb->ki_pos)) == -EAGAIN) ; if (err) { /* With prejudice... */ @@ -174,7 +196,7 @@ ssize_t seq_read(struct file *file, char __user *buf, size_t size, loff_t *ppos) m->count = 0; goto Done; } else { - m->read_pos = *ppos; + m->read_pos = iocb->ki_pos; } } @@ -187,13 +209,11 @@ ssize_t seq_read(struct file *file, char __user *buf, size_t size, loff_t *ppos) /* if not empty - flush it first */ if (m->count) { n = min(m->count, size); - err = copy_to_user(buf, m->buf + m->from, n); - if (err) + if (copy_to_iter(m->buf + m->from, n, iter) != n) goto Efault; m->count -= n; m->from += n; size -= n; - buf += n; copied += n; if (!size) goto Done; @@ -254,8 +274,7 @@ ssize_t seq_read(struct file *file, char __user *buf, size_t size, loff_t *ppos) } m->op->stop(m, p); n = min(m->count, size); - err = copy_to_user(buf, m->buf, n); - if (err) + if (copy_to_iter(m->buf, n, iter) != n) goto Efault; copied += n; m->count -= n; @@ -264,7 +283,7 @@ ssize_t seq_read(struct file *file, char __user *buf, size_t size, loff_t *ppos) if (!copied) copied = err; else { - *ppos += copied; + iocb->ki_pos += copied; m->read_pos += copied; } mutex_unlock(&m->lock); @@ -276,7 +295,7 @@ ssize_t seq_read(struct file *file, char __user *buf, size_t size, loff_t *ppos) err = -EFAULT; goto Done; } -EXPORT_SYMBOL(seq_read); +EXPORT_SYMBOL(seq_read_iter); /** * seq_lseek - ->llseek() method for sequential files. diff --git a/include/linux/seq_file.h b/include/linux/seq_file.h index 813614d4b71fbc..b83b3ae3c877f3 100644 --- a/include/linux/seq_file.h +++ b/include/linux/seq_file.h @@ -107,6 +107,7 @@ void seq_pad(struct seq_file *m, char c); char *mangle_path(char *s, const char *p, const char *esc); int seq_open(struct file *, const struct seq_operations *); ssize_t seq_read(struct file *, char __user *, size_t, loff_t *); +ssize_t seq_read_iter(struct kiocb *iocb, struct iov_iter *iter); loff_t seq_lseek(struct file *, loff_t, int); int seq_release(struct inode *, struct file *); int seq_write(struct seq_file *seq, const void *data, size_t len); From patchwork Wed Nov 4 08:27:34 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christoph Hellwig X-Patchwork-Id: 11879925 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id AF500697 for ; Wed, 4 Nov 2020 08:34:28 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8B49820781 for ; Wed, 4 Nov 2020 08:34:28 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b="c5UoOMaE" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726539AbgKDIeZ (ORCPT ); Wed, 4 Nov 2020 03:34:25 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46168 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725812AbgKDIeY (ORCPT ); Wed, 4 Nov 2020 03:34:24 -0500 Received: from casper.infradead.org (casper.infradead.org [IPv6:2001:8b0:10b:1236::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 31B26C0613D3; Wed, 4 Nov 2020 00:34:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=b2Fd/OiDJYNfX586ImlTF4ycJioykyPqmXwMnPPANko=; b=c5UoOMaEg6CKOTEIDo9Xqg1KpG TYiuaASDVS47WTENY50MEwpVHQreig5OMM9/uRDR/Rhv/QVyCtKqoeKNlsxZrTrUARyxrHDvUJaOz FA1r0ZyYPNOt02XH8mPlK+9LrJ2L2yUEKJiNILvCUCX9+P5THC+G8eFgCudw9m8hTjlb2PdNcR5yT 7zGJDO4tIQWzfeW5bOm9B2YRrqYBKNRt6zOvQYt8Z3msyv1rdqz+9qP2eAGL4LiEjibd1jg7sshM4 3Fd7NvN5sOCa7RCg3bq1GGMAoekTddt5jCkxZj2XDVJCHxuRNw+ql2+v02KgBddwtLIiccSSFyj1R YqmZ+qPg==; Received: from 089144208145.atnat0017.highway.a1.net ([89.144.208.145] helo=localhost) by casper.infradead.org with esmtpsa (Exim 4.92.3 #3 (Red Hat Linux)) id 1kaEFG-0004Y2-K7; Wed, 04 Nov 2020 08:34:20 +0000 From: Christoph Hellwig To: Al Viro Cc: Greg KH , Linus Torvalds , Alexey Dobriyan , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/6] proc: wire up generic_file_splice_read for iter ops Date: Wed, 4 Nov 2020 09:27:34 +0100 Message-Id: <20201104082738.1054792-3-hch@lst.de> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201104082738.1054792-1-hch@lst.de> References: <20201104082738.1054792-1-hch@lst.de> MIME-Version: 1.0 X-SRS-Rewrite: SMTP reverse-path rewritten from by casper.infradead.org. See http://www.infradead.org/rpr.html Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org Wire up generic_file_splice_read for the iter based proxy ops, so that splice reads from them work. Signed-off-by: Christoph Hellwig Tested-by: Greg Kroah-Hartman --- fs/proc/inode.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/fs/proc/inode.c b/fs/proc/inode.c index 58c075e2a452d6..bde6b6f69852d2 100644 --- a/fs/proc/inode.c +++ b/fs/proc/inode.c @@ -597,6 +597,7 @@ static const struct file_operations proc_iter_file_ops = { .llseek = proc_reg_llseek, .read_iter = proc_reg_read_iter, .write = proc_reg_write, + .splice_read = generic_file_splice_read, .poll = proc_reg_poll, .unlocked_ioctl = proc_reg_unlocked_ioctl, .mmap = proc_reg_mmap, @@ -622,6 +623,7 @@ static const struct file_operations proc_reg_file_ops_compat = { static const struct file_operations proc_iter_file_ops_compat = { .llseek = proc_reg_llseek, .read_iter = proc_reg_read_iter, + .splice_read = generic_file_splice_read, .write = proc_reg_write, .poll = proc_reg_poll, .unlocked_ioctl = proc_reg_unlocked_ioctl, From patchwork Wed Nov 4 08:27:35 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christoph Hellwig X-Patchwork-Id: 11879927 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id EF67E697 for ; Wed, 4 Nov 2020 08:37:05 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C09A221556 for ; Wed, 4 Nov 2020 08:37:05 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b="ZNIp7O1F" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728700AbgKDIhC (ORCPT ); Wed, 4 Nov 2020 03:37:02 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46530 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728658AbgKDIgm (ORCPT ); Wed, 4 Nov 2020 03:36:42 -0500 Received: from casper.infradead.org (casper.infradead.org [IPv6:2001:8b0:10b:1236::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C0590C0613D3; Wed, 4 Nov 2020 00:36:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=ngN0FA3BbaF2skTQb81SDx6NNnA9B+apeh1z2VF7HOU=; b=ZNIp7O1FFH5oXUqJB4DZ9+A4WO 0mJFCWHS9x83+NHiPMjZCrWjZgkFGU7Mxp5whdALp2uqPqHJT5EQrivT48y29bsE2ims8XQpjI1iG R4/fSG2U4yUnJ2CLW55ygK6gb5mPCA4r1Rh7wUCsl51yEZG+AJb6yTp0fTCMk7xZ4sHrMbCoz36HI B2oGDLWrM5SoxXGwTKI2BPup7heJpwZv1G2Bkx8mW054F9SnVhKgIgfgz9QFa69rh5yPq7153uGlH 98XnIP7pV2vshUuqgmxHDjNPMClHnJyLj78LGOvXTDMvyaQxQ/8BEFpTcGVnjOsHmurKDiLh71xn5 PxdHKkDQ==; Received: from 089144208145.atnat0017.highway.a1.net ([89.144.208.145] helo=localhost) by casper.infradead.org with esmtpsa (Exim 4.92.3 #3 (Red Hat Linux)) id 1kaEHQ-0004kc-0T; Wed, 04 Nov 2020 08:36:36 +0000 From: Christoph Hellwig To: Al Viro Cc: Greg KH , Linus Torvalds , Alexey Dobriyan , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/6] proc/cpuinfo: switch to ->read_iter Date: Wed, 4 Nov 2020 09:27:35 +0100 Message-Id: <20201104082738.1054792-4-hch@lst.de> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201104082738.1054792-1-hch@lst.de> References: <20201104082738.1054792-1-hch@lst.de> MIME-Version: 1.0 X-SRS-Rewrite: SMTP reverse-path rewritten from by casper.infradead.org. See http://www.infradead.org/rpr.html Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org Implement ->read_iter so that the Android bionic test suite can use this random proc file for its splice test case. Signed-off-by: Christoph Hellwig --- fs/proc/cpuinfo.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/proc/cpuinfo.c b/fs/proc/cpuinfo.c index d0989a443c77df..419760fd77bdd8 100644 --- a/fs/proc/cpuinfo.c +++ b/fs/proc/cpuinfo.c @@ -19,7 +19,7 @@ static int cpuinfo_open(struct inode *inode, struct file *file) static const struct proc_ops cpuinfo_proc_ops = { .proc_flags = PROC_ENTRY_PERMANENT, .proc_open = cpuinfo_open, - .proc_read = seq_read, + .proc_read_iter = seq_read_iter, .proc_lseek = seq_lseek, .proc_release = seq_release, }; From patchwork Wed Nov 4 08:27:36 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christoph Hellwig X-Patchwork-Id: 11879929 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8171F14B4 for ; Wed, 4 Nov 2020 08:38:59 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 56E812080C for ; Wed, 4 Nov 2020 08:38:59 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b="UWp/1f22" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727470AbgKDIi4 (ORCPT ); Wed, 4 Nov 2020 03:38:56 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46872 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725891AbgKDIi4 (ORCPT ); Wed, 4 Nov 2020 03:38:56 -0500 Received: from casper.infradead.org (casper.infradead.org [IPv6:2001:8b0:10b:1236::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D1A99C0613D3; Wed, 4 Nov 2020 00:38:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=jq+SLlFg5Rp7aoY+6e/cCBd7mqDUva/P1tZgwKBac4Y=; b=UWp/1f22vmOs55Avsbw7tz25/p /3vx+cyEQXU+bA4zPNiaC6Dfbfp4Qmt/U5jDy0c/8kqN5peBaVixpqXaew7SDO9Z29OFjcOyJYYTJ Gq2kSnOR5NL8nprDJ5gkC+c98YFWM4PR6kBxkOSlTndsWnRcugicqxUp9UgLCduNQEQkCjxVDjq/S EViaPlWT69OP8xBxF9B6W90zC2wK36cofVl31CyQdT4CRwRyp9pBq02122bhCxvjJWO3PpNl5g3xm lppJngnpipuRsnyFIe79DDWl+y0O5I8pcYNsmVV9DGR3YCEBcpJeL5zK4k5uRYzSFX/PdO/hzW3Aq n6q1OKhQ==; Received: from 089144208145.atnat0017.highway.a1.net ([89.144.208.145] helo=localhost) by casper.infradead.org with esmtpsa (Exim 4.92.3 #3 (Red Hat Linux)) id 1kaEJd-0004ua-1s; Wed, 04 Nov 2020 08:38:51 +0000 From: Christoph Hellwig To: Al Viro Cc: Greg KH , Linus Torvalds , Alexey Dobriyan , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 4/6] proc/stat: switch to ->read_iter Date: Wed, 4 Nov 2020 09:27:36 +0100 Message-Id: <20201104082738.1054792-5-hch@lst.de> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201104082738.1054792-1-hch@lst.de> References: <20201104082738.1054792-1-hch@lst.de> MIME-Version: 1.0 X-SRS-Rewrite: SMTP reverse-path rewritten from by casper.infradead.org. See http://www.infradead.org/rpr.html Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org Implement ->read_iter so that splice can be used on this file. Suggested-by: Linus Torvalds Signed-off-by: Christoph Hellwig --- fs/proc/stat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/proc/stat.c b/fs/proc/stat.c index 46b3293015fe61..4695b6de315129 100644 --- a/fs/proc/stat.c +++ b/fs/proc/stat.c @@ -226,7 +226,7 @@ static int stat_open(struct inode *inode, struct file *file) static const struct proc_ops stat_proc_ops = { .proc_flags = PROC_ENTRY_PERMANENT, .proc_open = stat_open, - .proc_read = seq_read, + .proc_read_iter = seq_read_iter, .proc_lseek = seq_lseek, .proc_release = single_release, }; From patchwork Wed Nov 4 08:27:37 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christoph Hellwig X-Patchwork-Id: 11879931 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 2ED6115E6 for ; Wed, 4 Nov 2020 08:41:13 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 081A62074B for ; Wed, 4 Nov 2020 08:41:12 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b="uujTH7VP" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727883AbgKDIlI (ORCPT ); Wed, 4 Nov 2020 03:41:08 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47206 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725812AbgKDIlI (ORCPT ); Wed, 4 Nov 2020 03:41:08 -0500 Received: from casper.infradead.org (casper.infradead.org [IPv6:2001:8b0:10b:1236::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5DF01C0613D3; Wed, 4 Nov 2020 00:41:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=a5oULKFczWJE8wpPo185mmyf8X80bBrK4/ugxfglgnU=; b=uujTH7VPF6HBLc/vJ0bdcBFvw2 CddWcgIvkvEeYPEFRb47JQGxGAQ4W0JoRLGvjCCay/DM66uVZtmQTlERlZyRNflzsXwGfsX/aJaW6 MrVIQZWIUCFEugls4IyytjsdsTYndqwLRVR05vSa0Ur0M6KFEzztyCYqPvos3n7Kd3+vaQzDog6vw 1XWWRY8CfBU+oSWjFuIVjXJ4fAKtnsAuPmrJSyJrwbtfcTK/kw6YDX6guPbqTTpLhC7bK6DSF3ISW e869ay/712vTS/rS8FF8SY3QXgXft7YvgbRljun9Y6Bh20f+hAPVQu7HxvLA6tjzsftzFdqoRKIL+ 7h+94+Gw==; Received: from 089144208145.atnat0017.highway.a1.net ([89.144.208.145] helo=localhost) by casper.infradead.org with esmtpsa (Exim 4.92.3 #3 (Red Hat Linux)) id 1kaELm-00057P-7p; Wed, 04 Nov 2020 08:41:04 +0000 From: Christoph Hellwig To: Al Viro Cc: Greg KH , Linus Torvalds , Alexey Dobriyan , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, Greg Kroah-Hartman Subject: [PATCH 5/6] proc "single files": switch to ->read_iter Date: Wed, 4 Nov 2020 09:27:37 +0100 Message-Id: <20201104082738.1054792-6-hch@lst.de> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201104082738.1054792-1-hch@lst.de> References: <20201104082738.1054792-1-hch@lst.de> MIME-Version: 1.0 X-SRS-Rewrite: SMTP reverse-path rewritten from by casper.infradead.org. See http://www.infradead.org/rpr.html Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org From: Greg Kroah-Hartman Implement ->read_iter for all proc "single files" so that more bionic tests cases can pass when they call splice() on other fun files like /proc/version Signed-off-by: Greg Kroah-Hartman Signed-off-by: Christoph Hellwig --- fs/proc/generic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/proc/generic.c b/fs/proc/generic.c index 2f9fa179194d72..f81327673f4901 100644 --- a/fs/proc/generic.c +++ b/fs/proc/generic.c @@ -621,7 +621,7 @@ static int proc_single_open(struct inode *inode, struct file *file) static const struct proc_ops proc_single_ops = { /* not permanent -- can call into arbitrary ->single_show */ .proc_open = proc_single_open, - .proc_read = seq_read, + .proc_read_iter = seq_read_iter, .proc_lseek = seq_lseek, .proc_release = single_release, }; From patchwork Wed Nov 4 08:27:38 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christoph Hellwig X-Patchwork-Id: 11879933 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 29C2F15E6 for ; Wed, 4 Nov 2020 08:43:24 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id F2BA0208C7 for ; Wed, 4 Nov 2020 08:43:23 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b="UYHEnYom" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726539AbgKDInU (ORCPT ); Wed, 4 Nov 2020 03:43:20 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47550 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725812AbgKDInU (ORCPT ); Wed, 4 Nov 2020 03:43:20 -0500 Received: from casper.infradead.org (casper.infradead.org [IPv6:2001:8b0:10b:1236::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5F15CC0613D3; Wed, 4 Nov 2020 00:43:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=BqGMdCF39ToNsf0gCJyADCoWFE//W7MHOhvrYub/R7U=; b=UYHEnYomKrC1JJdW/FZ+RoLjRx hziFFRLsLwcP6vhmPRwKsjvYxRn/uprhVjfP+JQjQsdny0TN0CcX/qNuWeKhu/HHY+gvFnlg1HHD8 mLjilTzU8VkYw9YANpF0W+18l35tFGiu7/EmhMdk7cqc7NsqTWtQKyvij0hn488/q0jaBSwMPCcJb hmZiVrwI/VV73iU8zFGfupmX7yET5IxFK/FQOEqgunZAkT8SdVFIb0CBYdfhZ2jJN6Ptjnjys1EkK bW/aMjQq/AtOcZZU8CcKzW+0hyZwd75a6BoPO4lrqVN6faLMZ/MClwI5lz75Dgcftlk1zZCZYJ4K8 KgFyhoPg==; Received: from 089144208145.atnat0017.highway.a1.net ([89.144.208.145] helo=localhost) by casper.infradead.org with esmtpsa (Exim 4.92.3 #3 (Red Hat Linux)) id 1kaENv-0005E7-9y; Wed, 04 Nov 2020 08:43:16 +0000 From: Christoph Hellwig To: Al Viro Cc: Greg KH , Linus Torvalds , Alexey Dobriyan , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 6/6] proc "seq files": switch to ->read_iter Date: Wed, 4 Nov 2020 09:27:38 +0100 Message-Id: <20201104082738.1054792-7-hch@lst.de> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201104082738.1054792-1-hch@lst.de> References: <20201104082738.1054792-1-hch@lst.de> MIME-Version: 1.0 X-SRS-Rewrite: SMTP reverse-path rewritten from by casper.infradead.org. See http://www.infradead.org/rpr.html Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org Implement ->read_iter for all proc "seq files" so that splice works on them. Suggested-by: Linus Torvalds Signed-off-by: Christoph Hellwig --- fs/proc/generic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/proc/generic.c b/fs/proc/generic.c index f81327673f4901..b84663252adda0 100644 --- a/fs/proc/generic.c +++ b/fs/proc/generic.c @@ -590,7 +590,7 @@ static int proc_seq_release(struct inode *inode, struct file *file) static const struct proc_ops proc_seq_ops = { /* not permanent -- can call into arbitrary seq_operations */ .proc_open = proc_seq_open, - .proc_read = seq_read, + .proc_read_iter = seq_read_iter, .proc_lseek = seq_lseek, .proc_release = proc_seq_release, };