linux_dsm_epyc7002/fs/exofs
Boaz Harrosh 96391e2bae exofs: Error recovery if object is missing from storage
If an object is referenced by a directory but does not
exist on a target, it is a very serious corruption that
means:
1. Either a power failure with very slim chance of it
  happening. Because the directory update is always submitted
  much after object creation, but if a directory is written
  to one device and the object creation to another it might
  theoretically happen.
2. It only ever happened to me while developing with BUGs
  causing file corruption. Crashes could also cause it but
  they are more like case 1.

In any way the object does not exist, so data is surely lost.
If there is a mix-up in the obj-id or data-map, then lost objects
can be salvaged by off-line fsck. The only recoverable information
is the directory name. By letting it appear as a regular empty file,
with date==0 (1970 Jan 1st) ownership to root, we enable recovery
of the only useful information. And also enable deletion or over-write.
I can see how this can hurt.

Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
2010-02-28 03:44:43 -08:00
..
BUGS exofs: Documentation 2009-03-31 19:44:38 +03:00
common.h exofs: Define on-disk per-inode optional layout attribute 2010-02-28 03:35:28 -08:00
dir.c exofs: Remove IBM copyrights 2009-06-21 17:53:47 +03:00
exofs.h exofs: convert io_state to use pages array instead of bio at input 2010-02-28 03:44:42 -08:00
file.c exofs: Avoid using file_fsync() 2009-06-21 17:53:47 +03:00
inode.c exofs: Error recovery if object is missing from storage 2010-02-28 03:44:43 -08:00
ios.c exofs: convert io_state to use pages array instead of bio at input 2010-02-28 03:44:42 -08:00
Kbuild exofs: move osd.c to ios.c 2009-12-10 09:59:21 +02:00
Kconfig exofs: Kbuild, Headers and osd utils 2009-03-31 19:44:20 +03:00
namei.c exofs: Remove IBM copyrights 2009-06-21 17:53:47 +03:00
pnfs.h exofs: fix pnfs_osd re-definitions in pre-pnfs trees 2010-01-05 09:14:32 +02:00
super.c exofs: RAID0 support 2010-02-28 03:43:08 -08:00
symlink.c exofs: Remove IBM copyrights 2009-06-21 17:53:47 +03:00