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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2A455C77B73 for ; Mon, 22 May 2023 02:21:17 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9009F6B007B; Sun, 21 May 2023 22:21:16 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 862DB280001; Sun, 21 May 2023 22:21:16 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6DBCE900003; Sun, 21 May 2023 22:21:16 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 59E6D6B007B for ; Sun, 21 May 2023 22:21:16 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 14008A03B6 for ; Mon, 22 May 2023 02:21:16 +0000 (UTC) X-FDA: 80816288952.23.937711C Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf07.hostedemail.com (Postfix) with ESMTP id 983B64000F for ; Mon, 22 May 2023 02:21:13 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=fbd4cgGz; spf=pass (imf07.hostedemail.com: domain of xiubli@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=xiubli@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684722073; 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-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=pl1j2Mo02M1sQGfGs/DUFoRb8smUY2ZG1V4PFyySeOU=; b=2bQRkMvZxZszWRELk4EMqvPO1X4/8TvR/QaTABKa4ku2z/i7Fx7HagOOZvDYtnNQX1AFuJ VQRfi1WBeyl2oJh9PhzLMPWOJ+K+zc+DHyixhUx65sqh2z64YLj5moLhdZBQwYC6sryUDK r5jmhpwZXH900WeLkZalkp8MEsCeKZ8= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684722073; a=rsa-sha256; cv=none; b=YWxQqgI66qqntlbcxoxH27a41MM0C1Lu4f7cGJsk6OlGrzuzzAAYkITbtF0BhT0ht+JXLX z6UdZKo41rzbuWQIv7qL/xaIa1cF6CL63sXT6eCNTAu3WniUe77OBLPZymDCspklBOImeM z3lu+mNIJXu/cVsfAZJc+8mUpl/zqq0= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=fbd4cgGz; spf=pass (imf07.hostedemail.com: domain of xiubli@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=xiubli@redhat.com; dmarc=pass (policy=none) header.from=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1684722072; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=pl1j2Mo02M1sQGfGs/DUFoRb8smUY2ZG1V4PFyySeOU=; b=fbd4cgGzbe98ztRge+XfdGtAWX2YqD5beTYIX49/jCNCUxqhA3Yy8xfo1a3qMvmUPaESSk NvgewWFtXseGu8CgwxHc+P7hr+B9ldfb+CJ1UqISOMgXqxFTRMXYr7yBW7oe+oLXWpnAiH OGWqhnUksokunDDGa4VHEAC1+65gJPQ= Received: from mail-pg1-f197.google.com (mail-pg1-f197.google.com [209.85.215.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-178-rrgLz_iWPASD05GJPU4mpA-1; Sun, 21 May 2023 22:21:11 -0400 X-MC-Unique: rrgLz_iWPASD05GJPU4mpA-1 Received: by mail-pg1-f197.google.com with SMTP id 41be03b00d2f7-5348c950d03so1461407a12.1 for ; Sun, 21 May 2023 19:21:11 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684722070; x=1687314070; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=pl1j2Mo02M1sQGfGs/DUFoRb8smUY2ZG1V4PFyySeOU=; b=Uoj7rKVupRom7uJD7eljaX5jbPIOhOtkvRyvu8s6gI0TYLuBF226s8fGBCeQ2HrAfu 1rX6x/YEwBroQZ9f7n1zendKaJzWYSppLkLlizjUDd1E3VfNjgLWks3zuqJZAAouWGHY p9TTatuA4xVnuMeC23SZRNYK/jl/LK1c64QPej0HTiiz1tg2bNKU0NoGfLk+KdaJ5W3t 4hxtGfIbs37xrKK1bkC57lGxAUNIGJQRoBuOLVi8e3DpUGwEAsVm0P4j4zCUFHbdy3on 8PoJJJbxLC7zwAferDX6fNPbxKw0TibTuglr/E6HLDlvvn7uBNLRbnTvpNfRUMsw81qv jnKA== X-Gm-Message-State: AC+VfDzhk3v49yh8ET6ck1ZVQfQ1rpPFPRn5jNjJUCE30oc8IKKfXn36 elUJ+YA0bY/rho5WVcuupQ+Edk8yyt9L97HdXBboWP5hFfinELt4tKTR/S16S3jm8Sd1i/AHsuR sKlzyFky7OYk= X-Received: by 2002:a17:902:ab14:b0:1ac:71a7:a1fb with SMTP id ik20-20020a170902ab1400b001ac71a7a1fbmr9173008plb.18.1684722070542; Sun, 21 May 2023 19:21:10 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5vgpUHg5KMr5fvVKnKuCGiBu82Kta1T/m+fZ4YXIOR/n75V5hEd2a8qnobD9FuM9h7/ryidw== X-Received: by 2002:a17:902:ab14:b0:1ac:71a7:a1fb with SMTP id ik20-20020a170902ab1400b001ac71a7a1fbmr9172986plb.18.1684722070171; Sun, 21 May 2023 19:21:10 -0700 (PDT) Received: from [10.72.12.68] ([43.228.180.230]) by smtp.gmail.com with ESMTPSA id az8-20020a170902a58800b001ae44cd96besm3520183plb.135.2023.05.21.19.20.58 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 21 May 2023 19:21:08 -0700 (PDT) Message-ID: <745e2a68-ed19-dc3d-803a-a7d1d47903dd@redhat.com> Date: Mon, 22 May 2023 10:20:56 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 Subject: Re: [PATCH 02/13] filemap: update ki_pos in generic_perform_write To: Christoph Hellwig , Matthew Wilcox Cc: Jens Axboe , 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, "open list:F2FS FILE SYSTEM" , cluster-devel@redhat.com, linux-xfs@vger.kernel.org, linux-nfs@vger.kernel.org, linux-mm@kvack.org References: <20230519093521.133226-1-hch@lst.de> <20230519093521.133226-3-hch@lst.de> From: Xiubo Li In-Reply-To: <20230519093521.133226-3-hch@lst.de> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 983B64000F X-Rspam-User: X-Stat-Signature: zpcapq9j85j4reu3zejqi67o97hmbpum X-Rspamd-Server: rspam03 X-HE-Tag: 1684722073-36668 X-HE-Meta: U2FsdGVkX1/XA2hqiN/Hy9/V4pxoPZhFYFpt6IbEY6MZgKsdah7pgcvJJ5nK4jAIkHQRUOjpmjaH4DZM1xdxoNWGKzco37ykEAMblTM4blYqFtzGnq4NdssAT0EBotz7f9LDwNRVZKKcrxhXhOawyy2qgF4UZDYc6wyCEtm+DAJG7bAmkKQ/c/RhMt34CsRk0NKbPsFuF0eWVRo1oNO38Fm+Ag4LJLqR0UlwRezlzzmoxFO12WZusk8yYTEKz0FEvbQ27pd2MHzjVNPUzGUBx2xkDH7t5jDVQS0EKMrAi6CFiAVRS3bWdw6LjwbHhgoMCgF7tQiBRPKbnZvHbaFE/AR2poJrNNpmtvODBr9YOhDxLpZLqJW3HFhU+nz9xr3Y9f8iExfZoNSy9z03c7Fcb5lohHlLU9aDkMRHJAlChjdjwZTBimIBQJ38KCTc12TZyUYiWWlHS/PT5lHoV0G+SWRvwhVWNVH4vcamGPyO+F0ZNJudAf61b5OdCE4hdyMd3/bUVWSQk140EHRWSszF1uT9xYUJnC8CaxispyXWStZU+NB6sG8xlVzUc7xs11IwNX+9jgJ2kJ9YfBMQOHgUn7H14/TmC5FBjzVruOobRdjBd20WHqlza4uqIYHD+s+wKhW6LVou7OGTyLZmgosLS0nx5Zea0TeRS/0MTYySPmJDBNosYAz/w7fTymSH9Nuc+IdC40cS6wqcBkBLf+LeTUH4dj9fxH2SEXSgYehgeJLAftB3kW4bbroSXoYArwUBnLLzpVK3/tU0V/RdMB2Kp7m5M2o/SGtW6hyRNkKdDqzcvMbOD1glDUtpOWh829LnUVle2QRsJY33DQqOz1YK9R4wLGOKWuloecdUBWuWo78K8PhJN2HT0PXc4NBeBeqq/KnWyWxlA8YGOW9mskDkKILZ4CUH18ZiJKN6e/FORYvxPTatpS+9tPVe0ixIqYZE8sm23xkXqsOubRZNr14 0jkys6xL Exec71xRCgoSyphzMBaiGR6eiinkbNC2G+9uNbH61KAUaT3BMfWSJWzeM7dL5vKUcKM1EL51mnAQHTe6lIbYO+6kmURYRxrVzGN8bH/otwlSpB1ttZcYMCCclNvuhC1FmUjjQMy7DT+kqr5CcoM/TsfBcYpg6nGaCl+qAba/VfsvctvOiliM52cKrNVcO+6yFnYir99eazyk4Iok8HBipf9gCPg0R0s6SVAPzD7E4pP0uyEBId3OTBYg+HMYKJ1DNP5PrDlV/xOVIx/y2Xd+Ogi/AvMNWkAe/i+pYbij9EFZh4Xyz6JwzpLyzf2QYvQwVa/4Ht4J2JUx65VsG42RjQaSOMNu/OxRhy4VChv+6qn13vS5dQ/Ky/XEIJpEY4ROd5lW2WA3zx0qgmB5erID4ThdSoyisqUMbmOpF2nmqRlHb8tKsZe/3bDztRw== 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: On 5/19/23 17:35, Christoph Hellwig wrote: > All callers of generic_perform_write need to updated ki_pos, move it into > common code. > > Signed-off-by: Christoph Hellwig > --- > fs/ceph/file.c | 2 -- > fs/ext4/file.c | 9 +++------ > fs/f2fs/file.c | 1 - > fs/nfs/file.c | 1 - > mm/filemap.c | 8 ++++---- > 5 files changed, 7 insertions(+), 14 deletions(-) > > diff --git a/fs/ceph/file.c b/fs/ceph/file.c > index f4d8bf7dec88a8..feeb9882ef635a 100644 > --- a/fs/ceph/file.c > +++ b/fs/ceph/file.c > @@ -1894,8 +1894,6 @@ static ssize_t ceph_write_iter(struct kiocb *iocb, struct iov_iter *from) > * can not run at the same time > */ > written = generic_perform_write(iocb, from); > - if (likely(written >= 0)) > - iocb->ki_pos = pos + written; > ceph_end_io_write(inode); > } > > diff --git a/fs/ext4/file.c b/fs/ext4/file.c > index d101b3b0c7dad8..50824831d31def 100644 > --- a/fs/ext4/file.c > +++ b/fs/ext4/file.c > @@ -291,12 +291,9 @@ static ssize_t ext4_buffered_write_iter(struct kiocb *iocb, > > out: > inode_unlock(inode); > - if (likely(ret > 0)) { > - iocb->ki_pos += ret; > - ret = generic_write_sync(iocb, ret); > - } > - > - return ret; > + if (unlikely(ret <= 0)) > + return ret; > + return generic_write_sync(iocb, ret); > } > > static ssize_t ext4_handle_inode_extension(struct inode *inode, loff_t offset, > diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c > index 5ac53d2627d20d..9e3855e43a7a63 100644 > --- a/fs/f2fs/file.c > +++ b/fs/f2fs/file.c > @@ -4522,7 +4522,6 @@ static ssize_t f2fs_buffered_write_iter(struct kiocb *iocb, > current->backing_dev_info = NULL; > > if (ret > 0) { > - iocb->ki_pos += ret; > f2fs_update_iostat(F2FS_I_SB(inode), inode, > APP_BUFFERED_IO, ret); > } > diff --git a/fs/nfs/file.c b/fs/nfs/file.c > index f0edf5a36237d1..3cc87ae8473356 100644 > --- a/fs/nfs/file.c > +++ b/fs/nfs/file.c > @@ -658,7 +658,6 @@ ssize_t nfs_file_write(struct kiocb *iocb, struct iov_iter *from) > goto out; > > written = result; > - iocb->ki_pos += written; > nfs_add_stats(inode, NFSIOS_NORMALWRITTENBYTES, written); > > if (mntflags & NFS_MOUNT_WRITE_EAGER) { > diff --git a/mm/filemap.c b/mm/filemap.c > index b4c9bd368b7e58..4d0ec2fa1c7070 100644 > --- a/mm/filemap.c > +++ b/mm/filemap.c > @@ -3957,7 +3957,10 @@ ssize_t generic_perform_write(struct kiocb *iocb, struct iov_iter *i) > balance_dirty_pages_ratelimited(mapping); > } while (iov_iter_count(i)); > > - return written ? written : status; > + if (!written) > + return status; > + iocb->ki_pos += written; > + return written; > } > EXPORT_SYMBOL(generic_perform_write); > > @@ -4036,7 +4039,6 @@ ssize_t __generic_file_write_iter(struct kiocb *iocb, struct iov_iter *from) > endbyte = pos + status - 1; > err = filemap_write_and_wait_range(mapping, pos, endbyte); > if (err == 0) { > - iocb->ki_pos = endbyte + 1; > written += status; > invalidate_mapping_pages(mapping, > pos >> PAGE_SHIFT, > @@ -4049,8 +4051,6 @@ ssize_t __generic_file_write_iter(struct kiocb *iocb, struct iov_iter *from) > } > } else { > written = generic_perform_write(iocb, from); > - if (likely(written > 0)) > - iocb->ki_pos += written; > } > out: > current->backing_dev_info = NULL; LGTM. Reviewed-by: Xiubo Li Thanks - Xiubo