• James McMechan's avatar
    [PATCH] tmpfs oops fix · 6f781f0c
    James McMechan authored
    The problem was that the cursor was in the list being walked, and when
    the pointer pointed to the cursor the list_del/list_add_tail pair would
    oops trying to find the entry pointed to by the prev pointer of the
    deleted cursor element.
    
    The solution I found was to move the list_del earlier, before the
    beginning of the list walk. since it is not used during the list walk and
    should not count in the list enumeration it can be deleted, then the
    list pointer cannot point to it so it can be added safely with the
    list_add_tail without oopsing, and everything works as expected.
    
    I am unable to oops this version with any of my test programs. 
    
    Patch acked by Al Viro.
    6f781f0c
libfs.c 10.5 KB