[PATCH] cifs: Fix smb3_insert_range() to move the zero_point

David Howells posted 1 patch 1 year, 8 months ago
fs/smb/client/smb2ops.c |    1 +
1 file changed, 1 insertion(+)
[PATCH] cifs: Fix smb3_insert_range() to move the zero_point
Posted by David Howells 1 year, 8 months ago
Fix smb3_insert_range() to move the zero_point over to the new EOF.
Without this, generic/147 fails as reads of data beyond the old EOF point
return zeroes.

Fixes: 3ee1a1fc3981 ("cifs: Cut over to using netfslib")
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Steve French <sfrench@samba.org>
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: netfs@lists.linux.dev
---
 fs/smb/client/smb2ops.c |    1 +
 1 file changed, 1 insertion(+)

diff --git a/fs/smb/client/smb2ops.c b/fs/smb/client/smb2ops.c
index ef18cd30f66c..b87b70edd0be 100644
--- a/fs/smb/client/smb2ops.c
+++ b/fs/smb/client/smb2ops.c
@@ -3636,6 +3636,7 @@ static long smb3_insert_range(struct file *file, struct cifs_tcon *tcon,
 	rc = smb2_copychunk_range(xid, cfile, cfile, off, count, off + len);
 	if (rc < 0)
 		goto out_2;
+	cifsi->netfs.zero_point = new_eof;
 
 	rc = smb3_zero_data(file, tcon, off, len, xid);
 	if (rc < 0)
Re: [PATCH] cifs: Fix smb3_insert_range() to move the zero_point
Posted by Steve French 1 year, 8 months ago
Added the patch to the test branch and rerunning tests on it now

http://smb311-linux-testing.southcentralus.cloudapp.azure.com/#/builders/3/builds/122

On Wed, May 22, 2024 at 3:39 AM David Howells <dhowells@redhat.com> wrote:
>
> Fix smb3_insert_range() to move the zero_point over to the new EOF.
> Without this, generic/147 fails as reads of data beyond the old EOF point
> return zeroes.
>
> Fixes: 3ee1a1fc3981 ("cifs: Cut over to using netfslib")
> Signed-off-by: David Howells <dhowells@redhat.com>
> cc: Steve French <sfrench@samba.org>
> 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: netfs@lists.linux.dev
> ---
>  fs/smb/client/smb2ops.c |    1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/fs/smb/client/smb2ops.c b/fs/smb/client/smb2ops.c
> index ef18cd30f66c..b87b70edd0be 100644
> --- a/fs/smb/client/smb2ops.c
> +++ b/fs/smb/client/smb2ops.c
> @@ -3636,6 +3636,7 @@ static long smb3_insert_range(struct file *file, struct cifs_tcon *tcon,
>         rc = smb2_copychunk_range(xid, cfile, cfile, off, count, off + len);
>         if (rc < 0)
>                 goto out_2;
> +       cifsi->netfs.zero_point = new_eof;
>
>         rc = smb3_zero_data(file, tcon, off, len, xid);
>         if (rc < 0)
>
>


-- 
Thanks,

Steve