diff --git a/fs/splice.c b/fs/splice.c
index 740e6b9faf7ab2e10e0ebfc68725d0d05e0b547f..41900496d3bb1aedac051f6f81b39eb1e5cb52d9 100644
--- a/fs/splice.c
+++ b/fs/splice.c
@@ -1282,7 +1282,8 @@ static int direct_splice_actor(struct pipe_inode_info *pipe,
 {
 	struct file *file = sd->u.file;
 
-	return do_splice_from(pipe, file, &sd->pos, sd->total_len, sd->flags);
+	return do_splice_from(pipe, file, &file->f_pos, sd->total_len,
+			      sd->flags);
 }
 
 /**