From ed919b6742399c9a30b08314f1ddf424034c0319 Mon Sep 17 00:00:00 2001 From: pschwan Date: Mon, 27 May 2002 16:48:11 +0000 Subject: [PATCH 1/1] Initial lustretop import --- lustre/BUGS | 15 ++ lustre/BUILDING | 25 +++ lustre/COPYING | 352 ++++++++++++++++++++++++++++++ lustre/ChangeLog | 597 +++++++++++++++++++++++++++++++++++++++++++++++++++ lustre/FDL | 355 ++++++++++++++++++++++++++++++ lustre/Makefile.am | 18 ++ lustre/README | 1 + lustre/Rules | 24 +++ lustre/archdep.m4 | 75 +++++++ lustre/autogen.sh | 6 + lustre/configure.in | 84 ++++++++ lustre/install-sh | 251 ++++++++++++++++++++++ lustre/missing | 190 ++++++++++++++++ lustre/mkinstalldirs | 40 ++++ lustre/nodist | 21 ++ 15 files changed, 2054 insertions(+) create mode 100644 lustre/BUGS create mode 100644 lustre/BUILDING create mode 100644 lustre/COPYING create mode 100644 lustre/ChangeLog create mode 100644 lustre/FDL create mode 100644 lustre/Makefile.am create mode 100644 lustre/README create mode 100644 lustre/Rules create mode 100644 lustre/archdep.m4 create mode 100644 lustre/autogen.sh create mode 100644 lustre/configure.in create mode 100755 lustre/install-sh create mode 100755 lustre/missing create mode 100755 lustre/mkinstalldirs create mode 100644 lustre/nodist diff --git a/lustre/BUGS b/lustre/BUGS new file mode 100644 index 0000000..9cf6fa2 --- /dev/null +++ b/lustre/BUGS @@ -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 index 0000000..deaa5e8 --- /dev/null +++ b/lustre/BUILDING @@ -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 index 0000000..c69cfd8 --- /dev/null +++ b/lustre/COPYING @@ -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. + + 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.) + +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. + + 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. + + 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 + + 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. + + + Copyright (C) 19yy + + 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. + + , 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 index 0000000..51558f5 --- /dev/null +++ b/lustre/ChangeLog @@ -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 " command is + useful for "sourcing" scripts without leaving obdcontrol. + shell allows any shell command to be executed from + within obdcontrol. + * class/proc_lustre.c: added support for /proc/lustre/obd//status. + These are read-only /proc entries that track /dev/obd + 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//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 + + * 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 + + * 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 + + * 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 + + * Beginning of a "rpc_client" layout for OBD + + +1999-10-21 + + * 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 index 0000000..b42936b --- /dev/null +++ b/lustre/FDL @@ -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 index 0000000..b84af44 --- /dev/null +++ b/lustre/Makefile.am @@ -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 index 0000000..42592cb --- /dev/null +++ b/lustre/README @@ -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 index 0000000..828a8c9 --- /dev/null +++ b/lustre/Rules @@ -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 index 0000000..7c7a1c8 --- /dev/null +++ b/lustre/archdep.m4 @@ -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 index 0000000..2468998 --- /dev/null +++ b/lustre/autogen.sh @@ -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 index 0000000..4a0fde1 --- /dev/null +++ b/lustre/configure.in @@ -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 index 0000000..e9de238 --- /dev/null +++ b/lustre/install-sh @@ -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 index 0000000..7789652 --- /dev/null +++ b/lustre/missing @@ -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 , 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 index 0000000..a08f3ca --- /dev/null +++ b/lustre/mkinstalldirs @@ -0,0 +1,40 @@ +#! /bin/sh +# mkinstalldirs --- make directory hierarchy +# Author: Noah Friedman +# 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 index 0000000..91aecad --- /dev/null +++ b/lustre/nodist @@ -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 -- 1.8.3.1