20230827214518.GU3390869@ZenIV>
Message-ID: <2025110356-extending-goal-0e9a@gregkh>
MIME-Version: 1.0
Content-Type: text/plain; charset=ANSI_X3.4-1968
Content-Transfer-Encoding: 8bit
X-stable: commit
X-Patchwork-Hint: ignore


This is a note to let you know that I've just added the patch titled

    direct_write_fallback(): on error revert the ->ki_pos update from buffered 
write

to the 6.1-stable tree which can be found at:
    
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     
direct_write_fallback-on-error-revert-the-ki_pos-update-from-buffered-write.patch
and it can be found in the queue-6.1 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <[email protected]> know about it.


>From [email protected] Tue Oct 21 16:13:26 
>2025
From: Mahmoud Adam <[email protected]>
Date: Tue, 21 Oct 2025 09:03:40 +0200
Subject: direct_write_fallback(): on error revert the ->ki_pos update from 
buffered write
To: <[email protected]>
Cc: <[email protected]>, <[email protected]>, Al Viro 
<[email protected]>, Christian Brauner <[email protected]>, Jens Axboe 
<[email protected]>, Xiubo Li <[email protected]>, Ilya Dryomov 
<[email protected]>, Jeff Layton <[email protected]>, Theodore Ts'o 
<[email protected]>, Andreas Dilger <[email protected]>, Jaegeuk Kim 
<[email protected]>, Chao Yu <[email protected]>, Christoph Hellwig 
<[email protected]>, "Darrick J. Wong" <[email protected]>, Trond Myklebust 
<[email protected]>, Anna Schumaker <[email protected]>, "Ryusuke 
Konishi" <[email protected]>, "Matthew Wilcox (Oracle)" 
<[email protected]>, Andrew Morton <[email protected]>, "Hannes 
Reinecke" <[email protected]>, Damien Le Moal <[email protected]>, "Luis 
Chamberlain" <[email protected]>, <[email protected]>, 
<[email protected]>, <[email protected]>, 
<[email protected]>, <[email protected]>, 
<[email protected]
 rge.net>, <[email protected]>, <[email protected]>, 
<[email protected]>, <[email protected]>
Message-ID: <[email protected]>

From: Al Viro <[email protected]>

commit 8287474aa5ffb41df52552c4ae4748e791d2faf2 upstream.

If we fail filemap_write_and_wait_range() on the range the buffered write went
into, we only report the "number of bytes which we direct-written", to quote
the comment in there.  Which is fine, but buffered write has already advanced
iocb->ki_pos, so we need to roll that back.  Otherwise we end up with e.g.
write(2) advancing position by more than the amount it reports having written.

Fixes: 182c25e9c157 "filemap: update ki_pos in generic_perform_write"
Signed-off-by: Al Viro <[email protected]>
Message-Id: <20230827214518.GU3390869@ZenIV>
Signed-off-by: Christian Brauner <[email protected]>
Signed-off-by: Mahmoud Adam <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
 fs/libfs.c |    1 +
 1 file changed, 1 insertion(+)

--- a/fs/libfs.c
+++ b/fs/libfs.c
@@ -1615,6 +1615,7 @@ ssize_t direct_write_fallback(struct kio
                 * We don't know how much we wrote, so just return the number of
                 * bytes which were direct-written
                 */
+               iocb->ki_pos -= buffered_written;
                if (direct_written)
                        return direct_written;
                return err;


Patches currently in stable-queue which might be from [email protected] are

queue-6.1/block-fix-race-between-set_blocksize-and-read-paths.patch
queue-6.1/filemap-add-a-kiocb_invalidate_pages-helper.patch
queue-6.1/fs-factor-out-a-direct_write_fallback-helper.patch
queue-6.1/direct_write_fallback-on-error-revert-the-ki_pos-update-from-buffered-write.patch
queue-6.1/filemap-update-ki_pos-in-generic_perform_write.patch
queue-6.1/filemap-add-a-kiocb_invalidate_post_direct_write-helper.patch
queue-6.1/nilfs2-fix-deadlock-warnings-caused-by-lock-dependency-in-init_nilfs.patch
queue-6.1/block-open-code-__generic_file_write_iter-for-blkdev-writes.patch


_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to