Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1426469AbdD1RVC (ORCPT ); Fri, 28 Apr 2017 13:21:02 -0400 Received: from zeniv.linux.org.uk ([195.92.253.2]:59580 "EHLO ZenIV.linux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1426427AbdD1RU1 (ORCPT ); Fri, 28 Apr 2017 13:20:27 -0400 Date: Fri, 28 Apr 2017 18:20:25 +0100 From: Al Viro To: Dave Jones , Linux Kernel Subject: Re: iov_iter_pipe warning. Message-ID: <20170428172024.GL29622@ZenIV.linux.org.uk> References: <20170412025842.GO29622@ZenIV.linux.org.uk> <20170412143519.4hh36l3egozgdrll@codemonkey.org.uk> <20170412152600.GP29622@ZenIV.linux.org.uk> <20170412162709.bn5qfk4seues3yos@codemonkey.org.uk> <20170412170723.GQ29622@ZenIV.linux.org.uk> <20170412190318.srkkdytf2ebrjzrg@codemonkey.org.uk> <20170421175430.GT29622@ZenIV.linux.org.uk> <20170428152955.mafs3f22srmm34aw@codemonkey.org.uk> <20170428164313.GK29622@ZenIV.linux.org.uk> <20170428165024.ofyl2atpjwohekqa@codemonkey.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170428165024.ofyl2atpjwohekqa@codemonkey.org.uk> User-Agent: Mutt/1.7.1 (2016-10-04) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 817 Lines: 23 On Fri, Apr 28, 2017 at 12:50:24PM -0400, Dave Jones wrote: > currently running v4.11-rc8-75-gf83246089ca0 > > sunrpc bit is for the other unrelated problem I'm chasing. > > note also, I saw the backtrace without the fs/splice.c changes. Interesting... Could you add this and see if that triggers? diff --git a/fs/splice.c b/fs/splice.c index 540c4a44756c..12a12d9c313f 100644 --- a/fs/splice.c +++ b/fs/splice.c @@ -306,6 +306,9 @@ ssize_t generic_file_splice_read(struct file *in, loff_t *ppos, kiocb.ki_pos = *ppos; ret = call_read_iter(in, &kiocb, &to); if (ret > 0) { + if (WARN_ON(iov_iter_count(&to) != len - ret)) + printk(KERN_ERR "ops %p: was %zd, left %zd, returned %d\n", + in->f_op, len, iov_iter_count(&to), ret); *ppos = kiocb.ki_pos; file_accessed(in); } else if (ret < 0) {