bcachefs: (invalidate|release)_folio fixes
authorKent Overstreet <kent.overstreet@linux.dev>
Sun, 25 Dec 2022 03:45:11 +0000 (22:45 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:08:19 +0000 (17:08 -0400)
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/fs-io.c

index d865081d4a21bbdbd084236a1c0bbd54bf1c0cb4..c8f6104553aa57aef1c45ef9b58b4c3e01d3d58a 100644 (file)
@@ -736,9 +736,6 @@ out:
 
 void bch2_invalidate_folio(struct folio *folio, size_t offset, size_t length)
 {
-       EBUG_ON(!PageLocked(&folio->page));
-       EBUG_ON(folio_test_writeback(folio));
-
        if (offset || length < folio_size(folio))
                return;
 
@@ -751,7 +748,7 @@ bool bch2_release_folio(struct folio *folio, gfp_t gfp_mask)
        EBUG_ON(!PageLocked(&folio->page));
        EBUG_ON(folio_test_writeback(folio));
 
-       if (folio_test_dirty(folio))
+       if (folio_test_dirty(folio) || folio_test_writeback(folio))
                return false;
 
        bch2_clear_page_bits(&folio->page);