On Sat, Feb 02, 2019 at 02:30:41PM -0600, Steve French wrote:
On Sat, Feb 2, 2019 at 12:17 PM Pavel Shilovsky piastryyy@gmail.com wrote:
сб, 2 февр. 2019 г. в 10:13, Pavel Shilovsky piastryyy@gmail.com:
сб, 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).
Adding Steve to comment on that.
-- Best regards, Pavel Shilovsky
Given the seriousness of the problem it fixes (hang on reconnect when server IP address changes) and that it could reduce possibility of data loss, this seems like it is reasonable to include in stable for kernels where it merges cleanly (which as Pavel noted may even include kernels older than 4.4).
Ok, thanks for the information, now queued up.
greg k-h