• David Howells's avatar
    FS-Cache: The object-available state can't rely on the cookie to be available · 6897e3df
    David Howells authored
    The object-available state in the object processing state machine (as
    processed by fscache_object_available()) can't rely on the cookie to be
    available because the FSCACHE_COOKIE_CREATING bit may have been cleared by
    fscache_obtained_object() prior to the object being put into the
    FSCACHE_OBJECT_AVAILABLE state.
    
    Clearing the FSCACHE_COOKIE_CREATING bit on a cookie permits
    __fscache_relinquish_cookie() to proceed and detach the cookie from the
    object.
    
    To deal with this, we don't dereference object->cookie in
    fscache_object_available() if the object has already been detached.
    
    In addition, a couple of assertions are added into fscache_drop_object() to
    make sure the object is unbound from the cookie before it gets there.
    Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
    6897e3df
object.c 25 KB