From: Dave Chinner <david@fromorbit.com>
To: Theodore Ts'o <tytso@mit.edu>, "Luck, Tony" <tony.luck@intel.com>,
Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>,
"Kleen, Andi" <andi.kleen@intel.com>,
"Wu, Fengguang" <fengguang.wu@intel.com>,
Andrew Morton <akpm@linux-foundation.org>,
Jan Kara <jack@suse.cz>, Jun'ichi Nomura <j-nomura@ce.jp.nec.com>,
Akira Fujita <a-fujita@rs.jp.nec.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-mm@kvack.org" <linux-mm@kvack.org>,
"linux-ext4@vger.kernel.org" <linux-ext4@vger.kernel.org>
Subject: Re: [PATCH 2/3] ext4: introduce ext4_error_remove_page
Date: Mon, 29 Oct 2012 12:16:32 +1100 [thread overview]
Message-ID: <20121029011632.GN29378@dastard> (raw)
In-Reply-To: <20121027221626.GA9161@thunk.org>
On Sat, Oct 27, 2012 at 06:16:26PM -0400, Theodore Ts'o wrote:
> On Fri, Oct 26, 2012 at 10:24:23PM +0000, Luck, Tony wrote:
> > > Well, we could set a new attribute bit on the file which indicates
> > > that the file has been corrupted, and this could cause any attempts to
> > > open the file to return some error until the bit has been cleared.
> >
> > That sounds a lot better than renaming/moving the file.
>
> What I would recommend is adding a
>
> #define FS_CORRUPTED_FL 0x01000000 /* File is corrupted */
>
> ... and which could be accessed and cleared via the lsattr and chattr
> programs.
Except that there are filesystems that cannot implement such flags,
or require on-disk format changes to add more of those flags. This
is most definitely not a filesystem specific behaviour, so any sort
of VFS level per-file state needs to be kept in xattrs, not special
flags. Filesystems are welcome to optimise the storage of such
special xattrs (e.g. down to a single boolean flag in an inode), but
using a flag for something that dould, in fact, storage the exactly
offset and length of the corruption is far better than just storing
a "something is corrupted in this file" bit....
> > > Application programs could also get very confused when any attempt to
> > > open or read from a file suddenly returned some new error code (EIO,
> > > or should we designate a new errno code for this purpose, so there is
> > > a better indication of what the heck was going on?)
> >
> > EIO sounds wrong ... but it is perhaps the best of the existing codes. Adding
> > a new one is also challenging too.
>
> I think we really need a different error code from EIO; it's already
> horribly overloaded already, and if this is new behavior when the
> customers get confused and call up the distribution help desk, they
> won't thank us if we further overload EIO. This is abusing one of the
> System V stream errno's, but no one else is using it:
>
> #define EADV 68 /* Advertise error */
>
> I note that we've already added a new error code:
>
> #define EHWPOISON 133 /* Memory page has hardware error */
>
> ... although the glibc shipping with Debian testing hasn't been taught
> what it is, so strerror(EHWPOISON) returns "Unknown error 133". We
> could simply allow open(2) and stat(2) return this error, although I
> wonder if we're just better off defining a new error code.
If we are going to add special new "file corrupted" errors, we
should add EFSCORRUPTED (i.e. "filesystem corrupted") at the same
time....
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
WARNING: multiple messages have this Message-ID (diff)
From: Dave Chinner <david@fromorbit.com>
To: Theodore Ts'o <tytso@mit.edu>, "Luck, Tony" <tony.luck@intel.com>,
Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>,
"Kleen, Andi" <andi.kleen@intel.com>,
"Wu, Fengguang" <fengguang.wu@intel.com>,
Andrew Morton <akpm@linux-foundation.org>,
Jan Kara <jack@suse.cz>, Jun'ichi Nomura <j-nomura@ce.jp.nec.com>,
Akira Fujita <a-fujita@rs.jp.nec.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-mm@kvack.org" <linux-mm@kvack.org>,
"linux-ext4@vger.kernel.org" <linux-ext4@vger.kernel.org>
Subject: Re: [PATCH 2/3] ext4: introduce ext4_error_remove_page
Date: Mon, 29 Oct 2012 12:16:32 +1100 [thread overview]
Message-ID: <20121029011632.GN29378@dastard> (raw)
In-Reply-To: <20121027221626.GA9161@thunk.org>
On Sat, Oct 27, 2012 at 06:16:26PM -0400, Theodore Ts'o wrote:
> On Fri, Oct 26, 2012 at 10:24:23PM +0000, Luck, Tony wrote:
> > > Well, we could set a new attribute bit on the file which indicates
> > > that the file has been corrupted, and this could cause any attempts to
> > > open the file to return some error until the bit has been cleared.
> >
> > That sounds a lot better than renaming/moving the file.
>
> What I would recommend is adding a
>
> #define FS_CORRUPTED_FL 0x01000000 /* File is corrupted */
>
> ... and which could be accessed and cleared via the lsattr and chattr
> programs.
Except that there are filesystems that cannot implement such flags,
or require on-disk format changes to add more of those flags. This
is most definitely not a filesystem specific behaviour, so any sort
of VFS level per-file state needs to be kept in xattrs, not special
flags. Filesystems are welcome to optimise the storage of such
special xattrs (e.g. down to a single boolean flag in an inode), but
using a flag for something that dould, in fact, storage the exactly
offset and length of the corruption is far better than just storing
a "something is corrupted in this file" bit....
> > > Application programs could also get very confused when any attempt to
> > > open or read from a file suddenly returned some new error code (EIO,
> > > or should we designate a new errno code for this purpose, so there is
> > > a better indication of what the heck was going on?)
> >
> > EIO sounds wrong ... but it is perhaps the best of the existing codes. Adding
> > a new one is also challenging too.
>
> I think we really need a different error code from EIO; it's already
> horribly overloaded already, and if this is new behavior when the
> customers get confused and call up the distribution help desk, they
> won't thank us if we further overload EIO. This is abusing one of the
> System V stream errno's, but no one else is using it:
>
> #define EADV 68 /* Advertise error */
>
> I note that we've already added a new error code:
>
> #define EHWPOISON 133 /* Memory page has hardware error */
>
> ... although the glibc shipping with Debian testing hasn't been taught
> what it is, so strerror(EHWPOISON) returns "Unknown error 133". We
> could simply allow open(2) and stat(2) return this error, although I
> wonder if we're just better off defining a new error code.
If we are going to add special new "file corrupted" errors, we
should add EFSCORRUPTED (i.e. "filesystem corrupted") at the same
time....
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2012-10-29 1:16 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-25 15:12 [PATCH 0/3] HWPOISON: improve error_remove_page() Naoya Horiguchi
2012-10-25 15:12 ` Naoya Horiguchi
2012-10-25 15:12 ` [PATCH 1/3] mm: print out information of file affected by memory error Naoya Horiguchi
2012-10-25 15:12 ` Naoya Horiguchi
2012-10-25 19:32 ` Jan Kara
2012-10-25 19:32 ` Jan Kara
2012-10-25 20:34 ` Naoya Horiguchi
2012-10-25 20:34 ` Naoya Horiguchi
2012-10-25 15:12 ` [PATCH 2/3] ext4: introduce ext4_error_remove_page Naoya Horiguchi
2012-10-25 15:12 ` Naoya Horiguchi
2012-10-25 19:39 ` Jan Kara
2012-10-25 19:39 ` Jan Kara
2012-10-26 6:12 ` Theodore Ts'o
2012-10-26 6:12 ` Theodore Ts'o
2012-10-26 16:55 ` Luck, Tony
2012-10-26 16:55 ` Luck, Tony
2012-10-26 18:46 ` Theodore Ts'o
2012-10-26 18:46 ` Theodore Ts'o
2012-10-26 22:24 ` Luck, Tony
2012-10-26 22:24 ` Luck, Tony
2012-10-27 22:16 ` Theodore Ts'o
2012-10-27 22:16 ` Theodore Ts'o
2012-10-28 1:57 ` Naoya Horiguchi
2012-10-28 1:57 ` Naoya Horiguchi
2012-10-28 1:57 ` Naoya Horiguchi
2012-10-29 1:16 ` Dave Chinner [this message]
2012-10-29 1:16 ` Dave Chinner
2012-10-29 2:40 ` Theodore Ts'o
2012-10-29 2:40 ` Theodore Ts'o
2012-10-29 10:37 ` Andi Kleen
2012-10-29 10:37 ` Andi Kleen
2012-10-29 10:37 ` Andi Kleen
2012-10-29 11:05 ` Jun'ichi Nomura
2012-10-29 11:05 ` Jun'ichi Nomura
2012-10-29 11:05 ` Jun'ichi Nomura
2012-10-29 18:24 ` Theodore Ts'o
2012-10-29 18:24 ` Theodore Ts'o
2012-10-29 18:55 ` Jan Kara
2012-10-29 18:55 ` Jan Kara
2012-10-29 19:07 ` Andi Kleen
2012-10-29 19:07 ` Andi Kleen
2012-10-29 19:07 ` Andi Kleen
2012-10-29 21:47 ` Naoya Horiguchi
2012-10-29 21:47 ` Naoya Horiguchi
2012-10-30 0:00 ` Jun'ichi Nomura
2012-10-30 0:00 ` Jun'ichi Nomura
2012-10-30 0:00 ` Jun'ichi Nomura
2012-10-29 18:11 ` Luck, Tony
2012-10-29 18:11 ` Luck, Tony
2012-10-31 0:21 ` Dave Chinner
2012-10-31 0:21 ` Dave Chinner
2012-10-26 18:50 ` Naoya Horiguchi
2012-10-26 18:50 ` Naoya Horiguchi
2012-10-26 18:50 ` Naoya Horiguchi
2012-10-25 15:12 ` [PATCH 3/3] ext3: introduce ext3_error_remove_page Naoya Horiguchi
2012-10-25 15:12 ` Naoya Horiguchi
2012-10-25 19:45 ` Jan Kara
2012-10-25 19:45 ` Jan Kara
2012-10-25 20:35 ` Naoya Horiguchi
2012-10-25 20:35 ` Naoya Horiguchi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20121029011632.GN29378@dastard \
--to=david@fromorbit.com \
--cc=a-fujita@rs.jp.nec.com \
--cc=akpm@linux-foundation.org \
--cc=andi.kleen@intel.com \
--cc=fengguang.wu@intel.com \
--cc=j-nomura@ce.jp.nec.com \
--cc=jack@suse.cz \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=n-horiguchi@ah.jp.nec.com \
--cc=tony.luck@intel.com \
--cc=tytso@mit.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.