Re: linux-next: manual merge of the block tree with the net-next tree

From: Stephen Rothwell
Date: Mon Jun 26 2023 - 22:01:15 EST


Hi all,

On Tue, 13 Jun 2023 12:59:39 +1000 Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote:
>
> Today's linux-next merge of the block tree got a conflict in:
>
> fs/splice.c
>
> between commit:
>
> 2bfc66850952 ("splice, net: Add a splice_eof op to file-ops and socket-ops")
>
> from the net-next tree and commit:
>
> 6a3f30b8bdb2 ("splice: Make do_splice_to() generic and export it")
>
> from the block tree.
>
> I fixed it up (see below) and can carry the fix as necessary. This
> is now fixed as far as linux-next is concerned, but any non trivial
> conflicts should be mentioned to your upstream maintainer when your tree
> is submitted for merging. You may also want to consider cooperating
> with the maintainer of the conflicting tree to minimise any particularly
> complex conflicts.
>
> diff --cc fs/splice.c
> index 67ddaac1f5c5,2420ead610a7..000000000000
> --- a/fs/splice.c
> +++ b/fs/splice.c
> @@@ -969,23 -841,24 +937,35 @@@ static long do_splice_from(struct pipe_
> return out->f_op->splice_write(pipe, out, ppos, len, flags);
> }
>
> +/*
> + * Indicate to the caller that there was a premature EOF when reading from the
> + * source and the caller didn't indicate they would be sending more data after
> + * this.
> + */
> +static void do_splice_eof(struct splice_desc *sd)
> +{
> + if (sd->splice_eof)
> + sd->splice_eof(sd);
> +}
> +
> - /*
> - * Attempt to initiate a splice from a file to a pipe.
> + /**
> + * vfs_splice_read - Read data from a file and splice it into a pipe
> + * @in: File to splice from
> + * @ppos: Input file offset
> + * @pipe: Pipe to splice to
> + * @len: Number of bytes to splice
> + * @flags: Splice modifier flags (SPLICE_F_*)
> + *
> + * Splice the requested amount of data from the input file to the pipe. This
> + * is synchronous as the caller must hold the pipe lock across the entire
> + * operation.
> + *
> + * If successful, it returns the amount of data spliced, 0 if it hit the EOF or
> + * a hole and a negative error code otherwise.
> */
> - static long do_splice_to(struct file *in, loff_t *ppos,
> - struct pipe_inode_info *pipe, size_t len,
> - unsigned int flags)
> + long vfs_splice_read(struct file *in, loff_t *ppos,
> + struct pipe_inode_info *pipe, size_t len,
> + unsigned int flags)
> {
> unsigned int p_space;
> int ret;
> @@@ -1081,9 -959,9 +1070,9 @@@ ssize_t splice_direct_to_actor(struct f
> size_t read_len;
> loff_t pos = sd->pos, prev_pos = pos;
>
> - ret = do_splice_to(in, &pos, pipe, len, flags);
> + ret = vfs_splice_read(in, &pos, pipe, len, flags);
> if (unlikely(ret <= 0))
> - goto out_release;
> + goto read_failure;
>
> read_len = ret;
> sd->total_len = read_len;

This is now a conflict between the net-next tree and Linus' tree.

--
Cheers,
Stephen Rothwell

Attachment: pgpmhIcAhlf_i.pgp
Description: OpenPGP digital signature