diff --git a/fs/fuse/file.c b/fs/fuse/file.c index 1cb303eba4d02ff759eb22fe2512df6d63f44544..e6fdd59a7906f3e3e565361eac8f2006728de19c 100644 --- a/fs/fuse/file.c +++ b/fs/fuse/file.c @@ -1701,11 +1701,14 @@ static bool fuse_writepage_in_flight(struct fuse_req *new_req, if (old_req->num_pages == 1 && (old_req->state == FUSE_REQ_INIT || old_req->state == FUSE_REQ_PENDING)) { + struct backing_dev_info *bdi = page->mapping->backing_dev_info; + copy_highpage(old_req->pages[0], page); spin_unlock(&fc->lock); - dec_bdi_stat(page->mapping->backing_dev_info, BDI_WRITEBACK); + dec_bdi_stat(bdi, BDI_WRITEBACK); dec_zone_page_state(page, NR_WRITEBACK_TEMP); + bdi_writeout_inc(bdi); fuse_writepage_free(fc, new_req); fuse_request_free(new_req); goto out;