From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1161887AbcBRAkG (ORCPT ); Wed, 17 Feb 2016 19:40:06 -0500 Received: from ipmail06.adl6.internode.on.net ([150.101.137.145]:63993 "EHLO ipmail06.adl6.internode.on.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965363AbcBRAkE (ORCPT ); Wed, 17 Feb 2016 19:40:04 -0500 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2CNBwA5EsVWXJbY03ZegzpSbYJpo0QBAQEBAQEGi3GFSIQIIYVmAgIBAQKBTU0BAQEBAQEHREGEQgEBBCcTHCMQCAMYCRoLDwUlAwcaE4gZD7tdAQEBAQYBAQEBGAQYhTKFA4JXhhgFh1MDhwWIKYVTh32OfESOA4JkGRSBSCguAYg/AQEB Date: Thu, 18 Feb 2016 11:39:29 +1100 From: Dave Chinner To: kernel test robot Cc: Christoph Hellwig , lkp@01.org, LKML , Dave Chinner , linux-ext4@vger.kernel.org, tytso@mit.edu Subject: Re: [lkp] [direct] 187372a3b9: WARNING: CPU: 2 PID: 3999 at fs/ext4/inode.c:3315 ext4_direct_IO+0x56d/0x5b0() Message-ID: <20160218003929.GT14668@dastard> References: <87lh6l8p71.fsf@yhuang-dev.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <87lh6l8p71.fsf@yhuang-dev.intel.com> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Feb 16, 2016 at 08:38:10AM +0800, kernel test robot wrote: > FYI, we noticed the below changes on > > https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master > commit 187372a3b9faff68ed61c291d0135e6739e0dbdf ("direct-io: always call ->end_io if non-NULL") > > > run fstests generic/299 at 2016-02-16 06:10:03 > EXT4-fs (sda8): mounted filesystem with ordered data mode. Opts: acl,user_xattr > ------------[ cut here ]------------ > WARNING: CPU: 2 PID: 3999 at fs/ext4/inode.c:3315 ext4_direct_IO+0x56d/0x5b0() ..... > [] dump_stack+0x4b/0x69 > [] warn_slowpath_common+0x86/0xc0 > [] warn_slowpath_null+0x1a/0x20 > [] ext4_direct_IO+0x56d/0x5b0 > [] generic_file_direct_write+0xaa/0x170 > [] __generic_file_write_iter+0xc0/0x1f0 > [] ext4_file_write_iter+0x141/0x430 > [] aio_run_iocb+0x226/0x290 > [] do_io_submit+0x29d/0x530 > [] SyS_io_submit+0x10/0x20 > [] entry_SYSCALL_64_fastpath+0x12/0x71 3309 /* 3310 * When no IO was submitted ext4_end_io_dio() was not 3311 * called so we have to put iocb's reference. 3312 */ 3313 if (ret <= 0 && ret != -EIOCBQUEUED && iocb->private) { 3314 WARN_ON(iocb->private != io_end); 3315 >>>>>>>> WARN_ON(io_end->flag & EXT4_IO_END_UNWRITTEN); 3316 ext4_put_io_end(io_end); 3317 iocb->private = NULL; 3318 } Pre-existing ext4 issue. It assumes that unwritten extent conversion occurs even on IO submission error. i.e. when we avoid the stale data exposure bug that the bisect-blamed commit fixed, ext4 warns that it failed to expose stale data.... I'd just remove that warning, but I have no idea how that impacts on the rest of ext4's end IO handling. Christoph, Ted, the ball is in your court for this one. Cheers, Dave. -- Dave Chinner david@fromorbit.com