linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCHSET 0/8 version 4] exofs for kernel 2.6.30
@ 2009-03-18 17:45 Boaz Harrosh
  2009-03-18 17:57 ` [PATCH 1/8] exofs: Kbuild, Headers and osd utils Boaz Harrosh
                   ` (12 more replies)
  0 siblings, 13 replies; 46+ messages in thread
From: Boaz Harrosh @ 2009-03-18 17:45 UTC (permalink / raw)
  To: Avishay Traeger, Jeff Garzik, Andrew Morton, linux-fsdevel,
	open-osd
  Cc: James Bottomley, linux-kernel, FUJITA Tomonori

What's new since last iteration:

* I completely re-wrote the [PATCH 4/8] exofs: address_space_operations
  in which we actually write/read to/from osd-storage. The difference is
  that now we try to accumulate as many contiguous pages as possible and
  send them as one large request. As opposed to writing each page at a
  time, in the previous patchset.

* [PATCH 5/8] exofs: dir_inode and directory operations received lots
  of love thanks to Evgeniy Polyakov's grate comments.

exofs is a file system that uses an OSD device as it's back store.

OSD is a new T10 command set that views storage devices not as a large/flat
array of sectors but as a container of objects, each having a length, quota,
time attributes and more. Each object is addressed by a 64bit ID, and is
contained in a 64bit ID partition. Each object has associated attributes
attached to it, which are integral part of the object and provide metadata about
the object. The standard defines some common obligatory attributes, but user
attributes can be added as needed.

Here is the list of patches
[PATCH 1/8] exofs: Kbuild, Headers and osd utils
[PATCH 2/8] exofs: file and file_inode operations
[PATCH 3/8] exofs: symlink_inode and fast_symlink_inode operations
[PATCH 4/8] exofs: address_space_operations
[PATCH 5/8] exofs: dir_inode and directory operations
[PATCH 6/8] exofs: super_operations and file_system_type
[PATCH 7/8] exofs: Documentation
[PATCH 8/8] fs: Add exofs to Kernel build

This patchset is also available on:
  git-clone git://git.open-osd.org/linux-open-osd.git linux-next
or on the web at:
  http://git.open-osd.org/gitweb.cgi?p=linux-open-osd.git;a=shortlog;h=refs/heads/linux-next

(Above tree is based on Linus v2.6.29-rc8-212-g8144737)

If anyone wants to actually run this code and test it
then please start reading at:
    http://open-osd.org
You will need to checkout the out-of-tree git (below) for the user-mode utilities.
Also the exofs.txt file in patch 7/8 should help

If you want to review the user-mode library and supporting plumbings,
  git-clone git://git.open-osd.org/open-osd.git
or on the web at:
  http://git.open-osd.org/gitweb.cgi?p=open-osd.git;a=summary

Boaz


^ permalink raw reply	[flat|nested] 46+ messages in thread
* [PATCHSET 0/8 version 3] exofs
@ 2009-02-09 13:07 Boaz Harrosh
  2009-02-09 13:24 ` [PATCH 5/8] exofs: dir_inode and directory operations Boaz Harrosh
  0 siblings, 1 reply; 46+ messages in thread
From: Boaz Harrosh @ 2009-02-09 13:07 UTC (permalink / raw)
  To: Avishay Traeger, Jeff Garzik, Andrew Morton, linux-fsdevel,
	open-osd
  Cc: James Bottomley, linux-kernel

exofs is a file system that uses an OSD device as it's back store.

OSD is a new T10 command set that views storage devices not as a large/flat
array of sectors but as a container of objects, each having a length, quota,
time attributes and more. Each object is addressed by a 64bit ID, and is
contained in a 64bit ID partition. Each object has associated attributes
attached to it, which are integral part of the object and provide metadata about
the object. The standard defines some common obligatory attributes, but user
attributes can be added as needed.

What's new since last iteration:
Lots and lots of changes the actual diff is big.

- mkexofs is removed from Kernel code
    Open-osd has a user-mode library now. It is the exact same API (and source) as
    the Kernel library. Commands are issued through (patched) bsg.ko. If anyone
    is interested see URLs below, patches will be sent to the open-osd-mailing-list.
    Horay.

- Incorporate changes made to ext2 since exofs was first derived.
    Thanks to Andrew Morton, I've referred to the git-log of fs/ext2 and
    have incorporated all relevant changes into exofs. Lots of bug fixes
    and short comings where fixed this way.

- Made everything LE safe.
    All on disk types are now using proper Endian types, and properly converted
    back and forth. exofs is an LE filesystem just as ext2.

- Completely got rid of IBM API
    Previous version was using IBM API for osd commands and those API where implemented
    over open-osd in osd.c. open-osd API is now used directly and osd.c is reduced to
    a few exofs internal helpers.

- A sleep forever Bug fix, related to async object creation.

- Cleaned up some usage of types, naming conventions, code organization.
    Lots of cleanups, and reorganization.

And the regular information for first comers

Our intention with exofs is to make it exportable by Linux
pNFS server, as reference implementation for pNFS-object-layout
server. A pNFS-objects client implementation is also in the works
(See all about pNFS in Linux at:
http://wiki.linux-nfs.org/wiki/index.php/PNFS_prototype_design)

exofs was originally developed by Avishay Traeger <avishay@gmail.com>
from IBM. A very old version of it is hosted on sourceforge as the osdfs
project. The Original code was based on ext2 of the 2.6.10 Kernel and ran
over the old IBM's osd-initiator Linux driver.
Since then it was picked by us, open-osd, and was both forward ported to
current Kernel, as well as converted to run over open-osd Kernel Library.

I have mechanically divided the code in parts, each introducing a
group of vfs function vectors, all tied at the end into a full filesystem.
Each patch can be compiled but it will only run at the very end.
This was done for the hope of easier reviewing.

Here is the list of patches
[PATCH 1/8] exofs: Kbuild, Headers and osd utils
[PATCH 2/8] exofs: file and file_inode operations
[PATCH 3/8] exofs: symlink_inode and fast_symlink_inode operations
[PATCH 4/8] exofs: address_space_operations
[PATCH 5/8] exofs: dir_inode and directory operations
[PATCH 6/8] exofs: super_operations and file_system_type
[PATCH 7/8] exofs: Documentation
[PATCH 8/8] fs: Add exofs to Kernel build

This patchset is also available on:
  git-clone git://git.open-osd.org/linux-open-osd.git linux-next
or on the web at:
  http://git.open-osd.org/gitweb.cgi?p=linux-open-osd.git;a=shortlog;h=refs/heads/linux-next

(Above tree is based on Linus 2.6.29-rc4)

If anyone wants to actually run this code and test it
then please start reading at:
    http://open-osd.org
You will need to checkout the out-of-tree git (below) for the user-mode utilities.
Also the exofs.txt file in patch 7/8 should help

If you want to review the user-mode library and supporting plumbings,
patches will be sent to this mailing-list:
http://www.open-osd.org/bin/view/Main/MailingList

And code is on this git-tree:
  git-clone git://git.open-osd.org/open-osd.git
or on the web at:
  http://git.open-osd.org/gitweb.cgi?p=open-osd.git;a=summary

Thank you all for the very useful comments, suggestions, and banging me on the
head about the user-mode API.

Boaz

^ permalink raw reply	[flat|nested] 46+ messages in thread

end of thread, other threads:[~2009-04-02 12:51 UTC | newest]

Thread overview: 46+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-03-18 17:45 [PATCHSET 0/8 version 4] exofs for kernel 2.6.30 Boaz Harrosh
2009-03-18 17:57 ` [PATCH 1/8] exofs: Kbuild, Headers and osd utils Boaz Harrosh
2009-03-18 17:58 ` [PATCH 2/8] exofs: file and file_inode operations Boaz Harrosh
2009-03-31  8:04   ` Andrew Morton
2009-03-31  8:58     ` Boaz Harrosh
2009-03-18 18:01 ` [PATCH 3/8] exofs: symlink_inode and fast_symlink_inode operations Boaz Harrosh
2009-03-18 18:04 ` [PATCH 4/8] exofs: address_space_operations Boaz Harrosh
2009-03-22 10:22   ` Marcin Slusarz
2009-03-22 10:41     ` Boaz Harrosh
2009-03-22 13:58   ` [PATCH 4/8 ver5] " Boaz Harrosh
2009-03-31  8:04     ` Andrew Morton
2009-03-31  9:04       ` Boaz Harrosh
2009-03-31 10:15         ` Andrew Morton
2009-03-31 10:27           ` Boaz Harrosh
2009-03-18 18:08 ` [PATCH 5/8] exofs: dir_inode and directory operations Boaz Harrosh
2009-03-31  8:04   ` Andrew Morton
2009-03-31 10:22     ` Boaz Harrosh
2009-03-18 18:09 ` [PATCH 6/8] exofs: super_operations and file_system_type Boaz Harrosh
2009-03-31  8:04   ` Andrew Morton
2009-03-31 10:29     ` Boaz Harrosh
2009-03-31 18:52     ` [osd-dev] " Benny Halevy
2009-04-01  8:05       ` Boaz Harrosh
2009-04-01  9:06         ` Benny Halevy
2009-03-18 18:10 ` [PATCH 7/8] exofs: Documentation Boaz Harrosh
2009-03-21 13:26   ` Evgeniy Polyakov
2009-03-22  8:42     ` Boaz Harrosh
2009-03-18 18:11 ` [PATCH 8/8] fs: Add exofs to Kernel build Boaz Harrosh
2009-03-23 13:06 ` [PATCHSET 0/8 version 4] exofs for kernel 2.6.30 Boaz Harrosh
2009-03-24  9:07 ` Boaz Harrosh
2009-03-30 21:22 ` Andrew Morton
2009-03-31  3:01   ` Stephen Rothwell
2009-03-31  7:13     ` Evgeniy Polyakov
2009-03-31  7:20   ` Boaz Harrosh
2009-03-31  7:41     ` Boaz Harrosh
2009-03-31  8:04       ` Andrew Morton
     [not found] ` <1237399056-29171-1-git-send-email-bharrosh@panasas.com>
2009-03-31  8:04   ` [PATCH 1/8] exofs: Kbuild, Headers and osd utils Andrew Morton
2009-03-31  8:57     ` Boaz Harrosh
2009-04-01  9:23 ` [PATCHSET 0/8 version 4] exofs for kernel 2.6.30 Jeff Garzik
2009-04-01 11:21   ` Boaz Harrosh
2009-04-02  0:39     ` Jeff Garzik
2009-04-02 12:49       ` Boaz Harrosh
  -- strict thread matches above, loose matches on Subject: below --
2009-02-09 13:07 [PATCHSET 0/8 version 3] exofs Boaz Harrosh
2009-02-09 13:24 ` [PATCH 5/8] exofs: dir_inode and directory operations Boaz Harrosh
2009-02-15 17:08   ` Evgeniy Polyakov
2009-02-16  9:31     ` Boaz Harrosh
2009-03-15 18:10       ` Boaz Harrosh
2009-03-15 18:37         ` Evgeniy Polyakov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).