For the copying permission, look at COPYING.txt -------------------------------------------------------------------------------- NOTE: this code package is only for ext3. although you see the test code for reiserfs and jfs, they are NOT uptodate. so please don't use this code to test reiserfs or jfs -- you need a different set of files for that. The source directory consists of the following files: driver files: -------------- * sba.c: this is where the file system requests are received (we currently code the major and minor numbers of the disk partition directly but can be changed easily to be a variable). * sba_common.c: the request from sbc.c is directed here. sbc_common determines what file system is being tested (ext3/reiserfs/jfs) and sends the request to appropriate test routine. * sba_ext3.c: deciphers the block type and sends back the result to sba_common.c, which injects faults if needed. * other files such as hash2.c, hash_cache/, ht_at_wrappers.c, avl_tree.c contain useful data structures such as hash tables and avl trees. * use install_sba.sh (and uninstall_sba.sh) to load (and unload) the driver user level files (coordinator): ------------------------------- these files are present in test_suits/ directory * specify the block to be failed in the block_spec file * specify the kind of failure to be injected in the fault_spec file * coordinator.c contains several small workloads (create/read/write/...). it reads the block_spec and fault_spec, constructs an appropriate fault, passes it to the driver, runs a small workload to trigger the fault injection. once over, the file system is cleaned, and remounted. * posix_lib.c contains wrapper to the posix functions we call you need to edit both the Makefile (driver and coordinator) appropriately to point to your local Linux source.