mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 11:41:38 -04:00
cifs: unbreak TCP session reuse
adfeb3e0("cifs: Make echo interval tunable") added a comparison of vol->echo_interval to server->echo_interval as a criterium to match_server(), but: (1) A default value is set for server->echo_interval but not for vol->echo_interval, meaning these can never match if the echo_interval option is not specified. (2) vol->echo_interval is in seconds but server->echo_interval is in jiffies, meaning these can never match even if the echo_interval option is specified. This broke TCP session reuse since match_server() can never return 1. Fix it. Fixes:adfeb3e0("cifs: Make echo interval tunable") Signed-off-by: Rabin Vincent <[email protected]> Acked-by: Sachin Prabhu <[email protected]> CC: Stable <[email protected]> Signed-off-by: Steve French <[email protected]>
This commit is contained in:
parent
8d9535b6ef
commit
b782fcc1cb
1 changed files with 3 additions and 1 deletions
|
|
@ -1228,6 +1228,8 @@ cifs_parse_mount_options(const char *mountdata, const char *devname,
|
|||
vol->ops = &smb1_operations;
|
||||
vol->vals = &smb1_values;
|
||||
|
||||
vol->echo_interval = SMB_ECHO_INTERVAL_DEFAULT;
|
||||
|
||||
if (!mountdata)
|
||||
goto cifs_parse_mount_err;
|
||||
|
||||
|
|
@ -2049,7 +2051,7 @@ static int match_server(struct TCP_Server_Info *server, struct smb_vol *vol)
|
|||
if (!match_security(server, vol))
|
||||
return 0;
|
||||
|
||||
if (server->echo_interval != vol->echo_interval)
|
||||
if (server->echo_interval != vol->echo_interval * HZ)
|
||||
return 0;
|
||||
|
||||
return 1;
|
||||
|
|
|
|||
Loading…
Reference in a new issue