commit 6e67a802eccc41745b4b526ffc1a5cc50b7ed01b Author: Alberto Bertogli Date: Sat Apr 25 14:39:32 2009 -0300 Update the user guide Signed-off-by: Alberto Bertogli commit 8d28536a5d3a10ecb6f4d1d4cb3b1337f685ed30 Author: Alberto Bertogli Date: Thu Apr 23 20:07:24 2009 -0300 Check jtrans_add() return value in UNIX-alike API Signed-off-by: Alberto Bertogli commit 0c91c44c44415ee1484ee9a189ca5428891eaa4d Author: Alberto Bertogli 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 commit 73f35269b99e6d1584a194416d61bf1088d286b8 Author: Alberto Bertogli 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 commit 1d82e761c95f87cccee081211dff8a33953dd0f1 Author: Alberto Bertogli 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 commit f98796be2c98a5d80ba35b8de850538a43b81b88 Author: Alberto Bertogli 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 commit 12947169968abeda4bf141b8ca101d7f4eee0c24 Author: Alberto Bertogli 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 commit ddaef1cbc2cd355d6da2e2e621005e0741ba884a Author: Alberto Bertogli Date: Tue Apr 21 13:31:53 2009 -0300 Move doxygen stuff to its own directory Signed-off-by: Alberto Bertogli commit b8539fb6febdffc58ae91e478b09313ab5ec0d09 Author: Alberto Bertogli Date: Fri Apr 17 23:13:34 2009 -0300 Fix compilation instructions in the programmer's guide Signed-off-by: Alberto Bertogli commit d75bbe8359656aebba7c5c2441b151c70c8802e8 Author: Alberto Bertogli 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 commit 6d2d3b28f64edfe05107ddd5947512661c0f8f00 Author: Alberto Bertogli 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 commit 242628dccd4912a3eb7d02ef11915228baccdaa2 Author: Alberto Bertogli Date: Fri Apr 17 18:13:58 2009 -0300 Handle unlink() failures in journal_free() Signed-off-by: Alberto Bertogli commit c88c1173e46ad481c14c1fa97765d6c27e59d36d Author: Alberto Bertogli 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 commit f318eae1ae5152ebbf70e67e2dec5919a104ed81 Author: Alberto Bertogli 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 commit 6f3c37f159f317673a6929125a329d082bdb10f1 Author: Alberto Bertogli 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 commit cf835d72bd5c0bc050ee26e52d8f5e3ed18f1363 Author: Alberto Bertogli Date: Wed Apr 15 12:43:56 2009 -0300 tests/behaviour: Allow the user to run a single test Signed-off-by: Alberto Bertogli commit d568f22dcd16364f5ff754d7f775111436357076 Author: Alberto Bertogli Date: Wed Apr 15 12:37:41 2009 -0300 autosync: Fix autosync_check() when not using autosync. Signed-off-by: Alberto Bertogli commit 7982cbf8c2cbd5c10cc4b680153684cf3fbd463f Author: Alberto Bertogli 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 commit cdefccb7f266c12c6633c3e0cef629b804d9f855 Author: Alberto Bertogli Date: Mon Apr 13 23:49:21 2009 -0300 Move disk constants to an internal header Signed-off-by: Alberto Bertogli commit 8072a14aa69d5cf4770f389acb88b8711717de22 Author: Alberto Bertogli Date: Sun Apr 12 12:01:49 2009 -0300 ansi.c: Improve some comments Signed-off-by: Alberto Bertogli commit bf979a84ac5db77d26eee27441e7f53a0eee16d9 Author: Alberto Bertogli 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 commit ab7a1ed32271420277eecbb06349ec6f618003a2 Author: Alberto Bertogli Date: Sat Apr 11 02:05:17 2009 -0300 jiostress: Add autosync support Signed-off-by: Alberto Bertogli commit 5b0626cd75c27add2752163380fbbb131d41f78b Author: Alberto Bertogli 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 commit e35082e8f739c065afc88907389c01a4d699d6b7 Author: Alberto Bertogli 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 commit f19a5855098e11c3ad50051dca342b7e512cb871 Author: Alberto Bertogli Date: Sat Apr 11 01:18:02 2009 -0300 jiostress: Make the use of fault injection optional Signed-off-by: Alberto Bertogli commit 508ba04ba460751dbe588648c93c5895f5738ce3 Author: Alberto Bertogli 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 commit 10629ebd64bef38df1d71901b56a931635313667 Author: Alberto Bertogli Date: Sat Apr 11 00:51:37 2009 -0300 jiostress: Fix new_data offsets Signed-off-by: Alberto Bertogli commit f499d8fc24af248ebc4a890ad93610fd1d7b994c Author: Alberto Bertogli 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 commit 8c3580e1b7c148d382e12c89b516397a78a938c0 Author: Alberto Bertogli Date: Fri Apr 3 01:31:48 2009 -0300 performance.c: Add missing space in output Signed-off-by: Alberto Bertogli commit 5802eb0f5d931d25a7c8f486aaf1398df924f98a Author: Alberto Bertogli Date: Fri Apr 3 01:31:00 2009 -0300 tests/performance: Add a random writes test Signed-off-by: Alberto Bertogli commit 1bd4aa9aa3943a1bbdf6b26466b1697c6cca499b Author: Alberto Bertogli Date: Fri Apr 3 01:23:37 2009 -0300 Use sync_file_range() instead of fdatasync(), if available Signed-off-by: Alberto Bertogli commit 0d244b37ba24ec7564d15a23e7fa1c864c5bd0bb Author: Alberto Bertogli 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 commit f7159675d2a03cc6b75d00ecdf0d6357e473a1ba Author: Alberto Bertogli 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 commit cd918c1ea0508b7bcc2639a77bf218159b21e158 Author: Alberto Bertogli 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 commit 0f91cd19551e7b7de45b80f431430f7d34d83339 Author: Alberto Bertogli 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 commit c45975ce52868eb24fb8e7c9afa35eda6a22e80a Author: Alberto Bertogli Date: Fri Apr 3 01:12:15 2009 -0300 Improve some comments Signed-off-by: Alberto Bertogli commit 466d151725db2355e2df6e1a6822e82591722cdd Author: Alberto Bertogli Date: Fri Apr 3 01:09:46 2009 -0300 Add fsync_dir() to abstract directory fsyncing Signed-off-by: Alberto Bertogli commit 3bcefbe89078778384448f8ae406b0a9d7827091 Author: Alberto Bertogli 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