On Mon, Jan 20, 2020 at 11:49:46PM +0300, Pavel Begunkov wrote: > Indirect calls could be very expensive nowadays, so try to use direct calls > whenever possible. ... and independent of that your new version is much shorter and easier to read. But it could be improved a tiny little bit further: > if (out->f_op->splice_write) > - splice_write = out->f_op->splice_write; > + return out->f_op->splice_write(pipe, out, ppos, len, flags); > else > - splice_write = default_file_splice_write; > - > - return splice_write(pipe, out, ppos, len, flags); > + return default_file_splice_write(pipe, out, ppos, len, flags); No need for the else after an return. > if (in->f_op->splice_read) > - splice_read = in->f_op->splice_read; > + return in->f_op->splice_read(in, ppos, pipe, len, flags); > else > - splice_read = default_file_splice_read; > - > - return splice_read(in, ppos, pipe, len, flags); > + return default_file_splice_read(in, ppos, pipe, len, flags); Same here.