lkml.org 
[lkml]   [2021]   [Nov]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.15 157/917] cifs: set a minimum of 120s for next dns resolution
    Date
    From: Paulo Alcantara <pc@cjr.nz>

    commit 4ac0536f8874a903a72bddc57eb88db774261e3a upstream.

    With commit 506c1da44fee ("cifs: use the expiry output of dns_query to
    schedule next resolution") and after triggering the first reconnect,
    the next async dns resolution of tcp server's hostname would be
    scheduled based on dns_resolver's key expiry default, which happens to
    default to 5s on most systems that use key.dns_resolver for upcall.

    As per key.dns_resolver.conf(5):

    default_ttl=<number>
    The number of seconds to set as the expiration on a cached
    record. This will be overridden if the program manages to re-
    trieve TTL information along with the addresses (if, for exam-
    ple, it accesses the DNS directly). The default is 5 seconds.
    The value must be in the range 1 to INT_MAX.

    Make the next async dns resolution no shorter than 120s as we do not
    want to be upcalling too often.

    Cc: stable@vger.kernel.org
    Fixes: 506c1da44fee ("cifs: use the expiry output of dns_query to schedule next resolution")
    Signed-off-by: Paulo Alcantara (SUSE) <pc@cjr.nz>
    Reviewed-by: Shyam Prasad N <sprasad@microsoft.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    fs/cifs/cifsglob.h | 3 ++-
    fs/cifs/connect.c | 2 +-
    2 files changed, 3 insertions(+), 2 deletions(-)

    --- a/fs/cifs/cifsglob.h
    +++ b/fs/cifs/cifsglob.h
    @@ -74,7 +74,8 @@
    #define SMB_ECHO_INTERVAL_MAX 600
    #define SMB_ECHO_INTERVAL_DEFAULT 60

    -/* dns resolution interval in seconds */
    +/* dns resolution intervals in seconds */
    +#define SMB_DNS_RESOLVE_INTERVAL_MIN 120
    #define SMB_DNS_RESOLVE_INTERVAL_DEFAULT 600

    /* maximum number of PDUs in one compound */
    --- a/fs/cifs/connect.c
    +++ b/fs/cifs/connect.c
    @@ -115,7 +115,7 @@ static int reconn_set_ipaddr_from_hostna
    * To make sure we don't use the cached entry, retry 1s
    * after expiry.
    */
    - ttl = (expiry - now + 1);
    + ttl = max_t(unsigned long, expiry - now, SMB_DNS_RESOLVE_INTERVAL_MIN) + 1;
    }
    rc = !rc ? -1 : 0;


    \
     
     \ /
      Last update: 2021-11-16 00:40    [W:2.959 / U:0.644 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site