[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20180412215756.GX2801@thunk.org>
Date: Thu, 12 Apr 2018 17:57:56 -0400
From: "Theodore Y. Ts'o" <tytso@....edu>
To: Andres Freund <andres@...razel.de>
Cc: Jeff Layton <jlayton@...hat.com>,
Matthew Wilcox <willy@...radead.org>,
Andreas Dilger <adilger@...ger.ca>,
20180410184356.GD3563@...nk.org,
Ext4 Developers List <linux-ext4@...r.kernel.org>,
Linux FS Devel <linux-fsdevel@...r.kernel.org>,
"Joshua D. Drake" <jd@...mandprompt.com>
Subject: Re: fsync() errors is unsafe and risks data loss
On Thu, Apr 12, 2018 at 02:53:19PM -0700, Andres Freund wrote:
> > >
> > > Isn't beautiful to script, but it's also not absolutely terrible.
>
> ext4 seems to have something roughly like that
> (/sys/fs/ext4/$dev/errors_count), and by my reading it already seems to
> be incremented from the necessary places.
This is only for file system inconsistencies noticed by the kernel.
We don't bump that count for data block I/O errors.
The same idea could be used on a block device level. It would be
pretty simple to maintain a counter for I/O errors, and when the last
error was detected on a particular device. You could evne break out
and track read errors and write errors eparately if that would be
useful.
If you don't care what block was bad, but just that _some_ I/O error
had happened, a counter is definitely the simplest approach, and less
hair to implemnet and use than something like a netlink channel or
scraping dmesg....
- Ted
Powered by blists - more mailing lists