diff --git a/mm/filemap.c b/mm/filemap.c index b62e47e646f090ab87d8abebe3dcc7a0505a50d9..c56c4196215230bd3932245393691c7913d90650 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -438,7 +438,8 @@ int __filemap_fdatawrite_range(struct address_space *mapping, loff_t start, .range_end = end, }; - if (!mapping_cap_writeback_dirty(mapping)) + if (!mapping_cap_writeback_dirty(mapping) || + !mapping_tagged(mapping, PAGECACHE_TAG_DIRTY)) return 0; wbc_attach_fdatawrite_inode(&wbc, mapping->host);