Re: [PATCH 06/11] cifs: Fix prepare_write to negotiate wsize if needed

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This patch is already merged into mainline.

On Mon, Jun 23, 2025 at 7:50 AM David Howells <dhowells@xxxxxxxxxx> wrote:
>
> Fix cifs_prepare_write() to negotiate the wsize if it is unset.
>
> Fixes: 69c3c023af25 ("cifs: Implement netfslib hooks")
> Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
> Reviewed-by: Paulo Alcantara <pc@xxxxxxxxxxxxx>
> cc: Steve French <sfrench@xxxxxxxxx>
> cc: netfs@xxxxxxxxxxxxxxx
> cc: linux-fsdevel@xxxxxxxxxxxxxxx
> cc: linux-cifs@xxxxxxxxxxxxxxx
> ---
>  fs/smb/client/file.c | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/fs/smb/client/file.c b/fs/smb/client/file.c
> index 9835672267d2..e9212da32f01 100644
> --- a/fs/smb/client/file.c
> +++ b/fs/smb/client/file.c
> @@ -52,6 +52,7 @@ static void cifs_prepare_write(struct netfs_io_subrequest *subreq)
>         struct netfs_io_stream *stream = &req->rreq.io_streams[subreq->stream_nr];
>         struct TCP_Server_Info *server;
>         struct cifsFileInfo *open_file = req->cfile;
> +       struct cifs_sb_info *cifs_sb = CIFS_SB(wdata->rreq->inode->i_sb);
>         size_t wsize = req->rreq.wsize;
>         int rc;
>
> @@ -63,6 +64,10 @@ static void cifs_prepare_write(struct netfs_io_subrequest *subreq)
>         server = cifs_pick_channel(tlink_tcon(open_file->tlink)->ses);
>         wdata->server = server;
>
> +       if (cifs_sb->ctx->wsize == 0)
> +               cifs_negotiate_wsize(server, cifs_sb->ctx,
> +                                    tlink_tcon(req->cfile->tlink));
> +
>  retry:
>         if (open_file->invalidHandle) {
>                 rc = cifs_reopen_file(open_file, false);
> @@ -160,10 +165,9 @@ static int cifs_prepare_read(struct netfs_io_subrequest *subreq)
>         server = cifs_pick_channel(tlink_tcon(req->cfile->tlink)->ses);
>         rdata->server = server;
>
> -       if (cifs_sb->ctx->rsize == 0) {
> +       if (cifs_sb->ctx->rsize == 0)
>                 cifs_negotiate_rsize(server, cifs_sb->ctx,
>                                      tlink_tcon(req->cfile->tlink));
> -       }
>
>         rc = server->ops->wait_mtu_credits(server, cifs_sb->ctx->rsize,
>                                            &size, &rdata->credits);
>
>


-- 
Thanks,

Steve





[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux