01 Apr, 2009

8 commits

  • Added some documentation in exofs.txt, as well as a BUGS file.

    For further reading, operation instructions, example scripts
    and up to date infomation and code please see:
    http://open-osd.org

    Signed-off-by: Boaz Harrosh

    Boaz Harrosh
     
  • implement export_operations and set in superblock.
    It is now posible to export exofs via nfs

    Signed-off-by: Boaz Harrosh

    Boaz Harrosh
     
  • This patch ties all operation vectors into a file system superblock
    and registers the exofs file_system_type at module's load time.

    * The file system control block (AKA on-disk superblock) resides in
    an object with a special ID (defined in common.h).
    Information included in the file system control block is used to
    fill the in-memory superblock structure at mount time. This object
    is created before the file system is used by mkexofs.c It contains
    information such as:
    - The file system's magic number
    - The next inode number to be allocated

    Signed-off-by: Boaz Harrosh

    Boaz Harrosh
     
  • implementation of directory and inode operations.

    * A directory is treated as a file, and essentially contains a list
    of pairs for files that are found in that
    directory. The object IDs correspond to the files' inode numbers
    and are allocated using a 64bit incrementing global counter.
    * Each file's control block (AKA on-disk inode) is stored in its
    object's attributes. This applies to both regular files and other
    types (directories, device files, symlinks, etc.).

    Signed-off-by: Boaz Harrosh

    Boaz Harrosh
     
  • OK Now we start to read and write from osd-objects. We try to
    collect at most contiguous pages as possible in a single write/read.
    The first page index is the object's offset.

    TODO:
    In 64-bit a single bio can carry at most 128 pages.
    Add support of chaining multiple bios

    Signed-off-by: Boaz Harrosh

    Boaz Harrosh
     
  • Generic implementation of symlink ops.

    Signed-off-by: Boaz Harrosh

    Boaz Harrosh
     
  • implementation of the file_operations and inode_operations for
    regular data files.

    Most file_operations are generic vfs implementations except:
    - exofs_truncate will truncate the OSD object as well
    - Generic file_fsync is not good for none_bd devices so open code it
    - The default for .flush in Linux is todo nothing so call exofs_fsync
    on the file.

    Signed-off-by: Boaz Harrosh

    Boaz Harrosh
     
  • This patch includes osd infrastructure that will be used later by
    the file system.

    Also the declarations of constants, on disk structures,
    and prototypes.

    And the Kbuild+Kconfig files needed to build the exofs module.

    Signed-off-by: Boaz Harrosh

    Boaz Harrosh