From nobody Sun Feb 8 14:57:21 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id BFC8EC001B0 for ; Mon, 26 Jun 2023 05:55:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229670AbjFZFzl (ORCPT ); Mon, 26 Jun 2023 01:55:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33234 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229457AbjFZFzh (ORCPT ); Mon, 26 Jun 2023 01:55:37 -0400 X-Greylist: delayed 804 seconds by postgrey-1.37 at lindbergh.monkeyblade.net; Sun, 25 Jun 2023 22:55:35 PDT Received: from mo4-p03-ob.smtp.rzone.de (mo4-p03-ob.smtp.rzone.de [81.169.146.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5E905AB; Sun, 25 Jun 2023 22:55:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1687758928; cv=none; d=strato.com; s=strato-dkim-0002; b=EgqXIH866ELXGq+mpnR4Eo84d907wx4Op+QW5TGOxwRYybbzxwCaqR/QYoo2XHE3sO O8hxtrXLtTHIKU2ZSBQKVXcar1ffNhS9uaOvq5SZcIYgfq066kD30uakd8cgODyZMSWd Ux0ZFlR6CCQ7fQHYdrqA18kl3kkP5qKnhX5pWIrTDCffwGIJkgnmisTiasfVOc7XR/pz wrTKKyIlXdadrwbSTzMXh9GP84vS/ntzDyxuCnw6yI45EdbvJQ9Bvk4S/W3gikyM2yaj oNGWiiMM9bhmILZyjElRBDxqmMeAOJfrDumjbsZ8OHlkl86AV71G5hp7wxpDbgjWrruK l8iQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1687758928; s=strato-dkim-0002; d=strato.com; h=References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=9JeG8e5YLzIlPXpqO3TJNmd5ODQ+yL/DZJEHg5yXjTE=; b=nWoxz5+A/k/RoHG4mmlMrqdSxOOlepNMU8x2QAvJSBtskui+vKEENoLsTc3YTi0hA1 rPHIzgcl4pBcyJ13X8nDzxUVYmQ4TdvR+y/1AfzGE/l0OBTrb46q2yed4ZXXAgoucuKo QttaxXBoGpAweZPDrnQLv1Q14b/XjIrZ7Mqf8Q55pfG3Zs9H8gAll+mZnlzmB4ew5Eif fZ3/sAh0WZcgWc9C4aMZ9WgR8FzY8czcPNOD9Rp4d61jOnSyCL3np43woSxh5VgFXtxz wQV6b1DDGhYPqdVJtF52We3PeLIZEjiFpGmNnnCw1ZbYrJTRrFt6wkB5cQkXeuyjHigx cJqQ== ARC-Authentication-Results: i=1; strato.com; arc=none; dkim=none X-RZG-CLASS-ID: mo03 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1687758928; s=strato-dkim-0002; d=iokpp.de; h=References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=9JeG8e5YLzIlPXpqO3TJNmd5ODQ+yL/DZJEHg5yXjTE=; b=bhHuxVIF+VVHUfX01w2F4AvCX8xSsCAen9xIdGzxz7X79QsodQ+Qe5KOE7Z44hAggk 1NyB5d6YbDMuDUBSN0ZrIKqN/yanGQHGKXLGer0DkdgWTqfUiGsQ9t6g4zRRCjp/sdS2 6/c1M/z7gswtwjnPVuyRhdYI4CYQbWEnLrNJ8QxHEyoNDSCwiL26X1JJkpwUE8KcL7m0 vcMwKFocz7beTTJC+PXYEG8reeORzxxr4uc2Gfy/KH7NwGjvCVbMPc7zIbl13rQd6Q+H xl/OEcL4fwFz7LyLsqmzXbeo7n0ItnBLYDjgDlQ+OYmvkrSTR+iX3lRbMw90sqWguYBM +lKg== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1687758928; s=strato-dkim-0003; d=iokpp.de; h=References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=9JeG8e5YLzIlPXpqO3TJNmd5ODQ+yL/DZJEHg5yXjTE=; b=leG3fCEvi5hPT0fBTmq9D2X7bfNIhUAhanHELXceIBPiOCl+GQkXnfPaQBd83VSROr xP02/5ZSkcyBilmaNbAw== X-RZG-AUTH: ":LmkFe0i9dN8c2t4QQyGBB/NDXvjDB6pBSedrgBzPc9DUyubU4DD1QLj68UeUr1+U1RrW5o+P9bSFaHg+gZu+uCjL2b+VQTRnVQrIOQ==" Received: from blinux.speedport.ip by smtp.strato.de (RZmta 49.6.0 AUTH) with ESMTPSA id zb0c8bz5Q5tRVy5 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate); Mon, 26 Jun 2023 07:55:27 +0200 (CEST) From: Bean Huo To: viro@zeniv.linux.org.uk, brauner@kernel.org, akpm@linux-foundation.org, jack@suse.cz, jack@suse.com, tytso@mit.edu, adilger.kernel@dilger.ca, mark@fasheh.com, jlbec@evilplan.org, joseph.qi@linux.alibaba.com, willy@infradead.org, hch@infradead.org Cc: linux-ext4@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, ocfs2-devel@oss.oracle.com, beanhuo@micron.com Subject: [RESEND PATCH v3 1/2] fs/buffer: clean up block_commit_write Date: Mon, 26 Jun 2023 07:55:17 +0200 Message-Id: <20230626055518.842392-2-beanhuo@iokpp.de> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230626055518.842392-1-beanhuo@iokpp.de> References: <20230626055518.842392-1-beanhuo@iokpp.de> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Bean Huo Originally inode is used to get blksize, after commit 45bce8f3e343 ("fs/buffer.c: make block-size be per-page and protected by the page lock"), __block_commit_write no longer uses this parameter inode. Signed-off-by: Bean Huo Reviewed-by: Christoph Hellwig Reviewed-by: Jan Kara Reviewed-by: Matthew Wilcox (Oracle) --- fs/buffer.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/fs/buffer.c b/fs/buffer.c index bd091329026c..50821dfb02f7 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -2180,8 +2180,7 @@ int __block_write_begin(struct page *page, loff_t pos= , unsigned len, } EXPORT_SYMBOL(__block_write_begin); =20 -static int __block_commit_write(struct inode *inode, struct folio *folio, - size_t from, size_t to) +static int __block_commit_write(struct folio *folio, size_t from, size_t t= o) { size_t block_start, block_end; bool partial =3D false; @@ -2277,7 +2276,7 @@ int block_write_end(struct file *file, struct address= _space *mapping, flush_dcache_folio(folio); =20 /* This could be a short (even 0-length) commit */ - __block_commit_write(inode, folio, start, start + copied); + __block_commit_write(folio, start, start + copied); =20 return copied; } @@ -2601,8 +2600,7 @@ EXPORT_SYMBOL(cont_write_begin); int block_commit_write(struct page *page, unsigned from, unsigned to) { struct folio *folio =3D page_folio(page); - struct inode *inode =3D folio->mapping->host; - __block_commit_write(inode, folio, from, to); + __block_commit_write(folio, from, to); return 0; } EXPORT_SYMBOL(block_commit_write); @@ -2650,7 +2648,7 @@ int block_page_mkwrite(struct vm_area_struct *vma, st= ruct vm_fault *vmf, =20 ret =3D __block_write_begin_int(folio, 0, end, get_block, NULL); if (!ret) - ret =3D __block_commit_write(inode, folio, 0, end); + ret =3D __block_commit_write(folio, 0, end); =20 if (unlikely(ret < 0)) goto out_unlock; --=20 2.34.1 From nobody Sun Feb 8 14:57:21 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8F72FEB64D7 for ; Mon, 26 Jun 2023 05:55:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229981AbjFZFzr (ORCPT ); Mon, 26 Jun 2023 01:55:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33248 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229901AbjFZFzj (ORCPT ); Mon, 26 Jun 2023 01:55:39 -0400 Received: from mo4-p03-ob.smtp.rzone.de (mo4-p03-ob.smtp.rzone.de [81.169.146.175]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E50D0E44; Sun, 25 Jun 2023 22:55:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1687758929; cv=none; d=strato.com; s=strato-dkim-0002; b=KCFHkdXuXKL614HKgnUoEQo7yk5SlN8MLjBfXPy/btdfqtXFebfa9OjuyKVQLDKMcH Boz9tXO+ikw7FG+5REewQvOYuNTaflP8xJrUgBQtvqe6YdeuCeNimCzCifVBsue27zG0 eZVDK8ffkQ7Y9gGgmY2MZ1VgSsFbK6veYJ4TU4haP3LQyW4v9w+aqd2hukcUH///vBMr LkksbmUrQ2a7irthbgzUZVNx0tDRb/Jv/Sm6IJj4NadfKP1b9vTBgkgdyg8a1i0e8/1i J6EKL0YOPzjp6OaNXrFLSCvA+n7HxY4cIgn0LioYEd0L3l039BCS9MaCINdf9XZEONxw A6OA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1687758929; s=strato-dkim-0002; d=strato.com; h=References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=ESdM3OWkSgg54SJpW5SbnYofQslhV1eHwOkfE07L59Y=; b=Ade28D7DTus485H0MFvdFWP7KmZ6yYwRoKoimw5rTbRwoE/+KSEkDxBQhNvLjbIlfP JnAAIuPdbBfp6yaEPz+2KIGhnREnsaMLtcOd3skleoabaOQpEcG00f+2mwzP75Z/WB1V 9opXd9RA1rqb01cCFLXH+BS5dGLujAGw5vHWlfYnRcpwkUjd71Hmvlo4lTojlZLkMLbE ZFvaUxqaSiN1UB3tcTzSOhh1TeK0wZwN2yUQrgBJ/KphS3PhFO5CFaRp7V06aovSVfFM PbwoC6p1GCRWC+Uhwp0CPYaUcFt//2ice21WT47+3VHmJQLkWC43ANyb8VCpFKy08eWB TkYA== ARC-Authentication-Results: i=1; strato.com; arc=none; dkim=none X-RZG-CLASS-ID: mo03 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1687758929; s=strato-dkim-0002; d=iokpp.de; h=References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=ESdM3OWkSgg54SJpW5SbnYofQslhV1eHwOkfE07L59Y=; b=Ts9OC6oNOUvl/4+ygsRV1kJUz8K7BS0lPa8ZLLFO1+7Y6j/9ef2ZAj2tjb5dKpnJM8 us0LuNBMXyXjErDQ3qXOlp62fz0dYxH0t4L6f6FzQ29tjZYkXCkZZo1CGKyzHI9cURU0 YaYVey3Uqe3UIMlZXEQjtKKFW1MKpWffOzn/MOLwV15UtqlZUWLWQci6wIAOIJJHCT7+ zpXsyyLTlK7UNQXZ022I9+cASpOqWO2yrrl/5vDqwlmoftcemXNGtsJJ4/sCnJqKVpLN UaGVpQcV1sII29e2zk5xq9gXHm/QBN0PKQT/WxA0OpbFiFPb23m46Xglr+M8JgBCrWbV w43g== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1687758929; s=strato-dkim-0003; d=iokpp.de; h=References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=ESdM3OWkSgg54SJpW5SbnYofQslhV1eHwOkfE07L59Y=; b=H58EcjG+FiWUmSa6c8Umxj4arjvzkksYLVih8QEJGf9s04ldvSYFMdsTsiLCga3aWW WHeraGf7hjXyhyP5rbDQ== X-RZG-AUTH: ":LmkFe0i9dN8c2t4QQyGBB/NDXvjDB6pBSedrgBzPc9DUyubU4DD1QLj68UeUr1+U1RrW5o+P9bSFaHg+gZu+uCjL2b+VQTRnVQrIOQ==" Received: from blinux.speedport.ip by smtp.strato.de (RZmta 49.6.0 AUTH) with ESMTPSA id zb0c8bz5Q5tSVy8 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate); Mon, 26 Jun 2023 07:55:28 +0200 (CEST) From: Bean Huo To: viro@zeniv.linux.org.uk, brauner@kernel.org, akpm@linux-foundation.org, jack@suse.cz, jack@suse.com, tytso@mit.edu, adilger.kernel@dilger.ca, mark@fasheh.com, jlbec@evilplan.org, joseph.qi@linux.alibaba.com, willy@infradead.org, hch@infradead.org Cc: linux-ext4@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, ocfs2-devel@oss.oracle.com, beanhuo@micron.com Subject: [RESEND PATCH v3 2/2] fs: convert block_commit_write to return void Date: Mon, 26 Jun 2023 07:55:18 +0200 Message-Id: <20230626055518.842392-3-beanhuo@iokpp.de> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230626055518.842392-1-beanhuo@iokpp.de> References: <20230626055518.842392-1-beanhuo@iokpp.de> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Bean Huo block_commit_write() always returns 0, this patch changes it to return void. Signed-off-by: Bean Huo Reviewed-by: Jan Kara Acked-by: Theodore Ts'o Reviewed-by: Christoph Hellwig Reviewed-by: Matthew Wilcox (Oracle) --- fs/buffer.c | 14 ++++++-------- fs/ext4/move_extent.c | 7 ++----- fs/ocfs2/file.c | 7 +------ fs/udf/file.c | 6 +++--- include/linux/buffer_head.h | 2 +- 5 files changed, 13 insertions(+), 23 deletions(-) diff --git a/fs/buffer.c b/fs/buffer.c index 50821dfb02f7..1568d0c9942d 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -2180,7 +2180,7 @@ int __block_write_begin(struct page *page, loff_t pos= , unsigned len, } EXPORT_SYMBOL(__block_write_begin); =20 -static int __block_commit_write(struct folio *folio, size_t from, size_t t= o) +static void __block_commit_write(struct folio *folio, size_t from, size_t = to) { size_t block_start, block_end; bool partial =3D false; @@ -2215,7 +2215,6 @@ static int __block_commit_write(struct folio *folio, = size_t from, size_t to) */ if (!partial) folio_mark_uptodate(folio); - return 0; } =20 /* @@ -2597,11 +2596,10 @@ int cont_write_begin(struct file *file, struct addr= ess_space *mapping, } EXPORT_SYMBOL(cont_write_begin); =20 -int block_commit_write(struct page *page, unsigned from, unsigned to) +void block_commit_write(struct page *page, unsigned from, unsigned to) { struct folio *folio =3D page_folio(page); __block_commit_write(folio, from, to); - return 0; } EXPORT_SYMBOL(block_commit_write); =20 @@ -2647,11 +2645,11 @@ int block_page_mkwrite(struct vm_area_struct *vma, = struct vm_fault *vmf, end =3D size - folio_pos(folio); =20 ret =3D __block_write_begin_int(folio, 0, end, get_block, NULL); - if (!ret) - ret =3D __block_commit_write(folio, 0, end); + if (unlikely(ret)) + goto out_unlock; + + __block_commit_write(folio, 0, end); =20 - if (unlikely(ret < 0)) - goto out_unlock; folio_mark_dirty(folio); folio_wait_stable(folio); return 0; diff --git a/fs/ext4/move_extent.c b/fs/ext4/move_extent.c index b5af2fc03b2f..f4b4861a74ee 100644 --- a/fs/ext4/move_extent.c +++ b/fs/ext4/move_extent.c @@ -392,14 +392,11 @@ move_extent_per_page(struct file *o_filp, struct inod= e *donor_inode, for (i =3D 0; i < block_len_in_page; i++) { *err =3D ext4_get_block(orig_inode, orig_blk_offset + i, bh, 0); if (*err < 0) - break; + goto repair_branches; bh =3D bh->b_this_page; } - if (!*err) - *err =3D block_commit_write(&folio[0]->page, from, from + replaced_size); =20 - if (unlikely(*err < 0)) - goto repair_branches; + block_commit_write(&folio[0]->page, from, from + replaced_size); =20 /* Even in case of data=3Dwriteback it is reasonable to pin * inode to transaction, to prevent unexpected data loss */ diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c index 91a194596552..9e417cd4fd16 100644 --- a/fs/ocfs2/file.c +++ b/fs/ocfs2/file.c @@ -808,12 +808,7 @@ static int ocfs2_write_zero_page(struct inode *inode, = u64 abs_from, =20 =20 /* must not update i_size! */ - ret =3D block_commit_write(page, block_start + 1, - block_start + 1); - if (ret < 0) - mlog_errno(ret); - else - ret =3D 0; + block_commit_write(page, block_start + 1, block_start + 1); } =20 /* diff --git a/fs/udf/file.c b/fs/udf/file.c index 243840dc83ad..0292d75e60cc 100644 --- a/fs/udf/file.c +++ b/fs/udf/file.c @@ -63,13 +63,13 @@ static vm_fault_t udf_page_mkwrite(struct vm_fault *vmf) else end =3D PAGE_SIZE; err =3D __block_write_begin(page, 0, end, udf_get_block); - if (!err) - err =3D block_commit_write(page, 0, end); - if (err < 0) { + if (err) { unlock_page(page); ret =3D block_page_mkwrite_return(err); goto out_unlock; } + + block_commit_write(page, 0, end); out_dirty: set_page_dirty(page); wait_for_stable_page(page); diff --git a/include/linux/buffer_head.h b/include/linux/buffer_head.h index 6cb3e9af78c9..a7377877ff4e 100644 --- a/include/linux/buffer_head.h +++ b/include/linux/buffer_head.h @@ -288,7 +288,7 @@ int cont_write_begin(struct file *, struct address_spac= e *, loff_t, unsigned, struct page **, void **, get_block_t *, loff_t *); int generic_cont_expand_simple(struct inode *inode, loff_t size); -int block_commit_write(struct page *page, unsigned from, unsigned to); +void block_commit_write(struct page *page, unsigned int from, unsigned int= to); int block_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf, get_block_t get_block); /* Convert errno to return value from ->page_mkwrite() call */ --=20 2.34.1