Whamcloud - gitweb
fs/lustre-release.git
22 years ago- new file
braam [Mon, 15 Apr 2002 18:50:01 +0000 (18:50 +0000)]
- new file

22 years ago- added, may prove useful as the first 20 lines of code.
braam [Mon, 15 Apr 2002 17:59:46 +0000 (17:59 +0000)]
- added, may prove useful as the first 20 lines of code.

22 years agoFixed build break
pschwan [Mon, 15 Apr 2002 16:34:45 +0000 (16:34 +0000)]
Fixed build break

22 years agoFixed build break
pschwan [Mon, 15 Apr 2002 16:33:15 +0000 (16:33 +0000)]
Fixed build break

22 years agoWARNING - if an RPC times out you will crash older UML's.
braam [Mon, 15 Apr 2002 08:13:59 +0000 (08:13 +0000)]
WARNING - if an RPC times out you will crash older UML's.

Update your user mode linux to the 2.4.18 um15 + extra patch
  take source from ftp.lustre.org:/pub/people/robert
[call_usermode_helper has a bug in older versions of UML]

- new infrastructure for MDS failover recovery
  - recovd replaces the ha daemon. Now located in RPC directory
  - this comes with a service daemon to answer connect calls
  - wrapped it in an obd, for management purposes, and to be able
    to run multiple daemons on one system eventually
- commit callback daemon added to the lustre_lite directory
- removed small amounts of dead code from the rpc directory
- this code has seen little testing
- added the configuration management section to the master document

22 years agoPopulate 'peer' before using it.
pschwan [Mon, 15 Apr 2002 07:10:37 +0000 (07:10 +0000)]
Populate 'peer' before using it.

22 years agoFixed some thinkos in the remote connection/token stuff. Fixed a typo in the
pschwan [Mon, 15 Apr 2002 05:44:51 +0000 (05:44 +0000)]
Fixed some thinkos in the remote connection/token stuff.  Fixed a typo in the
previous lock init fix.

22 years agoptlrpc_client->cli_lock moved to ptlrpc_connection->c_lock, but I'd forgotten
pschwan [Mon, 15 Apr 2002 05:14:38 +0000 (05:14 +0000)]
ptlrpc_client->cli_lock moved to ptlrpc_connection->c_lock, but I'd forgotten
to move the spin_lock_init().  Fixed.

22 years ago- added connection structure which encompasses some (but perhaps not enough yet)
pschwan [Sat, 13 Apr 2002 17:01:01 +0000 (17:01 +0000)]
- added connection structure which encompasses some (but perhaps not enough yet)
HA elements and a lustre_peer.  see rpc/connection.c or lustre_net.h for the
very-simple API
- removed many duplicated structure entries from the RPC path
- broke local_lock_enqueue into two functions; create the lock, do the remote
operation, do the local operation.
- the shadow local lock tree is implemented, but not tested.

22 years agoAdd elan config files (not sure if they are correct, but someone will fix
adilger [Fri, 12 Apr 2002 17:00:25 +0000 (17:00 +0000)]
Add elan config files (not sure if they are correct, but someone will fix
that).

22 years ago- add a new directory for extN file system: ext3 with new features
braam [Fri, 12 Apr 2002 16:28:04 +0000 (16:28 +0000)]
- add a new directory for extN file system: ext3 with new features
 - placed large directory patch in this directory.

22 years agoRenamed a few of the config files so that they are grouped more logically
adilger [Thu, 11 Apr 2002 20:56:50 +0000 (20:56 +0000)]
Renamed a few of the config files so that they are grouped more logically
together.

22 years agoA regression test for networking (probably using the echo device).
adilger [Thu, 11 Apr 2002 10:05:33 +0000 (10:05 +0000)]
A regression test for networking (probably using the echo device).

It runs test_getattrs, test_brw (read, then write).  First simple tests,
then increasing in size, threads, etc.

This uses the new config setup, so it needs to be run like:

runregression-net.sh local.cfg echo.cfg client-echo.cfg

Still doesn't work correctly (details to be worked on include proper
cleanup, remote setup of the server, remote debugging, etc).

22 years agoSplit out the various common configurations into simple config files.
adilger [Thu, 11 Apr 2002 10:00:24 +0000 (10:00 +0000)]
Split out the various common configurations into simple config files.
These will be used by various scripts for configuration, and can be
copied, combined, edited for each user as desired.

The llsetup.sh script will do the appropriate configuration based on
the config scripts that are passed.  For example:

llmount.sh == llsetup.sh local.cfg client-mount.cfg mds.cfg obdext2.cfg
llecho.sh  == llsetup.sh local.cfg client-echo.cfg echo.cfg
llmount-server.sh = llsetup.sh server-net.cfg mds.cfg obdext2.cfg
llmount-client.sh = llsetup.sh client-net.cfg client-mount.cfg

It is of course possible to combine several of the config files into a
single file for ease of typing, these ones are just the basics, e.g.

llsetup.sh peter.cfg
llsetup.sh adilger.cfg

By default it will also check in $HOME/.lustrerc for configuration before
parsing the specified config files.

None of the other scripts have been moved over to this config setup yet.

Still TODO: remote server setup

22 years agoConsolidate verbose flag parsing.
adilger [Wed, 10 Apr 2002 23:10:21 +0000 (23:10 +0000)]
Consolidate verbose flag parsing.

22 years agoChange the "silent" handling code to be "verbose" handling. The devault is
adilger [Wed, 10 Apr 2002 23:02:57 +0000 (23:02 +0000)]
Change the "silent" handling code to be "verbose" handling.  The devault is
still to print each item as it happens, but now there are more options.

- you can use letters 's' or 'q' to be silent/quiet
- you can use letter 'v' to be verbose (default, print each item)
- you can use positive numbers to show each Nth item (default = 1, like 'v')
- you can use negative numbers to show output every -N seconds

The "--threads" command now takes a mandatory "verbose" flag because with
large numbers of threads it is too much output.  Note that this flag only
applies to the spawning of the threads and not the individual commands
(which can have their verbosity specified separately).

Example:

          device number-v v-command    v------v-command args
obdctl --threads 100 20 2 test_getattr 10000 -5
    threads count-^   ^-threads verbosity     ^-test_getattr verbosity

- run 100 threads, and print status for each 20th thread started
- on device 2 run test_getattr for 10000 attrs and print status once per 5sec

22 years agoMention new --device flag for running obdctl commands instead of old way.
adilger [Wed, 10 Apr 2002 22:33:11 +0000 (22:33 +0000)]
Mention new --device flag for running obdctl commands instead of old way.

22 years agoWe already create /mnt/lustre in setup_lustre if it doesn't exist.
adilger [Wed, 10 Apr 2002 22:31:39 +0000 (22:31 +0000)]
We already create /mnt/lustre in setup_lustre if it doesn't exist.

22 years ago- More Peter's additions for the ha manager. This doesn't seem to break much -
braam [Wed, 10 Apr 2002 19:25:43 +0000 (19:25 +0000)]
- More Peter's additions for the ha manager. This doesn't seem to break much -
  but this code hasn't been tested much.

22 years agoNo new functionality outside of the DLM. ptlrpc_client no longer contains
pschwan [Wed, 10 Apr 2002 16:27:43 +0000 (16:27 +0000)]
No new functionality outside of the DLM.  ptlrpc_client no longer contains
a peer, so the peer is passed in and managed separately.

- All of the DLM calls are hooked up to the RPC system now
- Some unmaintained local processing code removed
- Added ldlm network-related bits to the test scripts

22 years agoSupport for running multiple threads with a single command. This adds
adilger [Wed, 10 Apr 2002 04:48:27 +0000 (04:48 +0000)]
Support for running multiple threads with a single command.  This adds
the "--threads" parameter, which takes as arguments the number of threads
to fork, the device number, and the command (and optional arguments) to run.
Usage is similar to the "--device" command, with an additional argument.
("--threads 1 X <foo>" does about the same thing as "--device X <foo>").

Usage example:

# tests/llecho.sh

# utils/obdctl --threads 5 2 test_getattr 5000 q
--threads: starting 5 threads on device 2 running test_getattr
--threads: thread 1 (PID 6029) started
--threads: thread 2 (PID 6030) started
test_getattr-1: 5000 attrs (testing only): Tue Apr  9 22:45:25 2002
test_getattr-2: 5000 attrs (testing only): Tue Apr  9 22:45:25 2002
test_getattr-3: 5000 attrs (testing only): Tue Apr  9 22:45:25 2002
--threads: thread 3 (PID 6031) started
--threads: thread 4 (PID 6032) started
--threads: thread 5 (PID 6033) started
test_getattr-5: 5000 attrs (testing only): Tue Apr  9 22:45:25 2002
test_getattr-4: 5000 attrs (testing only): Tue Apr  9 22:45:25 2002
test_getattr-2: 5000 attrs in 17.24s (290.1 attr/s): Tue Apr  9 22:45:42 2002
test_getattr-3: 5000 attrs in 17.26s (289.7 attr/s): Tue Apr  9 22:45:42 2002
test_getattr-1: 5000 attrs in 17.29s (289.2 attr/s): Tue Apr  9 22:45:42 2002
test_getattr-4: 5000 attrs in 17.26s (289.8 attr/s): Tue Apr  9 22:45:42 2002
test_getattr-5: 5000 attrs in 17.31s (288.9 attr/s): Tue Apr  9 22:45:42 2002

# utils/obdctl --threads 5 2 test_brw 5000 w q
--threads: starting 5 threads on device 2 running test_brw
--threads: thread 1 (PID 5997) started
--threads: thread 2 (PID 5998) started
test_brw-2: reading 5000 (1x1 pages) (testing only): Tue Apr 9 22:37:28 2002
test_brw-1: reading 5000 (1x1 pages) (testing only): Tue Apr 9 22:37:28 2002
--threads: thread 3 (PID 5999) started
--threads: thread 4 (PID 6000) started
test_brw-3: reading 5000 (1x1 pages) (testing only): Tue Apr 9 22:37:28 2002
--threads: thread 5 (PID 6001) started
test_brw-4: reading 5000 (1x1 pages) (testing only): Tue Apr 9 22:37:28 2002
test_brw-5: reading 5000 (1x1 pages) (testing only): Tue Apr 9 22:37:28 2002
test_brw-1: read 1x1x5000 pages in 32.7s (152.9 pg/s): Tue Apr 9 22:38:01 2002
test_brw-2: read 1x1x5000 pages in 32.73s (152.8 pg/s): Tue Apr 9 22:38:01 2002
test_brw-3: read 1x1x5000 pages in 32.73s (152.8 pg/s): Tue Apr 9 22:38:01 2002
test_brw-4: read 1x1x5000 pages in 32.72s (152.8 pg/s): Tue Apr 9 22:38:01 2002
test_brw-5: read 1x1x5000 pages in 32.72s (152.8 pg/s): Tue Apr 9 22:38:01 2002

The first example runs 5 threads doing 5000 test_getattrs on device 2.
The second example runs 5 threads doing 5000 test_brw writes on device 2.

All output is prepended with the command and thread number which is running
that command, like "test_getattr-1", "test_getattr-2", etc.  This is done
via the "cmdline()" helper function, which should now be used at all times
for obdctl output instead of "argv[0]".  If we are not running with threads,
cmdline("foo") degenerates to just "foo".

22 years agoAdd new command to allow obdctl usage from command-line.
adilger [Tue, 9 Apr 2002 23:17:29 +0000 (23:17 +0000)]
Add new command to allow obdctl usage from command-line.
usage: --device <devno> <command [args ...]>

This is exactly the same thing as:
obdctl <<- EOF
device <devno>
connect
command [args ...]
disconnect
EOF

You can use it to run simple obdctl commands, for example:

tests/llecho.sh
util/obdctl --device 2 test_getattr 1000 q
util/obdctl --device 2 test_brw 1000 w q
tests/llmountcleanup.sh

22 years agoClean up obdctl code:
adilger [Tue, 9 Apr 2002 23:12:41 +0000 (23:12 +0000)]
Clean up obdctl code:
- all errors are now written to stderr, and have "error:" at the start
- all functions return non-zero on error (-1 = usage, -2 = params, +ve errno)

22 years agoStart to abstract out the location of modules for LUSTRE and PORTALS. It
adilger [Tue, 9 Apr 2002 21:59:27 +0000 (21:59 +0000)]
Start to abstract out the location of modules for LUSTRE and PORTALS.  It
doesn't actually do anything differently yet, but at least we have isolated
the paths into a single location.

22 years agoUse "$(PORTALS)" and "$(top_srcdir)" instead of ".." so that we can build
adilger [Tue, 9 Apr 2002 21:57:53 +0000 (21:57 +0000)]
Use "$(PORTALS)" and "$(top_srcdir)" instead of ".." so that we can build
in a different directory from the source tree (for UML and kernel builds).

22 years agoosc/osc_request.c: replace "n" with "pages", as "n" is not defined anywhere.
adilger [Tue, 9 Apr 2002 21:55:56 +0000 (21:55 +0000)]
osc/osc_request.c: replace "n" with "pages", as "n" is not defined anywhere.
others: minor cleanups.

22 years agoOnly try to run setup if there isn't already a Lustre filesystem set up.
adilger [Tue, 9 Apr 2002 00:04:23 +0000 (00:04 +0000)]
Only try to run setup if there isn't already a Lustre filesystem set up.

22 years agoMinor change - rename "run" to "test_fail" to match runfailure-mds.
adilger [Tue, 9 Apr 2002 00:03:43 +0000 (00:03 +0000)]
Minor change - rename "run" to "test_fail" to match runfailure-mds.

22 years agocommon.sh: move all of the portals setup from setup() to setup_portals().
adilger [Tue, 9 Apr 2002 00:02:46 +0000 (00:02 +0000)]
common.sh: move all of the portals setup from setup() to setup_portals().
- make the NAL module conditional upon the network connection type.
- rename setup() to be setup_lustre().
all others:
- you need to call setup_portals() before setup_lustre() now.

22 years agoFix typo "lusre" -> "lustre"
adilger [Mon, 8 Apr 2002 20:50:06 +0000 (20:50 +0000)]
Fix typo "lusre" -> "lustre"

22 years ago- name switch: "light" --> "lite"
braam [Mon, 8 Apr 2002 18:28:50 +0000 (18:28 +0000)]
- name switch:  "light" --> "lite"
                "/mnt/obd" --> "/mnt/lustre"
- small changes to RPC code to handle request packet freeing later,
  separate connection initialization and connect.
- rename event handlers and queues, add separate request_out and
  reply_out queue

22 years agoRemoves all traces of mds_req, mds_rep, ost_req, and ost_rep. All subsystems
pschwan [Sat, 6 Apr 2002 17:38:35 +0000 (17:38 +0000)]
Removes all traces of mds_req, mds_rep, ost_req, and ost_rep.  All subsystems
now use the functions in rpc/pack_generic.c, which are based around
struct lustre_msg.  That file is small and easily understood, see it for more
details.

Now that everyone uses the same functions, the code can probably be refactored
more sensibly.  This is left as an exercise for the reader.

Other, cleanups:
- we don't need to memset() after OBD_ALLOC
- the MDS and OST request and reply packets were so similar that they've been
merged, into struct mds_body and ost_body respectively.

22 years agoEnsure that the file type is valid.
adilger [Fri, 5 Apr 2002 20:29:39 +0000 (20:29 +0000)]
Ensure that the file type is valid.

22 years agoRemove use of ext2-specific inode flags to signal objid-in-i_data. Just
adilger [Fri, 5 Apr 2002 20:29:12 +0000 (20:29 +0000)]
Remove use of ext2-specific inode flags to signal objid-in-i_data.  Just
use the check whether it is a regular file.

Also don't use memcpy when saving objid into inode - it should be endian
converted beforehand.

22 years agoEnsure we undo everything in ll_read_super() on error.
adilger [Fri, 5 Apr 2002 20:26:22 +0000 (20:26 +0000)]
Ensure we undo everything in ll_read_super() on error.

22 years agoAdd a check in new_fs() to try and avoid overwriting an in-use block device.
adilger [Fri, 5 Apr 2002 20:13:53 +0000 (20:13 +0000)]
Add a check in new_fs() to try and avoid overwriting an in-use block device.
Not perfect, because it will only check for mounted filesystems, but better
than nothing.

22 years agoAdd open/close methods for filterobd.
adilger [Fri, 5 Apr 2002 20:06:45 +0000 (20:06 +0000)]
Add open/close methods for filterobd.
Other minor cleanups to replace "ext2obd" with "filter" in unused codepaths.

22 years ago- Don't start acceptor in the background anymore
pschwan [Thu, 4 Apr 2002 21:01:46 +0000 (21:01 +0000)]
- Don't start acceptor in the background anymore

22 years ago- Fixed lock tests--early indicates are that extents are working
pschwan [Thu, 4 Apr 2002 18:07:17 +0000 (18:07 +0000)]
- Fixed lock tests--early indicates are that extents are working

22 years agoAdd journal wrapping calls to all of the mds_reint operations. We also
adilger [Thu, 4 Apr 2002 09:25:29 +0000 (09:25 +0000)]
Add journal wrapping calls to all of the mds_reint operations.  We also
use the mds_fs_setattr method to change the fields in the inode, as this
will properly mark the inode dirty and ensure it is written to disk.

This fixes the problem of updates to the MDS inode not being written to
disk because the dentry and inode are being discarded too quickly.

The journal wrapping of all reint operations will make the addition of
calls to atomically update last recieved trivial, so it is time well spent.

22 years ago- Don't abort if fig2dev doesn't exist
pschwan [Thu, 4 Apr 2002 04:22:42 +0000 (04:22 +0000)]
- Don't abort if fig2dev doesn't exist
- first chunk of DLM changes for new extents
- fixups to work with the new Portals tip

22 years agoAdd skeleton definition for struct obd_run_ctxt to quiet compiler warning.
adilger [Wed, 3 Apr 2002 10:48:24 +0000 (10:48 +0000)]
Add skeleton definition for struct obd_run_ctxt to quiet compiler warning.

22 years agoBecause we now return an error code from filter_prep() we have to make sure
adilger [Wed, 3 Apr 2002 10:02:33 +0000 (10:02 +0000)]
Because we now return an error code from filter_prep() we have to make sure
we return 0 if we made it through OK...

22 years agoThe start of moving the MDS root out of the filesystem root. A bit of
adilger [Wed, 3 Apr 2002 09:57:59 +0000 (09:57 +0000)]
The start of moving the MDS root out of the filesystem root.  A bit of
code reorg, and we now create ROOT and FH directories (no RCVD file yet).
Also moves MOD_INC_USE_COUNT earlier in mds_setup to avoid races.

22 years agoClean up strange loop variable usage in filter_preprw() and filter_commitrw(),
adilger [Wed, 3 Apr 2002 08:37:25 +0000 (08:37 +0000)]
Clean up strange loop variable usage in filter_preprw() and filter_commitrw(),
and make variables more local.

22 years agoHave filter_prep() return an error code, and minor cleanups.
adilger [Wed, 3 Apr 2002 08:08:26 +0000 (08:08 +0000)]
Have filter_prep() return an error code, and minor cleanups.
Move MOD_INC_USE_COUNT earlier in filter_setup() to avoid module unload races.

22 years agoRemove simple_mkdir(), push_ctxt(), and pop_ctxt() from filterobd.c and
adilger [Wed, 3 Apr 2002 07:57:25 +0000 (07:57 +0000)]
Remove simple_mkdir(), push_ctxt(), and pop_ctxt() from filterobd.c and
put them in lib/simple.c so we can use them in MDS.  Add simple.c to
files for obdfilter.

22 years agoAdd .eps files to ignored files for doc/ directory.
adilger [Wed, 3 Apr 2002 07:34:32 +0000 (07:34 +0000)]
Add .eps files to ignored files for doc/ directory.

22 years agoYou don't need to specify the size for new_fs() if you are using a block
adilger [Wed, 3 Apr 2002 07:31:18 +0000 (07:31 +0000)]
You don't need to specify the size for new_fs() if you are using a block
device (we just use the whole block device in that case).

22 years agoMake some attempt to clean up ptlrpc_init_svc() if there are errors setting up
adilger [Wed, 3 Apr 2002 07:28:55 +0000 (07:28 +0000)]
Make some attempt to clean up ptlrpc_init_svc() if there are errors setting up
the ring buffer.

22 years agoMove MOD_INC_USE_COUNT up in ost_setup() to avoid module unload races.
adilger [Wed, 3 Apr 2002 07:26:49 +0000 (07:26 +0000)]
Move MOD_INC_USE_COUNT up in ost_setup() to avoid module unload races.

22 years agoAdd push_ctxt and pop_ctxt to simple.c from filter.c.
adilger [Wed, 3 Apr 2002 00:50:06 +0000 (00:50 +0000)]
Add push_ctxt and pop_ctxt to simple.c from filter.c.

22 years agoMove simple_mkdir() out of filterobd so that MDS can use it also.
adilger [Wed, 3 Apr 2002 00:45:32 +0000 (00:45 +0000)]
Move simple_mkdir() out of filterobd so that MDS can use it also.

22 years ago- update a 3 year old message
braam [Tue, 2 Apr 2002 20:58:26 +0000 (20:58 +0000)]
- update a 3 year old message
- split the failing (uml) part of the io-failure mechanism into a separate patch

22 years agoFix the setattr and rename error messages and turn off shell verbosity.
adilger [Tue, 2 Apr 2002 19:40:44 +0000 (19:40 +0000)]
Fix the setattr and rename error messages and turn off shell verbosity.

22 years agoAdd checks into MDS failure test to verify operations failed.
adilger [Tue, 2 Apr 2002 19:30:13 +0000 (19:30 +0000)]
Add checks into MDS failure test to verify operations failed.

22 years ago- this Makefile.am re-builds the eps pictures and the master pdf document
braam [Tue, 2 Apr 2002 19:29:19 +0000 (19:29 +0000)]
- this Makefile.am re-builds the eps pictures and the master pdf document

22 years agoadd missing close to filter obd
braam [Tue, 2 Apr 2002 19:26:24 +0000 (19:26 +0000)]
add missing close to filter obd

22 years agoRe-enable writes only after MDS has been shut down.
adilger [Tue, 2 Apr 2002 19:23:14 +0000 (19:23 +0000)]
Re-enable writes only after MDS has been shut down.

22 years agoA script which sets up an ext3 testbed (ala llext3.sh), and then runs some
adilger [Tue, 2 Apr 2002 19:13:25 +0000 (19:13 +0000)]
A script which sets up an ext3 testbed (ala llext3.sh), and then runs some
failure tests (setattr, create, unlink, rename) that would write to disk.

22 years ago- add disk write instrumentation to 2.4.18 patch
braam [Tue, 2 Apr 2002 18:45:47 +0000 (18:45 +0000)]
- add disk write instrumentation to 2.4.18 patch

22 years ago- lustre_mds.h: just shrink_dcache on de
pschwan [Tue, 2 Apr 2002 17:48:06 +0000 (17:48 +0000)]
- lustre_mds.h: just shrink_dcache on de
- file.c: reverse the order of the MDS/OST open RPCs
- runfailure-net: do unmount/mount after each test

22 years ago- forgot to put the parent...
braam [Tue, 2 Apr 2002 16:35:37 +0000 (16:35 +0000)]
- forgot to put the parent...

22 years ago- second part of shrink fix
braam [Tue, 2 Apr 2002 16:34:01 +0000 (16:34 +0000)]
- second part of shrink fix

22 years ago- part one of prune fix.
braam [Tue, 2 Apr 2002 16:33:31 +0000 (16:33 +0000)]
- part one of prune fix.

22 years ago- add a target that automatically builds the master.pdf document.
braam [Tue, 2 Apr 2002 06:13:55 +0000 (06:13 +0000)]
- add a target that automatically builds the pdf document.
- updates to the Lustre HOWTO, still incomplete
- include lock manager in master.

22 years ago- runfailure-net fixes:
pschwan [Tue, 2 Apr 2002 02:23:45 +0000 (02:23 +0000)]
- runfailure-net fixes:
  - create /dev/request
  - the open() test needs to actually do an open()
  - don't use "run 0 foo" to avoid 'No such pid' error

22 years ago- fixed up lustre_mds.h to allow inclusion in userspace testreq.c
pschwan [Tue, 2 Apr 2002 00:03:35 +0000 (00:03 +0000)]
- fixed up lustre_mds.h to allow inclusion in userspace testreq.c
- added ptlrpc_abort_bulk() to help cleanup aborted requests
- changed giant obd_support.h enum into #defines, which will save me hours of
  counting.
- fixed the ioctl interface to the MDC, so testreq works again
- gave testreq a real interface, to just run one test at a time
- ptlrpc_abort() was freeing a variable which would almost always still be NULL.
  Fixed.

22 years agoMake the failure testing readonly stuff conditionally compiled based on
adilger [Mon, 1 Apr 2002 05:55:19 +0000 (05:55 +0000)]
Make the failure testing readonly stuff conditionally compiled based on
whether the kernel has been patched with support for it or not.

22 years ago- fixes to filter obd
braam [Sun, 31 Mar 2002 04:31:55 +0000 (04:31 +0000)]
- fixes to filter obd
- move inode size update to file close time.

22 years agoA bunch of minor cleanups when using sizeof(). This even appears to have
adilger [Fri, 29 Mar 2002 22:29:59 +0000 (22:29 +0000)]
A bunch of minor cleanups when using sizeof().  This even appears to have
caught 3 minor bugs in the code.  Prompted by a couple of similar bugs that
were just found in the kernel.

Basically, with a variable like "struct foo *bar" it is preferrable to
use "sizeof(*bar)" everywhere instead of "sizeof(struct foo)".  The
former isolates us from errors in case the type of "bad" ever changes.

Apparent bugs were in filter/filter_obd.c and ldlm/ldlm_resource.c (we
were using __u32 when the variable was declared as __u64).  There also
appears to be a memory leak in ldlm_resource.c.

22 years agoAdd new simple test script "runtests" which automates a bunch of the basic
adilger [Fri, 29 Mar 2002 22:20:34 +0000 (22:20 +0000)]
Add new simple test script "runtests" which automates a bunch of the basic
tests which I do before committing stuff to CVS (copy some files, check
they are OK, shutdown+restart, check files again, etc).

Add support in "new_fs" for using pre-built filesystems for testing (this
is considerably faster than building a new fs each time on loopback).

22 years ago- add obdfilter to our setup, cleanup and debug environment
braam [Fri, 29 Mar 2002 22:13:07 +0000 (22:13 +0000)]
- add obdfilter to our setup, cleanup and debug environment
- fix tiny bug in filter.c

22 years agoClear the readonly state flags when we initially set up MDS and when we exit.
adilger [Fri, 29 Mar 2002 22:10:01 +0000 (22:10 +0000)]
Clear the readonly state flags when we initially set up MDS and when we exit.

22 years agoRemove READPAGE_BULK_NET (unused). Without this minor change, the error
adilger [Fri, 29 Mar 2002 22:07:03 +0000 (22:07 +0000)]
Remove READPAGE_BULK_NET (unused).  Without this minor change, the error
codes at the end of runfailure-net script are wrong.

It might be nice in the future to have a name->number conversion tool
which could always get this correct, but it isn't a big deal yet.

22 years ago- add more infrastructure to handle extents and debug.
braam [Fri, 29 Mar 2002 15:19:40 +0000 (15:19 +0000)]
- add more infrastructure to handle extents and debug.
- some of this is going to change dramatically as we feel we
  are handling too many resources now.

22 years agoSimple script to test all of the network packet loss scenarios.
adilger [Fri, 29 Mar 2002 13:40:39 +0000 (13:40 +0000)]
Simple script to test all of the network packet loss scenarios.

22 years agoPatch to allow disabling devices for testing failure/recovery scenarios.
adilger [Fri, 29 Mar 2002 12:57:46 +0000 (12:57 +0000)]
Patch to allow disabling devices for testing failure/recovery scenarios.
By itself this patch does not enable failure testing, but when it is
applied to the kernel, the OBD_FAIL_WRITE() call will activate it.

Patch currently supports loopback, IDE, and UML ubd failures (ignore patch
reject for ubc.c if not using UML).

Enable MDS write failure testing via "echo <num> > /proc/sys/lustre/fail_loc"
where <num> is the number of a write failure breakpoint (OBD_FAIL_MDS_*_WRITE
as defined in the enum in obd_support.h).

22 years agoReinstate the delete_inode methods. We now make a copy of the superblock
adilger [Fri, 29 Mar 2002 12:32:47 +0000 (12:32 +0000)]
Reinstate the delete_inode methods.  We now make a copy of the superblock
operations table for the MDS superblock so we don't affect other users of
that client filesystem type.

I also removed a duplicate call to rpc_unregister_service() in mds_cleanup.
This is what was causing the "rpc unable to unregister 12" type messages at
cleanup.

22 years agoSet a flag in the inode if we have stored the objid there, so we know when
adilger [Fri, 29 Mar 2002 12:02:00 +0000 (12:02 +0000)]
Set a flag in the inode if we have stored the objid there, so we know when
we should clear it.   Also make clear_inode() the default cl_delete_inode
method so we don't have to do an extra check for it.

In the end, I think that the objid issue is not a source of any problems,
because ext3_delete() will only call ext3_truncate() if i_blocks is non-zero,
and it isn't (this is why we weren't seeing any errors from ext3 trying to
truncate "blocks" that are not allocated).

22 years agoDisable the delete_inode overloading for now. It overloads the methods
adilger [Fri, 29 Mar 2002 08:51:04 +0000 (08:51 +0000)]
Disable the delete_inode overloading for now.  It overloads the methods
for _all_ users of that filesystem type, which is obviously bad.

22 years agoAll of the "hack" and FIXME stuff in MDS is now handled by fs-specific methods
adilger [Fri, 29 Mar 2002 08:28:39 +0000 (08:28 +0000)]
All of the "hack" and FIXME stuff in MDS is now handled by fs-specific methods
which are selected at mount time.  This includes journaling support.

Changes OBD_FAIL_WRITE() to include the block device which should be
disabled.  We conditionally compile the "make device readonly" support.

22 years agoAdd definitions of the MDS client filesystem methods to headers and Makefile.
adilger [Fri, 29 Mar 2002 07:07:02 +0000 (07:07 +0000)]
Add definitions of the MDS client filesystem methods to headers and Makefile.

22 years agoAdd in a delete_inode method for use when the inode is finally unlinked,
adilger [Fri, 29 Mar 2002 06:58:54 +0000 (06:58 +0000)]
Add in a delete_inode method for use when the inode is finally unlinked,
so that we can clear out the objid if necessary.  Since delete_inode
is handled by a callback from the VFS when n_link == 0 (and we don't
want to introduce race conditions by checking this at unlink time), we
replace the client delete_inode method with a filesystem-specific MDS
delete_inode call, and then call the client delete_inode method from
within our MDS delete_inode operation.

22 years ago- Replace the complicated waitq story with a much less complicated
braam [Thu, 28 Mar 2002 05:33:38 +0000 (05:33 +0000)]
- Replace the complicated waitq story with a much less complicated
semaphore
- Move semaphore after allocation

22 years agoTry using add_wait_queue_exclusive to avoid waking all (x - 32)
braam [Thu, 28 Mar 2002 03:57:03 +0000 (03:57 +0000)]
Try using add_wait_queue_exclusive to avoid waking all (x - 32)
suspended request threads at once.

22 years ago- Added a queue length and waitqueue to the client structure in an
braam [Thu, 28 Mar 2002 03:42:42 +0000 (03:42 +0000)]
- Added a queue length and waitqueue to the client structure in an
attempt to limit the number of concurrent requests outstanding at a
given time.

22 years agoMove mds_null.c back to mds_ext2.c - we have more than just the journaling
adilger [Thu, 28 Mar 2002 00:00:17 +0000 (00:00 +0000)]
Move mds_null.c back to mds_ext2.c - we have more than just the journaling
methods now (setattr, set_objid, get_objid, readpage), which extracts all
of the filesystem-specific hacks out of MDS.  We now have files with a very
high-density hacks for ext2 and ext3, but at least we can clean it up easily.

22 years agoThere was a race between ll_unlink and ll_create_node: notably,
braam [Wed, 27 Mar 2002 23:35:45 +0000 (23:35 +0000)]
There was a race between ll_unlink and ll_create_node: notably,
ll_unlink would make the inode available on the MDS before the local
dentry/inode on the client was put away.  This could lead to re-using
inode numbers with a concurrent create going on.

We fixed this using the generation number.  We also added the
inode/generation to unlink as a sanity check.

22 years ago- added a find_inode function that iget4() will use to compare inodes.
braam [Wed, 27 Mar 2002 22:54:23 +0000 (22:54 +0000)]
- added a find_inode function that iget4() will use to compare inodes.
  find_inode simply compares generation number with what we get from MDS
- set rep->generation in mds_reint.c:mds_reint_create()

22 years agoActually mount the filesystem in llmount.sh.
adilger [Wed, 27 Mar 2002 22:44:32 +0000 (22:44 +0000)]
Actually mount the filesystem in llmount.sh.

22 years agoThe previously checked-in empty filesystem was dirty for some reason.
adilger [Wed, 27 Mar 2002 22:43:02 +0000 (22:43 +0000)]
The previously checked-in empty filesystem was dirty for some reason.

22 years agoIncrease MDS and OST request buffers to 128k each
braam [Wed, 27 Mar 2002 22:04:59 +0000 (22:04 +0000)]
Increase MDS and OST request buffers to 128k each

22 years agoVarious llmount-client/server fixes
pschwan [Wed, 27 Mar 2002 20:37:48 +0000 (20:37 +0000)]
Various llmount-client/server fixes

22 years agoMore 'rpc_register_service' removal
braam [Wed, 27 Mar 2002 20:36:24 +0000 (20:36 +0000)]
More 'rpc_register_service' removal

22 years ago- simplified ptlrpc_service by using ME auto-unlinking
braam [Wed, 27 Mar 2002 20:31:22 +0000 (20:31 +0000)]
- simplified ptlrpc_service by using ME auto-unlinking
- merged ptlrpc_init_srv and rpc_register_service

22 years agoSimple journal abstractions for the no-journal (ext2) and ext3 cases.
adilger [Wed, 27 Mar 2002 00:46:29 +0000 (00:46 +0000)]
Simple journal abstractions for the no-journal (ext2) and ext3 cases.

22 years agoEmpty filesystems for creating tests. Using these is _much_ faster than
adilger [Tue, 26 Mar 2002 21:14:06 +0000 (21:14 +0000)]
Empty filesystems for creating tests.  Using these is _much_ faster than
using "dd" to create an empty file and then mkfs to create the filesystem.
They are also highly compressed (1000:1) so they don't use much space.

The new_fs() helper in common.sh will use these files instead of dd+mkfs
if they match the parameters given to new_fs().

22 years agoSet an initial value for return code.
adilger [Tue, 26 Mar 2002 20:57:40 +0000 (20:57 +0000)]
Set an initial value for return code.

22 years agoDon't dereference "lock" before it is set.
adilger [Tue, 26 Mar 2002 20:56:59 +0000 (20:56 +0000)]
Don't dereference "lock" before it is set.