[PATCH 0/5][V2] FS: userspace notification of errors

From: Denis Karpov
Date: Thu Jun 11 2009 - 08:27:30 EST



Hello,

here's a set of patches that implement user space notification of file
system run-rim errors through sysfs/uevents. The first approach was
discussed here:
http://marc.info/?t=124404183600003&r=1&w=2
Reasons behind the feature are summarized here:
http://marc.info/?l=linux-kernel&m=124409549418926&w=2

Hand-held device with large (large => lengthy/expensive fsck process)
FAT volumes on MMC that are error prone, especially in the scenario
when these volumes are exported through g_file_storage as USB mass
storage to be used externally; instead of just remounting read-only
on 'run-rime' error, notify user space and expect it to do something
about fixing the FS.

Implementation summary:

- add sysfs support for FAT fs: per-mounted-volume kobject and sysfs
hierarchy under /sys/fs/fat. Same approach as used by ext4 and fuse.
(PATCH 1)

- introduce kobject attribute 'fs_fault' (/sys/fs/fat/<volume>/fs_fault);
the attribute is '0' on (re)mount and set to '1' upon an error. (PATCH 3)
FAT error reporting facilities had to be re-factored (PATCH 2) in
order to simplify sending error notifications. (PATCH 2)

- provide mechanism to optionally notify userspace of FAT fs volume
kobject's attribute changes with uevents. An uevent to be sent is of
tyme KOBJ_CHANGE, with environment variable 'NAME=value', where NAME
is capitalized name of the attribute.
(PATCH 4)

- add mount option 'notify', which will eneble sending uevents on a FAT
kobjects attributes; use it for 'fs_faults' attribute. (PATCH 5)

There were several objections to uevent usage, mostly with argument that
uevents are meant to be used within a device context. One might argue that
uevents are tied to kobjects that are not only used to represent devices,
but also for other things (/sys/modules, /sys/fs, /sys/firmware).

What is wrong with using uevents otherwise? What would be another way to
asyncronousely notify userspace of things happening in kernel, other
than though pseudo filesystem files (procfs, sysfs)?

Denis
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/