• Shyam Prasad N's avatar
    cifs: do not depend on release_iface for maintaining iface_list · 09eeb072
    Shyam Prasad N authored
    parse_server_interfaces should be in complete charge of maintaining
    the iface_list linked list. Today, iface entries are removed
    from the list only when the last refcount is dropped.
    i.e. in release_iface. However, this can result in undercounting
    of refcount if the server stops advertising interfaces (which
    Azure SMB server does).
    
    This change puts parse_server_interfaces in full charge of
    maintaining the iface_list. So if an empty list is returned
    by the server, the entries in the list will immediately be
    removed. This way, a following call to the same function will
    not find entries in the list.
    
    Fixes: aa45dadd ("cifs: change iface_list from array to sorted linked list")
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarShyam Prasad N <sprasad@microsoft.com>
    Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
    09eeb072
smb2ops.c 161 KB