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 ... |