From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E6F4BC432C0 for ; Wed, 20 Nov 2019 06:23:40 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 906A12235D for ; Wed, 20 Nov 2019 06:23:40 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 906A12235D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 24C7B6B0005; Wed, 20 Nov 2019 01:23:40 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 1FCE46B0006; Wed, 20 Nov 2019 01:23:40 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 114B96B0007; Wed, 20 Nov 2019 01:23:40 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0186.hostedemail.com [216.40.44.186]) by kanga.kvack.org (Postfix) with ESMTP id EF28E6B0005 for ; Wed, 20 Nov 2019 01:23:39 -0500 (EST) Received: from smtpin12.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with SMTP id ACBD25010 for ; Wed, 20 Nov 2019 06:23:39 +0000 (UTC) X-FDA: 76175664558.12.wish40_2b0683e1f520 X-HE-Tag: wish40_2b0683e1f520 X-Filterd-Recvd-Size: 4601 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by imf06.hostedemail.com (Postfix) with ESMTP for ; Wed, 20 Nov 2019 06:23:38 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 19 Nov 2019 22:23:37 -0800 X-IronPort-AV: E=Sophos;i="5.69,220,1571727600"; d="scan'208";a="204625878" Received: from iweiny-desk2.sc.intel.com (HELO localhost) ([10.3.52.157]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 19 Nov 2019 22:23:37 -0800 From: ira.weiny@intel.com To: Andrew Morton Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Ira Weiny Subject: [PATCH] mm: Clean up filemap_write_and_wait() Date: Tue, 19 Nov 2019 22:23:34 -0800 Message-Id: <20191120062334.24687-1-ira.weiny@intel.com> X-Mailer: git-send-email 2.21.0 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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: From: Ira Weiny At some point filemap_write_and_wait() and filemap_write_and_wait_range() got the exact same implementation with the exception of the range being specified in *_range() Similar to other functions in fs.h which call *_range(..., 0, LLONG_MAX), change filemap_write_and_wait() to be a static inline which calls filemap_write_and_wait_range() Signed-off-by: Ira Weiny --- include/linux/fs.h | 6 +++++- mm/filemap.c | 34 ++++++---------------------------- 2 files changed, 11 insertions(+), 29 deletions(-) diff --git a/include/linux/fs.h b/include/linux/fs.h index 1175815da3df..1007742711e5 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -2745,7 +2745,6 @@ static inline int filemap_fdatawait(struct address_= space *mapping) =20 extern bool filemap_range_has_page(struct address_space *, loff_t lstart= , loff_t lend); -extern int filemap_write_and_wait(struct address_space *mapping); extern int filemap_write_and_wait_range(struct address_space *mapping, loff_t lstart, loff_t lend); extern int __filemap_fdatawrite_range(struct address_space *mapping, @@ -2755,6 +2754,11 @@ extern int filemap_fdatawrite_range(struct address= _space *mapping, extern int filemap_check_errors(struct address_space *mapping); extern void __filemap_set_wb_err(struct address_space *mapping, int err)= ; =20 +static inline int filemap_write_and_wait(struct address_space *mapping) +{ + return filemap_write_and_wait_range(mapping, 0, LLONG_MAX); +} + extern int __must_check file_fdatawait_range(struct file *file, loff_t l= start, loff_t lend); extern int __must_check file_check_and_advance_wb_err(struct file *file)= ; diff --git a/mm/filemap.c b/mm/filemap.c index 1f5731768222..f4d1a4fb63a6 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -632,33 +632,6 @@ static bool mapping_needs_writeback(struct address_s= pace *mapping) return mapping->nrpages; } =20 -int filemap_write_and_wait(struct address_space *mapping) -{ - int err =3D 0; - - if (mapping_needs_writeback(mapping)) { - err =3D filemap_fdatawrite(mapping); - /* - * Even if the above returned error, the pages may be - * written partially (e.g. -ENOSPC), so we wait for it. - * But the -EIO is special case, it may indicate the worst - * thing (e.g. bug) happened, so we avoid waiting for it. - */ - if (err !=3D -EIO) { - int err2 =3D filemap_fdatawait(mapping); - if (!err) - err =3D err2; - } else { - /* Clear any previously stored errors */ - filemap_check_errors(mapping); - } - } else { - err =3D filemap_check_errors(mapping); - } - return err; -} -EXPORT_SYMBOL(filemap_write_and_wait); - /** * filemap_write_and_wait_range - write out & wait on a file range * @mapping: the address_space for the pages @@ -680,7 +653,12 @@ int filemap_write_and_wait_range(struct address_spac= e *mapping, if (mapping_needs_writeback(mapping)) { err =3D __filemap_fdatawrite_range(mapping, lstart, lend, WB_SYNC_ALL); - /* See comment of filemap_write_and_wait() */ + /* + * Even if the above returned error, the pages may be + * written partially (e.g. -ENOSPC), so we wait for it. + * But the -EIO is special case, it may indicate the worst + * thing (e.g. bug) happened, so we avoid waiting for it. + */ if (err !=3D -EIO) { int err2 =3D filemap_fdatawait_range(mapping, lstart, lend); --=20 2.21.0