сб, 2 февр. 2019 г. в 03:33, Greg KH gregkh@linuxfoundation.org:
On Wed, Jan 30, 2019 at 04:07:30PM -0800, Pavel Shilovsky wrote:
Commit 28eb24ff75c5 ("cifs: Always resolve hostname before reconnecting").
In case a hostname resolves to a different IP address (e.g. long running mounts), make sure to resolve it every time prior to calling generic_ip_connect() in reconnect.
This patch needs user space changes of cifs.upcall that set a timeout value for the "dns_resolver" key.
Wait, you are requiring userspace to upgrade tools to support this? And you think that will happen to all systems running older kernels?
This really feels like a new feature being added, what bug is this fixing that requires it to be backported to all of the stable kernel trees?
Let's me describe what is going to happen without upgrade of the userspace tools. The 1st reconnect will cause proper resolving of DNS name and storing this name into the cache. All subsequent reconnects will use the value stored in the cache and do not attempt to resolve this DNS name. That means the fix will help partially but doesn't break anything.
Once the userspace tools are upgraded, the cached DNS name will expire in 10 min, so every reconnect routine happening after that will use new IP. So, Linux distros will fully benefit from the patch once they upgrade the userspace tools but they do not need to synchronize updates of the kernel and the tools.
The diff has been generated against the newest kernel but I checked that it cherry-picks to at least 4.4.y (and probably older ones).
-- Best regards, Pavel Shilovsky