From patchwork Fri May 19 09:35:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christoph Hellwig X-Patchwork-Id: 13248023 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id A79A0C77B75 for ; Fri, 19 May 2023 09:36:05 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 98705280005; Fri, 19 May 2023 05:36:03 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 910A7280001; Fri, 19 May 2023 05:36:03 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 787C3280005; Fri, 19 May 2023 05:36:03 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 61898280001 for ; Fri, 19 May 2023 05:36:03 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 2E6351C7961 for ; Fri, 19 May 2023 09:36:03 +0000 (UTC) X-FDA: 80806498206.07.186A1E3 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) by imf10.hostedemail.com (Postfix) with ESMTP id 3DF3BC0011 for ; Fri, 19 May 2023 09:36:01 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=CJ+A5Cuc; dmarc=none; spf=none (imf10.hostedemail.com: domain of BATV+aecf67361b95543ec79f+7208+infradead.org+hch@bombadil.srs.infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=BATV+aecf67361b95543ec79f+7208+infradead.org+hch@bombadil.srs.infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684488961; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=jBsLbOyW4gxJfboFsPaM/jr4wcWxBT1Mri8F0Ud0gD8=; b=8UuEvZgn2E2HifO4C++rwgIKEyUeQyEwKqjvRTuGl/MB06SKVpl3L7H0AOROhRXEgA1RbH hfiDNT8QOEfZHvAJgxiTaKHX37qyfUvoMFmw9eGZ2ts9Plazo5lzNvp6jMEjlMC0lBwEFy +yUmkNyJGREHAftJaePJrrD0o3aEsiY= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=CJ+A5Cuc; dmarc=none; spf=none (imf10.hostedemail.com: domain of BATV+aecf67361b95543ec79f+7208+infradead.org+hch@bombadil.srs.infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=BATV+aecf67361b95543ec79f+7208+infradead.org+hch@bombadil.srs.infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684488961; a=rsa-sha256; cv=none; b=TgkgIsGKMwLrzVU4iVk6O0XICF9jUf9RqgmAB84wcK1v6JPz5sEqtx22TLeeyuc4jBiGyp EYCzDF057tUbanmovHlxYHiCwLey1e/H+HuaCWMIHT0AuUlY27ke4UopweyYiv2s7CCIDn gVCM0kwZwSdUZ5L+cTMZfChsXkxT5ug= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; 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=jBsLbOyW4gxJfboFsPaM/jr4wcWxBT1Mri8F0Ud0gD8=; b=CJ+A5CucslKF05xEph7ZTKtrZ0 2m1gkbiYfzpbtTt1XTbMs91Z6sBHAPMva3XLcVNtvCKv+5A6Yt3jZeQsnaQfDhtMWLLz7dmaTQVZ7 M09DndXYZgSi3F84aM+aUrXASh0lFIaychMModF2k0xSG4po0YGEvtMoBhLtzic+dHU8AqxyUk7nq rUT1Lz/9lG68YM/Y1UnQTYM8Xu0RsVv+sH1YXWxHCT9P5xvCDmv3wB05YjcuDoGbnPzzlAJaKcdQl rzznR1GintoXSsaocfkeJCe2ZH8w34EK+LZ0LW9n/Nu7pOWNGYOfKPfWYZVwB0Q+0Z040kY30qie4 cyio+LIA==; Received: from [2001:4bb8:188:3dd5:e8d0:68bb:e5be:210a] (helo=localhost) by bombadil.infradead.org with esmtpsa (Exim 4.96 #2 (Red Hat Linux)) id 1pzwWW-00Fjfv-2R; Fri, 19 May 2023 09:35:45 +0000 From: Christoph Hellwig To: Matthew Wilcox Cc: Jens Axboe , Xiubo Li , Ilya Dryomov , Alexander Viro , Christian Brauner , "Theodore Ts'o" , Jaegeuk Kim , Chao Yu , Miklos Szeredi , Andreas Gruenbacher , "Darrick J. Wong" , Trond Myklebust , Anna Schumaker , Damien Le Moal , Andrew Morton , linux-block@vger.kernel.org, ceph-devel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-ext4@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net (open list:F2FS FILE SYSTEM), cluster-devel@redhat.com, linux-xfs@vger.kernel.org, linux-nfs@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH 07/13] iomap: update ki_pos in iomap_file_buffered_write Date: Fri, 19 May 2023 11:35:15 +0200 Message-Id: <20230519093521.133226-8-hch@lst.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230519093521.133226-1-hch@lst.de> References: <20230519093521.133226-1-hch@lst.de> MIME-Version: 1.0 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org. See http://www.infradead.org/rpr.html X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 3DF3BC0011 X-Stat-Signature: 3615ecdmp5mwo44sdfifac6dypyd41ci X-HE-Tag: 1684488961-435935 X-HE-Meta: U2FsdGVkX1+eErU+WBd/sV0alIVXQs3RVsXx7Monp+1Lv9L5ZVJIQ5XxS5WEzv/U0MZWCDkSjSBzIg+bc+mkkA4Homw5zpUaFTiHQaRsJ2eNl7WWSusUpDR2E6BnXdx9DWc3QPonjRK9w8QENEpeqshre5CrKHq0i/04kDnvwMYyebWDp+ZzxyCU8byo/phzzvqhrs4qo35acBh98wXzsuGtbMnXZieLoUAhbo3RuFoHWF2hmSGRKtJDVURGeJj+8QTSrCbBJqkchbunkzN/H97QGoJ040wGIDYPiSCsGVHgxHnhW0DfPJyLuakCg1e5MtU/1udr3jFhicEOXLTX1CyosO9Co7vF4Ust3VaNgmauNT1hKEoX22dL0DnoHG841ttSlrkRaWls5zJ++d23Y0N0Qq8XhNadaSN6SLEz98Cud3ZjvoeHJXZNzMXpKd0SsYp1beaUm6HJJClSE+W6wJfPR0l+dR43WAj25H6lL/KEFGKOp//iDbeMc/I4nBU9SPqRJXCGSnY/iAXQbbSSy/cqvzgS9JVd9aYr0CCASBNMpgcH3Zv99Gnf2cEbb3z2XWM7RlGW6sjAaUpQeJIHgpK3bpnNVXtmK5BxzE/Ex1TV8kzMyNTKg4ymkobt6zLNa1CcRIW0aiZb50WyojgOCWuU8uTIKP0kr8b+Ijo9xxR9p/Zw9qKpoU9uknkL0Lc45Yvb4RMCMh3FjrIH5vnsFEL4NMAA33JLerrwnIYj5TnHh+vvrBq8K5DQDaBgVQx+kQpf/WQXClPXOhgB/wVsYvUiURXjrZxjHMofcbufIPi0+OWNkGu2u+Qzrq/fLNykAOqvirMDPwElLujaHYE4YXX2PnZ52t4NxIOeEc27ldD2FKB2su8OLgbNQfc0qEkVv4BBGwSEAIPkBnRpRKwJnQY046HwcZmgJdXRl0UxtYNTXy806ef54ipKRYP44/XbxM6zNLnEjoOCJjUnJew jGBon1el Ju+6EtXLJafA07J2DP2mnqw0XY4jbtfAtjIGTu3Iy+TQI1kBJ5pcJfRi6LHxarldq4R+Fihql2KU6wrkum1ddW4lYv+CIkMqesj5h1kRg0RF0FFageCH/LsnW9eNGOLezhxhJ0IhVbh1SxNAuNETHnUvRJTrtblnemfjiLAINZvaOEHcISeLVr2vITAx3WHE7tqVPSRlsDDIvV4TFq/RP1/SqXJk/MehguQtrE2/fGvbQ+8rAG7CyjeY/vZ0TOMcHh5+6PieXJCKZFvw+N/gMS75GO33BjEzGmUKEAyUTzAmQX8PmXBdDXEh8pmGwniSu25goiR9Y7KQdBS621RV2Qx35+SkYur6ZuG0bF+WWFdbHo7k6wsnk8wc/YZidTmSP6o1yJvaewZdNK/IDBwOgKluSbMl8pkkJD6tt6YsEL5Fvspcm/0YSEAaVpHwwNWRpnhl9nvpP420jx20xOrON5d15EA== 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: All callers of iomap_file_buffered_write need to updated ki_pos, move it into common code. Signed-off-by: Christoph Hellwig Acked-by: Damien Le Moal --- fs/gfs2/file.c | 4 +--- fs/iomap/buffered-io.c | 9 ++++++--- fs/xfs/xfs_file.c | 2 -- fs/zonefs/file.c | 4 +--- 4 files changed, 8 insertions(+), 11 deletions(-) diff --git a/fs/gfs2/file.c b/fs/gfs2/file.c index 300844f50dcd28..499ef174dec138 100644 --- a/fs/gfs2/file.c +++ b/fs/gfs2/file.c @@ -1046,10 +1046,8 @@ static ssize_t gfs2_file_buffered_write(struct kiocb *iocb, ret = iomap_file_buffered_write(iocb, from, &gfs2_iomap_ops); pagefault_enable(); current->backing_dev_info = NULL; - if (ret > 0) { - iocb->ki_pos += ret; + if (ret > 0) written += ret; - } if (inode == sdp->sd_rindex) gfs2_glock_dq_uninit(statfs_gh); diff --git a/fs/iomap/buffered-io.c b/fs/iomap/buffered-io.c index 063133ec77f49e..550525a525c45c 100644 --- a/fs/iomap/buffered-io.c +++ b/fs/iomap/buffered-io.c @@ -864,16 +864,19 @@ iomap_file_buffered_write(struct kiocb *iocb, struct iov_iter *i, .len = iov_iter_count(i), .flags = IOMAP_WRITE, }; - int ret; + ssize_t ret; if (iocb->ki_flags & IOCB_NOWAIT) iter.flags |= IOMAP_NOWAIT; while ((ret = iomap_iter(&iter, ops)) > 0) iter.processed = iomap_write_iter(&iter, i); - if (iter.pos == iocb->ki_pos) + + if (unlikely(ret < 0)) return ret; - return iter.pos - iocb->ki_pos; + ret = iter.pos - iocb->ki_pos; + iocb->ki_pos += ret; + return ret; } EXPORT_SYMBOL_GPL(iomap_file_buffered_write); diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c index aede746541f8ae..bfba10e0b0f3c2 100644 --- a/fs/xfs/xfs_file.c +++ b/fs/xfs/xfs_file.c @@ -723,8 +723,6 @@ xfs_file_buffered_write( trace_xfs_file_buffered_write(iocb, from); ret = iomap_file_buffered_write(iocb, from, &xfs_buffered_write_iomap_ops); - if (likely(ret >= 0)) - iocb->ki_pos += ret; /* * If we hit a space limit, try to free up some lingering preallocated diff --git a/fs/zonefs/file.c b/fs/zonefs/file.c index 132f01d3461f14..e212d0636f848e 100644 --- a/fs/zonefs/file.c +++ b/fs/zonefs/file.c @@ -643,9 +643,7 @@ static ssize_t zonefs_file_buffered_write(struct kiocb *iocb, goto inode_unlock; ret = iomap_file_buffered_write(iocb, from, &zonefs_write_iomap_ops); - if (ret > 0) - iocb->ki_pos += ret; - else if (ret == -EIO) + if (ret == -EIO) zonefs_io_error(inode, true); inode_unlock: