• Kent Overstreet's avatar
    bcachefs: Be more careful about JOURNAL_RES_GET_RESERVED · 2940295c
    Kent Overstreet authored
    JOURNAL_RES_GET_RESERVED should only be used for updatse that need to be
    done to free up space in the journal. In particular, when we're flushing
    keys from the key cache, if we're flushing them out of order we
    shouldn't be using it, since we're using up our remaining space in the
    journal without dropping a pin that will let us make forward progress.
    
    With this patch, BTREE_INSERT_JOURNAL_RECLAIM without
    BTREE_INSERT_JOURNAL_RESERVED may return -EAGAIN - we can't wait on
    journal reclaim if we're already in journal reclaim.
    
    This means we need to propagate these errors up to journal reclaim,
    indicating that flushing a journal pin should be retried in the future.
    
    This is prep work for a patch to change the way journal reclaim works,
    to split out flushing key cache keys because the btree key cache is too
    dirty from journal reclaim because we need space in the journal.
    Signed-off-by: default avatarKent Overstreet <kent.overstreet@gmail.com>
    Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
    2940295c
btree_key_cache.c 16.9 KB