alistair23-linux/fs/exofs
Boaz Harrosh d9c740d225 exofs: Define on-disk per-inode optional layout attribute
* Layouts describe the way a file is spread on multiple devices.
  The layout information is stored in the objects attribute introduced
  in this patch.

* There can be multiple generating function for the layout.
  Currently defined:
    - No attribute present - use below moving-window on global
      device table, all devices.
      (This is the only one currently used in exofs)
    - an obj_id generated moving window - the obj_id is a randomizing
      factor in the otherwise global map layout.
    - An explicit layout stored, including a data_map and a device
      index list.
    - More might be defined in future ...

* There are two attributes defined of the same structure:
  A-data-files-layout - This layout is used by data-files. If present
                        at a directory, all files of that directory will
                        be created with this layout.
  A-meta-data-layout - This layout is used by a directory and other
                       meta-data information. Also inherited at creation
                       of subdirectories.

* At creation time inodes are created with the layout specified above.
  A usermode utility may change the creation layout on a give directory
  or file. Which in the case of directories, will also apply to newly
  created files/subdirectories, children of that directory.
  In the simple unaltered case of a newly created exofs, no layout
  attributes are present, and all layouts adhere to the layout specified
  at the device-table.

* In case of a future file system loaded in an old exofs-driver.
  At iget(), the generating_function is inspected and if not supported
  will return an IO error to the application and the inode will not
  be loaded. So not to damage any data.
  Note: After this patch we do not yet support any type of layout
        only the RAID0 patch that enables striping at the super-block
        level will add support for RAID0 layouts above. This way we
        are past and future compatible and fully bisectable.

* Access to the device table is done by an accessor since
  it will change according to above information.

Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
2010-02-28 03:35:28 -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: Define on-disk per-inode optional layout attribute 2010-02-28 03:35:28 -08:00
file.c exofs: Avoid using file_fsync() 2009-06-21 17:53:47 +03:00
inode.c exofs: Define on-disk per-inode optional layout attribute 2010-02-28 03:35:28 -08:00
ios.c exofs: Define on-disk per-inode optional layout attribute 2010-02-28 03:35:28 -08:00
Kbuild exofs: move osd.c to ios.c 2009-12-10 09:59:21 +02:00
Kconfig
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: Move layout related members to a layout structure 2010-02-28 03:35:27 -08:00
symlink.c exofs: Remove IBM copyrights 2009-06-21 17:53:47 +03:00