From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from bombadil.infradead.org ([65.50.211.133]:57737 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752457AbdIXNJh (ORCPT ); Sun, 24 Sep 2017 09:09:37 -0400 Date: Sun, 24 Sep 2017 06:09:37 -0700 From: Christoph Hellwig To: Matthew Wilcox Cc: Goldwyn Rodrigues , linux-fsdevel@vger.kernel.org, Goldwyn Rodrigues Subject: Re: [PATCH] Return bytes transfered for partial direct I/O Message-ID: <20170924130937.GA13397@infradead.org> References: <20170923231014.12477-1-rgoldwyn@suse.de> <20170924083203.GA15727@bombadil.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170924083203.GA15727@bombadil.infradead.org> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: On Sun, Sep 24, 2017 at 01:32:03AM -0700, Matthew Wilcox wrote: > On Sat, Sep 23, 2017 at 06:10:14PM -0500, Goldwyn Rodrigues wrote: > > In case direct I/O encounters an error midway, it returns the error. > > Instead it should be returning the number of bytes transferred so far. > > > > Test case (with ENOSPC): > > 1. Create an almost full filesystem > > 2. Create a file, say /mnt/lastfile, until the filesystem is full. > > 3. Direct write() with count > sizeof /mnt/lastfile. > > > > Result: write() returns -ENOSPC. However, file content has data written > > in step 3. > > Can you add an xfstest to be sure we don't regress this in the future? And please test and if needed fix (I think it will need fixing) the code in fs/iomap.c and fs/block_dev.c as well. I remember intentionally copying the old behavior over there, assuming we had a good reasom for it.