Can you explain why the device error counters should be in a filesystem[...]
instead of generic block layer code?
On Fri, May 25, 2012 at 04:06:07PM +0200, Stefan Behrens wrote:
--The goal is to detect when drives start to get an increased error rate,
when drives should be replaced soon. Therefore statistic counters are
added that count IO errors (read, write and flush). Additionally, the
software detected errors like checksum errors and corrupted blocks are
counted.
An ioctl interface is added to get the device statistic counters.
A second ioctl is added to atomically get and reset these counters.
The device statistics are written into the device tree with each
transaction commit. Only modified statistics are written.
When a filesystem is mounted, the device statistics for each involved
device are read from the device tree and used to initialize the
counters.
A patch for the btrfs-progs world will also be sent.
Stefan Behrens (3):
Btrfs: add device counters for detected IO and checksum errors
Btrfs: add ioctl to get and reset the device stats
Btrfs: read device stats on mount, write modified ones during commit
fs/btrfs/ctree.h | 38 ++++++
fs/btrfs/disk-io.c | 20 +++-
fs/btrfs/extent_io.c | 18 ++-
fs/btrfs/ioctl.c | 26 +++++
fs/btrfs/ioctl.h | 33 ++++++
fs/btrfs/print-tree.c | 3 +
fs/btrfs/scrub.c | 65 ++++++++---
fs/btrfs/transaction.c | 4 +
fs/btrfs/volumes.c | 304 +++++++++++++++++++++++++++++++++++++++++++++++-
fs/btrfs/volumes.h | 52 +++++++++
10 files changed, 539 insertions(+), 24 deletions(-)
--
1.7.10.2