From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Kleikamp Subject: Re: [PATCH V6 00/30] loop: Issue O_DIRECT aio using bio_vec Date: Tue, 29 Jan 2013 21:22:21 -0600 Message-ID: <510891ED.8090404@oracle.com> References: <1359476623-10544-1-git-send-email-dave.kleikamp@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: Alexander Viro , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, Zach Brown , "Maxim V. Patlasov" To: Jeff Moyer Return-path: In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org On 01/29/2013 12:42 PM, Jeff Moyer wrote: > Dave Kleikamp writes: > >> Al, >> I'd like to push this patchset to linux-next. Would you like to pull it >> into your vfs tree, would you rather I submitted it separately, or do >> you have any issues with it before including it? > > I'm still chasing one regression in this patchset. If you use the ext4 > driver for ext2 file systems, and you run the libaio test harness, then > you will be able to successfully write beyond the maximum file size in a > file (see test case 8). I found the problem. iov_iter_shorten() wasn't setting i->count to the new value. This fixes it. I'll fix the patchset tomorrow. Thanks, Shaggy diff --git a/fs/iov-iter.c b/fs/iov-iter.c index ac2d96e..ade8c11 100644 --- a/fs/iov-iter.c +++ b/fs/iov-iter.c @@ -370,6 +370,7 @@ static int ii_iovec_shorten(struct iov_iter *i, size_t count) { struct iovec *iov = (struct iovec *)i->data; i->nr_segs = iov_shorten(iov, i->nr_segs, count); + i->count = min(i->count, count); return 0; }