diff --git a/fs/splice.c b/fs/splice.c index de2ede048473..07c5c77abc45 100644 --- a/fs/splice.c +++ b/fs/splice.c @@ -73,7 +73,7 @@ static int page_cache_pipe_buf_steal(struct pipe_inode_info *pipe, * If we succeeded in removing the mapping, set LRU flag * and return good. */ - if (remove_mapping(mapping, page)) { + if (remove_mapping(mapping, page) && page_count(page) == 1) { buf->flags |= PIPE_BUF_FLAG_LRU; return 0; }