Thread (14 messages) 14 messages, 5 authors, 2016-05-04

Re: [PATCH v2 5/5] dax: handle media errors in dax_do_io

From: "Verma, Vishal L" <vishal.l.verma@intel.com>
Date: 2016-05-02 23:17:21
Also in: linux-fsdevel, linux-mm, linux-xfs, lkml

On Tue, 2016-05-03 at 09:04 +1000, Dave Chinner wrote:
On Mon, May 02, 2016 at 11:18:36AM -0400, Jeff Moyer wrote:
quoted
Dave Chinner [off-list ref] writes:
quoted
On Mon, Apr 25, 2016 at 11:53:13PM +0000, Verma, Vishal L wrote:
quoted
On Tue, 2016-04-26 at 09:25 +1000, Dave Chinner wrote:
You're assuming that only the DAX aware application accesses it's
files.  users, backup programs, data replicators, fileystem
re-organisers (e.g.  defragmenters) etc all may access the files
and
they may throw errors. What then?
I'm not sure how this is any different from regular storage.  If an
application gets EIO, it's up to the app to decide what to do with
that.
Sure - they'll fail. But the question I'm asking is that if the
application that owns the data is supposed to do error recovery,
what happens when a 3rd party application hits an error? If that
consumes the error, the the app that owns the data won't ever get a
chance to correct the error.

This is a minefield - a 3rd party app that swallows and clears DAX
based IO errors is a data corruption vector. can yo imagine if
*grep* did this? The model that is being promoted here effectively
allows this sort of behaviour - I don't really think we
should be architecting an error recovery strategy that has the
capability to go this wrong....
Just to address this bit - No. Any number of backup/3rd party
application can hit the error and _fail_ but surely they won't try to
_write_ the bad location? Only a write to the bad sector will clear it
in this model - and until such time, all reads will just keep erroring
out. This works for DAX/mmap based reads/writes too - mmap-stores
won't/can't clear errors - you have to go through the block path, and in
the altest version of my patch set, that has to be explicitly through
O_DIRECT.��칻
�&ޱ��jg���
�+a�{.n�+����{��h����ܭ�f���h��/i�(�h�j+z)ߢ�ˊ{�0�
zm����	b��f����:'�隊V����j)m��'�K�rJ+�隊Y/i�(��
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help