diff --git a/fs/splice.c b/fs/splice.c index b450acdff397..26f5f7ecee5c 100644 --- a/fs/splice.c +++ b/fs/splice.c @@ -445,7 +445,7 @@ static int pipe_to_file(struct pipe_inode_info *info, struct pipe_buffer *buf, ret = -ENOMEM; page = find_or_create_page(mapping, index, gfp_mask); if (!page) - goto out; + goto out_nomem; /* * If the page is uptodate, it is also locked. If it isn't @@ -508,6 +508,7 @@ static int pipe_to_file(struct pipe_inode_info *info, struct pipe_buffer *buf, page_cache_release(page); unlock_page(page); } +out_nomem: buf->ops->unmap(info, buf); return ret; }