diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c index 92a5b8283528..965bd3f109cc 100644 --- a/fs/fs-writeback.c +++ b/fs/fs-writeback.c @@ -2078,6 +2078,7 @@ static long wb_writeback(struct bdi_writeback *wb, bool queued = false; blk_start_plug(&plug); + down_write(&work->sb->s_umount); for (;;) { /* * Stop writeback when nr_pages has been consumed @@ -2162,6 +2163,7 @@ static long wb_writeback(struct bdi_writeback *wb, /* This function drops i_lock... */ inode_sleep_on_writeback(inode); } + up_write(&work->sb->s_umount); blk_finish_plug(&plug); return nr_pages - work->nr_pages;