Whamcloud - gitweb
Initial lustretop import
authorpschwan <pschwan>
Mon, 27 May 2002 16:48:11 +0000 (16:48 +0000)
committerpschwan <pschwan>
Mon, 27 May 2002 16:48:11 +0000 (16:48 +0000)
15 files changed:
lustre/BUGS [new file with mode: 0644]
lustre/BUILDING [new file with mode: 0644]
lustre/COPYING [new file with mode: 0644]
lustre/ChangeLog [new file with mode: 0644]
lustre/FDL [new file with mode: 0644]
lustre/Makefile.am [new file with mode: 0644]
lustre/README [new file with mode: 0644]
lustre/Rules [new file with mode: 0644]
lustre/archdep.m4 [new file with mode: 0644]
lustre/autogen.sh [new file with mode: 0644]
lustre/configure.in [new file with mode: 0644]
lustre/install-sh [new file with mode: 0755]
lustre/missing [new file with mode: 0755]
lustre/mkinstalldirs [new file with mode: 0755]
lustre/nodist [new file with mode: 0644]

diff --git a/lustre/BUGS b/lustre/BUGS
new file mode 100644 (file)
index 0000000..9cf6fa2
--- /dev/null
@@ -0,0 +1,15 @@
+include /dev/obd in the documentation
+
+
+attach: attaching ext2obd allows ext2 module to be unloaded.  Unload,
+then do cleanup, get Oops...
+
+syncing: invalid IOCTL
+
+create: more than one object
+
+preallocate: IOCTL
+
+statfs: 
+
+restoresnap: decrements directory count for ext2
diff --git a/lustre/BUILDING b/lustre/BUILDING
new file mode 100644 (file)
index 0000000..deaa5e8
--- /dev/null
@@ -0,0 +1,25 @@
+BUILDING LUSTRE
+---------------
+
+To build the lustre obd module, you must first build portals.  
+
+Portals is available from the same CVS repository of the lustre
+project module portals, see http://www.lustre.org
+
+To build:
+  sh autogen.sh
+  ./configure --enable-linuxdir=/usr/src/linux --enable-portalsdir=/usr/src/portals
+  make
+
+To play with Lustre Lite:
+  cd obd/tests
+  sh llmount.sh
+
+To clean up:
+  sh llmountcleanup.sh
+
+Feedback: 
+  lustre-devel@lists.sf.net
+  lustre-discuss@lists.sf.net
+
+- Peter -
\ No newline at end of file
diff --git a/lustre/COPYING b/lustre/COPYING
new file mode 100644 (file)
index 0000000..c69cfd8
--- /dev/null
@@ -0,0 +1,352 @@
+
+   NOTE! This copyright does *not* cover user programs that use kernel
+ services by normal system calls - this is merely considered normal use
+ of the kernel, and does *not* fall under the heading of "derived work".
+ Also note that the GPL below is copyrighted by the Free Software
+ Foundation, but the instance of code that it refers to (the Linux
+ kernel) is copyrighted by me and others who actually wrote it.
+
+                       Linus Torvalds
+
+----------------------------------------
+
+                   GNU GENERAL PUBLIC LICENSE
+                      Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                           Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+\f
+                   GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+\f
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+\f
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+\f
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                           NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                    END OF TERMS AND CONDITIONS
+\f
+           How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) 19yy  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) 19yy name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/lustre/ChangeLog b/lustre/ChangeLog
new file mode 100644 (file)
index 0000000..51558f5
--- /dev/null
@@ -0,0 +1,597 @@
+2001-06-29 18:15 PDT rzahir
+
+       * obdfs/flushd.c: conditionalized number of C_DEBUG messages.
+       * include/linux/obd_class.h: added obd_devicename member to 
+         struct obd_device (name is either ptr to dentry or uuid).
+       * ext2obd/ext2_obd.c: setup() converts dentry into rdev number.
+         class/class_obd.c: setup() converts name into obd_device dentry
+         class/obdcontrol: setup() passes /dev/obd name into ioctl
+         (used to be rdev number and if invalid rdev number was passed
+          old ext2_obd.c would crash kernel when trying to read superblock).
+       * class/obdcontrol: added "status, procsys, script, insmod, rmmod,
+         lsmod, shell and close" commands for obdcontrol. This allows
+         easier scripting from within obdcontrol. Introduced ability to
+         maintain multiple open obd devices from a single obdcontrol
+         session.  Device command toggles device context. Obdcontrol
+         maintains multiple open file handles. "script <file>" command is
+         useful for "sourcing" scripts without leaving obdcontrol.
+         shell <command> allows any shell command to be executed from
+         within obdcontrol.
+       * class/proc_lustre.c: added support for /proc/lustre/obd/<n>/status.
+         These are read-only /proc entries that track /dev/obd<n> 
+         internal state. 
+        * obdtrace/* & include/linux/obd_class.h: obd_trace a logical obd
+         module useful for tracing and performance debug of the Lustre
+         obd protocol stack. obdtrace module creates
+         /proc/lustre/obd/<n>/stats file. Reading this /proc file shows
+         per OBD performance statistics.  Any write to this /proc file
+         resets the counters for this OBD. 
+       * scripts/obdtrace_demo.scr: Example of obdtrace that
+         takes advantage of new obdcontrol functionality.
+        * doc/obdtrace_demo.txt: shows obdtrace capabilities.
+
+       
+2000-03-06 12:33 adilger
+
+       * obdfs/ext2_obd: added punch/truncate methods
+
+2000-01-26 01:40 adilger
+
+       * obdfs/flushd.c: removed iput() from dequeue routine, since we no
+           longer remove the inodes from the list in this routine, rather
+           waiting to do it in flush_reqs, which also does a iput()
+
+2000-01-25 12:55 adilger
+
+       * obdfs/super.c: add call to flush pages when unmounting filesystem
+       * obdfs/flushd.c: pass "check_time" parameter to flush routines
+       * obdfs/namei.c: fixed rename call to getpage to use offset, not index
+       * snap/*: tested snapshots with new vector I/O, async writes - OK
+       * tests/snaprun.sh: small script to step through testing of some
+           snapshot features
+
+2000-01-24 18:55 braam
+
+       * obdfs/rw.c: fixed obdfs_getpage() to use page index, not offset
+       * obdfs/rw.c, flushd.c: added superblock lock for inode/page lists,
+           added new iget()/iput() on all inodes in page cache to prevent
+           them from being flushed from memory while waiting for write.
+
+2000-01-22 02:55 adilger
+
+       * flush daemon testing/debugging - inode list still needs a lock
+       * snapshot compiles with vector I/O now - untested
+
+2000-01-20 18:05 adilger
+
+       * add dirty inode list to superblock
+
+2000-01-20 11:50 adilger
+
+       * ext2obd/ext2obd.c: fixed brw I/O to have array of iobufs, not pointer
+       * obdfs/super.c: add superblock to list of superblocks
+       * obdfs/flushd.c: use pupdated() to do page writes
+
+2000-01-19 18:05 adilger
+
+       * ext2obd/ext2obd.c: changed _brw to use vector I/O with brw_kiovec()
+       * obdfs/rw.c, obdfs/flushd.c: updated for async page cache
+
+2000-01-18 20:20 adilger
+
+       * class/obdcontrol: fixed read, write, create to work with obdos
+           (write is still not fully functional)
+       * ext2obd/ext2obd.c: ext2obd_write() - copy inode data back into obdo
+           add a few missing iput()s for error conditions
+           
+2000-01-18 13:30 adilger
+
+       * modified _brw method to allow array of obdos to be submitted for
+         multiple I/Os with one call
+
+2000-01-18 11:30 adilger
+
+       * include/obd_support.h: removed printk() of long long values
+         (sometimes does not print properly)
+       * obdfs/rw.c: added obdo_from_inode() call in obdfs_brw(), as inode
+         was not properly being copied into obdo, causing occasional confusion
+       * snap/snap.c: always copy back obdo data to primary from disk obdo
+       * obdsync/*: removed from CVS
+
+2000-01-14 08:05  adilger
+
+       * snap/*: obdo snapshots should be working now.
+
+2000-01-13 13:50  adilger
+
+       * snap/*: working on storing obdmd outside of inode
+
+2000-01-11 14:25  adilger
+
+       * snap/*: updated to work with new obdo methods, untested
+
+2000-01-10 10:37  adilger
+
+       * obdfs/*, ext2obd/*: updated to work with new obdo methods, tested
+
+1999-12-29 13:57  adilger
+
+       * obdsync/*: added to CVS
+       * obdfs/super.c,rw.c: added start of page cache
+
+1999-12-29 10:20  adilger
+
+       * ext2obd/ext2_obd.c, snap/snap.c: change parameters for create
+       * class/obdcontrol: update copy, migrate dst & src parameter order
+
+1999-12-23 14:21  adilger
+
+       * demos/snaprest.sh: ensure client is disconnected after snaprestore
+       * class/class_obd.c: debugging for connection counts, made error
+         returns more consistent, check connections when doing cleanup
+
+1999-12-23 03:10  adilger
+
+       * ext2obd/ext2_obd.c: added iput() after reading a bad inode,
+         remove EXT2_UNDEL_DIR_INO from list of iterated inodes.
+       * class/obdcontrol: after snaprestore remove snapshot from
+         table by key not index
+
+1999-12-22 13:44  adilger
+
+       * demos/snaprest.sh: mount /dev/obd2 on /mnt/obd at end of restore
+
+1999-12-22 13:11  adilger
+
+       * snap/snap.c: always try to collapse an object in snap_restoreobj()
+       * demos/snaprest.sh: need to rework snaprestore process
+       * demos/basesetup.sh: check if /dev/obd* exist
+       * demos/baseclean.sh: don't remove temp file
+
+1999-12-22 08:43  adilger
+
+       * demos/obdtest.sh: added new script
+
+1999-12-21 18:03  adilger
+
+       * class/obdcontrol: added "basedev" parameter to the attach command
+         for ext2_obd.  This was required after the removal of Filesystem()
+       * demos/*: moved test scripts here, renamed by function
+
+1999-12-21 17:03  adilger
+
+       * class/obdcontrol: merge snapattach into attach, fix scsi_obd packing
+       * snap/cleanup.sh: use ../class/cleanup.sh like snap/setup.sh does
+
+1999-12-21 00:41  braam
+
+       * doc/obd-howto.sgml: numerous edits
+       * class/obdcontrol: make things clearer (no implicit filesystem)
+       * change to our official MAJOR (186). 
+
+1999-12-20 17:03  adilger
+
+       * doc/obd-howto.sgml: added issues/bugs section
+       * snap/test*.sh: added brief comments to each script
+
+1999-12-20 16:08  adilger
+
+       * doc/obd-howto.sgml: updated for initial public release
+       * obdfs/many: changed to have separate dir/file operations,
+       * ext2obd/ext2_obd: cosmetic changes to match ext2 code more closely
+       * include/linux/obd_class.h: change obdo_{cpy,cmp}_md() to allow
+         include or exclude flags for copy/compare of metadata
+       * snap/snaptable.c: comment iterator functions clearly
+
+1999-12-17 10:20  adilger
+
+       * include/linux/obd_sim.h: renamed to obd_ext2.h
+       * Configure: revert PCI, APIC checks (otherwise won't compile after
+         config)
+
+1999-12-17 08:45  adilger
+
+       * doc/obd-howto.sgml: completed OBD tutorial section
+       * snap/snap.c: in eliminate_obj() turn off S_IFDIR flag on object
+         before passing to underlying obdext2 driver, so it doesn't
+         decrement the dir count for the group
+       * Configure: removed questions for PCMCIA specific features
+       * class/obdcontrol: disconnect session when changing devices
+
+1999-12-14 20:32  adilger
+
+       * include/linux/obdfs.h: add symlink_inode_operations, prototypes
+       * obdfs/symlink.c, obdfs/namei.c: handle obdfs symlinks properly
+
+1999-12-13 17:55  adilger
+
+       * snap/snap.c, class/obdcontrol: added support for snapshot restores
+         on unmounted OBD filesystems
+       * snap/setup3.sh, snap/cleanup3.sh: scripts to test 3 snapshots
+       * include/linux/obd_snap_support.h: iterator struct/function prototypes
+
+1999-12-13 09:30  adilger
+
+       * all: significant overhaul by Peter to avoid problems with OBD
+         metadata conflicting with ext2 block data in the inode.
+       * class/obdcontrol: added proper commands for snapdelete/snaprestore
+       * class/obdcontrol: device command now disconnects old session if any
+       * ext2obd/*: updated for kernel 2.3.30
+       * include/linux/obd_class.h: helper functions inode metadata cpy/cmp
+       * include/linux/obd_snap.h: new magic less likely for block conflict
+         now that the redirector can have "i_blocks" set
+       * obd/obdfs: updated for kernel 2.3.30
+       * snap/snap.c: use new obd metadata copy helper routines
+       * snap/snap.c: updated delete/restore snapshot iterator functions
+
+1999-12-08 21:42  adilger
+
+       * snap/snap.c: snap_do_cow() fixed case with existing indirect object
+       * snap/snap.c: snap_delsnap() removes (partly) a snapshot
+       * ext2obd/ext2_obd.c: fixed iterator to handle reserved inodes
+       * ext2obd/ext2_obd.c: fixed direct_brw() to handle > 1 block offset
+       * class/obdcontrol: added testsnapiterator command/ioctl
+       * class/setup.sh: added creation of /tmp/fs, 4k block size
+       * obdfs/namei.c: fixed new directory size after write
+
+1999-12-07 11:45  adilger
+
+       * snap/snap.c: fixed check for snap_create() to test for correct
+         read-only copy
+
+1999-12-06 16:53  adilger
+
+       * snap/snap.c, snap/snaptable.c: Fixed up snapshot to work again with
+         snaptables, added snap_iterate() calldown, snap_cleanup() to free
+         a snapshot table entry
+       * ext2obd/ext2_obd.c: added iterator ext2obd_iterate() for all inodes
+       * class/class_obd.c: blocked TCGETS IOCTL, added connection ID to calls
+       * class/obdcontrol: added IOCTL for testing iterator, connection ID
+
+1999-12-06 08:00 braam
+
+       * Added a file handling snapshot tables
+       * Added an ioctl system that allows ioctls to be made without
+         specific devices being attached (pass method down).
+       * Numerous small routines for snapshot handling.
+       
+1999-12-03 16:53  adilger
+
+       * Makefile: made "all" the default target
+       * class/class_obd.c, class/genops.c, snap/snap.c: re-ordered
+         migrate, copy argument order to be consistent (dst, src)
+       * snap/snap.c: fixed unlink to work in all cases of (direct,
+         indirect)
+       * snap/setup.sh: check for mounted obdfs before starting
+       * snap/cleanup.sh: remove loop device
+       * ext2obd/ext2_obd.c: start of iterator
+
+1999-12-03 11:08  adilger
+
+       * snap/snap.c: implemented unlink functionality for snapshots.
+       * doc/obd-howto.sgml: started on OBD howto documentation
+
+1999-12-02 13:40  braam
+
+       * class/genops.c: Undo accidental commit
+
+1999-12-02 13:36  braam
+
+       * .cvsignore, class/.cvsignore, class/genops.c, ext2obd/.cvsignore,
+       inofs/.cvsignore, obdfs/.cvsignore, oraid1/.cvsignore,
+       rpcclient/.cvsignore, rpctarget/.cvsignore, snap/.cvsignore: Added
+       .cvsignore files to the repository
+
+1999-12-02 12:33  adilger
+
+       * snap/setup.sh: Updated to use the new "now" and "current" flags
+       when creating snapshots.
+
+1999-12-01 17:11  braam
+
+       * class/obdcontrol, doc/OLVM.txt, include/linux/obd_snap.h,
+       obdfs/super.c, snap/snap.c: Updated snapshot indexes in superblock
+       to not depend on index "0" as being the current snapshot.  We still
+       need to push the inode attributes to the snap copy so that
+       size/times are correct.
+
+1999-12-01 11:45  adilger
+
+       * class/genops.c, ext2obd/Makefile, ext2obd/dir.c, ext2obd/file.c,
+       ext2obd/inode.c, ext2obd/truncate.c, include/linux/obdfs.h,
+       obdfs/rw.c, snap/cleanup.sh, snap/setup.sh, tests/fs.sh: Updated
+       parameters for obdfs_writepage() to use struct *dentry instead of
+       struct *file, and call in odbfs_write_one_page() to use new
+       parameters.  Updated gen_copy_data() to round up the number of
+       pages copied in while loop.
+
+1999-12-01 01:02  braam
+
+       * snap/snap.c: small test
+
+1999-11-30 12:06  braam
+
+       * class/genops.c, class/setup.sh, ext2obd/Makefile,
+       ext2obd/ext2_obd.c, include/linux/obd_support.h, obdfs/namei.c,
+       snap/snap.c: fixes for 2.3.25 and higher
+
+1999-11-24 14:15  braam
+
+       * BUGS, Makefile, doc/OLVM.txt, ext2obd/ext2_obd.c,
+       include/linux/obd_class.h, include/linux/obd_snap.h,
+       include/linux/obd_support.h, include/linux/obdfs.h, obdfs/dir.c,
+       obdfs/rw.c, obdfs/super.c: Changes to accomodate the snapshot
+       features!
+
+1999-11-24 12:46  braam
+
+       * class/: class_obd.c, cleanup.sh, genops.c, obdcontrol, setup.sh:
+       Changes to accomodate the snapshot driver.
+       
+       For working snapshot code, see the snap directory and the
+       snap/setup.sh script.  The code is not complete, unlink hasn't been
+       done yet.
+
+1999-11-24 12:42  braam
+
+       * snap/snap.c: first working snapshot OBD driver; see setup.sh for
+       usage.
+
+1999-11-03    <braam@cs.cmu.edu>
+
+       * class/obdcontrol: add Device directive to change OBD device
+       while running
+       * class/obdcontrol: add Filesystem directive to change disk
+       partition while running
+       * rename sim_obd to ext2_obd; prevent doubling up on ext2_unlink
+       etc.
+       * obdfs/super.c fixes to pass device to kernel and to allow
+       mouting multiple devices.
+       * clean up the calling of operations and finding of connection
+       numbers from obdfs
+
+1999-11-02 12:19  braam
+
+       * Makefile: Minimal changes to the makefiles.
+
+1999-11-02 12:12  braam
+
+       * Configure, Makefile, make.rules, class/Makefile, doc/notes.txt,
+       ext2obd/Makefile, ext2obd/sim_obd.c, ext2obd/test.c,
+       ext2obd/test2.c, include/linux/inofs.h, include/linux/obd_rpc.h,
+       include/linux/obd_support.h, include/linux/obdfs.h, inofs/Makefile,
+       inofs/file.c, inofs/inofs.h, inofs/namei.c, inofs/rw.c,
+       inofs/super.c, obdfs/Makefile, obdfs/dir.c, obdfs/file.c,
+       obdfs/namei.c, obdfs/notes.txt, obdfs/rw.c, obdfs/super.c,
+       oraid1/Makefile, rpcclient/Makefile, rpcclient/obdxdr.c,
+       rpcclient/proc.c, rpcclient/rpc_obd.c, snap/Makefile, snap/snap.c,
+       tests/test.c, tests/test2.c: New direcotory layout:   subdirs for
+       different clients and file systems   documentation, tests and lib
+       subdirectories.
+
+1999-11-01    <braam@wolf.rockies.stelias.com>
+
+       * OBDFS fixes:
+         -     code ported to 2.3.24 (no patches needed anymore)
+         -     the obdfs_find_entry function which had a nasty bug
+         -     rename now works
+         -     all pages are currently in a locked state when touched by obdfs
+         -     Configure/Makefile fixed to work without MODVERSIONS
+         -     read_inode/write_inode copy out the data area
+
+1999-11-01 10:44  braam
+
+       * .cvsignore, ChangeLog, Configure, class/cleanup.sh,
+       class/genops.c, class/obdcontrol, class/setup.sh, class/sysctl.c,
+       doc/API.txt, ext2obd/Makefile, ext2obd/inode.c, ext2obd/sim_obd.c,
+       include/linux/obd_class.h, include/linux/obd_rpc.h,
+       include/linux/obd_snap.h, include/linux/obd_support.h,
+       include/linux/obdfs.h, inofs/Makefile, inofs/file.c, inofs/inofs.h,
+       inofs/namei.c, inofs/rw.c, inofs/super.c, inofs/sysctl.c,
+       obdfs/Makefile, obdfs/dir.c, obdfs/file.c, obdfs/namei.c,
+       obdfs/rw.c, obdfs/super.c, obdfs/symlink.c, obdfs/sysctl.c,
+       rpcclient/obdxdr.c, rpcclient/rpc_obd.c: Over of the changes:    
+       Many bugfixes     INOFS added     SNAP added
+       
+          See ChangeLog for details
+
+1999-10-28    <braam@wolf.rockies.stelias.com>
+
+       * INOFS: a new "inode" file system was written.  It tests components
+       of obdfs and could be useful for Coda/AFS servers and object
+       databases.
+
+       * This file system will not have directories, but access pure
+       objects. Readdir will be an iterator and to create objects with
+       known names (integers of course) the preallocation function will
+       need to be completed.
+       
+       * This will still need to exploit preallocation and and a readdir
+       function should be added
+
+1999-10-22    <braam@wolf.rockies.stelias.com>
+
+       * Beginning of a "rpc_client" layout for OBD
+
+       
+1999-10-21    <braam@wolf.rockies.stelias.com>
+
+       * Much of the snap shot client driver is there (see API.txt).
+       This driver introduced the need for substantial changes in the
+       calling interface of the OBD layers. More to come.
+
+       * Part of the RAID1 driver added.  Also here many changes to the
+       calling interface were needed.
+
+1999-10-21 12:39  braam
+
+       * BUGS, ChangeLog, Configure, class/class_obd.c, class/genops.c,
+       class/obdcontrol, class/setup.sh, doc/OLVM.txt, ext2obd/Makefile,
+       ext2obd/sim_obd.c, oraid1/raid1_obd.c, snap/snap.c,
+       include/linux/obd.h, include/linux/obd_class.h,
+       include/linux/obd_raid1.h, include/linux/obd_sim.h,
+       include/linux/obd_snap.h, include/linux/obd_support.h,
+       include/linux/obdfs.h, obdfs/dir.c, obdfs/file.c, obdfs/namei.c,
+       obdfs/rw.c, obdfs/super.c, patches/patch-2.3.21: New files:  for
+       raid1       for snap shots  OLVM a technical description of the
+       logical volume management   genops generic operations useful to
+       many obd clients
+       
+       Fixes:  numerous fixes to the file system       several fixes to
+       OBD and obdcontrol
+       
+       Current state:  does not compile
+
+1999-10-21 00:47  braam
+
+       * ChangeLog, Makefile, class/class_obd.c, class/cleanup.sh,
+       class/genops.c, class/obdcontrol, class/setup.sh, doc/OLVM.txt,
+       ext2obd/Makefile, ext2obd/ext2_obd.c, ext2obd/sim_obd.c,
+       ext2obd/super.c, include/linux/obd_class.h,
+       include/linux/obd_sim.h, include/linux/obd_snap.h,
+       include/linux/obd_support.h, include/linux/obdfs.h, obdfs/namei.c,
+       obdfs/rw.c, obdfs/super.c, oraid1/raid1_obd.c, rpcclient/rpc_obd.c,
+       scripts/maketags.sh, snap/snap.c: Cleanup : no more "sim" now
+       "ext2"           can mount multiple devices      obdcontrol
+       improved     more work on snap (doesn't compile yet)
+       
+                 check in just before we are again overhauling the
+       interface.
+
+1999-10-12 21:29  braam
+
+       * Configure, class/class_obd.c, class/obdcontrol,
+       ext2obd/sim_obd.c, include/linux/obd_class.h,
+       include/linux/obd_support.h, include/linux/obdfs.h, obdfs/dir.c,
+       obdfs/namei.c, obdfs/rw.c, obdfs/super.c: Numerous fixes, including
+       the attach code, better page locking etc.
+
+1999-09-25 21:20  braam
+
+       * class/class_obd.c, class/obdcontrol, doc/API.txt,
+       ext2obd/sim_obd.c, ext2obd/super.c, include/linux/obd_class.h,
+       include/linux/obd_sim.h, include/linux/obd_support.h,
+       include/linux/obdfs.h, obdfs/Makefile, obdfs/dir.c, obdfs/file.c,
+       obdfs/namei.c, obdfs/rw.c, obdfs/super.c, obdfs/sysctl.c: Added
+       code for obdfs to do writes to files and reads of directories and
+       files.
+
+1999-09-11 00:25  braam
+
+       * class/class_obd.c, class/obdcontrol, class/sysctl.c,
+       ext2obd/Makefile, ext2obd/balloc.c, ext2obd/bitmap.c,
+       ext2obd/dir.c, ext2obd/file.c, ext2obd/fsync.c, ext2obd/ialloc.c,
+       ext2obd/inode.c, ext2obd/interface.c, ext2obd/ioctl.c,
+       ext2obd/psdev.c, ext2obd/sim_obd.c, ext2obd/super.c,
+       ext2obd/truncate.c, include/linux/obd_class.h,
+       include/linux/obd_psdev.h, include/linux/obd_sim.h,
+       include/linux/presto.h, include/linux/presto_upcall.h,
+       include/linux/sim_obd.h: Much cleaner separation of the class and
+       simulated obd code.
+
+1999-09-11 00:25  braam
+
+       * include/linux/obd_support.h: Whoops, forgotten!
+
+1999-09-03 15:01  braam
+
+       * Configure, class/obdcontrol, ext2obd/interface.c,
+       ext2obd/ioctl.c, ext2obd/psdev.c: fixes for deliverables.
+
+1999-09-03 15:01  braam
+
+       * COPYING: forgot the good old gpl
+
+1999-08-31 17:05  braam
+
+       * class/obdcontrol, ext2obd/Makefile, ext2obd/README,
+       ext2obd/acl.c, ext2obd/balloc.c, ext2obd/dir.c, ext2obd/file.c,
+       ext2obd/fsync.c, ext2obd/ialloc.c, ext2obd/inode.c,
+       ext2obd/interface.c, ext2obd/ioctl.c, ext2obd/super.c,
+       ext2obd/symlink.c, ext2obd/test.c, ext2obd/truncate.c: Fixes for
+       Linux 2.3 as well as bug fixes after Ayman's testing.
+
+1999-08-31 17:05  braam
+
+       * patches/: patch-2.2.10, patch-2.3.15: patches for the kernel
+       code.
+
+1999-08-31 17:05  braam
+
+       * obdfs/super.c: Minor change for Linux 2.3
+
+1999-08-16 16:41  braam
+
+       * obdfs/super.c: fix the module unloading bug.
+
+1999-08-10 10:18  braam
+
+       * Configure, class/obdcontrol, doc/API.txt, ext2obd/Makefile,
+       ext2obd/README, ext2obd/file.c, ext2obd/ialloc.c, ext2obd/inode.c,
+       ext2obd/interface.c, ext2obd/ioctl.c, ext2obd/psdev.c,
+       ext2obd/super.c, include/linux/obdfs.h, include/linux/sim_obd.h,
+       obdfs/README, obdfs/notes.txt: Numerous patches and fixes to Phil's
+       initial attack.
+       
+       In particular we now have clean tracking of inode counts, so that
+       things attach detach cleanly.  Enough there for deliverable 1 & 2.
+
+1999-07-28 22:10  pschwan
+
+       * doc/API.txt, ext2obd/README, ext2obd/interface.c: [no log
+       message]
+
+1999-07-28 10:11  braam
+
+       * Configure, Makefile, class/sysctl.c, ext2obd/balloc.c,
+       ext2obd/bitmap.c, ext2obd/dir.c, ext2obd/file.c, ext2obd/fsync.c,
+       ext2obd/ialloc.c, ext2obd/inode.c, ext2obd/interface.c,
+       ext2obd/ioctl.c, ext2obd/psdev.c, ext2obd/super.c,
+       ext2obd/truncate.c, include/linux/obdfs.h, include/linux/sim_obd.h,
+       include/linux/sym_obd.h, obdfs/super.c, obdfs/sysctl.c: Fixed a
+       spelling mistake: "symulated" --> "simulated" (sym_obd etc).
+       
+       Improved configuration scripts
+       
+       Removed compiler warnings from re-defining ext2_error
+
+1999-06-24 16:16  pschwan
+
+       * Configure, Makefile, class/obdcontrol, ext2obd/file.c,
+       ext2obd/ialloc.c, ext2obd/inode.c, ext2obd/interface.c,
+       ext2obd/ioctl.c, ext2obd/psdev.c, ext2obd/super.c,
+       include/linux/sym_obd.h, include/linux/obdfs.h, obdfs/Makefile,
+       obdfs/super.c, obdfs/sysctl.c: the last two weeks' work
+
+1999-06-09 18:17  pschwan
+
+       * class/obdcontrol, ext2obd/balloc.c, ext2obd/bitmap.c,
+       ext2obd/dir.c, ext2obd/file.c, ext2obd/fsync.c, ext2obd/ialloc.c,
+       ext2obd/inode.c, ext2obd/interface.c, ext2obd/ioctl.c,
+       ext2obd/super.c, ext2obd/truncate.c, include/linux/sym_obd.h:
+       mostly read, 2.2.1 -> 2.2.9 updates
+
+1999-06-05 13:02  pschwan
+
+       * class/obdcontrol, class/sysctl.c, ext2obd/Makefile,
+       ext2obd/balloc.c, ext2obd/bitmap.c, ext2obd/file.c,
+       ext2obd/ialloc.c, ext2obd/inode.c, ext2obd/interface.c,
+       ext2obd/ioctl.c, ext2obd/psdev.c, ext2obd/super.c, ext2obd/test.c,
+       ext2obd/test2.c, ext2obd/truncate.c, include/linux/presto.h,
+       include/linux/sym_obd.h: A couple days of changes--much
+       improvement.
+
+1999-06-02 19:34  pschwan
+
+       * ext2obd/Makefile, ext2obd/balloc.c, ext2obd/bitmap.c,
+       ext2obd/dir.c, ext2obd/file.c, ext2obd/fsync.c, ext2obd/ialloc.c,
+       ext2obd/inode.c, ext2obd/interface.c, ext2obd/ioctl.c,
+       ext2obd/psdev.c, ext2obd/super.c, ext2obd/test.c, ext2obd/test2.c,
+       ext2obd/truncate.c, include/linux/obd_psdev.h,
+       include/linux/presto.h, include/linux/presto_upcall.h,
+       include/linux/sym_obd.h: foo
+
+1999-06-02 19:28  pschwan
+
+       * Configure, Makefile, config.in: foo
+
diff --git a/lustre/FDL b/lustre/FDL
new file mode 100644 (file)
index 0000000..b42936b
--- /dev/null
@@ -0,0 +1,355 @@
+               GNU Free Documentation License
+                  Version 1.1, March 2000
+
+ Copyright (C) 2000  Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+0. PREAMBLE
+
+The purpose of this License is to make a manual, textbook, or other
+written document "free" in the sense of freedom: to assure everyone
+the effective freedom to copy and redistribute it, with or without
+modifying it, either commercially or noncommercially.  Secondarily,
+this License preserves for the author and publisher a way to get
+credit for their work, while not being considered responsible for
+modifications made by others.
+
+This License is a kind of "copyleft", which means that derivative
+works of the document must themselves be free in the same sense.  It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+
+We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does.  But this License is not limited to software manuals;
+it can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book.  We recommend this License
+principally for works whose purpose is instruction or reference.
+
+
+1. APPLICABILITY AND DEFINITIONS
+
+This License applies to any manual or other work that contains a
+notice placed by the copyright holder saying it can be distributed
+under the terms of this License.  The "Document", below, refers to any
+such manual or work.  Any member of the public is a licensee, and is
+addressed as "you".
+
+A "Modified Version" of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+
+A "Secondary Section" is a named appendix or a front-matter section of
+the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document's overall subject
+(or to related matters) and contains nothing that could fall directly
+within that overall subject.  (For example, if the Document is in part a
+textbook of mathematics, a Secondary Section may not explain any
+mathematics.)  The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+
+The "Invariant Sections" are certain Secondary Sections whose titles
+are designated, as being those of Invariant Sections, in the notice
+that says that the Document is released under this License.
+
+The "Cover Texts" are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License.
+
+A "Transparent" copy of the Document means a machine-readable copy,
+represented in a format whose specification is available to the
+general public, whose contents can be viewed and edited directly and
+straightforwardly with generic text editors or (for images composed of
+pixels) generic paint programs or (for drawings) some widely available
+drawing editor, and that is suitable for input to text formatters or
+for automatic translation to a variety of formats suitable for input
+to text formatters.  A copy made in an otherwise Transparent file
+format whose markup has been designed to thwart or discourage
+subsequent modification by readers is not Transparent.  A copy that is
+not "Transparent" is called "Opaque".
+
+Examples of suitable formats for Transparent copies include plain
+ASCII without markup, Texinfo input format, LaTeX input format, SGML
+or XML using a publicly available DTD, and standard-conforming simple
+HTML designed for human modification.  Opaque formats include
+PostScript, PDF, proprietary formats that can be read and edited only
+by proprietary word processors, SGML or XML for which the DTD and/or
+processing tools are not generally available, and the
+machine-generated HTML produced by some word processors for output
+purposes only.
+
+The "Title Page" means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page.  For works in
+formats which do not have any title page as such, "Title Page" means
+the text near the most prominent appearance of the work's title,
+preceding the beginning of the body of the text.
+
+
+2. VERBATIM COPYING
+
+You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no other
+conditions whatsoever to those of this License.  You may not use
+technical measures to obstruct or control the reading or further
+copying of the copies you make or distribute.  However, you may accept
+compensation in exchange for copies.  If you distribute a large enough
+number of copies you must also follow the conditions in section 3.
+
+You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+
+
+3. COPYING IN QUANTITY
+
+If you publish printed copies of the Document numbering more than 100,
+and the Document's license notice requires Cover Texts, you must enclose
+the copies in covers that carry, clearly and legibly, all these Cover
+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
+the back cover.  Both covers must also clearly and legibly identify
+you as the publisher of these copies.  The front cover must present
+the full title with all words of the title equally prominent and
+visible.  You may add other material on the covers in addition.
+Copying with changes limited to the covers, as long as they preserve
+the title of the Document and satisfy these conditions, can be treated
+as verbatim copying in other respects.
+
+If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+
+If you publish or distribute Opaque copies of the Document numbering
+more than 100, you must either include a machine-readable Transparent
+copy along with each Opaque copy, or state in or with each Opaque copy
+a publicly-accessible computer-network location containing a complete
+Transparent copy of the Document, free of added material, which the
+general network-using public has access to download anonymously at no
+charge using public-standard network protocols.  If you use the latter
+option, you must take reasonably prudent steps, when you begin
+distribution of Opaque copies in quantity, to ensure that this
+Transparent copy will remain thus accessible at the stated location
+until at least one year after the last time you distribute an Opaque
+copy (directly or through your agents or retailers) of that edition to
+the public.
+
+It is requested, but not required, that you contact the authors of the
+Document well before redistributing any large number of copies, to give
+them a chance to provide you with an updated version of the Document.
+
+
+4. MODIFICATIONS
+
+You may copy and distribute a Modified Version of the Document under
+the conditions of sections 2 and 3 above, provided that you release
+the Modified Version under precisely this License, with the Modified
+Version filling the role of the Document, thus licensing distribution
+and modification of the Modified Version to whoever possesses a copy
+of it.  In addition, you must do these things in the Modified Version:
+
+A. Use in the Title Page (and on the covers, if any) a title distinct
+   from that of the Document, and from those of previous versions
+   (which should, if there were any, be listed in the History section
+   of the Document).  You may use the same title as a previous version
+   if the original publisher of that version gives permission.
+B. List on the Title Page, as authors, one or more persons or entities
+   responsible for authorship of the modifications in the Modified
+   Version, together with at least five of the principal authors of the
+   Document (all of its principal authors, if it has less than five).
+C. State on the Title page the name of the publisher of the
+   Modified Version, as the publisher.
+D. Preserve all the copyright notices of the Document.
+E. Add an appropriate copyright notice for your modifications
+   adjacent to the other copyright notices.
+F. Include, immediately after the copyright notices, a license notice
+   giving the public permission to use the Modified Version under the
+   terms of this License, in the form shown in the Addendum below.
+G. Preserve in that license notice the full lists of Invariant Sections
+   and required Cover Texts given in the Document's license notice.
+H. Include an unaltered copy of this License.
+I. Preserve the section entitled "History", and its title, and add to
+   it an item stating at least the title, year, new authors, and
+   publisher of the Modified Version as given on the Title Page.  If
+   there is no section entitled "History" in the Document, create one
+   stating the title, year, authors, and publisher of the Document as
+   given on its Title Page, then add an item describing the Modified
+   Version as stated in the previous sentence.
+J. Preserve the network location, if any, given in the Document for
+   public access to a Transparent copy of the Document, and likewise
+   the network locations given in the Document for previous versions
+   it was based on.  These may be placed in the "History" section.
+   You may omit a network location for a work that was published at
+   least four years before the Document itself, or if the original
+   publisher of the version it refers to gives permission.
+K. In any section entitled "Acknowledgements" or "Dedications",
+   preserve the section's title, and preserve in the section all the
+   substance and tone of each of the contributor acknowledgements
+   and/or dedications given therein.
+L. Preserve all the Invariant Sections of the Document,
+   unaltered in their text and in their titles.  Section numbers
+   or the equivalent are not considered part of the section titles.
+M. Delete any section entitled "Endorsements".  Such a section
+   may not be included in the Modified Version.
+N. Do not retitle any existing section as "Endorsements"
+   or to conflict in title with any Invariant Section.
+
+If the Modified Version includes new front-matter sections or
+appendices that qualify as Secondary Sections and contain no material
+copied from the Document, you may at your option designate some or all
+of these sections as invariant.  To do this, add their titles to the
+list of Invariant Sections in the Modified Version's license notice.
+These titles must be distinct from any other section titles.
+
+You may add a section entitled "Endorsements", provided it contains
+nothing but endorsements of your Modified Version by various
+parties--for example, statements of peer review or that the text has
+been approved by an organization as the authoritative definition of a
+standard.
+
+You may add a passage of up to five words as a Front-Cover Text, and a
+passage of up to 25 words as a Back-Cover Text, to the end of the list
+of Cover Texts in the Modified Version.  Only one passage of
+Front-Cover Text and one of Back-Cover Text may be added by (or
+through arrangements made by) any one entity.  If the Document already
+includes a cover text for the same cover, previously added by you or
+by arrangement made by the same entity you are acting on behalf of,
+you may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+
+The author(s) and publisher(s) of the Document do not by this License
+give permission to use their names for publicity for or to assert or
+imply endorsement of any Modified Version.
+
+
+5. COMBINING DOCUMENTS
+
+You may combine the Document with other documents released under this
+License, under the terms defined in section 4 above for modified
+versions, provided that you include in the combination all of the
+Invariant Sections of all of the original documents, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice.
+
+The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy.  If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+
+In the combination, you must combine any sections entitled "History"
+in the various original documents, forming one section entitled
+"History"; likewise combine any sections entitled "Acknowledgements",
+and any sections entitled "Dedications".  You must delete all sections
+entitled "Endorsements."
+
+
+6. COLLECTIONS OF DOCUMENTS
+
+You may make a collection consisting of the Document and other documents
+released under this License, and replace the individual copies of this
+License in the various documents with a single copy that is included in
+the collection, provided that you follow the rules of this License for
+verbatim copying of each of the documents in all other respects.
+
+You may extract a single document from such a collection, and distribute
+it individually under this License, provided you insert a copy of this
+License into the extracted document, and follow this License in all
+other respects regarding verbatim copying of that document.
+
+
+7. AGGREGATION WITH INDEPENDENT WORKS
+
+A compilation of the Document or its derivatives with other separate
+and independent documents or works, in or on a volume of a storage or
+distribution medium, does not as a whole count as a Modified Version
+of the Document, provided no compilation copyright is claimed for the
+compilation.  Such a compilation is called an "aggregate", and this
+License does not apply to the other self-contained works thus compiled
+with the Document, on account of their being thus compiled, if they
+are not themselves derivative works of the Document.
+
+If the Cover Text requirement of section 3 is applicable to these
+copies of the Document, then if the Document is less than one quarter
+of the entire aggregate, the Document's Cover Texts may be placed on
+covers that surround only the Document within the aggregate.
+Otherwise they must appear on covers around the whole aggregate.
+
+
+8. TRANSLATION
+
+Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of section 4.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections.  You may include a
+translation of this License provided that you also include the
+original English version of this License.  In case of a disagreement
+between the translation and the original English version of this
+License, the original English version will prevail.
+
+
+9. TERMINATION
+
+You may not copy, modify, sublicense, or distribute the Document except
+as expressly provided for under this License.  Any other attempt to
+copy, modify, sublicense or distribute the Document is void, and will
+automatically terminate your rights under this License.  However,
+parties who have received copies, or rights, from you under this
+License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+
+10. FUTURE REVISIONS OF THIS LICENSE
+
+The Free Software Foundation may publish new, revised versions
+of the GNU Free Documentation License from time to time.  Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.  See
+http://www.gnu.org/copyleft/.
+
+Each version of the License is given a distinguishing version number.
+If the Document specifies that a particular numbered version of this
+License "or any later version" applies to it, you have the option of
+following the terms and conditions either of that specified version or
+of any later version that has been published (not as a draft) by the
+Free Software Foundation.  If the Document does not specify a version
+number of this License, you may choose any version ever published (not
+as a draft) by the Free Software Foundation.
+
+
+ADDENDUM: How to use this License for your documents
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and
+license notices just after the title page:
+
+      Copyright (c)  YEAR  YOUR NAME.
+      Permission is granted to copy, distribute and/or modify this document
+      under the terms of the GNU Free Documentation License, Version 1.1
+      or any later version published by the Free Software Foundation;
+      with the Invariant Sections being LIST THEIR TITLES, with the
+      Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
+      A copy of the license is included in the section entitled "GNU
+      Free Documentation License".
+
+If you have no Invariant Sections, write "with no Invariant Sections"
+instead of saying which ones are invariant.  If you have no
+Front-Cover Texts, write "no Front-Cover Texts" instead of
+"Front-Cover Texts being LIST"; likewise for Back-Cover Texts.
+
+If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License,
+to permit their use in free software.
diff --git a/lustre/Makefile.am b/lustre/Makefile.am
new file mode 100644 (file)
index 0000000..b84af44
--- /dev/null
@@ -0,0 +1,18 @@
+# Copyright (C) 2001  Cluster File Systems, Inc.
+#
+# This code is issued under the GNU General Public License.
+# See the file COPYING in this distribution
+
+AUTOMAKE_OPTIONS = foreign
+SUBDIRS = rpc llight lib ldlm obdecho mdc osc mds ost utils tests filterobd
+SUBDIRS+= class ext2obd obdfs obdtrace demos doc scripts extN
+#SUBDIRS+= oraid1 rpctarget inofs rpcclient tests snap
+EXTRA_DIST = BUGS FDL Rules include patches
+
+# We get the version from the spec file.
+configure: scripts/lustre.spec.in
+
+dist-hook:
+       find $(distdir) -name .deps | xargs rm -rf
+
+include $(top_srcdir)/Rules
diff --git a/lustre/README b/lustre/README
new file mode 100644 (file)
index 0000000..42592cb
--- /dev/null
@@ -0,0 +1 @@
+Build instructions can be found in the lustre-HOWTO in the doc directory.
diff --git a/lustre/Rules b/lustre/Rules
new file mode 100644 (file)
index 0000000..828a8c9
--- /dev/null
@@ -0,0 +1,24 @@
+# Copyright (C) 2001  Cluster File Systems, Inc.
+#
+# This code is issued under the GNU General Public License.
+# See the file COPYING in this distribution
+
+# Build a kernel module, name.o, and install it in $(moduledir) by:
+#  MODULE = name
+#  module_DATA = name.o
+#  EXTRA_PROGRAMS = name
+#  name_SOURCES = my.c files.c
+#  include $(top_srcdir)/Rules
+
+$(MODULE).o: $($(MODULE)_OBJECTS)
+       $(LD) -m "`$(LD) --help | awk '/supported emulations/ {print $$4}'`" -r -o $(MODULE).o $($(MODULE)_OBJECTS)
+
+tags:
+       rm -f $(top_srcdir)/TAGS
+       rm -f $(top_srcdir)/tags
+       find $(top_srcdir)/../portals -name '*.[hc]' | xargs etags -a
+       find $(top_srcdir) -name '*.[hc]' | xargs etags -a
+       find $(top_srcdir)/../portals -name '*.[hc]' | xargs ctags -a
+       find $(top_srcdir) -name '*.[hc]' | xargs ctags -a
+
+EXTRA_DIST += CVS
\ No newline at end of file
diff --git a/lustre/archdep.m4 b/lustre/archdep.m4
new file mode 100644 (file)
index 0000000..7c7a1c8
--- /dev/null
@@ -0,0 +1,75 @@
+AC_MSG_CHECKING(if you are running user mode linux for $host_alias..)
+if test -e $LINUX/include/asm-um ; then
+if test  X`ls -id $LINUX/include/asm | awk '{print $1}'` = X`ls -id $LINUX/include/asm-um | awk '{print $1}'` ; then
+       host_cpu="um";
+       AC_MSG_RESULT(yes)
+else
+       AC_MSG_RESULT(no)
+fi
+
+else 
+        AC_MSG_RESULT(no)
+fi
+
+AC_MSG_CHECKING(setting make flags system architecture: )
+case ${host_cpu} in
+       um )
+       AC_MSG_RESULT($host_cpu)
+       KCFLAGS='-g -Wall -pipe -Wno-trigraphs -Wstrict-prototypes -fno-strict-aliasing -fno-common '
+       KCPPFLAGS='-D__KERNEL__ -U__i386__ -Ui386 -DUM_FASTCALL -D__arch_um__ -DSUBARCH="i386" -DNESTING=0 -D_LARGEFILE64_SOURCE  -Derrno=kernel_errno -DPATCHLEVEL=4 -DMODULE -I$(LINUX)/arch/um/include '
+        MOD_LINK=elf_i386
+;;
+       i*86 )
+       AC_MSG_RESULT($host_cpu)
+        KCFLAGS='-g -O2 -Wall -Wstrict-prototypes -pipe'
+        KCPPFLAGS='-D__KERNEL__ -DMODULE '
+        MOD_LINK=elf_i386
+;;
+
+       alpha )
+       AC_MSG_RESULT($host_cpu)
+        KCFLAGS='-g -O2 -Wall -Wstrict-prototypes -pipe'
+        KCPPFLAGS='-D__KERNEL__ -DMODULE '
+        MOD_LINK=elf64_alpha
+;;
+
+       ia64 )
+       AC_MSG_RESULT($host_cpu)
+       KCFLAGS='-Wall -Wstrict-prototypes -Wno-trigraphs -g -O2 -fno-strict-aliasing -fno-common -pipe -ffixed-r13 -mfixed-range=f10-f15,f32-f127 -falign-functions=32 -mb-step'
+        KCPPFLAGS='-D__KERNEL__ -DMODULE'
+        MOD_LINK=elf64_ia64
+;;
+
+       sparc64 )
+       AC_MSG_RESULT($host_cpu)
+        KCFLAGS='-Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -Wno-unused -m64 -pipe -mno-fpu -mcpu=ultrasparc -mcmodel=medlow -ffixed-g4 -fcall-used-g5 -fcall-used-g7 -Wno-sign-compare -Wa,--undeclared-regs'
+        KCPPFLAGS='-D__KERNEL__'
+        MOD_LINK=elf64_sparc
+
+;;
+
+        default )
+       AC_ERROR("Unknown Linux Platform")
+esac
+
+AC_MSG_CHECKING(for MODVERSIONS)
+if egrep -e 'MODVERSIONS.*1' $LINUX/include/linux/autoconf.h >/dev/null 2>&1;
+then
+       MFLAGS="-DMODULE -DMODVERSIONS -include $LINUX/include/linux/modversions.h -DEXPORT_SYMTAB"
+       AC_MSG_RESULT(yes)
+else
+       MFLAGS=
+       AC_MSG_RESULT(no)
+fi
+
+AC_MSG_CHECKING(for SMP)
+if egrep -e SMP=y $LINUX/.config >/dev/null 2>&1; then
+       SMPFLAG=
+       AC_MSG_RESULT(yes)
+else
+       SMPFLAG=
+       AC_MSG_RESULT(no)
+fi
+
+CFLAGS="$KCFLAGS $MFLAGS"
+ARCHCPPFLAGS="$KCPPFLAGS"
diff --git a/lustre/autogen.sh b/lustre/autogen.sh
new file mode 100644 (file)
index 0000000..2468998
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+find . -type d -name .deps | xargs rm -rf
+automake --add-missing &&
+aclocal &&
+autoconf 
diff --git a/lustre/configure.in b/lustre/configure.in
new file mode 100644 (file)
index 0000000..4a0fde1
--- /dev/null
@@ -0,0 +1,84 @@
+AC_INIT
+AC_CANONICAL_SYSTEM
+
+# Copyright (C) 2001  Cluster File Systems, Inc.
+#
+# This code is issued under the GNU General Public License.
+# See the file COPYING in this distribution
+
+# Automake variables.  Steal the version number from lustre.spec.in.
+AM_INIT_AUTOMAKE(obd, builtin([esyscmd], [sed -ne '/^%define version /{ s/.*version //; p; q; }' scripts/lustre.spec.in]))
+#AM_MAINTAINER_MODE
+AC_PROG_CC
+AC_PROG_RANLIB
+
+# Kernel build environment.
+ac_default_prefix=
+bindir='${exec_prefix}/usr/bin'
+sbindir='${exec_prefix}/usr/sbin'
+
+linuxdir_def=/usr/src/linux
+AC_ARG_ENABLE(linuxdir, [  --enable-linuxdir=[path] set path to Linux source (default=/usr/src/linux)],, enable_linuxdir=$linuxdir_def)
+
+LINUX=$enable_linuxdir
+AC_SUBST(LINUX)
+
+sinclude(archdep.m4)
+
+KINCFLAGS='-I. -I$(top_srcdir)/include -I$(PORTALS)/include -I$(LINUX)/include'
+CPPFLAGS="$KINCFLAGS $ARCHCPPFLAGS"
+
+portalsdir_def='$(top_srcdir)/../portals'
+AC_ARG_ENABLE(portalsdir, [  --enable-portalsdir=[path] set path to Portals source (default=../portals)],, enable_portalsdir=$portalsdir_def)
+PORTALS=$enable_portalsdir
+AC_SUBST(PORTALS)
+
+AC_MSG_CHECKING(if make dep has been run in kernel source)
+if test -f $LINUX/include/linux/config.h ; then
+       AC_MSG_RESULT(yes)
+else
+       AC_MSG_ERROR(** cannot find $LINUX/include/linux/config.h. Run make dep in $LINUX.)
+fi
+
+AC_MSG_CHECKING(if autoconf.h is in kernel source)
+if test -f $LINUX/include/linux/autoconf.h ; then
+       AC_MSG_RESULT(yes)
+else
+       AC_MSG_ERROR(** cannot find $LINUX/include/linux/autoconf.h. Run make config in $LINUX.)
+fi
+
+
+AC_MSG_CHECKING(for Linux release)
+
+dnl We need to rid ourselves of the nasty [ ] quotes.
+changequote(, )
+LVERSION="`sed -ne 's/^VERSION[        ]*=[    ]*//gp' $LINUX/Makefile`"
+PATCHLEVEL="`sed -ne 's/^PATCHLEVEL[   ]*=[    ]*//gp' $LINUX/Makefile`"
+SUBLEVEL="`sed -ne 's/^SUBLEVEL[       ]*=[    ]*//gp' $LINUX/Makefile`"
+EXTRAVERSION="`sed -ne 's/^EXTRAVERSION[       ]*=[    ]*//gp' $LINUX/Makefile`"
+changequote([, ])
+
+RELEASE="$LVERSION.$PATCHLEVEL.$SUBLEVEL$EXTRAVERSION"
+moduledir='$(libdir)/modules/'$RELEASE
+AC_SUBST(moduledir)
+AC_SUBST(EXTRAVERSION)
+
+modulefsdir='$(moduledir)/fs'
+AC_SUBST(modulefsdir)
+
+AC_MSG_RESULT($RELEASE)
+AC_SUBST(RELEASE)
+
+# Directories for documentation and demos.
+docdir='${prefix}/usr/share/doc/$(PACKAGE)'
+AC_SUBST(docdir)
+
+demodir='$(docdir)/demo'
+AC_SUBST(demodir)
+
+AC_OUTPUT(Makefile lib/Makefile ldlm/Makefile obdecho/Makefile rpc/Makefile \
+       osc/Makefile mdc/Makefile mds/Makefile ost/Makefile utils/Makefile \
+       tests/Makefile filterobd/Makefile class/Makefile ext2obd/Makefile \
+       llight/Makefile obdfs/Makefile obdtrace/Makefile demos/Makefile \
+       snap/Makefile doc/Makefile scripts/Makefile scripts/lustre.spec \
+       extN/Makefile)
diff --git a/lustre/install-sh b/lustre/install-sh
new file mode 100755 (executable)
index 0000000..e9de238
--- /dev/null
@@ -0,0 +1,251 @@
+#!/bin/sh
+#
+# install - install a program, script, or datafile
+# This comes from X11R5 (mit/util/scripts/install.sh).
+#
+# Copyright 1991 by the Massachusetts Institute of Technology
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of M.I.T. not be used in advertising or
+# publicity pertaining to distribution of the software without specific,
+# written prior permission.  M.I.T. makes no representations about the
+# suitability of this software for any purpose.  It is provided "as is"
+# without express or implied warranty.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# `make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch.  It can only install one file at a time, a restriction
+# shared with many OS's install programs.
+
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit="${DOITPROG-}"
+
+
+# put in absolute paths if you don't have them in your path; or use env. vars.
+
+mvprog="${MVPROG-mv}"
+cpprog="${CPPROG-cp}"
+chmodprog="${CHMODPROG-chmod}"
+chownprog="${CHOWNPROG-chown}"
+chgrpprog="${CHGRPPROG-chgrp}"
+stripprog="${STRIPPROG-strip}"
+rmprog="${RMPROG-rm}"
+mkdirprog="${MKDIRPROG-mkdir}"
+
+transformbasename=""
+transform_arg=""
+instcmd="$mvprog"
+chmodcmd="$chmodprog 0755"
+chowncmd=""
+chgrpcmd=""
+stripcmd=""
+rmcmd="$rmprog -f"
+mvcmd="$mvprog"
+src=""
+dst=""
+dir_arg=""
+
+while [ x"$1" != x ]; do
+    case $1 in
+       -c) instcmd="$cpprog"
+           shift
+           continue;;
+
+       -d) dir_arg=true
+           shift
+           continue;;
+
+       -m) chmodcmd="$chmodprog $2"
+           shift
+           shift
+           continue;;
+
+       -o) chowncmd="$chownprog $2"
+           shift
+           shift
+           continue;;
+
+       -g) chgrpcmd="$chgrpprog $2"
+           shift
+           shift
+           continue;;
+
+       -s) stripcmd="$stripprog"
+           shift
+           continue;;
+
+       -t=*) transformarg=`echo $1 | sed 's/-t=//'`
+           shift
+           continue;;
+
+       -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
+           shift
+           continue;;
+
+       *)  if [ x"$src" = x ]
+           then
+               src=$1
+           else
+               # this colon is to work around a 386BSD /bin/sh bug
+               :
+               dst=$1
+           fi
+           shift
+           continue;;
+    esac
+done
+
+if [ x"$src" = x ]
+then
+       echo "install:  no input file specified"
+       exit 1
+else
+       true
+fi
+
+if [ x"$dir_arg" != x ]; then
+       dst=$src
+       src=""
+       
+       if [ -d $dst ]; then
+               instcmd=:
+               chmodcmd=""
+       else
+               instcmd=mkdir
+       fi
+else
+
+# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
+# might cause directories to be created, which would be especially bad 
+# if $src (and thus $dsttmp) contains '*'.
+
+       if [ -f $src -o -d $src ]
+       then
+               true
+       else
+               echo "install:  $src does not exist"
+               exit 1
+       fi
+       
+       if [ x"$dst" = x ]
+       then
+               echo "install:  no destination specified"
+               exit 1
+       else
+               true
+       fi
+
+# If destination is a directory, append the input filename; if your system
+# does not like double slashes in filenames, you may need to add some logic
+
+       if [ -d $dst ]
+       then
+               dst="$dst"/`basename $src`
+       else
+               true
+       fi
+fi
+
+## this sed command emulates the dirname command
+dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
+
+# Make sure that the destination directory exists.
+#  this part is taken from Noah Friedman's mkinstalldirs script
+
+# Skip lots of stat calls in the usual case.
+if [ ! -d "$dstdir" ]; then
+defaultIFS='   
+'
+IFS="${IFS-${defaultIFS}}"
+
+oIFS="${IFS}"
+# Some sh's can't handle IFS=/ for some reason.
+IFS='%'
+set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
+IFS="${oIFS}"
+
+pathcomp=''
+
+while [ $# -ne 0 ] ; do
+       pathcomp="${pathcomp}${1}"
+       shift
+
+       if [ ! -d "${pathcomp}" ] ;
+        then
+               $mkdirprog "${pathcomp}"
+       else
+               true
+       fi
+
+       pathcomp="${pathcomp}/"
+done
+fi
+
+if [ x"$dir_arg" != x ]
+then
+       $doit $instcmd $dst &&
+
+       if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
+       if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
+       if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
+       if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
+else
+
+# If we're going to rename the final executable, determine the name now.
+
+       if [ x"$transformarg" = x ] 
+       then
+               dstfile=`basename $dst`
+       else
+               dstfile=`basename $dst $transformbasename | 
+                       sed $transformarg`$transformbasename
+       fi
+
+# don't allow the sed command to completely eliminate the filename
+
+       if [ x"$dstfile" = x ] 
+       then
+               dstfile=`basename $dst`
+       else
+               true
+       fi
+
+# Make a temp file name in the proper directory.
+
+       dsttmp=$dstdir/#inst.$$#
+
+# Move or copy the file name to the temp name
+
+       $doit $instcmd $src $dsttmp &&
+
+       trap "rm -f ${dsttmp}" 0 &&
+
+# and set any options; do chmod last to preserve setuid bits
+
+# If any of these fail, we abort the whole thing.  If we want to
+# ignore errors from any of these, just make sure not to ignore
+# errors from the above "$doit $instcmd $src $dsttmp" command.
+
+       if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
+       if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
+       if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
+       if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
+
+# Now rename the file to the real destination.
+
+       $doit $rmcmd -f $dstdir/$dstfile &&
+       $doit $mvcmd $dsttmp $dstdir/$dstfile 
+
+fi &&
+
+
+exit 0
diff --git a/lustre/missing b/lustre/missing
new file mode 100755 (executable)
index 0000000..7789652
--- /dev/null
@@ -0,0 +1,190 @@
+#! /bin/sh
+# Common stub for a few missing GNU programs while installing.
+# Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+# Franc,ois Pinard <pinard@iro.umontreal.ca>, 1996.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+if test $# -eq 0; then
+  echo 1>&2 "Try \`$0 --help' for more information"
+  exit 1
+fi
+
+case "$1" in
+
+  -h|--h|--he|--hel|--help)
+    echo "\
+$0 [OPTION]... PROGRAM [ARGUMENT]...
+
+Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
+error status if there is no known handling for PROGRAM.
+
+Options:
+  -h, --help      display this help and exit
+  -v, --version   output version information and exit
+
+Supported PROGRAM values:
+  aclocal      touch file \`aclocal.m4'
+  autoconf     touch file \`configure'
+  autoheader   touch file \`config.h.in'
+  automake     touch all \`Makefile.in' files
+  bison        create \`y.tab.[ch]', if possible, from existing .[ch]
+  flex         create \`lex.yy.c', if possible, from existing .c
+  lex          create \`lex.yy.c', if possible, from existing .c
+  makeinfo     touch the output file
+  yacc         create \`y.tab.[ch]', if possible, from existing .[ch]"
+    ;;
+
+  -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
+    echo "missing - GNU libit 0.0"
+    ;;
+
+  -*)
+    echo 1>&2 "$0: Unknown \`$1' option"
+    echo 1>&2 "Try \`$0 --help' for more information"
+    exit 1
+    ;;
+
+  aclocal)
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+         you modified \`acinclude.m4' or \`configure.in'.  You might want
+         to install the \`Automake' and \`Perl' packages.  Grab them from
+         any GNU archive site."
+    touch aclocal.m4
+    ;;
+
+  autoconf)
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+         you modified \`configure.in'.  You might want to install the
+         \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
+         archive site."
+    touch configure
+    ;;
+
+  autoheader)
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+         you modified \`acconfig.h' or \`configure.in'.  You might want
+         to install the \`Autoconf' and \`GNU m4' packages.  Grab them
+         from any GNU archive site."
+    files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' configure.in`
+    test -z "$files" && files="config.h"
+    touch_files=
+    for f in $files; do
+      case "$f" in
+      *:*) touch_files="$touch_files "`echo "$f" |
+                                      sed -e 's/^[^:]*://' -e 's/:.*//'`;;
+      *) touch_files="$touch_files $f.in";;
+      esac
+    done
+    touch $touch_files
+    ;;
+
+  automake)
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+         you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'.
+         You might want to install the \`Automake' and \`Perl' packages.
+         Grab them from any GNU archive site."
+    find . -type f -name Makefile.am -print |
+          sed 's/\.am$/.in/' |
+          while read f; do touch "$f"; done
+    ;;
+
+  bison|yacc)
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+         you modified a \`.y' file.  You may need the \`Bison' package
+         in order for those modifications to take effect.  You can get
+         \`Bison' from any GNU archive site."
+    rm -f y.tab.c y.tab.h
+    if [ $# -ne 1 ]; then
+        eval LASTARG="\${$#}"
+       case "$LASTARG" in
+       *.y)
+           SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
+           if [ -f "$SRCFILE" ]; then
+                cp "$SRCFILE" y.tab.c
+           fi
+           SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
+           if [ -f "$SRCFILE" ]; then
+                cp "$SRCFILE" y.tab.h
+           fi
+         ;;
+       esac
+    fi
+    if [ ! -f y.tab.h ]; then
+       echo >y.tab.h
+    fi
+    if [ ! -f y.tab.c ]; then
+       echo 'main() { return 0; }' >y.tab.c
+    fi
+    ;;
+
+  lex|flex)
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+         you modified a \`.l' file.  You may need the \`Flex' package
+         in order for those modifications to take effect.  You can get
+         \`Flex' from any GNU archive site."
+    rm -f lex.yy.c
+    if [ $# -ne 1 ]; then
+        eval LASTARG="\${$#}"
+       case "$LASTARG" in
+       *.l)
+           SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
+           if [ -f "$SRCFILE" ]; then
+                cp "$SRCFILE" lex.yy.c
+           fi
+         ;;
+       esac
+    fi
+    if [ ! -f lex.yy.c ]; then
+       echo 'main() { return 0; }' >lex.yy.c
+    fi
+    ;;
+
+  makeinfo)
+    echo 1>&2 "\
+WARNING: \`$1' is missing on your system.  You should only need it if
+         you modified a \`.texi' or \`.texinfo' file, or any other file
+         indirectly affecting the aspect of the manual.  The spurious
+         call might also be the consequence of using a buggy \`make' (AIX,
+         DU, IRIX).  You might want to install the \`Texinfo' package or
+         the \`GNU make' package.  Grab either from any GNU archive site."
+    file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
+    if test -z "$file"; then
+      file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
+      file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
+    fi
+    touch $file
+    ;;
+
+  *)
+    echo 1>&2 "\
+WARNING: \`$1' is needed, and you do not seem to have it handy on your
+         system.  You might have modified some files without having the
+         proper tools for further handling them.  Check the \`README' file,
+         it often tells you about the needed prerequirements for installing
+         this package.  You may also peek at any GNU archive site, in case
+         some other package would contain this missing \`$1' program."
+    exit 1
+    ;;
+esac
+
+exit 0
diff --git a/lustre/mkinstalldirs b/lustre/mkinstalldirs
new file mode 100755 (executable)
index 0000000..a08f3ca
--- /dev/null
@@ -0,0 +1,40 @@
+#! /bin/sh
+# mkinstalldirs --- make directory hierarchy
+# Author: Noah Friedman <friedman@prep.ai.mit.edu>
+# Created: 1993-05-16
+# Public domain
+
+# $Id: mkinstalldirs,v 1.1 2002/05/27 16:48:11 pschwan Exp $
+
+errstatus=0
+
+for file
+do
+   set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
+   shift
+
+   pathcomp=
+   for d
+   do
+     pathcomp="$pathcomp$d"
+     case "$pathcomp" in
+       -* ) pathcomp=./$pathcomp ;;
+     esac
+
+     if test ! -d "$pathcomp"; then
+        echo "mkdir $pathcomp"
+
+        mkdir "$pathcomp" || lasterr=$?
+
+        if test ! -d "$pathcomp"; then
+         errstatus=$lasterr
+        fi
+     fi
+
+     pathcomp="$pathcomp/"
+   done
+done
+
+exit $errstatus
+
+# mkinstalldirs ends here
diff --git a/lustre/nodist b/lustre/nodist
new file mode 100644 (file)
index 0000000..91aecad
--- /dev/null
@@ -0,0 +1,21 @@
+obd-*/obd-*
+CVS
+*~
+make.rules
+config.*
+*.o
+*.orig
+*.backup
+.depfiles
+ext2obd/dir.c
+ext2obd/file.c
+ext2obd/ialloc.c
+ext2obd/inode.c
+ext2obd/super.c
+ext2obd/fsync.c
+ext2obd/ioctl.c
+ext2obd/balloc.c
+ext2obd/acl.c
+ext2obd/namei.c
+ext2obd/symlink.c
+ext2obd/bitmap.c