• Shirish Pargaonkar's avatar
    cifs: fix oops while traversing open file list (try #4) · 2c0c2a08
    Shirish Pargaonkar authored
    While traversing the linked list of open file handles, if the identfied
    file handle is invalid, a reopen is attempted and if it fails, we
    resume traversing where we stopped and cifs can oops while accessing
    invalid next element, for list might have changed.
    
    So mark the invalid file handle and attempt reopen if no
    valid file handle is found in rest of the list.
    If reopen fails, move the invalid file handle to the end of the list
    and start traversing the list again from the begining.
    Repeat this four times before giving up and returning an error if
    file reopen keeps failing.
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: default avatarShirish Pargaonkar <shirishpargaonkar@gmail.com>
    Reviewed-by: default avatarJeff Layton <jlayton@redhat.com>
    Signed-off-by: default avatarSteve French <sfrench@us.ibm.com>
    2c0c2a08
file.c 86.7 KB