Re: async read patchset test results

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

 



2011/10/19 Pavel Shilovsky <piastryyy@xxxxxxxxx>:
> 2011/10/19 Steve French <smfrench@xxxxxxxxx>:
>> If the session could continue after an incorrect checksum (ie retry
>> the operation
>> that failed due to the network error/corruption)
>> then there would be significant advantage in not taking the session down.
>> In practice would that request time out and get killed and retried?
>
> As cifs_check_receive doesn't return any error if checksum doesn't
> match the original, readpages continues the read-ahead process and
> nothing else happens (I mean the request isn't time out, get killed
> and retried).
>
> So, if we don't kill the session in this case, we can simply return
> -EAGAIN and let the calling routine retry the operation itself.
> Thoughts?

I tried this patch and it works good to me:

diff --git a/fs/cifs/transport.c b/fs/cifs/transport.c
index 33a3fbf..b54a631 100644
--- a/fs/cifs/transport.c
+++ b/fs/cifs/transport.c
@@ -508,8 +508,10 @@ cifs_check_receive(struct mid_q_entry *mid,
struct TCP_Server_Info *server,
                iov.iov_len = len;
                /* FIXME: add code to kill session */
                if (cifs_verify_signature(&iov, 1, server,
-                                         mid->sequence_number + 1) != 0)
+                                         mid->sequence_number + 1) != 0) {
                        cERROR(1, "Unexpected SMB signature");
+                       return -EAGAIN;
+               }
        }

        /* BB special case reconnect tid and uid here? */


I also applied almost the same patch (that includes the fix for
cifs_readv_callback) to Jeff's async read patchset , fixed the
problems with the error handling in cifs_readv_complete (I posted them
to the list) and got the same good result.

-- 
Best regards,
Pavel Shilovsky.
--
To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux