diff options
Diffstat (limited to 'fs/backing-file.c')
| -rw-r--r-- | fs/backing-file.c | 5 | 
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/backing-file.c b/fs/backing-file.c index afb557446c27..8860dac58c37 100644 --- a/fs/backing-file.c +++ b/fs/backing-file.c @@ -303,13 +303,16 @@ ssize_t backing_file_splice_write(struct pipe_inode_info *pipe,  	if (WARN_ON_ONCE(!(out->f_mode & FMODE_BACKING)))  		return -EIO; +	if (!out->f_op->splice_write) +		return -EINVAL; +  	ret = file_remove_privs(ctx->user_file);  	if (ret)  		return ret;  	old_cred = override_creds(ctx->cred);  	file_start_write(out); -	ret = iter_file_splice_write(pipe, out, ppos, len, flags); +	ret = out->f_op->splice_write(pipe, out, ppos, len, flags);  	file_end_write(out);  	revert_creds(old_cred);  | 
