[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20160921141539.GA17898@infradead.org>
Date: Wed, 21 Sep 2016 07:15:39 -0700
From: Christoph Hellwig <hch@...radead.org>
To: Jonathan Nicklin <jnicklin@...ckbridge.com>
Cc: linux-kernel@...r.kernel.org, linux-fsdevel@...r.kernel.org
Subject: Re: BUG: aio/direct-io data corruption in 4.7
Hi Jonathan,
please keep linux-fsdevel on the Cc list for something like, and if
you already track down a commit the author of that commit.
> Description: "fs: simplify the generic_write_sync prototype"
> Committed: Apr 7, 2016
> Hash: e259221763a40403d5bb232209998e8c45804ab8
> Affects: 4.7-rc1 - master
>
> I have confirmed a fix for the AIO/Direct-IO failure condition but
> have not reviewed the rest of the changes associated with that commit.
> If you would like a small patch for direct-io.c, let me know.
On travel right now, but I suspect you want something like this fix?
diff --git a/fs/direct-io.c b/fs/direct-io.c
index 7c3ce73..891f71f 100644
--- a/fs/direct-io.c
+++ b/fs/direct-io.c
@@ -276,7 +276,7 @@ static ssize_t dio_complete(struct dio *dio, ssize_t ret, bool is_async)
dio->iocb->ki_pos += transferred;
if (dio->op == REQ_OP_WRITE)
- ret = generic_write_sync(dio->iocb, transferred);
+ ret = generic_write_sync(dio->iocb, ret);
dio->iocb->ki_complete(dio->iocb, ret, 0);
}
Powered by blists - more mailing lists