|
@@ -502,8 +502,10 @@ ssize_t generic_file_splice_read(struct file *in, loff_t *ppos,
|
|
|
len = left;
|
|
|
|
|
|
ret = __generic_file_splice_read(in, ppos, pipe, len, flags);
|
|
|
- if (ret > 0)
|
|
|
+ if (ret > 0) {
|
|
|
*ppos += ret;
|
|
|
+ file_accessed(in);
|
|
|
+ }
|
|
|
|
|
|
return ret;
|
|
|
}
|
|
@@ -963,8 +965,10 @@ generic_file_splice_write(struct pipe_inode_info *pipe, struct file *out,
|
|
|
|
|
|
mutex_lock_nested(&inode->i_mutex, I_MUTEX_CHILD);
|
|
|
ret = file_remove_suid(out);
|
|
|
- if (!ret)
|
|
|
+ if (!ret) {
|
|
|
+ file_update_time(out);
|
|
|
ret = splice_from_pipe_feed(pipe, &sd, pipe_to_file);
|
|
|
+ }
|
|
|
mutex_unlock(&inode->i_mutex);
|
|
|
} while (ret > 0);
|
|
|
splice_from_pipe_end(pipe, &sd);
|