Message ID | 20090914090533.GU14984@kernel.dk (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
diff --git a/mm/backing-dev.c b/mm/backing-dev.c index fd93566..27f82dc 100644 --- a/mm/backing-dev.c +++ b/mm/backing-dev.c @@ -668,7 +668,17 @@ void bdi_destroy(struct backing_dev_info *bdi) { int i; - WARN_ON(bdi_has_dirty_io(bdi)); + /* + * Splice our entries to the default_backing_dev_info, if this + * bdi disappears + */ + if (bdi_has_dirty_io(bdi)) { + struct bdi_writeback *dst = &default_backing_dev_info.wb; + + list_splice(&bdi->wb.b_dirty, &dst->b_dirty); + list_splice(&bdi->wb.b_io, &dst->b_io); + list_splice(&bdi->wb.b_more_io, &dst->b_more_io); + } bdi_unregister(bdi);