Home | Back
commit 371a33e03b4e3c8207a6a6dd03fcc79d2a6451cd
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Thu Feb 9 00:43:20 2012 +0000

    tests: Fix the glob used for the python module
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 1e8afd736112cc238b6937f67efdf5a7e0c1270e
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Thu Feb 9 00:37:18 2012 +0000

    libjio: Fix the order of the gcc arguments (objects vs. dynamic libraries)
    
    Newer gcc versions change the behaviour depending on whether the -l arguments
    come before or after the objects.
    
    gcc -shared -lx a.o -o s.so
      -> ldd s.so  will not show libx.so
    
    gcc -shared a.o -lx -o s.so
      -> ldd s.so  will show libx.so
    
    This patch changes the order of the arguments to match the last case.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 92c8747307527541f5fe87d0e443acea22ff5bff
Author: Lourens NaudeĢ <lourens@methodmissing.com>
Date:   Wed Aug 24 07:29:08 2011 +0100

    Support building on platforms other than Linux as well


commit 25573c9dc5c75b833ce56befa266e6a2e146a0d7
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Feb 27 21:42:53 2011 +0000

    Version 1.02
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 527dd15806492e2a8895c35c0476db2c2d629ad3
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Feb 27 21:39:21 2011 +0000

    tests/util: Update README to reflect the rename of quick-test-run
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 6fb21b1012c0b947760f1b42dfde50d2500b2626
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Feb 27 21:22:37 2011 +0000

    tests/behaviour: Add a test for stressing jtrans_add_[rw]()
    
    This patch adds a test which stresses jtrans_add_[rw]() by creating
    50 * 5 operations with those functions.
    
    This would have caught the bug fixed in commit 251fcad (bindings/python: Fix
    broken realloc() new size, 2011-02-27).
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit bbe7a88cb5fcdeed48154282879fddecaa488c8c
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Feb 27 21:20:03 2011 +0000

    tests/behaviour: Make test 23 more interesting by using different sizes
    
    Test 23 covers basic jtrans_add_[rw], and this patch makes it a little
    bit more interesting by making the size of the write operations differ.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit bc792921d5aa9824e0453bdd473f57cc1dc6991b
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Feb 27 12:01:59 2011 +0000

    tests/stress: Do not depend on libfiu if not asked for it
    
    If the --fi command line option is not passed to jiostress, it won't use it,
    so there's no need to depend on it.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit d3dbfecd3bf139f10a51e062fd06904845073bd3
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Feb 27 11:57:52 2011 +0000

    libjio: Free lingering transaction mutex in jclose()
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 251fcad42e6435006836b3fa01c12011cc7bfb27
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Feb 27 11:39:53 2011 +0000

    bindings/python: Fix broken realloc() new size
    
    This patch fixes the new size parameter given to realloc(), which was (very)
    wrong.
    
    Surprisingly, this simple mistake wasn't caught by the tests OR valgrind under
    Linux, but on FreeBSD made one of the tests crash (behaviour n23), and it did
    appear under valgrind on that platform.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 036fe769755f430dac1d4be7effaa107614145da
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Feb 27 11:17:02 2011 +0000

    Build Python bindings with debugging enabled when doing a debug build
    
    If we invoke make with DEBUG=1 when building Python bindings, pass a debug
    flag to the Python build scripts.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit e9c07535b25fa53dfa5d5fd6850bfc547e1de8a1
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Feb 26 23:11:12 2011 +0000

    bindings/python: Use more appropriate data types
    
    In the bindings we often used long instead of either ssize_t or int, specially
    for return values.
    
    This patch changes the definitions to match the appropriate data type, and
    adds checks for some cases where we need to do so in Python (e.g. we convert
    to (signed) long long and use it as an (unsigned) off_t).
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 2c51596edc7bb67a0be4c692b9f66c3c250feb07
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Feb 26 21:57:01 2011 +0000

    bindings/python: Initialize flags in jfsck()
    
    Since flags is an optional parameter, we need to initialize it.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit b2e18b1fefc2b51baf70d5e1a5c41567214ebfe4
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Feb 26 21:47:21 2011 +0000

    libjio: Fix a memory leak in jtrans_rollback()
    
    jtrans_rollback() creates a new transaction using the data saved by
    jtrans_commit() in op->pdata as the data to commit, which is stored in
    op->buf, making both point to the same location.
    
    After applying the new transaction, we need to free it; however, jtrans_free()
    assumes op->buf points to a different place than op->pdata, and attempts to
    free both. Thus, to prevent a double free in the hand-crafted transaction, we
    need to set one of them to NULL.
    
    However, we currently set both to NULL, effectively leaking the memory used to
    store it.
    
    This patch fixes that bug, by simply removing one of the two assignments.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit a243dffae86f5524c1b49c63a7314e19ad8228bd
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Feb 26 21:46:33 2011 +0000

    samples: Close the files when using the classic API
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit b02aff4eb7523b23ea8d11effb770754e5182bc3
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Feb 26 20:33:48 2011 +0000

    tests/util: Rewrite the scripts in Python
    
    The old scripts had issues when ran from directories with spaces on them,
    among other bugs and portability problems.
    
    This commit rewrites the scripts in Python to make them more robust and
    portable. There is no user-facing changes when invoked via make.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>

delete mode 100755 tests/util/build_lib_env.sh
create mode 100755 tests/util/quick-test-run
delete mode 100755 tests/util/quick-test-run.sh

commit 9075b326ff2699f01aef95a758aa418a2557e14f
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Feb 26 20:22:25 2011 +0000

    samples: Use -std=c99 -pedantic when building
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 897b36fa9041311b8c459e47acfd3057022defcf
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Feb 26 20:20:10 2011 +0000

    tests/stress: Check the file we're going to use does not exist
    
    Since jiostress overrides the file, and it's not useful to run it on already
    created files, make it check if the file exists before using it, to prevent
    accidental destruction.
    
    This also helps to prevent symlink exploits when used with temporary paths.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit a894011dc4e9daed1f6bacbac7ee987e2c894668
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Feb 26 14:18:51 2011 +0000

    Use /usr/bin/env bash instead of /bin/bash
    
    Not every system has /bin/bash, use /usr/bin/env bash which is more portable.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit aa934d0c45bd564ea8a9580793d616a24f700f5e
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Wed Feb 23 00:43:43 2011 +0000

    Make quick-test-run.sh be able to cope when tempfile is not available
    
    tempfile is convenient, but it's from debianutil, so it's better to avoid the
    dependency if we can.
    
    This patch makes quick-test-run.sh use a simple alternative when tempfile is
    not available.
    
    Tested on Ubuntu (with tempfile) and on Fedora 14 (whithout).
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 96b8cd2804340006487c5b913b78acf688b69201
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Tue Feb 22 23:57:07 2011 +0000

    Make tests-fi run longer
    
    To take advantage of the fault injection, we need to do more operations in the
    stress test, otherwise we end up with only about 5 simulated failures.
    
    This patch increases the number of operations from 50 to 400, which ends up
    making about 40 simulated failures and taking about 2 minutes (overall, not
    just the stress test) on my laptop (Thinkpad T400 with a P8400 CPU).
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit cea597c4f3d55544c1175c1eec48d04432abf09c
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Tue Feb 22 23:56:29 2011 +0000

    Fix lenght -> length typo
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit c3c425bdfa3184eac6344882f085c63c0a3bf48b
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Tue Feb 22 23:52:56 2011 +0000

    Fix Python setup.py so that it uses the "new" build directory
    
    Python's setup.py was looking for the library (for build purposes) in the
    libjio directory, instead of libjio/build where it should reside.
    
    This broke the Python build, but went unnoticed because in all my repositories
    I had (purely by chance) a shared library in the libjio directory.
    
    This commit fixes this by making it look in the appropriate place, and also
    making libjio/Makefile to create a link to the library with the soname, so the
    Python interpreter can find the library (we don't need to install it because
    ldconfig will take care of creating it).
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 8fe1ddfcf95efdab6075716978ef813fb0a166e6
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Tue Feb 22 23:37:43 2011 +0000

    Miscellaneous manpage fixes
    
    From: Jonathan Yu <jawnsy@cpan.org>
    
    This patch contains several fixes for the manpage (mostly escaping hyphens and
    misspells).
    
    From Jonathan Yu, with minor additions by me.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit b3b87afa718f33845bb8e072f2cf515580473d6c
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Tue Feb 22 23:03:57 2011 +0000

    Add some scripts and make targets to make testing easier
    
    This commit adds some scripts that are used by two make targets, "tests" and
    "tests-fi", to run a reasonable set of tests against the built library (as
    opposed to using the installed version, which is what the tests do if run
    without a special environment).
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>

create mode 100644 tests/util/README
create mode 100755 tests/util/build_lib_env.sh
create mode 100755 tests/util/quick-test-run.sh
create mode 100755 tests/util/wrap-python

commit 13d64ea3908eac5e5686992e081e99897060142d
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Mon Feb 21 21:55:51 2011 +0000

    Minor code cleanup
    
    This patch contains three minor cleanups, that do not change the build result
    but are purely aesthetic.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit c7d31f215f7f248fa62f35322c8afddfd114da66
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Wed May 26 00:22:45 2010 -0300

    python: Fix int/long argument parsing mismatch
    
    Some PyArg_ParseTuple() invocations were told to parse to an int, but a long
    was given to it instead.
    
    On 64-bit platforms that mismatch caused trouble, but luckily nothing that
    could cause corruption, since the resulting values were given to malloc(),
    which would fail.
    
    This issue came up when running the behaviour tests in Fedora 13.
    
    The patch fixes this by telling PyArg_ParseTuple() we are giving it a long
    instead of an int.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit ee371c36e6e24e1882f89696a2961af6897e0149
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Apr 4 03:44:17 2010 -0300

    Version 1.01


commit ccbc5c76c8080e241d764a839355494ae4634506
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Apr 4 03:03:03 2010 -0300

    tests/stress: Add a --force option
    
    Sometimes it can be useful to force the tests to run, even if conflicting
    options are selected.
    
    Even if they're known to be broken, the way they break can be interesting when
    developing.
    
    This patch adds an --force option to jiostress to let the user do that in an
    easy way.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 874131deeecbd57ef2871ac065cf4dbe422bc266
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Apr 4 02:57:40 2010 -0300

    tests/stress: Make main() return instead of sys.exit()
    
    The sys.exit() are leftovers from the previous code, make it tidy by changing
    them to return statements.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 2b4c0f1a7cd964a2143a2d4455ea02f3ec427cf3
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Apr 4 02:54:27 2010 -0300

    tests/stress: Make --fi and --nproc > 1 incompatible
    
    Due to the way the stress tests are performed (with extensive jfsck), --fi and
    --nproc are not really compatible, as it causes corruption reports that are
    not real.
    
    This patch makes the stress tests not run with that combination of options.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 5610990beaa4550b2c42d179f1beeb8e97a68639
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Apr 4 02:41:42 2010 -0300

    bindings/python: Use ssize_t for s# parameters
    
    Commit 9607741 (bindings/python: Add readv()/writev() support, 2009-07-13)
    defined PY_SSIZE_T_CLEAN, which made PyArg_ParseTuple()'s s# parameters use
    ssize_t for the string length, instead of int (which is the default). That was
    needed for writev().
    
    However, existing instances of s# were not converted, and caused subtle but
    worrying memory corruption.
    
    This patch fixes that by using ssize_t in the appropriate places.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 1ee54b0c2e244ddcba943208bb19ddb66ece2b60
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Thu Sep 24 23:38:57 2009 -0300

    tests/stress: Put decoded status information when a process dies
    
    The status without decoding is not very useful, so this patch puts the
    decoded information to make it easier to read.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 113d9b923874b008593c5178d8504295640bf527
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Thu Sep 24 23:37:21 2009 -0300

    tests/stress: Reduce the max operation length
    
    This patch reduces the maximum operation length, because the defaults were
    too big and caused contention very easily when using multiple processes.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit b52344eece87fd37ca5b747451ac20908079cda8
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Thu Sep 24 23:06:10 2009 -0300

    tests/stress: Fail the test when a stresser subprocess dies
    
    We will also keep the file, just in case it's needed for debug purposes.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 4b8559829f9aa30846d6615a0223e42eba100dc2
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Thu Sep 24 23:05:11 2009 -0300

    tests/stress: Make the default number of operations smaller
    
    Now that we have more complex transactions, 500 is too slow for a default.
    This patch makes it 100, and while at it reorders the --nproc option.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 7249b479c168022f1080463839123567d5cfc7f1
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Thu Sep 24 22:42:19 2009 -0300

    tests/stress: Add an option to keep the file, and remove it by default
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 3bedaaef51ae4f8a47433ce4b18822819d5c6f23
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Thu Sep 24 21:12:43 2009 -0300

    tests/stress: Remove short options for --fi and --as
    
    They're not really useful, so don't waste a letter on them.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 3da17d539ddaaa8f89507b38ee2d905b8e6f5af9
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Thu Sep 24 21:12:11 2009 -0300

    tests/stress: Support running multiple processes
    
    This patch adds support for multiple processes in the stress test. It also
    adds support for two new options (besides the number of processes to use),
    that are useful for running several instances of the stress test in
    parallel.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 0b8fe71c5d789d9484905a300afaafe1af25b4a3
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Thu Sep 24 21:08:04 2009 -0300

    libjio: Always lock ranges in the same order
    
    We must always lock in the same order to avoid deadlocks. I don't know how
    could I've missed this all this time.
    
    For more details, see the big comment inside the patch.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 57f826ce6f8c83a0227630284dc4673f61b459af
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Thu Sep 24 20:45:28 2009 -0300

    jfsck(): Lock the file before operating on it
    
    Callers of jfsck() must not call it when the file is in use. However, it
    doesn't hurt to protect from it by locking the file before using it, to
    protect unwary users. The close() takes care of the unlock.
    
    Note that if the process has locks held on the file, it's already in
    trouble because it will loose them anyway as we're re-opening and closing
    the file, so this patch does not change that situation.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 3e389f6cc617cb6e8dd2dc309ae566fd24709125
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Wed Sep 16 16:28:26 2009 -0300

    jiostress: Use optparse to parse command line options
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 1e48fcaad1ce534758cb68198da30f8c0e0907bf
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Sep 12 12:52:01 2009 -0300

    Version 1.00
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 88022e8d3528867d8318c5064b2251fc528f645c
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Sep 12 12:51:22 2009 -0300

    Minor documentation updates
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit f35db11e592be9964a47ea9858e4f381ee83409d
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Sep 12 03:10:47 2009 -0300

    tests/stress: Generate write-only and read-write transactions
    
    This patch gives jiostress the capability of generating write-only and
    read-write transactions, along with the usual jwrite() operations.
    
    While that makes it much slower, it's much more useful for testing.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit ee668d00f1dc544dc5af78dd4f8b72295897e9ee
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Sep 12 00:58:26 2009 -0300

    Document the assumptions the library makes
    
    We're probably forgetting some things, but it's better to have this than
    nothing.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>

create mode 100644 doc/assumptions

commit f5c4408ccde387c00881abe0dc2ceef41df5ca5b
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Sep 12 00:57:54 2009 -0300

    Document how the library is tested
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>

create mode 100644 tests/README

commit ce2bb89099d029fd10750538e828ba51fca80975
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Sep 12 00:51:43 2009 -0300

    Fix wrong casts
    
    iov_base is void *, and so is pwrite()'s buf argument.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 05eb7f98be9bd022a61e4a69786e8187f4530bd8
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Sep 12 00:50:54 2009 -0300

    libjio/common.h: Add missing #include
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit afa198726851f224857871e8772d9e84f0371708
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Sep 11 01:47:35 2009 -0300

    journal.c: Avoid leaving files around if plockf() fails
    
    If we fail to lock the transaction file, we should remove it before
    returning failure.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 0fac86100dbfddf4a8fed74d2b35687406410c16
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Sep 11 01:46:27 2009 -0300

    Lock regions before creating a new transaction in the journal
    
    We must do it before creating a new transaction, so we know it's not
    possible to have two overlapping transactions on disk at the same time
    (unless using lingering transactions, in which case it makes no
    difference).
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit f258da7c955cc0d932b6d0a5007a13792c6e5c8a
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Thu Sep 10 22:38:53 2009 -0300

    libjio/common.h: Remove unused #include
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 5898467b077c1beeffcca122f294b254c7168093
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Thu Sep 10 22:38:31 2009 -0300

    libjio: Add dependency tracking and independant build dir. to the Makefile
    
    This patch incorporates two Makefile improvements:
    
     - Put the build output in a different directory ("build/" by default)
     - Use dependency tracking, getting the dependencies while compiling (so
       they're almost free)
    
    It could probably be split in different commits, but since they were all
    done at once and it's not even source code, I don't think it's worth the
    effort.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 8f543bc9fa3c0b3c201b58278feb23ce6301fa01
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Aug 16 20:52:16 2009 -0300

    libjio.h: Minor documentation fixes
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 06da4de6612534a395d5c0097d839090c6148d4a
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Aug 16 20:50:28 2009 -0300

    Fix doxygen inclusion in .gitignore
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit e2a7f42fd9fca2416097ca45a1299115cd4ff02e
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Aug 16 20:49:09 2009 -0300

    Update license version
    
    This brings the license up to date with the latest version. Previously we
    only had some of the changes, which is confusing. It's ok to do this since
    it's in the public domain (and it obviously continues to be that way).
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit a71905489d6a9679dde1cfc005e818a83fc2d14b
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Aug 7 16:02:24 2009 -0300

    Version 0.90
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 71f9a75bec64aa44083f65eb2eeed2a309885bb6
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Aug 7 12:49:40 2009 -0300

    jiostress: Enable fault injection in libc string functions
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 5ccfb161014a8678463fe4a8d634aea3e3c7255e
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Tue Aug 4 13:45:57 2009 -0300

    [API BREAK] Implement read operations
    
    This patch implements read operations, allowing the users to read data
    inside a transaction.
    
    That means that transactions have now two kinds of operations inside them:
    read and write.
    
    They work in a similar way they do today: operations are applied in order,
    when it's a write the data is written, when it's a read the data is read.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit a97577e4f5f6df3860e3b73b5ce6da378fd77c5a
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Tue Aug 4 13:10:21 2009 -0300

    jmove_journal(): Fix malloc() size miscalculation
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit d1e28a78c769b3a6e0ef8e556abf7d1311eee152
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Aug 2 04:57:32 2009 -0300

    jtrans_rollback(): Handle jtrans_new() failures
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 1478b52c9271ca42a97c00aeb718d2a5f786bc41
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Aug 2 04:55:34 2009 -0300

    libjio: Define a dummy POSIX_FADV_WILLNEED when it's not available
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit e9d363c27b8c013ad25891d28909b39b0ea1cff3
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Aug 2 04:00:58 2009 -0300

    jiofsck: Handle all possible jfsck() return values
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit bd49b086a34c368ac14d4d9b24308b8d950a2830
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Aug 1 22:01:49 2009 -0300

    jiostress: Increase max probability of libc/mm/* failures
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 2208b37b3f79290ec289b1e0dd48364cc45b06e1
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Aug 1 22:00:34 2009 -0300

    Ignore *.so.* files
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 23da72a6294c978707412bd2b26e36b246aa9798
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Aug 1 21:59:16 2009 -0300

    libjio.h: Add J_EIO to jfsck()'s documentation
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit e1bf1a6012134f673f137745c0d3cbd7f5169b40
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Aug 1 21:58:26 2009 -0300

    journal_new(): Check plockf() return value
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 3a35fadd7df5953ff2c89345d7ccf5db5577d5dd
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Aug 1 21:54:45 2009 -0300

    libjio: Minor aesthetic improvements to trans.c
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit ea2357462f298de0708c9e3a2ec9a87323efcacd
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Aug 1 21:47:53 2009 -0300

    doc: Miscelaneous general improvements to the user guide
    
    The most important changes are the one that clarify what can and cannot be
    done in multi-process/thread applications.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 1aefbaf50bb787363c539ee50ceb8e553fd30f04
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Aug 1 21:45:47 2009 -0300

    [API BREAK] Make jfsck() do not call jfsck_cleanup() by default
    
    J_NOCLEANUP was removed in favour of J_CLEANUP, and the default behaviour
    of jfsck() is now not to clean up unless J_CLEANUP is passed in the flags.
    
    This also fixes the UPGRADING document which had a wrong version number
    for the recent changes.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit a861705c94df826bfb98458511ac221fd708fb54
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Aug 1 11:36:04 2009 -0300

    bindings/python: Add jfsck() return constants
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 9333107f3bfc06258b6c38db3722783548076f59
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Aug 1 11:35:28 2009 -0300

    libjio: Make jfsck() remove the transactions and simplify jfsck_cleanup()
    
    jfsck() is the one which should remove the transactions as it cleans them
    up, and this patch makes it so. This went unnoticed for a long time
    because it almost always performs a jfsck_cleanup() afterwards.
    
    That also allow us to simplify jfsck_cleanup() by making it remove only
    the files we know about, which currently is only the "lock" file, but
    it could be more in the future. The "broken" file is explicitly ignored
    because it should only be removed by jfsck().
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 7c1171a7e1bc17482b8897d817e0197cce965b29
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Jul 31 00:00:29 2009 -0300

    jopen(): Do not leak file descriptors if we fail to write to the lockfile
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 05e7ff26a32f800aef938487f77b5bb37fa434cc
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Thu Jul 30 22:27:23 2009 -0300

    jtrans_commit(): Lock the file regions just before reading the data
    
    There is no need to lock the file regions until we're about to read the
    data, so this patch moves the lock there.
    
    It also isolates the code a bit to make jtrans_commit() more readable.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 94f1fbee1b4be2a510d7a56ae3458b50cb8fbfbd
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Thu Jul 30 22:23:27 2009 -0300

    libjio: jsync() should free transactions in order
    
    Otherwise if we crash during a jsync() the following jfsck() will apply
    transactions with old data.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 64757bf6b17bd4b8cbfe6af6ac318688f9fa6343
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Wed Jul 29 18:05:13 2009 -0300

    libjio: Mark the journal as broken when we should not continue committing
    
    When we have very serious errors that can cause consistency problems if we
    continue to operate on the file, mark the journal as broken by creating a
    file named "broken". journal_new() will automatically fail if the file is
    present, so no further transactions will be allowed.
    
    Transactions that were being committed when we set the flag are not a
    problem because they affect different portions of the file.
    
    This protects from the following scenario:
    
     - Commit data X to a range A-B:
       - Write the transaction 1 to the journal
       - Write the data to the file
       - Attempt to remove the journal file: fail
     - Commit data Y to a range A-B: success
     - Crash
     - jfsck():
       - Finds transaction 1, writes data X to the file which corrupts things
         because data Y is the one that should be there.
    
    We also return -2 in those cases, which means the user should abort
    immediately, but this measure can help to prevent problems when the user
    is not careful or can't stop further commits.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 488fbecb3ce7075e96f1688bd5fb3c4f3b15d6dd
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Jul 26 12:21:36 2009 -0300

    libjio: Take the version from the Makefile instead of hardcoding it
    
    This patch make libjio.pc and Doxygen.base take the version from the
    Makefile instead of hardcoding it.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>

delete mode 100644 libjio/doxygen/Doxyfile.base
create mode 100644 libjio/doxygen/Doxyfile.base.in

commit 11b47633f1a7501e8df149b38c369a0ca0d00e3a
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Jul 26 11:55:33 2009 -0300

    Use .in instead of .skel for template files
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>

create mode 100644 libjio/libjio.pc.in
delete mode 100644 libjio/libjio.skel.pc

commit 17409b8e9da9b229a667b8bd51a8e211aa874af1
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Jul 26 11:52:05 2009 -0300

    Rebuild when the build flags have changed
    
    This patch causes "make" to rebuild the target when the build flags
    (either CFLAGS or PREFIX) have changed.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit a41528419a2944cee9393bf023f2fe073d126dfb
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Jul 24 20:48:52 2009 -0300

    libjio: Try harder to corrupt transaction files as a last resort
    
    Overwriting the header is not enough, because if after doing so a new
    transaction gets committed, we will first write the header and it's
    possible that we crash right there, leaving an apparently OK transaction
    file while it should actually be bogus.
    
    This patch fixes that potential problem by overriding the trailer, so we
    can be sure it will not be considered a valid transaction even after
    partial reuse.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 1f801cf7bb19e418671cb46083c6f7e672e1b854
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Jul 24 20:45:07 2009 -0300

    Install manpages to $(PREFIX)/share/man
    
    That's the place LFS says they should go, not $(PREFIX)/man.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 99d4c9e26bc3c3736caf7766efd26200c3e899da
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Jul 24 20:43:14 2009 -0300

    libjio: Add a soname to the generated .so
    
    This patch adds soname to the generated shared object, so multiple
    incompatible versions of the library can be installed at the same time.
    
    This relies on the compiler using GNU ld, or other linker with a
    compatible syntax.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 2464983140ab2e25fb04a67b3fae169542b44324
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Jul 24 20:38:11 2009 -0300

    Decouple PREFIX and DESTDIR
    
    Sometimes we want to do a "fake install" and then manually move the
    result binaries somewhere else. This patch allows that by adding a new
    DESTDIR variable that can be used to tell the real final location of the
    binaries.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 4443d073e7a32e37b679ff6714f8fb9644b44b79
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Jul 24 20:36:53 2009 -0300

    Allow the user to override the name of the "install" tool to use
    
    On some machines (like Solaris ones) the default "install" tool is
    incompatible with the GNU/BSD one. This patch allows the user to override
    the name of the install tool, so Solaris users can select a GNU/BSD
    install.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit edfb2c046991b76d16d482a0a23361b17f9820b6
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Jul 18 18:36:54 2009 -0300

    libjio: Fix some signed/unsigned comparisons
    
    After building using -Wextra (which enables signed/unsigned comparison
    warnings), these were the ones that made sense fixing.
    
    All the others were valid cases, like:
    
     int rv;
     unsigned int blah;
    
     ...
     rv = read(...);
     if (rv < 0)
     return ERROR;
    
     if (rv == blah)
     ...
    
    Where in the second comparison we know it's safe because rv is >= 0.
    We could add a cast, but it would just make the code uglier for no real
    reason.
    
    The comparisons fixed by this commit are valid warnings, and can usually
    be hit by committing very large transactions.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit d7ec1c640dd73442e7f842515e08f2576072da9e
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Thu Jul 16 12:37:22 2009 -0300

    tests/stress: Remove bogus asserts
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit c66c0220d76c923dcda26aaba2edcdae418b2a6b
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Thu Jul 16 12:10:51 2009 -0300

    jtrans_commit(): Do not unlink the journal file if rollback failed
    
    When the commit fails we attempt to rollback. If that fails too, we should
    not unlink the journal file, because then there is no chance jfsck()
    can recover from the possible corruption.
    
    This patch makes jtrans_commit() keep that file, assuming the caller will
    know that it should stop working on it and attempt to run jfsck().
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit ed3a770ca76365e43be560ebbbabfa65dfcd0fe7
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Thu Jul 16 11:51:04 2009 -0300

    libjio: Check for readdir() faults in jfsck() and jfsck_cleanup()
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 87a9c519df00c3ec700825ed0bdb3a8e6098898e
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Wed Jul 15 15:55:31 2009 -0300

    tests/stress: Show information about the data when corruption is detected
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit de5f21f9ebc9b437a94cdb85fb961ecc5cd2d1e4
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Wed Jul 15 15:55:02 2009 -0300

    tests/stress: Implement pread() properly
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit ed84572312108e0420735cf3639e7be3b02c44b9
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Wed Jul 15 15:54:15 2009 -0300

    tests/stress: Wrap around jfsck()
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit a6530728475a07aebc313728e42726babbc3cef3
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Wed Jul 15 15:49:29 2009 -0300

    tests: Flush stdout before fork()
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit a25fb20b54b3ed12ad8e4a187cf320889a279ddb
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Wed Jul 15 15:48:56 2009 -0300

    tests/behaviour: Add a new test to write a big (~2mb) transaction
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 240bb7d184774105ee394ed19e69e11109ea006d
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Wed Jul 15 15:48:18 2009 -0300

    tests/behaviour: Remove gen_ret_after() in favor of gen_ret_seq()
    
    gen_ret_seq() is much more readable and clear.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 4d14be7bb3c7f70b554a05afcba59538ef06068f
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Wed Jul 15 15:45:54 2009 -0300

    libjio: Use writev() to write journal files
    
    This patch makes libjio use writev() to write journal files. While at this
    point doesn't make much difference, in the future we will be able to
    submit all ops at once, and it will help to implement eager operation
    writing.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit d2d9ad3804e85cd6adf1f9ef42a2d933be633b03
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Wed Jul 15 15:40:35 2009 -0300

    spwrite(): Retry when nothing was written
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 647481368258add0cbff042f661384c1597f07fb
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Wed Jul 15 15:39:33 2009 -0300

    libjio: Use proper types for spread() and spwrite()
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 366140a6d53155134020a4b128c73df1d4752f2a
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Mon Jul 13 14:23:51 2009 -0300

    tests/stress: Make the failure probabilities a bit random
    
    This change makes the probabilities of the points of failure random within
    a range, so the result combination of failures in a long run will vary
    more, increasing code coverage.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 76a37f8fba65a469861f44b35d8fcfaa94275862
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Mon Jul 13 02:45:55 2009 -0300

    tests/behaviour: Add a test for jreadv()/jwritev()
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 3eddb4c1f277e30fbbb86f2f9f30a247f87d6c73
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Mon Jul 13 02:45:34 2009 -0300

    libjio: Fix unix wrappers internal types
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit b76f675659bac375d1c824582fe67310f2878ce1
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Mon Jul 13 02:45:09 2009 -0300

    libjio: Handle lseek() failures in jreadv()
    
    This patch makes jreadv() handle lseek() failures, and while at it removes
    some leftover code.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 96077411ba599c1b0304d8c3ffcb16ad81f6a2ac
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Mon Jul 13 02:43:46 2009 -0300

    bindings/python: Add readv()/writev() support
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 3d0488b17d699e3d83e440e9f0801418350139ce
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Jul 12 20:08:33 2009 -0300

    tests/stress: Include jfsck() and jopen() in the fiu-enabled tests
    
    This patch makes the fiu-enabled tests perform jfsck() and jopen() inside
    the subprocess, so they're fault injected too.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit d637f4bc2e2c9b32b14057e3f53a1be4e334ce6b
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Jul 12 20:07:32 2009 -0300

    tests/stress: Increment chances of libc/mm/* failures
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 345c111a45fbe02c707e97824d85228a8e8702b2
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Jul 12 20:06:54 2009 -0300

    tests/behaviour: Fix payload writing
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit e416a50ba84fcfc76ec90c6f7a79278d74234d5d
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Jul 12 20:05:30 2009 -0300

    [API BREAK] Remove jfsck_return.apply_error
    
    If jfsck() returns successfully, it should be possible to assume the file
    is in a consistent state. However, currently if jfsck() fails to apply a
    transaction it will report that in the jfsck_return structure, which is
    misleading.
    
    This patch changes that behaviour, making jfsck() return error in that
    case, rendering the apply_error member useless.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 840d25e3529a34b4f575c4a3af387b4db51d81c5
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Jul 12 19:46:01 2009 -0300

    Let the user know when jfsck() has failed because of an I/O error
    
    Currently, real I/O errors in some places inside jfsck() will be reported
    as different things, and some of them, like J_ENOJOURNAL, may let the user
    believe the file is consistent while it's not.
    
    This patch fixes that behaviour by adding a new return value, J_EIO, that
    jfsck() will use to report real I/O errors.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 263a5e1d54f567aa76ba80fa752decbe1edca425
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Jul 12 15:10:47 2009 -0300

    tests/behaviour: Add seven new tests
    
    These tests cover previously uncovered behaviour.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit a6b69402e36857faca266e0dff329ea61e23d4ca
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Jul 12 15:09:22 2009 -0300

    Fix minor typo in journal.c
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 553dead5d3ff6e1cc334e76aad6eb416ee001581
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Jul 12 15:08:35 2009 -0300

    Fix jmove_journal() for cases when the destination already exists
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit f95b0dc37fc6e0d36b0e910c869e0a04714439c4
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Jul 12 15:07:45 2009 -0300

    jtrans_add(): Fix error return value for 0 length operations
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit cacd80358a292c020978a2a2f49a1be69252ebcc
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Jul 12 15:07:00 2009 -0300

    libjio: Remove unused checksum_fd()
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit cf556c751da0a1dec4d04c663ad1298f166b56f2
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Jul 12 15:06:14 2009 -0300

    Add files generated by profiling to .gitignore
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit ec7861bd7718f728928928ef036ec069389894db
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Jul 12 13:17:21 2009 -0300

    libjio: Submit the file sync before journal_commit()
    
    In an attempt to reduce journal_commit() fsync() waiting time, we submit
    the sync earlier, hoping that at least some of it will be ready by the
    time we hit journal_commit().
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 726ea913c2a10e2a53f0ca02b8e24cdba82c7cae
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Jul 12 13:05:00 2009 -0300

    libjio: Read previous operation before doing a journal_commit()
    
    That way we give the kernel a chance to send the previous
    journal_add_op()s to the disk, reducing the time spent waiting in
    journal_commit()'s fdatasync().
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit c205c0d3a46e7a420a9ac2a187220e1959c7b226
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Jul 11 00:33:07 2009 -0300

    libjio: Internal journal API cleanup
    
    This patch cleans the internal journal API up, mostly by making a clear
    distinction between struct jtrans and struct journal_op. Now, the latter
    does not know about the former, and jtrans only uses the exported journal
    functions.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 31cc89586bb819134113ea47a3053021f83cf9ea
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Jul 11 00:27:04 2009 -0300

    libjio: Rename internal struct joper to struct operation
    
    The name "joper" can be quite confusing considering how most internal
    journal functions are named. This patch renames it to "operation".
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 0ad0d99fb22829a9b06f47ba8d902bc07cb1cc7d
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Jul 10 17:31:15 2009 -0300

    [API BREAK] Make jopen() jflags unsigned
    
    It's more correct and tidy to make them unsigned, so better make this
    minor change now while we still can. Note that flags is still signed to
    match open().
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 8b4e3ed1d6fc1dc2ac0617e8d55e263870557d68
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Jul 10 17:25:26 2009 -0300

    [API BREAK] Add a flags parameter to jtrans_new()
    
    This patch adds a new flags parameter to jtrans_new(), which we will use
    in the future to let the user select per-transaction behaviour.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit c02fcd2fada1b802d15645287de6161091d91790
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Jul 10 06:40:57 2009 -0300

    [FORMAT CHANGE] Improve the on-disk transaction format
    
    This patch changes the way transactions are stored on disk. The
    fundamental reason for this change is to put the number of operations
    contained in the transaction at the end.
    
    That will allow us to write operations as they are added to the
    transaction, instead of waiting until commit time, which can improve
    performance on some operation-intensive workloads.
    
    Other changes include the addition of a much needed version number (which
    will hopefully keep the library backwards compatible in case of future
    disk format changes), a more robust checksum algorithm, and defined
    endianness of the stored data for portability purporses.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit f30c385b5288a682f0a16cf36d81a1c0fc23476f
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Jul 10 15:34:41 2009 -0300

    tests/stress: When using autosync, sync every 10Mb
    
    Syncing every 2Mb is too unrealistic, so this patch changes it to 10Mb
    instead, which might be low for common scenarios but it's more reasonable
    for a stress test.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit a587895744134232d2938ee6397b042c8a3f0d67
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Jul 10 05:08:46 2009 -0300

    tests/behaviour: Limit runtime resources
    
    To cover from possible resource leaks in the tests, limit the resources
    using setrlimit.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 3072c482961ece8802f40ede1b1e7431e0f6ddeb
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Tue Jul 7 00:19:12 2009 -0300

    libjio: Improve sync_file_range() detection code
    
    This patch makes the sync_file_range() detection code a little cleaner,
    and also makes the stub functions work, just in case we want to use them
    unconditionally in the future.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit fd6fbd3bdbd9999a4ca8813d14964b350a759914
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Mon Jul 6 11:59:55 2009 -0300

    libjio: Add missing clock_gettime() prototype in compat.h
    
    On platforms without clock_gettime(), we provide a stub. However, its
    prototype was missing from the header, and it was also not included from
    autosync.c (its only user so far).
    
    This patch fixes that by adding the missing prototype and #include line.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 4c83349e5a1724ebe21a024c06b5e0b409d31ef3
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Jul 3 22:27:50 2009 -0300

    tests/stress: When using libfiu's POSIX wrapper, inject more failures
    
    With this patch it is possible to run the stress test using libfiu's
    POSIX preload library to simulate failures in the POSIX functions, and see
    how libjio copes with it.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 29d63853f58e0f824c94b1f32199cef57f6632bc
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Jul 3 22:25:48 2009 -0300

    tests/behaviour: Add 5 more tests
    
    This patch adds 5 simple tests for previously untested code.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 39fd3986f51f289c4cc57ccecfee15d15bebf484
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Jul 3 04:50:12 2009 -0300

    libjio: Fix journal_free() error handling in jtrans_commit()
    
    Currently, we risk calling journal_free() twice when it returns an error,
    which leads to a double free().
    
    This patch fixes that by simplifying the code path and making the return
    values more clear.
    
    While at it, rename "rv" to "r" to avoid confusion with the return value.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 9f08a4a928b55b9b77bc62c13baeb8f5b214942e
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Jul 3 04:46:59 2009 -0300

    libjio: Make a free() unconditional (minor style change)
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 21e732893f980527eb029f9f1ecef327fd4a75b8
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Jul 3 04:44:06 2009 -0300

    libjio: Remove bogus free()
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 1b41c374d4f1aea92983f2e3ba160fed0987f66e
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Jul 3 04:43:39 2009 -0300

    libjio: Fix profile build
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 4001c2f2cbc3c739c606d036e59328d616eee190
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Tue Jun 30 00:49:22 2009 -0300

    Update version number
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 94dce8c6b76074bffaff8f98efc13d66eec6a563
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Tue Jun 30 00:45:47 2009 -0300

    Improve portability #warning messages
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 488f7b53b49a1253b3eef12b7482efe2b55f450e
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Jun 26 03:21:51 2009 -0300

    Detect librt availability
    
    This patch checks if librt is available, so we don't link against it if
    not. POSIX says it should be, but some systems do not have it
    (DragonflyBSD, for example).
    
    It's not very nice, but it does the trick.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit b362314efb9858e5bcad156a9bbac97f61f0e71e
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Jun 26 03:01:29 2009 -0300

    Unconditionally free() some pointers
    
    free(NULL) is perfectly valid, so there is no need to check for it.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit aa47917d0c825011c35c3190c81ec00f9e5f62f7
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Jun 26 02:40:12 2009 -0300

    Support platforms lacking fdatasync()
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 7b241f1d51c5c1777edb088a54dd783f550af624
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Jun 26 02:15:02 2009 -0300

    Support platforms without clock_gettime()
    
    Reported by Jonathan Yu.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 3fcd72c2eed7af5bdae8d7f99f4382a25ad42077
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Jun 26 01:33:22 2009 -0300

    libjio: Add missing #include
    
    It's incorrect to assume fcntl.h provides off_t and size_t, we need to
    include sys/types.h for those.
    
    Reported by Jonathan Yu.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 9979a6241770834a1df82308a413cc425f0dd02b
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Jun 26 01:30:34 2009 -0300

    Build the python bindings against the local library
    
    This simple patch allows us to build the Python bindings without having to
    install the library first.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit d701482999b81aff8f0e0e1c7b10e96bc1811af7
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Apr 25 18:13:03 2009 -0300

    bindings/python: Improve setup.py
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 6e67a802eccc41745b4b526ffc1a5cc50b7ed01b
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Apr 25 14:39:32 2009 -0300

    Update the user guide
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 8d28536a5d3a10ecb6f4d1d4cb3b1337f685ed30
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Thu Apr 23 20:07:24 2009 -0300

    Check jtrans_add() return value in UNIX-alike API
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 0c91c44c44415ee1484ee9a189ca5428891eaa4d
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Thu Apr 23 19:51:38 2009 -0300

    [ABI BREAK] Make the public flags more tidy
    
    This patch splits the flags in two sets (jopen() flags and jfsck() flags),
    making them more tidy, while also improving the documentation.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 73f35269b99e6d1584a194416d61bf1088d286b8
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Thu Apr 23 19:40:03 2009 -0300

    Rename jtrans_init() to jtrans_new()
    
    Since jtrans_init() now allocates the structure, it makes sense to rename
    it to something that shows its real behaviour.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 1d82e761c95f87cccee081211dff8a33953dd0f1
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Thu Apr 23 19:01:46 2009 -0300

    [API BREAK] Remove jfsck_cleanup(), make jfsck() cleanup by default
    
    Since cleaning up is the normal behaviour, it makes no sense to keep a
    separate function for doing it.
    
    This patch removes jfsck_cleanup(), and makes jfsck() do it by default
    instead. A flags parameter to jfsck() was added, and a J_NOCLEANUP flag
    was added, to give the user the possibility of avoiding cleaning the
    journal up.
    
    In the future, the jfsck() code will probably get merged with
    jfsck_cleanup(), but it's not done here to make the patch more robust.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit f98796be2c98a5d80ba35b8de850538a43b81b88
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Wed Apr 22 17:26:02 2009 -0300

    Unify Python 2 and 3 bindings
    
    The code is not that nice because of some #ifdefs, but it's much better
    than having two almost equal files.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>

create mode 100644 bindings/python/libjio.c
create mode 100644 bindings/python/setup.py
delete mode 100644 bindings/python2/libjio.c
delete mode 100644 bindings/python2/setup.py
delete mode 100644 bindings/python3/libjio.c
delete mode 100644 bindings/python3/setup.py

commit 12947169968abeda4bf141b8ca101d7f4eee0c24
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Wed Apr 22 10:41:29 2009 -0300

    Add groups to the doxygen documentation
    
    They make the HTML more clear and easy to browse.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>

create mode 100644 libjio/doxygen/groups.doxy

commit ddaef1cbc2cd355d6da2e2e621005e0741ba884a
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Tue Apr 21 13:31:53 2009 -0300

    Move doxygen stuff to its own directory
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>

delete mode 100644 libjio/Doxyfile.base
delete mode 100644 libjio/Doxyfile.internal
delete mode 100644 libjio/Doxyfile.public
create mode 100644 libjio/doxygen/Doxyfile.base
create mode 100644 libjio/doxygen/Doxyfile.internal
create mode 100644 libjio/doxygen/Doxyfile.public
create mode 100644 libjio/doxygen/Makefile

commit b8539fb6febdffc58ae91e478b09313ab5ec0d09
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Apr 17 23:13:34 2009 -0300

    Fix compilation instructions in the programmer's guide
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit d75bbe8359656aebba7c5c2441b151c70c8802e8
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Apr 17 18:35:58 2009 -0300

    [API BREAK] Make jtrans_add() return 0 on success and -1 on error
    
    That way it's more consistent with all the other functions.
    
    As we're already breaking the API in this release, it's a good time to
    make this change.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 6d2d3b28f64edfe05107ddd5947512661c0f8f00
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Apr 17 18:21:06 2009 -0300

    Synchonize the journal directory after every unlink()
    
    This reduces performance in a significant way, but it's safe. Otherwise,
    the unlink() could have returned success but don't really make it to the
    disk.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 242628dccd4912a3eb7d02ef11915228baccdaa2
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Apr 17 18:13:58 2009 -0300

    Handle unlink() failures in journal_free()
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit c88c1173e46ad481c14c1fa97765d6c27e59d36d
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Thu Apr 16 16:06:15 2009 -0300

    Add doxygen documentation to the C library
    
    This patch adds doxygen documentation to the C library, and the Makefile
    targets to generate it.
    
    It generates two documentation sets: public, containing only the public
    API, and internal containing all the library elements.
    
    Almost all the public API has been fully documented, and most internal
    function now have at least a basic description.
    
    While at it, several comments were improved both in content and style.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>

create mode 100644 libjio/Doxyfile.base
create mode 100644 libjio/Doxyfile.internal
create mode 100644 libjio/Doxyfile.public

commit f318eae1ae5152ebbf70e67e2dec5919a104ed81
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Thu Apr 16 13:16:15 2009 -0300

    Fix opening files using O_APPEND
    
    When opening a file in O_APPEND mode, each write must behave just as if a
    lseek(fs->fd, 0, SEEK_END) was performed before it.
    
    We used not to honour that behaviour, but this patch fixes that.
    
    Thanks to Jonathan Yu for the bug report.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 6f3c37f159f317673a6929125a329d082bdb10f1
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Wed Apr 15 12:52:45 2009 -0300

    [API BREAK] Use opaque types instead of structures in the public API
    
    To make the API more tidy, simple and easier to use, this patch removes
    the public struct jfs and struct jtrans, replacing them with opaque types
    jfs_t and jtrans_t.
    
    As a result, jopen() and jtrans_init() now return pointers to the
    structures, and jclose() and jtrans_free() free them.
    
    There is also a small but important semantic change in jtrans_commit(),
    which now returns -2 on unrecovered errors (previously, it was necessary
    for the caller to check the transaction flags).
    
    The version number is also bumped to 0.50, to reflect this major API
    change.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit cf835d72bd5c0bc050ee26e52d8f5e3ed18f1363
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Wed Apr 15 12:43:56 2009 -0300

    tests/behaviour: Allow the user to run a single test
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit d568f22dcd16364f5ff754d7f775111436357076
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Wed Apr 15 12:37:41 2009 -0300

    autosync: Fix autosync_check() when not using autosync.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 7982cbf8c2cbd5c10cc4b680153684cf3fbd463f
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Tue Apr 14 01:03:00 2009 -0300

    tests/performance: Free the buffers allocated in the workers
    
    They weren't really a problem, but cluttered up valgrind reports.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit cdefccb7f266c12c6633c3e0cef629b804d9f855
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Mon Apr 13 23:49:21 2009 -0300

    Move disk constants to an internal header
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 8072a14aa69d5cf4770f389acb88b8711717de22
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Apr 12 12:01:49 2009 -0300

    ansi.c: Improve some comments
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit bf979a84ac5db77d26eee27441e7f53a0eee16d9
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Apr 12 11:53:00 2009 -0300

    Fix "synopsis" spelling
    
    Thanks to Jonathan Yu for pointing it out.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit ab7a1ed32271420277eecbb06349ec6f618003a2
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Apr 11 02:05:17 2009 -0300

    jiostress: Add autosync support
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 5b0626cd75c27add2752163380fbbb131d41f78b
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Apr 11 00:38:38 2009 -0300

    [ABI BREAK] Implement automatic syncing
    
    This patch implements automatic syncing, which works by creating a thread that
    will periodically call jsync(), which is useful when working with lingering
    transactions, which improve performance quite a bit.
    
    As a side effect, it fixes some lingering transaction bugs introduced with the
    isolation of the journal code.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>

create mode 100644 libjio/autosync.c

commit e35082e8f739c065afc88907389c01a4d699d6b7
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Apr 11 01:22:39 2009 -0300

    jiostress: Reduce the maximum operation length
    
    The max default operation was too big for a stress test.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit f19a5855098e11c3ad50051dca342b7e512cb871
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Apr 11 01:18:02 2009 -0300

    jiostress: Make the use of fault injection optional
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 508ba04ba460751dbe588648c93c5895f5738ce3
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Apr 11 00:53:32 2009 -0300

    jiostress: Simplify content generation
    
    There is no need for truly random data, and it takes some time to generate
    it, so this patch replaces it with a simpler generator.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 10629ebd64bef38df1d71901b56a931635313667
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Apr 11 00:51:37 2009 -0300

    jiostress: Fix new_data offsets
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit f499d8fc24af248ebc4a890ad93610fd1d7b994c
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Apr 10 10:52:18 2009 -0300

    tests/performance: Use memset() to initialize the buffer
    
    The content doesn't really matter, but to avoid cluttering up valgrind
    reports we use memset() to initialize it.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 8c3580e1b7c148d382e12c89b516397a78a938c0
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Apr 3 01:31:48 2009 -0300

    performance.c: Add missing space in output
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 5802eb0f5d931d25a7c8f486aaf1398df924f98a
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Apr 3 01:31:00 2009 -0300

    tests/performance: Add a random writes test
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>

create mode 100644 tests/performance/random.c

commit 1bd4aa9aa3943a1bbdf6b26466b1697c6cca499b
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Apr 3 01:23:37 2009 -0300

    Use sync_file_range() instead of fdatasync(), if available
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>

create mode 100644 libjio/compat.c

commit 0d244b37ba24ec7564d15a23e7fa1c864c5bd0bb
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Tue Apr 7 00:03:27 2009 -0300

    Make struct jtrans' len unsigned
    
    It makes no sense for it to be signed, as we never store negative numbers
    in it.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit f7159675d2a03cc6b75d00ecdf0d6357e473a1ba
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Mon Apr 6 23:59:28 2009 -0300

    Move private structures from libjio.h into trans.h
    
    This way we make the header more tidy and readable for the users.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>

create mode 100644 libjio/trans.h

commit cd918c1ea0508b7bcc2639a77bf218159b21e158
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Mon Apr 6 00:17:19 2009 -0300

    [ABI BREAK] Isolate the journal code
    
    This patch creates a new internal API for the on-disk journal
    manipulation, isolating code that was previously scattered around (mostly
    on trans.c).
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>

create mode 100644 libjio/journal.c
create mode 100644 libjio/journal.h

commit 0f91cd19551e7b7de45b80f431430f7d34d83339
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Apr 3 01:12:36 2009 -0300

    manpage: Tell about struct jtrans flags' possible values after a commit
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit c45975ce52868eb24fb8e7c9afa35eda6a22e80a
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Apr 3 01:12:15 2009 -0300

    Improve some comments
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 466d151725db2355e2df6e1a6822e82591722cdd
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Apr 3 01:09:46 2009 -0300

    Add fsync_dir() to abstract directory fsyncing
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 3bcefbe89078778384448f8ae406b0a9d7827091
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Apr 3 01:08:15 2009 -0300

    Only call posix_fadvise() if we know we're going to read the data.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 80a902981843f3579fcb36d4123c5f00d42ce6d4
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Mar 29 01:15:46 2009 -0300

    libjio.h: Remove C++ considerations
    
    In C++ source, doing the 'extern "C"' is a responsibility of the importer,
    it has nothing to do inside our C header.
    
    This reverts commit b903b5e.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 8b08cec2ee53c7e5e0eb7d5f359e7dde1b254bcb
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Mar 29 01:09:14 2009 -0300

    Use posix_fadvise() in jtrans_add()
    
    When adding an operation to a transaction, it's highly likely that the
    affected region will be read when committing.
    
    This patch lets the kernel know that using posix_fadvise(), so it can take
    actions based on that.
    
    Because posix_fadvise() was included in SUSv3 and so far we've relied just
    on SUSv2, we introduce a new header, compat.h, to provide a stub for that
    function so the library can be built in systems that do not implement it.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>

create mode 100644 libjio/compat.h

commit 70ee2209c331e69bda9a6a7d02a138aac56d0797
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Mar 29 00:53:57 2009 -0300

    Fix "committed" typos
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 2383e7c5193ac91f2bbc6c2abcdcaa43cf7b9d94
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Mar 29 00:48:54 2009 -0300

    Improve wording and format in the UPGRADING document
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 0fd8c17c54bcbdae8480ed91a1ba8dbb2bb5f203
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Mar 28 23:06:40 2009 -0300

    Call fdatasync() after writing to the real file
    
    If O_SYNC was not passed to jopen(), then we could loose data because
    jtrans_commit() assumes writes to the file are synchronous. That behaviour
    was undocumented, so the user could have assumed O_SYNC was not necessary.
    
    This patch implements a much more sane semantic by calling fdatasync() on
    the file fd after writing the transaction when lingering transactions are
    not enabled, avoiding the need to open the file with O_SYNC.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 6e8652bb2d1e40dd8ce59ac4a8ca4891f0f06ab9
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Mar 28 02:07:31 2009 -0300

    Move the C library files to a new directory
    
    This patch moves the C library files to a new directory, called libjio, to
    make the directory layout more tidy and to simplify the build system.
    
    As a side-effect of the move, the preloader library now has its own
    Makefile.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>

delete mode 100644 ansi.c
create mode 100644 bindings/preload/Makefile
delete mode 100644 check.c
delete mode 100644 checksum.c
delete mode 100644 common.c
delete mode 100644 common.h
delete mode 100644 doc/libjio.3
delete mode 100644 fiu-local.h
delete mode 100644 jiofsck.c
delete mode 100644 libjio.h
delete mode 100644 libjio.skel.pc
create mode 100644 libjio/Makefile
create mode 100644 libjio/ansi.c
create mode 100644 libjio/check.c
create mode 100644 libjio/checksum.c
create mode 100644 libjio/common.c
create mode 100644 libjio/common.h
create mode 100644 libjio/fiu-local.h
create mode 100644 libjio/jiofsck.c
create mode 100644 libjio/libjio.3
create mode 100644 libjio/libjio.h
create mode 100644 libjio/libjio.skel.pc
create mode 100644 libjio/trans.c
create mode 100644 libjio/unix.c
delete mode 100644 trans.c
delete mode 100644 unix.c

commit f949b1d28af9394f734f3e5243a3a6d58f850aca
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Mar 28 01:34:11 2009 -0300

    Cleanup the samples
    
    This patch does several cleanups to the samples:
    
     - Replace the ugly build and clean scripts with a Makefile.
     - Several style fixes.
     - Do not open the files with O_SYNC.
     - Make them write to different files.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>

create mode 100644 samples/Makefile
delete mode 100755 samples/build
delete mode 100755 samples/clean

commit c7fbc9989650aa923468cdbbed2ce12589cfdec9
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Mar 28 01:04:33 2009 -0300

    Performance tests cleanups
    
    This patch brings the performance tests more up to date, by doing several
    cleanups:
    
     - Fix the Makefile so it's more correct when building and linking.
     - Remove the streaming test, and rename the parallel test to performance.
       The streaming test is exactly the same test as the parallel with one
       thread, so why keep both around?
     - Fix some comments and minor style changes.
     - Expand the help.
     - Mark the functions and static data as static.
     - Use proper types (unsigned long, ssize_t) instead of int.
     - Add checks for the return of some calls like malloc().
     - The blocksize is now passed in Kb, to make it easier to use bigger
       sizes.
     - Do not open the file O_SYNC, it makes no sense.
     - Run jfsck after all the writes, and verify it went well.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>

delete mode 100644 tests/performance/parallel.c
create mode 100644 tests/performance/performance.c
delete mode 100644 tests/performance/streaming.c

commit f5ba4fabcc031f353ab627fc59f7cd6d85230f41
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Mar 28 00:39:55 2009 -0300

    Remove tests/README, it offers no useful information
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>

delete mode 100644 tests/README

commit d1576eb75555c17262c2e8c35021059e51d63bd9
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Mar 28 00:25:22 2009 -0300

    Rename the "auto" test to "behaviour"
    
    The "auto" test checks if the library behaves as expected, so it makes
    sense to rename it to a clearer name.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>

delete mode 100644 tests/auto/README
delete mode 100755 tests/auto/runtests
delete mode 100644 tests/auto/t_corruption.py
delete mode 100644 tests/auto/t_fi.py
delete mode 100644 tests/auto/t_normal.py
delete mode 100644 tests/auto/tf.py
create mode 100644 tests/behaviour/README
create mode 100755 tests/behaviour/runtests
create mode 100644 tests/behaviour/t_corruption.py
create mode 100644 tests/behaviour/t_fi.py
create mode 100644 tests/behaviour/t_normal.py
create mode 100644 tests/behaviour/tf.py

commit 9b563e43633ec4fcfc0cd3b24b97e11f2faa572c
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Mar 28 00:22:51 2009 -0300

    Makefile: Use LDFLAGS for linking
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 9d58ae91df2115d110e41c21e9237b8e503331e5
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Mar 28 00:22:15 2009 -0300

    Makefile: Use only the needed LFS CFLAGS
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 34e078aecbdab20c9ad6ead368fa6f216b35aa43
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Mar 28 00:17:58 2009 -0300

    libjio.h: Fix LFS check
    
    The appropriate check for LFS support is to see if _LARGEFILE_SOURCE is
    defined.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 3e212f5ec9c09e2959eb7c29701ce3c9193161bc
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sat Mar 28 00:14:20 2009 -0300

    Add a stress test
    
    This patch adds a stress tester. It's not a traditional stress test like
    fsx (which can be used to test libjio using the preloading library), but
    uses fault injection to check how the library behaves under random
    failures.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>

create mode 100755 tests/stress/jiostress

commit 25424aaa368622580a206ddd8f3ba2e5ecddf75d
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Thu Mar 26 21:57:03 2009 -0300

    tests/auto: Don't keep running when libfiu is not available
    
    When libfiu is not available, re-raise the exception after printing the
    message. While at it, fix a small (related) documentation mismatch: FI=1
    should be used to build with fault injection support, not FIU=1.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit ee10f2610c4a51c37ca00d31fd6e11a08351d4f1
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Thu Mar 26 21:34:19 2009 -0300

    Add Python 3 bindings
    
    This patch adds Python 3 bindings, based on Python 2 bindings.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>

create mode 100644 bindings/python3/libjio.c
create mode 100644 bindings/python3/setup.py

commit ec2368fcaacd4a325180fbd29eb526c6f8304891
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Thu Mar 26 21:39:51 2009 -0300

    python2: Style changes
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit f63933aad2a2b54458524a1b2cc810fd259ebaf1
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Thu Mar 26 20:27:05 2009 -0300

    Bring the INSTALL document more up to date
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 93201c5517f8d992a25bead855ff2b0a4196571e
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Thu Mar 26 20:15:57 2009 -0300

    Rename python bindings to "python2"
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>

delete mode 100644 bindings/python/libjio.c
delete mode 100644 bindings/python/setup.py
create mode 100644 bindings/python2/libjio.c
create mode 100644 bindings/python2/setup.py

commit 1dfdcca641e402ff1e518ecce57f93f02e83fcb3
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Mon Mar 9 04:06:00 2009 -0200

    Remove recovery tests
    
    They're not really useful anymore, it makes no sense to keep them around.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>

delete mode 100644 tests/recovery/.1.jio/2
delete mode 100644 tests/recovery/.1.jio/3
delete mode 100644 tests/recovery/.1.jio/4
delete mode 100644 tests/recovery/.1.jio/5
delete mode 100644 tests/recovery/.1.jio/6
delete mode 100644 tests/recovery/.1.jio/7
delete mode 100644 tests/recovery/.1.jio/desc
delete mode 100644 tests/recovery/.1.jio/lock
delete mode 100644 tests/recovery/1
delete mode 100644 tests/recovery/mklock
delete mode 100644 tests/recovery/mktrans

commit 4f92a29cbc6511bb44baf2ec6099bebec907f229
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Mon Mar 9 04:02:56 2009 -0200

    Add behaviour tests
    
    This patch adds a suite of tests that check the library's behaviour. It's
    written in Python, so it uses the Python bindings.
    
    It has three different "test suites", one of them uses the fault injection
    support incorporated in a previous patch, so it depends on libfiu being
    installed and libjio having been built with FI=1. The other two test
    suites can be run without libfiu.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>

create mode 100644 tests/auto/README
create mode 100755 tests/auto/runtests
create mode 100644 tests/auto/t_corruption.py
create mode 100644 tests/auto/t_fi.py
create mode 100644 tests/auto/t_normal.py
create mode 100644 tests/auto/tf.py

commit 0e023680595121dcf0c8140b1563ada22b4d237c
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Mon Mar 2 03:54:34 2009 -0200

    Add support for libfiu, a library for fault injection
    
    This patch implements support for libfiu, which is a library for fault
    injection. It adds several "failure points" inside the code, that can (and
    will) be used, in the future, for testing purposes.
    
    In order to avoid a build-time dependency on libfiu, it also adds a
    special libfiu local header to the tree.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>

create mode 100644 fiu-local.h

commit a49c332cb2d493ef61ba662fcdcfab06abaee39c
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Thu Mar 26 19:36:10 2009 -0300

    manpage: Fix small typo
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 936d9f0de47768ee47318078bb738e283ba99cd4
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Wed Mar 18 12:41:19 2009 -0300

    Update the manpage
    
    The manpage was out of date, leaving some functions undocumented and, in
    some cases, not matching the real API.
    
    This patch fixes them by bringing the manpage up to date, and while at it
    also improves some of the writing.
    
    Thanks to Chris Riddoch who reported the documentation mismatches.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 5ad275eda02e03cbdc5b103b4c5b5933e4cc4015
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Wed Mar 18 01:41:32 2009 -0300

    Add samples' binaries to .gitignore
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit fa198ffb04d179ff6ba1f35a17c1338f9ab23010
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Wed Mar 18 01:39:17 2009 -0300

    samples/full.c: Bring it up to date with API changes
    
    This patch fixes two small API-related issues in samples/full.c: the
    introduction of the jdir parameter (in this case, NULL), and the fact that
    we assume read-only mode unless O_RDWR is specified.
    
    Thanks to Chris Riddoch for the bug report.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 29a7cd7f4f0520ce84deb1b4a8336556e5418a59
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Wed Mar 18 01:38:46 2009 -0300

    Fix samples' build script
    
    Thanks to Chris Riddoch for the bug report.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit f7620acdac624642f286d3c37bad6f85bcf97f87
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Wed Mar 18 01:36:26 2009 -0300

    Link the shared library against pthread
    
    Otherwise, we're forcing the user to link against it even if it doesn't
    use it, which seems misleading.
    
    Thanks to Chris Riddoch for the bug report.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 583b8987398374738a620a0bffe5cbf94def26f4
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Mar 15 20:56:56 2009 -0300

    Place libjio under public domain
    
    While I think OSL 3.0 is nice, I think public domain is nicer in this
    case.
    
    As I am the sole copyright owner, it's ok for me to change the license.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>

create mode 100644 LICENSE
delete mode 100644 doc/LICENSE

commit fe4ca8d2c200493957fea75ad58915f56aee8326
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Mon Mar 9 03:21:53 2009 -0200

    jtrans_rollback(): Set the new transaction's numops
    
    The number of operations is not properly set in the new transaction. It
    used to work fine just by chance (most code doesn't look into numops), but
    the previous patch uncovered this problem.
    
    This patch fixes it by setting numops appropriately.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 385f81d3862354c8522aedf06da20a3a8545833f
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Mar 8 23:30:17 2009 -0200

    check.c: Improve comments
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 94fef4e511d2b39590d9c5fa14c5ba7832465516
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Mar 8 23:14:31 2009 -0200

    jfsck(): Check there's enough room for the checksum before computing it
    
    Before computing the checksum in jfsck(), see if the file is long enough
    to contain it. Otherwise, if the transaction file was truncated, we
    would check the checksum anyways.
    
    This is usually not a problem because the checksums shouldn't match, but
    it's better to play safe. Also, it properly report such transactions as
    broken instead of corrupt.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit e944720de06adb5cdc907537f896c56681dac882
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Mon Mar 2 21:01:01 2009 -0200

    libjio 0.24
    
    Release 0.24. This patch also changes the UPGRADING document to correct a
    version typo.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 6deb15627f906e2728a91753520f7eb49013ba18
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Mon Mar 2 03:48:40 2009 -0200

    Documentation overhaul
    
    This patch is a much-needed documentation overhaul.
    
    It changes the documentation format from LyX to rst, updates all the
    important docs, and removes the redundant ones.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>

delete mode 100644 doc/big_transactions
delete mode 100644 doc/guide.lyx
create mode 100644 doc/guide.rst
delete mode 100644 doc/guide.txt
delete mode 100644 doc/jiofsck
delete mode 100644 doc/layout
delete mode 100644 doc/libjio.html
delete mode 100644 doc/libjio.lyx
create mode 100644 doc/libjio.rst
delete mode 100644 doc/libjio.txt
create mode 100644 doc/source_layout
delete mode 100644 doc/threads
delete mode 100644 doc/tids
create mode 100644 doc/tids.rst

commit f4f54460bfe2fd3321da7ed0e3c51d167094066f
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Mar 1 22:37:53 2009 -0200

    Clarify some sanity checks in fill_trans()
    
    This patch rewrites some of the checks in fill_trans() to make them more
    clear and readable.
    
    While at it, fix a minor coding style deviation.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 5b2cc6ff1001a637c350a0491db7f44b2a32ec1b
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Mar 1 22:37:15 2009 -0200

    Remove *.gcda files when doing make clean
    
    They're generated by profile runs.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 991c13f664a12858f32974df952e531c42a63f7f
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Mar 1 22:36:40 2009 -0200

    Split Makefile's DEBUG into DEBUG and PROFILE
    
    There is no reason why a debug build should include the profile compiler
    options, it just adds noise. This patch decouples the DEBUG option into
    DEBUG and PROFILE.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 7b27277aed27424d3563aad21159926cf0334846
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Feb 27 13:18:28 2009 -0200

    jtrans_rollback(): Check if ftruncate() fails
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 58faf056fff9f3306faabc99ab24c557ccded737
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Thu Feb 26 21:11:26 2009 -0200

    Add checks for operations inside jfsck_cleanup()


commit 9b42486d89cc99e2d3ba042bf98a9884a75e7a8b
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Thu Feb 26 20:34:43 2009 -0200

    Remove *.gcno in "make clean"
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 9ed0e6af25adc463773078d51333a5fbfe49eb9f
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Thu Feb 26 20:34:20 2009 -0200

    Use $(ALL_CFLAGS) when building jiofsck
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 0d1bf4cec86ae81df5e0c995025e5a9c07e20d66
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Thu Feb 26 20:28:55 2009 -0200

    Use the appropriate data types in Python bindings
    
    When PyArg_ParseTuple() expects an int, it's better if we really give it
    an int. Otherwise, if we use a larger data type, we might get garbage
    because it will assume it's the size of an int.
    
    We had some cases when that could happen, and this patch gets rid of them.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 9b6ee79bc86c65a99901c1fca066856b60296761
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Wed Feb 25 05:48:31 2009 -0200

    In Python bindings, check return values and raise exceptions accordingly


commit 95a4c5d5372cd43244c132c80cbef8c4e5956045
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Wed Feb 25 05:06:23 2009 -0200

    Properly cast buffers in Python bindings
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 3aefb8d965efb6646a32459958b64989375d4449
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Wed Feb 25 04:33:05 2009 -0200

    Initialize jdir properly in Python bindings
    
    Otherwise, when we do not get jdir as a parameter, it has rubbish which
    causes jfsck() and jfsck_cleanup() not to find the journal directory.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit e7abd100c45fe57426f6fe37b00a075c66e86287
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Wed Feb 25 04:32:37 2009 -0200

    Replace malloc() + strcpy() with strdup()
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 76715c9ffb5983a40867376f14f0474a9e685208
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Wed Feb 25 04:15:16 2009 -0200

    Free a strdup()ed buffer on an error condition
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit b3617834242ae8330836f305945627da57a62210
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Wed Feb 25 04:07:09 2009 -0200

    [ABI BREAK] Clarify and improve jfsck()'s return codes
    
    The return codes were undocumented, and the Python interface was really
    unclear. This patch improves all that by properly documenting the possible
    return values of jfsck(), and uses them in the Python bindings.
    
    It breaks the ABI.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 97c8dc5e4894dad4ca71073bf33aed5044d3e5e3
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Feb 22 19:36:15 2009 -0200

    Add a pkg-config support
    
    This patch adds pkg-config support by generating a libjio.pc file and
    installing it accordingly.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>

create mode 100644 libjio.skel.pc

commit 3fd76c54a0a2cd4a6b611cb428b5143a5f86f6e4
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Feb 22 05:09:24 2009 -0200

    Split the default CFLAGS in optional and mandatory parts
    
    The library cannot be built without some flags, so split CFLAGS in two,
    making it easier for the user to pass them in the command line without
    having to include the mandatory ones.
    
    While at it, also pass the flags when linking, because there may be
    relevant flags. We should use LDFLAGS for this, tho; but for now we'll
    take the simpler approach.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 9143f7fa888869ed2d88a95886f35e089f6948a7
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Feb 22 04:35:16 2009 -0200

    Make the fact that get_jtfile() cannot fail explicit
    
    Since get_jtfile() can't fail, why keep checking for it?
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 0cf5dbd40ff3a579208e47eb3260ebf54dfd996e
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Feb 22 04:20:25 2009 -0200

    Improve error handling in free_tid()
    
    This patch improves free_tid()'s error handling by detecting when access()
    fails with anything else but EACCES (which is expected) and leaving the
    max untouched.
    
    get_jtfile() can't fail, so it's not a problem either.
    
    While at it, remove some unused assignments.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 38e3f986fc53eaae2c9b5b617c52965d30c7e35e
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Sun Aug 3 12:33:52 2008 -0300

    Remove obsolete utilities
    
    Since darcs is not used anymore, and it makes no sense to include these in
    the repository, remove them.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>

delete mode 100644 utils/exporter
delete mode 100644 utils/release

commit 220599af3864d11d7bfd6b2bcb810a37752328f0
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Jul 25 19:55:54 2008 -0300

    By default, hide the compiler line when building
    
    It makes the warnings stand out more. If desired, the full line can be
    shown by building with V=1.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 34f635e2f8474ba89903c5e9b2d822b53c7204bb
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Jul 25 19:53:51 2008 -0300

    Default to build using C99 and -pedantic
    
    We use long long, so it makes sense to use the C99 flag. And we always
    want the compiler to be strict about it, so use -pedantic by default.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 4138295f2cd884439d7cc252adb5012eb35d852f
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Jul 25 19:46:13 2008 -0300

    Unify the Makefile
    
    There is no need to keep a separate Make.conf file, so merge it with the
    Makefile.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>

delete mode 100644 Make.conf

commit 44036b8f98d669ac85fdf36176d4685cb162b97c
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Jul 25 19:40:31 2008 -0300

    Fix _FILE_OFFSET_BITS check in libjio.h
    
    The check was wrong; luckily _FILE_OFFSET_BITS is often (if not always)
    undefined if not set to 64 so there shouldn't be any problems with this
    change.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit d5715e472549de00f68dce5c8c4c07648dd3364a
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Jul 25 17:55:48 2008 -0300

    Change "paralell" into "parallel"
    
    Sadly, it was a common typo and requires even a rename.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>

delete mode 100644 tests/performance/paralell.c
create mode 100644 tests/performance/parallel.c

commit bebc2aaefd896cd5c78f6c563697527c83b265d3
Author: Alberto Bertogli <albertito@blitiri.com.ar>
Date:   Fri Jul 25 17:51:55 2008 -0300

    Update website and email address.
    
    The new website is http://blitiri.com.ar/p/libjio/, and my new email
    address is albertito@blitiri.com.ar.
    
    Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>


commit 75041d0670514cf3f8335f0370cd4cc2853ed4d5
Author: Alberto Bertogli <albertito@gmail.com>
Date:   Thu Mar 13 00:55:26 2008 -0200

    Add a .gitignore file

create mode 100644 .gitignore

commit 8b8c9e1ebadc2034c0ba396e6be4d5e125007586
Author: Alberto Bertogli <albertito@gmail.com>
Date:   Sun Jul 15 08:28:30 2007 -0300

    Re-license under the OSL 3.0.
    
    As I am the sole copyright owner, I'm allowed to upgrade the license to
    the new version.
    
    Signed-off-by: Alberto Bertogli <albertito@gmail.com>


commit 51742931c62f6302f7b9351e12270f5efa3873f9
Author: Alberto Bertogli <albertito@gmail.com>
Date:   Fri Mar 30 05:11:55 2007 +0000

    Make a prototype more explicit.
    
    Signed-off-by: Alberto Bertogli <albertito@gmail.com>


commit 2a09eda4841c67a846a7cdfc5fcf3f02fae58e69
Author: Alberto Bertogli <albertito@gmail.com>
Date:   Fri Mar 30 05:10:10 2007 +0000

    Cast a parameter in mmap() to properly identify it as a void *.
    
    A sparse run complained about the first mmap() parameter (void *start, we have
    it fixed to 0) is an integer being used as a pointer.
    
    We could use NULL, but it might not be 0, and the mmap() manpage recommends it
    to be 0, so we cast it to a void * instead.
    
    Signed-off-by: Alberto Bertogli <albertito@gmail.com>


commit 9e64bf506b6e54819fd96e7fefc4bd6737ededd0
Author: Alberto Bertogli <albertito@gmail.com>
Date:   Tue Dec 20 01:23:34 2005 +0000

    libjio 0.23
    
    Signed-off-by: Alberto Bertogli <albertito@gmail.com>


commit 574ee6d4f5e58e49dd425b3ab1a3b1596a852ddf
Author: Alberto Bertogli <albertito@gmail.com>
Date:   Sun Dec 4 ...