diff options
-rw-r--r-- | mm/backing-dev.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/mm/backing-dev.c b/mm/backing-dev.c index cb7c5e323814..b65fe93ad612 100644 --- a/mm/backing-dev.c +++ b/mm/backing-dev.c | |||
@@ -475,8 +475,17 @@ void bdi_destroy(struct backing_dev_info *bdi) | |||
475 | int i; | 475 | int i; |
476 | 476 | ||
477 | /* | 477 | /* |
478 | * Splice our entries to the default_backing_dev_info, if this | 478 | * Splice our entries to the default_backing_dev_info. This |
479 | * bdi disappears | 479 | * condition shouldn't happen. @wb must be empty at this point and |
480 | * dirty inodes on it might cause other issues. This workaround is | ||
481 | * added by ce5f8e779519 ("writeback: splice dirty inode entries to | ||
482 | * default bdi on bdi_destroy()") without root-causing the issue. | ||
483 | * | ||
484 | * http://lkml.kernel.org/g/1253038617-30204-11-git-send-email-jens.axboe@oracle.com | ||
485 | * http://thread.gmane.org/gmane.linux.file-systems/35341/focus=35350 | ||
486 | * | ||
487 | * We should probably add WARN_ON() to find out whether it still | ||
488 | * happens and track it down if so. | ||
480 | */ | 489 | */ |
481 | if (bdi_has_dirty_io(bdi)) { | 490 | if (bdi_has_dirty_io(bdi)) { |
482 | struct bdi_writeback *dst = &default_backing_dev_info.wb; | 491 | struct bdi_writeback *dst = &default_backing_dev_info.wb; |