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 2922FC77B7C for ; Wed, 24 May 2023 07:07:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AEF546B007B; Wed, 24 May 2023 03:07:37 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A9EF46B007D; Wed, 24 May 2023 03:07:37 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 93F826B007E; Wed, 24 May 2023 03:07:37 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 852096B007B for ; Wed, 24 May 2023 03:07:37 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 528D0AD99F for ; Wed, 24 May 2023 07:07:37 +0000 (UTC) X-FDA: 80824268154.01.BBC82C4 Received: from mail-ed1-f51.google.com (mail-ed1-f51.google.com [209.85.208.51]) by imf21.hostedemail.com (Postfix) with ESMTP id 82BE61C0007 for ; Wed, 24 May 2023 07:07:35 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=szeredi.hu header.s=google header.b=CfBlFjin; dmarc=pass (policy=quarantine) header.from=szeredi.hu; spf=pass (imf21.hostedemail.com: domain of miklos@szeredi.hu designates 209.85.208.51 as permitted sender) smtp.mailfrom=miklos@szeredi.hu ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684912055; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=q4naoP/v86EKmAo+u6ifRRW3QrLb6CXC2bVZOo7DIRg=; b=GV77xw1NG9C5FiQ1NxVGWvG4h1bnHLyCv8dO43q94gFEIAu/gt77jWcZ0QAs6ciyqzwqI6 CvIBVW99FW+HPsPD9WKYnCVI4gJo8cI2SJ8DcI1JY95jOqZG47t0rSObghlqHJSz/NY74V bP5mN6JAS4tt+MBJ80l2vYIokQSwno8= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=szeredi.hu header.s=google header.b=CfBlFjin; dmarc=pass (policy=quarantine) header.from=szeredi.hu; spf=pass (imf21.hostedemail.com: domain of miklos@szeredi.hu designates 209.85.208.51 as permitted sender) smtp.mailfrom=miklos@szeredi.hu ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684912055; a=rsa-sha256; cv=none; b=SFaTOd0JjCaO3GadtDGZEs0H5xQSGMjuwNszrQiRfwBSinWbjJI4f+w23vRg2mEeFJ/Ai0 pKZZJxvp3nFqwq6K+x4M1bCO5sSc9M88O9iLRXEL1ffk/i88O6EH8I+B4KJeoyhZPQXkF0 /tMfP+94aFG98flkcodiOfPWT8qAyYk= Received: by mail-ed1-f51.google.com with SMTP id 4fb4d7f45d1cf-510d9218506so1487869a12.1 for ; Wed, 24 May 2023 00:07:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=szeredi.hu; s=google; t=1684912054; x=1687504054; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=q4naoP/v86EKmAo+u6ifRRW3QrLb6CXC2bVZOo7DIRg=; b=CfBlFjin9AiglVZYNj73FBrJiDD1bgOexikX1Ibnhzpuzz+5EcbqenYVDEno0ACDa2 djfaNXoukq6AOI2QGVjbJUY4tHB5nQ6aQa9Gdah0n42uhwzekGmDHDHIYrNrS1Zi1uq7 d0cnXvOfRcG2l6Z3wViMElw5AIOQmwbbeQ2o0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684912054; x=1687504054; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=q4naoP/v86EKmAo+u6ifRRW3QrLb6CXC2bVZOo7DIRg=; b=b4RbRJ3rJRniAJB0iA7UIxduTHKQDnXlqBVi6uCXQfLOq4/COioW0TSMzd2q3WVBar SYMLffDv5rt9Bgi4gA6QVZaEl8jrAIYl2Hb330PdMIa61vH/HSRnCIYTkPo+l1y/xKcf nnbwiOoNqvlk3xWTwakP8LhVoqfcwSMESa+GHOH+89DiGdCF2NpFOajZLxiGg5zRUXBo jmQaxJb+OJMsi3f7nVmA/dvhoBRywYy/YMj+fEzc62CZKil4DSqR8C2Y0EzNUcTwQUFm ecwgu9pBJyKL7xigb80LDI2A1E5y3B8n/NZRnKipfE7SN54wbOQr1thMBmeQ5Ha++gJt NPYg== X-Gm-Message-State: AC+VfDyOb7fDpG9p8OrJDbKsmfkEGZlgoQegyCYcnNQz57dRxXQ5DI3z coccHHfCwIuo/MVdoUi8y+rOeIcxb7u3f1hVD57cJg== X-Google-Smtp-Source: ACHHUZ5nu5V36cLreoQ/PYoDJkXFfcE1oq2Gs17vr1i/RZvs/lgKVxpySwPaw/RHPAbV3ltDCF676sVzrLwNPZ6r1Lg= X-Received: by 2002:a05:6402:2792:b0:50d:83d4:6174 with SMTP id b18-20020a056402279200b0050d83d46174mr1222660ede.12.1684912053956; Wed, 24 May 2023 00:07:33 -0700 (PDT) MIME-Version: 1.0 References: <20230524063810.1595778-1-hch@lst.de> <20230524063810.1595778-11-hch@lst.de> In-Reply-To: <20230524063810.1595778-11-hch@lst.de> From: Miklos Szeredi Date: Wed, 24 May 2023 09:07:22 +0200 Message-ID: Subject: Re: [PATCH 10/11] fuse: update ki_pos in fuse_perform_write To: Christoph Hellwig Cc: Matthew Wilcox , Jens Axboe , Xiubo Li , Ilya Dryomov , Alexander Viro , Christian Brauner , "Theodore Ts'o" , Jaegeuk Kim , Chao Yu , 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, cluster-devel@redhat.com, linux-xfs@vger.kernel.org, linux-nfs@vger.kernel.org, linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" X-Rspam-User: X-Stat-Signature: p78e3bjrzuea5h8afgqwqwub4m6j5bs8 X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 82BE61C0007 X-HE-Tag: 1684912055-508086 X-HE-Meta: U2FsdGVkX18IWU+xt9iksdI0sRUCVyOf4j5HezdGwSwikrHcT7copQKkCAkm7JoNOCTQdMEa0QTn9m9zpTF1b8IiEJbbqJ87tH6Hjegvw/55rHS5wM9/z3stKMwsSAhe7iH6f1vUzYI6+8VbvkMjfIPaav5fZmI9O2IYSzg1dwO/OOu5Su2kSkqfU4YP1yx7faTxke+P5/u049w6a91323isGjjj2Ok3fx4EzXCNoVNek0QgD4435GV33xLy2YOr7tue3J+WTI2zSh2yLqY+vmrMMJjHGtSZNXNElIhG8cPpbdaiKMWar1LgJ6T87HhoEoRHR27dQGMPMGBGw7baWpJkZOBNea4LvSfolaY1vWtFlQkDaxlSI1xszRb2RYejl6jFdda+ory0kani2Tkl2L9M3ewDsX1p8OHlPe4XaWN5PEggcNKj3U4rxr7E6k7L9Cm9nWf4vUHKsGhh3PkEXT6NAu+SCQR+RAnmew+M6ry9WNZxxDuJYzCv4UAhgH6r+r1EICAeqrIw5bomOi2omFfuL8hbeVtc7JiNFBNVIYLYrVuJHjN6Xg77CAgm6XCslmwXS++nBzxlQYhx6XAq7bjLO5EirlM/mbBml77vFvZtG1LSSe6sYg7YVEbgHG9tgyR96qkPQIyNdsnJ/kGNHw0pScexSd+HCOuQTGVD2BxZc97/7DQwnsrnKDlEuMmXEKTlTQaxQCGn82t3+OTh78I2DbcUtjrJOcI36DTapixPva9W1wYTmSPRliR2O7Fdnva8qKU2c2VlyC+FUhglAflEWwstQVSqR2E2PQyk+fhapxfav0LFVgbLpIypDQ3gs2IxTprPRI7kivAjY1JwTlNvtMlUQYz1y3mK9BtQ0J7zr7MdwD4Rpr85sDJ34Bv8qjqR85HHZm9erN0uoWnbQyeEIjtoTjewRCVlu4j5IxzOah4R4f+PinzhXnakDzefjfiavciZEgLIU2hpKpy KsPt2hac PuSXj+p2g8mCCs5DNT8HSety7Fz28gE8ACjc7W9HCOikmRXLvT4xEeOR4advVcxFO7rJf5LaIRcOTo3z7VwWTZERGucxJjLZ4AjmUeRzk/VnCm9Kub47glZ22E2AMbPd6fr3Lyv2s/xC6nCtERZoyKlsMb+AUpCKIcAuWIy3Akx0bY2NExnXMcX+J1rOtsjcZzlKZFqWLniVqZD1Q0gDT0Hxr8q3U0GdKvCmuUOQG4sKZFEgaYqtR0vSWn8w8GND2HNdjRneXtd6/sd/D3o9WRznD93m03WrqaLft/jHT4sWCQlf/RQAVcnexCH/0CHt6RDOC+LFdFHeR+V/g7IqyhCEC9A== 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 Wed, 24 May 2023 at 08:38, Christoph Hellwig wrote: > > Both callers of fuse_perform_write need to updated ki_pos, move it into > common code. > > Signed-off-by: Christoph Hellwig > Reviewed-by: Damien Le Moal > --- > fs/fuse/file.c | 25 +++++++++++-------------- > 1 file changed, 11 insertions(+), 14 deletions(-) > > diff --git a/fs/fuse/file.c b/fs/fuse/file.c > index 97d435874b14aa..90d587a7bdf813 100644 > --- a/fs/fuse/file.c > +++ b/fs/fuse/file.c > @@ -1329,7 +1329,10 @@ static ssize_t fuse_perform_write(struct kiocb *iocb, > fuse_write_update_attr(inode, pos, res); > clear_bit(FUSE_I_SIZE_UNSTABLE, &fi->state); > > - return res > 0 ? res : err; > + if (!res) > + return err; > + iocb->ki_pos += res; > + return res; > } > > static ssize_t fuse_cache_write_iter(struct kiocb *iocb, struct iov_iter *from) > @@ -1375,41 +1378,35 @@ static ssize_t fuse_cache_write_iter(struct kiocb *iocb, struct iov_iter *from) > goto out; > > if (iocb->ki_flags & IOCB_DIRECT) { > - loff_t pos = iocb->ki_pos; > written = generic_file_direct_write(iocb, from); > if (written < 0 || !iov_iter_count(from)) > goto out; > > - pos += written; > - > - written_buffered = fuse_perform_write(iocb, mapping, from, pos); > + written_buffered = fuse_perform_write(iocb, mapping, from, > + iocb->ki_pos); > if (written_buffered < 0) { > err = written_buffered; > goto out; > } > - endbyte = pos + written_buffered - 1; > + endbyte = iocb->ki_pos + written_buffered - 1; Wrong endpos. > > - err = filemap_write_and_wait_range(file->f_mapping, pos, > + err = filemap_write_and_wait_range(file->f_mapping, > + iocb->ki_pos, Wrong startpos. > endbyte); > if (err) > goto out; > > invalidate_mapping_pages(file->f_mapping, > - pos >> PAGE_SHIFT, > + iocb->ki_pos >> PAGE_SHIFT, Same here. > endbyte >> PAGE_SHIFT); > > written += written_buffered; > - iocb->ki_pos = pos + written_buffered; > + iocb->ki_pos += written_buffered; Already added in fuse_perform_write(). > } else { > written = fuse_perform_write(iocb, mapping, from, iocb->ki_pos); > - if (written >= 0) > - iocb->ki_pos += written; > } > out: > inode_unlock(inode); > - if (written > 0) > - written = generic_write_sync(iocb, written); > - > return written ? written : err; > } > > -- > 2.39.2 >