Commit 78e727e5 authored by Shyam Prasad N's avatar Shyam Prasad N Committed by Steve French

cifs: update iface_last_update on each query-and-update

iface_last_update was an unused field when it was introduced.
Later, when we had periodic update of server interface list,
this field was used regularly to decide when to update next.

However, with the new logic of updating the interfaces, it
becomes crucial that this field be updated whenever
parse_server_interfaces runs successfully.

This change updates this field when either the server does
not support query of interfaces; so that we do not query
the interfaces repeatedly. It also updates the field when
the function reaches the end.

Fixes: aa45dadd ("cifs: change iface_list from array to sorted linked list")
Signed-off-by: default avatarShyam Prasad N <sprasad@microsoft.com>
Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
parent f591062b
...@@ -615,6 +615,7 @@ parse_server_interfaces(struct network_interface_info_ioctl_rsp *buf, ...@@ -615,6 +615,7 @@ parse_server_interfaces(struct network_interface_info_ioctl_rsp *buf,
"Empty network interface list returned by server %s\n", "Empty network interface list returned by server %s\n",
ses->server->hostname); ses->server->hostname);
rc = -EOPNOTSUPP; rc = -EOPNOTSUPP;
ses->iface_last_update = jiffies;
goto out; goto out;
} }
...@@ -712,7 +713,6 @@ parse_server_interfaces(struct network_interface_info_ioctl_rsp *buf, ...@@ -712,7 +713,6 @@ parse_server_interfaces(struct network_interface_info_ioctl_rsp *buf,
ses->iface_count++; ses->iface_count++;
spin_unlock(&ses->iface_lock); spin_unlock(&ses->iface_lock);
ses->iface_last_update = jiffies;
next_iface: next_iface:
nb_iface++; nb_iface++;
next = le32_to_cpu(p->Next); next = le32_to_cpu(p->Next);
...@@ -734,6 +734,8 @@ parse_server_interfaces(struct network_interface_info_ioctl_rsp *buf, ...@@ -734,6 +734,8 @@ parse_server_interfaces(struct network_interface_info_ioctl_rsp *buf,
if ((bytes_left > 8) || p->Next) if ((bytes_left > 8) || p->Next)
cifs_dbg(VFS, "%s: incomplete interface info\n", __func__); cifs_dbg(VFS, "%s: incomplete interface info\n", __func__);
ses->iface_last_update = jiffies;
out: out:
/* /*
* Go through the list again and put the inactive entries * Go through the list again and put the inactive entries
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment