linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* Patch "cifs: Fix FALLOC_FL_ZERO_RANGE by setting i_size if EOF moved" has been added to the 6.6-stable tree
@ 2023-12-03 13:02 gregkh
  0 siblings, 0 replies; only message in thread
From: gregkh @ 2023-12-03 13:02 UTC (permalink / raw)
  To: dhowells, gregkh, jlayton, linux-mm, nspmangalore, pc,
	rohiths.msft, stfrench
  Cc: stable-commits


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

    cifs: Fix FALLOC_FL_ZERO_RANGE by setting i_size if EOF moved

to the 6.6-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:
     cifs-fix-falloc_fl_zero_range-by-setting-i_size-if-eof-moved.patch
and it can be found in the queue-6.6 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@vger.kernel.org> know about it.


From 83d5518b124dfd605f10a68128482c839a239f9d Mon Sep 17 00:00:00 2001
From: David Howells <dhowells@redhat.com>
Date: Wed, 29 Nov 2023 16:56:17 +0000
Subject: cifs: Fix FALLOC_FL_ZERO_RANGE by setting i_size if EOF moved

From: David Howells <dhowells@redhat.com>

commit 83d5518b124dfd605f10a68128482c839a239f9d upstream.

Fix the cifs filesystem implementations of FALLOC_FL_ZERO_RANGE, in
smb3_zero_range(), to set i_size after extending the file on the server.

Fixes: 72c419d9b073 ("cifs: fix smb3_zero_range so it can expand the file-size when required")
Cc: stable@vger.kernel.org
Signed-off-by: David Howells <dhowells@redhat.com>
Acked-by: Paulo Alcantara <pc@manguebit.com>
cc: Shyam Prasad N <nspmangalore@gmail.com>
cc: Rohith Surabattula <rohiths.msft@gmail.com>
cc: Jeff Layton <jlayton@kernel.org>
cc: linux-cifs@vger.kernel.org
cc: linux-mm@kvack.org
Signed-off-by: Steve French <stfrench@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 fs/smb/client/smb2ops.c |   10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

--- a/fs/smb/client/smb2ops.c
+++ b/fs/smb/client/smb2ops.c
@@ -3305,6 +3305,7 @@ static long smb3_zero_range(struct file
 	struct inode *inode = file_inode(file);
 	struct cifsInodeInfo *cifsi = CIFS_I(inode);
 	struct cifsFileInfo *cfile = file->private_data;
+	unsigned long long new_size;
 	long rc;
 	unsigned int xid;
 	__le64 eof;
@@ -3335,10 +3336,15 @@ static long smb3_zero_range(struct file
 	/*
 	 * do we also need to change the size of the file?
 	 */
-	if (keep_size == false && i_size_read(inode) < offset + len) {
-		eof = cpu_to_le64(offset + len);
+	new_size = offset + len;
+	if (keep_size == false && (unsigned long long)i_size_read(inode) < new_size) {
+		eof = cpu_to_le64(new_size);
 		rc = SMB2_set_eof(xid, tcon, cfile->fid.persistent_fid,
 				  cfile->fid.volatile_fid, cfile->pid, &eof);
+		if (rc >= 0) {
+			truncate_setsize(inode, new_size);
+			fscache_resize_cookie(cifs_inode_cookie(inode), new_size);
+		}
 	}
 
  zero_range_exit:


Patches currently in stable-queue which might be from dhowells@redhat.com are

queue-6.6/cifs-fix-falloc_fl_zero_range-by-setting-i_size-if-eof-moved.patch
queue-6.6/cifs-fix-falloc_fl_insert_range-by-setting-i_size-after-eof-moved.patch


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-12-03 13:04 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-12-03 13:02 Patch "cifs: Fix FALLOC_FL_ZERO_RANGE by setting i_size if EOF moved" has been added to the 6.6-stable tree gregkh

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox