cifs: Replace the writedata replay bool with a netfs sreq flag
authorDavid Howells <dhowells@redhat.com>
Mon, 5 Feb 2024 09:08:57 +0000 (09:08 +0000)
committerDavid Howells <dhowells@redhat.com>
Wed, 1 May 2024 17:08:19 +0000 (18:08 +0100)
Replace the 'replay' bool in cifs_writedata (now cifs_io_subrequest) with a
flag in the netfs_io_subrequest flags.

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
cc: linux-fsdevel@vger.kernel.org
cc: linux-mm@kvack.org

fs/smb/client/file.c
fs/smb/client/smb2pdu.c

index 4d8cd0d82104c4cd0bac97f8c61e168ef7e25c3b..7f2ce68d2a2a264b79a912576b988904de68972e 100644 (file)
@@ -3325,7 +3325,7 @@ cifs_resend_wdata(struct cifs_io_subrequest *wdata, struct list_head *wdata_list
                        if (wdata->cfile->invalidHandle)
                                rc = -EAGAIN;
                        else {
-                               wdata->replay = true;
+                               set_bit(NETFS_SREQ_RETRYING, &wdata->subreq.flags);
 #ifdef CONFIG_CIFS_SMB_DIRECT
                                if (wdata->mr) {
                                        wdata->mr->need_invalidate = true;
index ca8ba6878f9fb03de9a1ea9236b77ebaf4ba96a1..b063f5e95f5dfe11829c7b170f37a952887fa8e0 100644 (file)
@@ -4832,7 +4832,7 @@ smb2_async_writev(struct cifs_io_subrequest *wdata)
        struct cifs_io_parms *io_parms = NULL;
        int credit_request;
 
-       if (!wdata->server || wdata->replay)
+       if (!wdata->server || test_bit(NETFS_SREQ_RETRYING, &wdata->subreq.flags))
                server = wdata->server = cifs_pick_channel(tcon->ses);
 
        /*
@@ -4917,7 +4917,7 @@ smb2_async_writev(struct cifs_io_subrequest *wdata)
        rqst.rq_nvec = 1;
        rqst.rq_iter = wdata->subreq.io_iter;
        rqst.rq_iter_size = iov_iter_count(&rqst.rq_iter);
-       if (wdata->replay)
+       if (test_bit(NETFS_SREQ_RETRYING, &wdata->subreq.flags))
                smb2_set_replay(server, &rqst);
 #ifdef CONFIG_CIFS_SMB_DIRECT
        if (wdata->mr)