From patchwork Sat Oct 31 09:00:03 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christoph Hellwig X-Patchwork-Id: 11871275 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 4DB1C697 for ; Sat, 31 Oct 2020 09:28:34 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 051A32076D for ; Sat, 31 Oct 2020 09:28:33 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b="V1HLFl0i" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 051A32076D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=lst.de Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 14F3B6B005C; Sat, 31 Oct 2020 05:28:33 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 0DAEF6B006E; Sat, 31 Oct 2020 05:28:33 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EE0E86B0070; Sat, 31 Oct 2020 05:28:32 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0050.hostedemail.com [216.40.44.50]) by kanga.kvack.org (Postfix) with ESMTP id BE2606B005C for ; Sat, 31 Oct 2020 05:28:32 -0400 (EDT) Received: from smtpin30.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id 5878E180AD806 for ; Sat, 31 Oct 2020 09:28:32 +0000 (UTC) X-FDA: 77431695264.30.fish39_0305adb2729d Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin30.hostedemail.com (Postfix) with ESMTP id 3FA39180B3AA7 for ; Sat, 31 Oct 2020 09:28:32 +0000 (UTC) X-Spam-Summary: 1,0,0,7af235b5be1f9952,d41d8cd98f00b204,batv+e1c4655336593cdcfc57+6278+infradead.org+hch@casper.srs.infradead.org,,RULES_HIT:41:69:355:379:541:800:960:966:973:982:988:989:1260:1311:1314:1345:1359:1437:1515:1535:1544:1605:1711:1730:1747:1777:1792:1981:2194:2196:2198:2199:2200:2201:2393:2559:2562:2895:3138:3139:3140:3141:3142:3865:3866:3867:3868:3870:3871:3872:3874:4117:4250:4321:4385:4605:5007:6119:6261:6653:7875:7903:10004:11026:11473:11658:11914:12043:12114:12160:12296:12297:12438:12517:12519:12555:12679:12683:12895:12986:13894:14096:14110:14181:14394:14721:21080:21451:21627:21990:30003:30012:30029:30034:30054:30070,0,RBL:90.155.50.34:@casper.srs.infradead.org:.lbl8.mailshell.net-64.201.201.201 62.8.15.100;04y8sgoz5n34cjistgd5gzex77k4ioprzzmqg4fhz4hzn6eyp47kgabbj7t18dc.twx198udyxe6gon9kh6r3g63s47wbw9axk7kp4bfrjaszms3g87zztir6fwhwf5.e-lbl8.mailshell.net-223.238.255.100,CacheIP:none,Bayesian:0.5,0.5,0.5,Netcheck:none,DomainCache:0,MSF:not bulk,SPF:fn,MSBL:0,DNS BL:neutr X-HE-Tag: fish39_0305adb2729d X-Filterd-Recvd-Size: 6267 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf19.hostedemail.com (Postfix) with ESMTP for ; Sat, 31 Oct 2020 09:28:31 +0000 (UTC) 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=UVuvskOd7u+cW+9FE21ypaPGl+5Mur2FVKlFNoSP4LQ=; b=V1HLFl0izdyBDWpSlqawDTXJBs lx0AQba6PUflfbCt/aXdj3P9hEhRFmOX0nIvYzjVrxdYakRh/KdB9IP9dEe7BFFKPABHYC2mWsUZz MkwnCvpJnGsknEcAS4m8uoNclTZ74jKhnWs+NMHpomVWYSW+g+sE8yEOApDN81REUWy8jQctMaiLW QbmFRs6JKG/Pz5IDeGiZPHcGnze/0a8M4kjy7VuJV5EYHmJtIyOmeWk9IAxiC/l/allMzZ2aEUoBH 3kvECAUgROf0RyGUd11QVEVGGE/flivZLWFOczbtVRVKBH4NEmwBsNoOnwDj1SfocEK8I/kII1k3n k8xSTmgw==; Received: from 089144193201.atnat0002.highway.a1.net ([89.144.193.201] helo=localhost) by casper.infradead.org with esmtpsa (Exim 4.92.3 #3 (Red Hat Linux)) id 1kYnBV-0000CU-Fv; Sat, 31 Oct 2020 09:28:29 +0000 From: Christoph Hellwig To: Andrew Morton Cc: Kent Overstreet , Matthew Wilcox , linux-mm@kvack.org, linux-fsdevel@vger.kernel.org Subject: [PATCH 12/13] mm: rename generic_file_buffered_read to filemap_read Date: Sat, 31 Oct 2020 10:00:03 +0100 Message-Id: <20201031090004.452516-13-hch@lst.de> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201031090004.452516-1-hch@lst.de> References: <20201031090004.452516-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 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Rename generic_file_buffered_read to match the naming of filemap_fault, also update the written parameter to a more descriptive name and improve the kerneldoc comment. Signed-off-by: Christoph Hellwig --- fs/btrfs/file.c | 2 +- include/linux/fs.h | 4 ++-- mm/filemap.c | 34 ++++++++++++++++------------------ 3 files changed, 19 insertions(+), 21 deletions(-) diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c index 87355a38a65470..1a4913e1fd1289 100644 --- a/fs/btrfs/file.c +++ b/fs/btrfs/file.c @@ -3633,7 +3633,7 @@ static ssize_t btrfs_file_read_iter(struct kiocb *iocb, struct iov_iter *to) return ret; } - return generic_file_buffered_read(iocb, to, ret); + return filemap_read(iocb, to, ret); } const struct file_operations btrfs_file_operations = { diff --git a/include/linux/fs.h b/include/linux/fs.h index 8d559d43f2af92..a79f65607236ae 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -2948,8 +2948,8 @@ extern ssize_t generic_write_checks(struct kiocb *, struct iov_iter *); extern int generic_write_check_limits(struct file *file, loff_t pos, loff_t *count); extern int generic_file_rw_checks(struct file *file_in, struct file *file_out); -extern ssize_t generic_file_buffered_read(struct kiocb *iocb, - struct iov_iter *to, ssize_t already_read); +ssize_t filemap_read(struct kiocb *iocb, struct iov_iter *to, + ssize_t already_read); extern ssize_t generic_file_read_iter(struct kiocb *, struct iov_iter *); extern ssize_t __generic_file_write_iter(struct kiocb *, struct iov_iter *); extern ssize_t generic_file_write_iter(struct kiocb *, struct iov_iter *); diff --git a/mm/filemap.c b/mm/filemap.c index 904b0a4fb9e008..743d764f3eab1c 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -2372,23 +2372,21 @@ static int filemap_read_pages(struct kiocb *iocb, struct iov_iter *iter, } /** - * generic_file_buffered_read - generic file read routine - * @iocb: the iocb to read - * @iter: data destination - * @written: already copied + * filemap_read - read data from the page cache + * @iocb: the iocb to read + * @iter: data destination + * @already_read: number of bytes already read by the caller * - * This is a generic file read routine, and uses the - * mapping->a_ops->readpage() function for the actual low-level stuff. - * - * This is really ugly. But the goto's actually try to clarify some - * of the logic when it comes to error handling etc. + * Read data from the pagecache using the ->readpage address space + * operation. * * Return: - * * total number of bytes copied, including those the were already @written - * * negative error code if nothing was copied + * Total number of bytes copied, including those already read by the caller as + * passed in the @already_read argument. Negative error code if an error + * happened before any bytes were copied. */ -ssize_t generic_file_buffered_read(struct kiocb *iocb, - struct iov_iter *iter, ssize_t written) +ssize_t filemap_read(struct kiocb *iocb, struct iov_iter *iter, + ssize_t already_read) { struct file *filp = iocb->ki_filp; struct file_ra_state *ra = &filp->f_ra; @@ -2422,7 +2420,7 @@ ssize_t generic_file_buffered_read(struct kiocb *iocb, * can no longer safely return -EIOCBQUEUED. Hence mark * an async read NOWAIT at that point. */ - if ((iocb->ki_flags & IOCB_WAITQ) && written) + if ((iocb->ki_flags & IOCB_WAITQ) && already_read) iocb->ki_flags |= IOCB_NOWAIT; i = 0; @@ -2482,7 +2480,7 @@ ssize_t generic_file_buffered_read(struct kiocb *iocb, copied = copy_page_to_iter(pages[i], offset, bytes, iter); - written += copied; + already_read += copied; iocb->ki_pos += copied; ra->prev_pos = iocb->ki_pos; @@ -2501,9 +2499,9 @@ ssize_t generic_file_buffered_read(struct kiocb *iocb, if (pages != pages_onstack) kfree(pages); - return written ? written : error; + return already_read ? already_read : error; } -EXPORT_SYMBOL_GPL(generic_file_buffered_read); +EXPORT_SYMBOL_GPL(filemap_read); /** * generic_file_read_iter - generic filesystem read routine @@ -2577,7 +2575,7 @@ generic_file_read_iter(struct kiocb *iocb, struct iov_iter *iter) goto out; } - retval = generic_file_buffered_read(iocb, iter, retval); + retval = filemap_read(iocb, iter, retval); out: return retval; }