diff --git a/fs/buffer.c b/fs/buffer.c index cc8452f60251..e65a754176c1 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -2883,6 +2883,8 @@ drop_buffers(struct folio *folio, struct buffer_head **buffers_to_free) struct buffer_head *head = folio_buffers(folio); struct buffer_head *bh; + if (!head) + goto out; bh = head; do { if (buffer_busy(bh)) @@ -2897,6 +2899,7 @@ drop_buffers(struct folio *folio, struct buffer_head **buffers_to_free) __remove_assoc_queue(bh); bh = next; } while (bh != head); +out: *buffers_to_free = head; folio_detach_private(folio); return true;