From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zheng Liu Subject: Re: [BUG] ext2/3/4: dio reads stale data when we do some append dio writes Date: Tue, 19 Nov 2013 20:18:43 +0800 Message-ID: <20131119121843.GA5339@gmail.com> References: <20131119095302.GA4534@gmail.com> <20131119102235.GA5010@infradead.org> <20131119104508.GA4630@gmail.com> <20131119110147.GA3323@infradead.org> <20131119111947.GA4782@gmail.com> <20131119111826.GA20485@infradead.org> <20131119115122.GC4782@gmail.com> <20131119120929.GO11434@dastard> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Cc: Christoph Hellwig , linux-fsdevel@vger.kernel.org, linux-ext4@vger.kernel.org, xfs@oss.sgi.com To: Dave Chinner Return-path: Content-Disposition: inline In-Reply-To: <20131119120929.GO11434@dastard> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: xfs-bounces@oss.sgi.com Sender: xfs-bounces@oss.sgi.com List-Id: linux-fsdevel.vger.kernel.org On Tue, Nov 19, 2013 at 11:09:29PM +1100, Dave Chinner wrote: > On Tue, Nov 19, 2013 at 07:51:22PM +0800, Zheng Liu wrote: > > On Tue, Nov 19, 2013 at 03:18:26AM -0800, Christoph Hellwig wrote: > > > On Tue, Nov 19, 2013 at 07:19:47PM +0800, Zheng Liu wrote: > > > > Yes, I know that XFS has a shared/exclusive lock. I guess that is why > > > > it can pass the test. But another question is why xfs fails when we do > > > > some append dio writes with doing buffered read. > > > > > > Can you provide a test case for that issue? > > > > Simple. Reader just need to open this file without O_DIRECT flag. I > > paste the full code snippet below. Please take care of this line: > > readfd = open(argv[1], /*O_DIRECT|*/O_RDONLY, S_IRWXU); > > > > The result of this program on my own sand box looks like below: > > encounter an error: offset 0 > .... > > if (ret >= 0) { > > for (j = 0; j < ret; j++) { > > if (rbuf[i] != 'a') { > > fprintf(stderr, "encounter an error: offset %ld\n", > > i); > > goto err; > > Should be checking rbuf[j], perhaps? Oops, it's my fault. Yes. it should check rbuf[j]. Thanks, - Zheng _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs