Browse Source

splice: remove detritus from generic_file_splice_read()

i_size check is a leftover from the horrors that used to play with
the page cache in that function.  With the switch to ->read_iter(),
it's neither needed nor correct - for gfs2 it ends up being buggy,
since i_size is not guaranteed to be correct until later (inside
->read_iter()).

Spotted-by: Abhi Das <adas@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Al Viro 8 years ago
parent
commit
e519e77747
1 changed files with 0 additions and 5 deletions
  1. 0 5
      fs/splice.c

+ 0 - 5
fs/splice.c

@@ -299,13 +299,8 @@ ssize_t generic_file_splice_read(struct file *in, loff_t *ppos,
 {
 {
 	struct iov_iter to;
 	struct iov_iter to;
 	struct kiocb kiocb;
 	struct kiocb kiocb;
-	loff_t isize;
 	int idx, ret;
 	int idx, ret;
 
 
-	isize = i_size_read(in->f_mapping->host);
-	if (unlikely(*ppos >= isize))
-		return 0;
-
 	iov_iter_pipe(&to, ITER_PIPE | READ, pipe, len);
 	iov_iter_pipe(&to, ITER_PIPE | READ, pipe, len);
 	idx = to.idx;
 	idx = to.idx;
 	init_sync_kiocb(&kiocb, in);
 	init_sync_kiocb(&kiocb, in);