--- a/fs/fuse/dev.c
+++ b/fs/fuse/dev.c
-@@ -903,6 +903,11 @@ static int fuse_try_move_page(struct fus
- if (fuse_check_page(newpage) != 0)
- goto out_fallback_unlock;
+@@ -922,6 +922,11 @@ static int fuse_try_move_page(struct fus
+ return err;
+ }
+ page_cache_get(newpage);
+
+ lru_cache_add_file(newpage);
+
/*
- * This is a new and locked page, it shouldn't be mapped or
- * have any special flags on it
+ * Release while we have extra ref on stolen page. Otherwise
+ * anon_pipe_buf_release() might think the page can be reused.
@@ -929,11 +934,6 @@ static int fuse_try_move_page(struct fus
buf->ops->release(cs->pipe, buf);
buf->ops = NULL;