• Brian Foster's avatar
    bcachefs: drop unnecessary journal stuck check from space calculation · 030e9f92
    Brian Foster authored
    The journal stucking check in bch2_journal_space_available() is
    particularly aggressive and can lead to premature shutdown in some
    rare cases. This is difficult to reproduce, but also comes along
    with a fatal error and so is worthwhile to be cautious.
    
    For example, we've seen instances where the journal is under heavy
    reservation pressure, the journal allocation path transitions into
    the final available journal bucket, the journal write path
    immediately consumes that bucket and calls into
    bch2_journal_space_available(), which then in turn flags the journal
    as stuck because there is no available space and shuts down the
    filesystem instead of submitting the journal write (that would have
    otherwise succeeded).
    
    To avoid this problem, simplify the journal stuck checking by just
    relying on the higher level logic in the journal reservation path.
    This produces more useful debug output and is a more reliable
    indicator that things have bogged down.
    Signed-off-by: default avatarBrian Foster <bfoster@redhat.com>
    Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
    030e9f92
journal_reclaim.c 20.4 KB