diff options
Diffstat (limited to 'fs/inode.c')
-rw-r--r-- | fs/inode.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/fs/inode.c b/fs/inode.c index 02c0fa5e16a4..f4e145016611 100644 --- a/fs/inode.c +++ b/fs/inode.c | |||
@@ -530,7 +530,13 @@ static void evict(struct inode *inode) | |||
530 | 530 | ||
531 | inode_sb_list_del(inode); | 531 | inode_sb_list_del(inode); |
532 | 532 | ||
533 | inode_sync_wait(inode); | 533 | /* |
534 | * Wait for flusher thread to be done with the inode so that filesystem | ||
535 | * does not start destroying it while writeback is still running. Since | ||
536 | * the inode has I_FREEING set, flusher thread won't start new work on | ||
537 | * the inode. We just have to wait for running writeback to finish. | ||
538 | */ | ||
539 | inode_wait_for_writeback(inode); | ||
534 | 540 | ||
535 | if (op->evict_inode) { | 541 | if (op->evict_inode) { |
536 | op->evict_inode(inode); | 542 | op->evict_inode(inode); |