)]}'
{
  "log": [
    {
      "commit": "3ad62e87cd38817361e165cf4ad496ab76e19e81",
      "tree": "b094e3244239d67d1d1c72abac50a1ba792aaa6a",
      "parents": [
        "048786f1e6042022a8fb2035157a8c8c3a82a4f2"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Mon Jan 28 16:35:13 2008 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:40:05 2008 +0100"
      },
      "message": "[GFS2] Plug an unlikely leak\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "d0109bfa84d6603becac8c2e87b3716f557f2039",
      "tree": "6da41dae00d5784f4e52831d3d40629c1698b00a",
      "parents": [
        "ca390601a8bbb4ab8301a9469d23cdb1cf77e7cb"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Mon Jan 28 11:20:10 2008 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:39:54 2008 +0100"
      },
      "message": "[GFS2] Only do lo_incore_commit once\n\nThis patch is performance related.  When we\u0027re doing a log flush,\nI noticed we were calling buf_lo_incore_commit twice: once for\ndata bufs and once for metadata bufs.  Since this is the same\nfunction and does the same thing in both cases, there should be\nno reason to call it twice.  Since we only need to call it once,\nwe can also make it faster by removing it from the generic \"lops\"\ncode and making it a stand-along static function.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "2bcd610d2fdea608a8fdac32788fc35a32a2327c",
      "tree": "5b3753ff18c1da54bb860dbd67211e6abea78ca7",
      "parents": [
        "8cbc4342478311c2a85260a7ca54d96cb7f71f7b"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 08 14:25:12 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:52 2008 +0000"
      },
      "message": "[GFS2] Don\u0027t add glocks to the journal\n\nThe only reason for adding glocks to the journal was to keep track\nof which locks required a log flush prior to release. We add a\nflag to the glock to allow this check to be made in a simpler way.\n\nThis reduces the size of a glock (by 12 bytes on i386, 24 on x86_64)\nand means that we can avoid extra work during the journal flush.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "9ff8ec32e58875022447af619bec6e5aee7c77e4",
      "tree": "0c626762f334d1cc066113b3e47a2fa02a72af0c",
      "parents": [
        "5561093e2cac9f7d2a77e39cc689b8d2b7f9b2bc"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Sep 28 13:49:05 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:25 2008 +0000"
      },
      "message": "[GFS2] Split gfs2_writepage into three cases\n\nThis patch splits gfs2_writepage into separate functions for each of\nthe three cases: writeback, ordered and journalled. As a result\nit becomes a lot easier to see what each one is doing. The common\ncode is moved into gfs2_writepage_common.\n\nThis fixes a performance bug where we were doing more work than\nstrictly required in the ordered write case.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "16615be18cadf53ee6f8a4f0bdd647f0753421b1",
      "tree": "670c75e931e6d606211f338ee5e8b1d603c96521",
      "parents": [
        "55c0c4ac0be144014651b19e77c9b77f367955de"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 17 10:59:52 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:56:24 2007 +0100"
      },
      "message": "[GFS2] Clean up journaled data writing\n\nThis patch cleans up the code for writing journaled data into the log.\nIt also removes the need to allocate a small \"tag\" structure for each\nblock written into the log. Instead we just keep count of the outstanding\nI/O so that we can be sure that its all been written at the correct time.\nAnother result of this patch is that a number of ll_rw_block() calls\nhave become submit_bh() calls, closing some races at the same time.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "1ad38c437fa33f85ba4b6a85ea8c5478ee72d5bd",
      "tree": "11a5fc7993ba9ae343fc72f03f9a11f312fd6128",
      "parents": [
        "0820ab517e1b100ee3f9584ec27f93309689ebe7"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 03 11:01:33 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:56:12 2007 +0100"
      },
      "message": "[GFS2] Clean up gfs2_trans_add_revoke()\n\nThe following alters gfs2_trans_add_revoke() to take a struct\ngfs2_bufdata as an argument. This eliminates the memory allocation which\nwas previously required by making use of the already existing struct\ngfs2_bufdata. It makes some sanity checks to ensure that the\ngfs2_bufdata has been removed from all the lists before its recycled as\na revoke structure. This saves one memory allocation and one free per\nrevoke structure.\n\nAlso as a result, and to simplify the locking, since there is no longer\nany blocking code in gfs2_trans_add_revoke() we must hold the log lock\nwhenever this function is called. This reduces the amount of times we\ntake and unlock the log lock.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "0820ab517e1b100ee3f9584ec27f93309689ebe7",
      "tree": "db2baf9e6d2ac545c344a412fe31371a09bf9b68",
      "parents": [
        "82e86087bb774cd54d47db4a7c771b5b29bea9ed"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Sun Sep 02 16:47:38 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:56:10 2007 +0100"
      },
      "message": "[GFS2] Use slab operations for all gfs2_bufdata allocations\n\nThe old revoke structure was allocated using kalloc/kfree but\nthere is a slab cache for gfs2_bufdata, so we should use that\nnow that the structures have been converted.\n\nThis is part two of the patch series to merge the revoke\nand gfs2_bufdata structures.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "82e86087bb774cd54d47db4a7c771b5b29bea9ed",
      "tree": "c067773861203becfa6c8cf9e4ee449787cf65f6",
      "parents": [
        "8475487befb29eeb038fef374a7433d276336a25"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Sun Sep 02 15:39:43 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:56:07 2007 +0100"
      },
      "message": "[GFS2] Replace revoke structure with bufdata structure\n\nBoth the revoke structure and the bufdata structure are quite similar.\nThey are basically small tags which are put on lists. In addition to\nwhich the revoke structure is always allocated when there is a bufdata\nstructure which is (or can be) freed. As such it should be possible to\nreduce the number of frees and allocations by using the same structure\nfor both purposes.\n\nThis patch is the first step along that path. It replaces existing uses\nof the revoke structure with the bufdata structure.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "d7b616e252b125f12b007c392f7644053bb6f140",
      "tree": "0794272905a1876ef74144a993f7a76400893813",
      "parents": [
        "9b9107a5a8b190e6cf09bbdf893869c6a9c482cc"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Sun Sep 02 10:48:13 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:56:03 2007 +0100"
      },
      "message": "[GFS2] Clean up ordered write code\n\nThe following patch removes the ordered write processing from\ndatabuf_lo_before_commit() and moves it to log.c. This has the effect of\ngreatly simplyfying databuf_lo_before_commit() and well as potentially\nmaking the ordered write code more efficient.\n\nAs a side effect of this, its now possible to remove ordered buffers\nfrom the ordered buffer list at any time, so we now make use of this in\ninvalidatepage and releasepage to ensure timely release of these\nbuffers.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "9b9107a5a8b190e6cf09bbdf893869c6a9c482cc",
      "tree": "77016dd5476f6ba72605ac0cdcbccec3ce794057",
      "parents": [
        "eaf965270ffff3086ef929e660ace45e862cfd2d"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Aug 27 13:54:05 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:56:00 2007 +0100"
      },
      "message": "[GFS2] Move pin/unpin into lops.c, clean up locking\n\ngfs2_pin and gfs2_unpin are only used in lops.c, despite being\ndefined in meta_io.c, so this patch moves them into lops.c and\nmakes them static. At the same time, its possible to clean up\nthe locking in the buf and databuf _lo_add() functions so that\nwe only need to grab the spinlock once. Also we have to move\nlock_buffer() around the _lo_add() functions since we can\u0027t\ndo that in gfs2_pin() any more since we hold the spinlock\nfor the duration of that function.\n\nAs a result, the code shrinks by 12 lines and we do far fewer\noperations when adding buffers to the log. It also makes the\ncode somewhat easier to read \u0026 understand.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ec217e0ece60f2240772e6f08e0529775846c627",
      "tree": "2b06b31dbb9165cf086580fe589249e8a54313c2",
      "parents": [
        "a947e0335699a1d387c3826e5b8eff9e0afe505e"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Aug 22 11:15:29 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:43 2007 +0100"
      },
      "message": "[GFS2] Patch to protect sd_log_num_jdata\n\nThis is a patch to GFS2 to protect sd_log_num_jdata with the\ngfs2_log_lock.  Without this patch, there is a timing window\nwhere you can get hit the following assert from function\ngfs2_log_flush():\n\ngfs2_assert_withdraw(sdp,\n\t\t\tsdp-\u003esd_log_num_buf + sdp-\u003esd_log_num_jdata \u003d\u003d\n\t\t\tsdp-\u003esd_log_commited_buf +\n\t\t\tsdp-\u003esd_log_commited_databuf);\n\nI\u0027ve tested it on my roth cluster and it fixes the problem.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "905d2aefa9e06ebb995df96920d273a516fcd3f9",
      "tree": "0c4ac325365a673d82bd5b00cbdc0cc22ac7d8e6",
      "parents": [
        "7b08fc620109c2f66575e9ae884f45c37933ea18"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Jul 24 14:05:31 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:54:51 2007 +0100"
      },
      "message": "[GFS2] Move some code inside the log lock\n\nThis is the first of five patches for bug #248176:\n\nThere were still some critical variables being manipulated outside\nthe log_lock spinlock.  That usually resulted in a hang.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "bdcb88562ca90e6cfac13130e147c63aaa4f9e41",
      "tree": "54411e375cfd212e641ec464855f7da14e60cf4a",
      "parents": [
        "3650925893469ccb03dbcc6a440c5d363350f591"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Jul 11 15:55:23 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Aug 14 10:32:04 2007 +0100"
      },
      "message": "[GFS2] soft lockup detected in databuf_lo_before_commit\n\nThis is part 2 of the patch for bug #245832, part 1 of which is already\nin the git tree.\n\nThe problem was that sdp-\u003esd_log_num_databuf was not always being\nprotected by the gfs2_log_lock spinlock, but the sd_log_le_databuf\n(which it is supposed to reflect) was protected.  That meant there\nwas a timing window during which gfs2_log_flush called\ndatabuf_lo_before_commit and the count didn\u0027t match what was\nreally on the linked list in that window.  So when it ran out of\nitems on the linked list, it decremented total_dbuf from 0 to -1 and\nthus never left the \"while(total_dbuf)\" loop.\n\nThe solution is to protect the variable sdp-\u003esd_log_num_databuf so\nthat the value will always match the contents of the linked list,\nand therefore the number will never go negative, and therefore, the\nloop will be exited properly.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "773ed1a044adc868036dee1722b8bca6ce5923e2",
      "tree": "dfa488af453c3afde1f8fa50d8771502808722f5",
      "parents": [
        "eaf5bd3cac92126e5825c6ebc10bee0fba35d555"
      ],
      "author": {
        "name": "Robert Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Jun 20 08:34:06 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:52 2007 +0100"
      },
      "message": "[GFS2] Addendum to the journaled file/unmount patch\n\nThis patch is an addendum to the previous journaled file/unmount patch.\nIt fixes a problem discovered during testing.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "2332c4435bb733b5cd4f612ee57532bd8fde4c1c",
      "tree": "dfa006c482a6e9c1a5e693478b424db0f5492fbe",
      "parents": [
        "2840501ac822c5bf712f67b4b02640e16e145a29"
      ],
      "author": {
        "name": "Robert Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Mon Jun 18 14:50:20 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:47 2007 +0100"
      },
      "message": "[GFS2] assertion failure after writing to journaled file, umount\n\nThis patch passes all my nasty tests that were causing the code to\nfail under one circumstance or another.  Here is a complete summary\nof all changes from today\u0027s git tree, in order of appearance:\n\n1. There are now separate variables for metadata buffer accounting.\n2. Variable sd_log_num_hdrs is no longer needed, since the header\n   accounting is taken care of by the reserve/refund sequence.\n3. Fixed a tiny grammatical problem in a comment.\n4. Added a new function \"calc_reserved\" to calculate the reserved\n   log space.  This isn\u0027t entirely necessary, but it has two benefits:\n   First, it simplifies the gfs2_log_refund function greatly.\n   Second, it allows for easier debugging because I could sprinkle the\n   code with calls to this function to make sure the accounting is\n   proper (by adding asserts and printks) at strategic point of the code.\n5. In log_pull_tail there apparently was a kludge to fix up the\n   accounting based on a \"pull\" parameter.  The buffer accounting is\n   now done properly, so the kludge was removed.\n6. File sync operations were making a call to gfs2_log_flush that\n   writes another journal header.  Since that header was unplanned\n   for (reserved) by the reserve/refund sequence, the free space had\n   to be decremented so that when log_pull_tail gets called, the free\n   space is be adjusted properly.  (Did I hear you call that a kludge?\n   well, maybe, but a lot more justifiable than the one I removed).\n7. In the gfs2_log_shutdown code, it optionally syncs the log by\n   specifying the PULL parameter to log_write_header.  I\u0027m not sure\n   this is necessary anymore.  It just seems to me there could be\n   cases where shutdown is called while there are outstanding log\n   buffers.\n8. In the (data)buf_lo_before_commit functions, I changed some offset\n   values from being calculated on the fly to being constants.\tThat\n   simplified some code and we might as well let the compiler do the\n   calculation once rather than redoing those cycles at run time.\n9. This version has my rewritten databuf_lo_add function.\n   This version is much more like its predecessor, buf_lo_add, which\n   makes it easier to understand.  Again, this might not be necessary,\n   but it seems as if this one works as well as the previous one,\n   maybe even better, so I decided to leave it in.\n10. In databuf_lo_before_commit, a previous data corruption problem\n   was caused by going off the end of the buffer.  The proper solution\n   is to have the proper limit in place, rather than stopping earlier.\n   (Thus my previous attempt to fix it is wrong).\n   If you don\u0027t wrap the buffer, you\u0027re stopping too early and that\n   causes more log buffer accounting problems.\n11. In lops.h there are two new (previously mentioned) constants for\n   figuring out the data offset for the journal buffers.\n12. There are also two new functions, buf_limit and databuf_limit to\n   calculate how many entries will fit in the buffer.\n13. In function gfs2_meta_wipe, it needs to distinguish between pinned\n   metadata buffers and journaled data buffers for proper journal buffer\n   accounting.\tIt can\u0027t use the JDATA gfs2_inode flag because it\u0027s\n   sometimes passed the \"real\" inode and sometimes the \"metadata\n   inode\" and the inode flags will be random bits in a metadata\n   gfs2_inode.\tIt needs to base its decision on which was passed in.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "8fb68595d508fd30ec90939572484b263600376c",
      "tree": "218a457675c111e2224fb57998d38e45d5786bd1",
      "parents": [
        "fad59c1390045b5adb7c7249ec4e77e0f868aca5"
      ],
      "author": {
        "name": "Robert Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Jun 12 11:24:36 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:40 2007 +0100"
      },
      "message": "[GFS2] Journaled file write/unstuff bug\n\nThis patch is for bugzilla bug 283162, which uncovered a number of\nbugs pertaining to writing to files that have the journaled bit on.\nThese bugs happen most often when writing to the meta_fs because\nthe files are always journaled.  So operations like gfs2_grow were\nparticularly vulnerable, although many of the problems could be\nrecreated with normal files after setting the journaled bit on.\nThe problems fixed are:\n\n-GFS2 wasn\u0027t ever writing unstuffed journaled data blocks to their\n in-place location on disk. Now it does.\n\n-If you unmounted too quickly after doing IO to a journaled file,\n GFS2 was crashing because you would discard a buffer whose bufdata\n was still on the active items list.  GFS2 now deals with this\n gracefully.\n\n-GFS2 was losing track of the bufdata for journaled data blocks,\n and it wasn\u0027t getting freed, causing an error when you tried to\n unmount the module.  GFS2 now frees all the bufdata structures.\n\n-There was a memory corruption occurring because GFS2 wrote\n twice as many log entries for journaled buffers.\n\n-It was occasionally trying to write journal headers in buffers\n that weren\u0027t currently mapped.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ddf4b426aababdae4cb96326d7aeb9d119f42c50",
      "tree": "26aceb619f34e7b58e50a0ad0dc4db4e69664edc",
      "parents": [
        "afb853fb4eec380b492a3c369f837359359c28e8"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Fri Jun 01 14:21:38 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:08 2007 +0100"
      },
      "message": "[GFS2] fix jdata issues\n\nThis is a patch for the first three issues of RHBZ #238162\n\nThe first issue is that when you allocate a new page for a file, it will not\nstart off uptodate. This makes sense, since you haven\u0027t written anything to that\npart of the file yet.  Unfortunately, gfs2_pin() checks to make sure that the\nbuffers are uptodate.  The solution to this is to mark the buffers uptodate in\ngfs2_commit_write(), after they have been zeroed out and have the data written\ninto them.  I\u0027m pretty confident with this fix, although it\u0027s not completely\nobvious that there is no problem with marking the buffers uptodate here.\n\nThe second issue is simply that you can try to pin a data buffer that is already\non the incore log, and thus, already pinned. This patch checks to see if this\nbuffer is already on the log, and exits databuf_lo_add() if it is, just like\nbuf_lo_add() does.\n\nThe third issue is that gfs2_log_flush() doesn\u0027t do it\u0027s block accounting\ncorrectly.  Both metadata and journaled data are logged, but gfs2_log_flush()\nonly compares the number of metadata blocks with the number of blocks to commit\nto the ondisk journal.  This patch also counts the journaled data blocks.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "6883562588bc6c70776ecc396ee7eda36c2c8da9",
      "tree": "c683994d1f805914fc18f3247cc86cc011a9aa0b",
      "parents": [
        "f35ac346bc48b2086aa94f031baf1f6237a89de6"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Fri Mar 23 09:05:12 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 01 09:10:50 2007 +0100"
      },
      "message": "[GFS2] Fix log entry list corruption\n\nWhen glock_lo_add and rg_lo_add attempt to add an element to the log, they\ncheck to see if has already been added before locking the log. If another\nprocess adds that element to the log in this window between the check and\nlocking the log, the element will be added to the list twice. This causes\nthe log element list to become corrupted in such a way that the log element\ncan never be successfully removed from the list. This patch pulls the\nlist_empty() check inside the log lock, to remove this window.\n\nSigned-off-by: Benjamin E. Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "8bd9572769767c6fd164cff4e1202df12cb34b4a",
      "tree": "aef67aaaaa443ae233630f3eb5cbbb02aba375cb",
      "parents": [
        "d7c103d0bd29c94f78155a4538faf314e49d9713"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jan 25 10:04:20 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 05 13:37:56 2007 -0500"
      },
      "message": "[GFS2] Fix list corruption in lops.c\n\nThe patch below appears to fix the list corruption that we are seeing on\noccasion. Although the transaction structure is private to a single\nthread, when the queued structures are dismantled during an in-core\ncommit, its possible for a different thread to be trying to add the same\nstructure to another, new, transaction at the same time.\n\nTo avoid this, this patch takes the log spinlock during this operation.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "7020933156ac2a8a7386314933e49948bf0438f7",
      "tree": "2833fb3993762143b32696919342ab7e86c7d471",
      "parents": [
        "9e2dbdac3df300516ffdd9a8631f23164d068a50"
      ],
      "author": {
        "name": "Russell Cattelan",
        "email": "cattelan@redhat.com",
        "time": "Thu Nov 09 11:28:08 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:34:55 2006 -0500"
      },
      "message": "[GFS2] Fix race in logging code\n\nThe log lock is dropped prior to io submittion, but\nthis exposes a hole in which the log data structures\nmay be going away due to a truncate.\nStore the buffer head in a local pointer prior to\ndropping the lock and relay on the buffer_head lock\nfor consitency on the buffer head.\n\nSigned-Off-By: Russell Cattelan \u003ccattelan@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "551676226163379c217e8ec54bd287eab9b8521e",
      "tree": "84abfa1a29c23890124f6dc66790af49917940b4",
      "parents": [
        "e697264709c86040271cdd7abee781d7adbb7f91"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 13 21:47:13 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:33:14 2006 -0500"
      },
      "message": "[GFS2] split and annotate gfs2_log_head\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "c312c4fdc88514dd9522b7858eb879e610aeb9b1",
      "tree": "ab63777ca2eaafc9b46ce347bef1488c38794296",
      "parents": [
        "fe1a698ffef5af546dd4a8cd6a1f2f202491c4ef"
      ],
      "author": {
        "name": "Russell Cattelan",
        "email": "cattelan@redhat.com",
        "time": "Thu Oct 12 09:23:41 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Oct 12 17:11:13 2006 -0400"
      },
      "message": "[GFS2] Pass the correct value to kunmap_atomic\n\nPass kaddr rather than (incorrect) struct page to kunmap_atomic.\n\nSigned-off-by: Russell Cattelan \u003ccattelan@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "907b9bceb41fa46beae93f79cc4a2247df502c0f",
      "tree": "7229e00c1f33fdd097fcacacd6208f2390e4728a",
      "parents": [
        "7276b3b0c77101f8b3f4e45e89a29cf9045e831a"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 25 09:26:04 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 25 09:26:04 2006 -0400"
      },
      "message": "[GFS2/DLM] Fix trailing whitespace\n\nAs per Andrew Morton\u0027s request, removed trailing whitespace.\n\nCc: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "7276b3b0c77101f8b3f4e45e89a29cf9045e831a",
      "tree": "3dd0a981218e490ddf47f925ba20c254e491ce98",
      "parents": [
        "91fa47964165a42401fbc1f41caa63ab78564305"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Sep 21 17:05:23 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Sep 21 17:05:23 2006 -0400"
      },
      "message": "[GFS2] Tidy up meta_io code\n\nFix a bug in the directory reading code, where we might have dereferenced\na NULL pointer in case of OOM. Updated the directory code to use the new\n\u0026 improved version of gfs2_meta_ra() which now returns the first block\nthat was being read. Previously it was releasing it requiring following\ncode to grab the block again at each point it was called.\n\nAlso turned off readahead on directory lookups since we are reading a\nhash table, and therefore reading the entries in order is very\nunlikely. Readahead is still used for all other calls to the\ndirectory reading function (e.g. when growing the hash table).\n\nRemoved the DIO_START constant. Everywhere this was used, it was\nused to unconditionally start i/o aside from a couple of places, so\nI\u0027ve removed it and made the couple of exceptions to this rule into\nseparate functions.\n\nAlso hunted through the other DIO flags and removed them as arguments\nfrom functions which were always called with the same combination of\narguments.\n\nUpdated gfs2_meta_indirect_buffer to be a bit more efficient and\nhopefully also be a bit easier to read.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "7d308590ae60d1f038a54a94e78a385c5c163452",
      "tree": "f672724840a07022ff6deb8022082af35dbad44c",
      "parents": [
        "f3b30912e0eab0e4160c7649a5f2b10be68027b9"
      ],
      "author": {
        "name": "Fabio Massimo Di Nitto",
        "email": "fabbione@ubuntu.com",
        "time": "Tue Sep 19 07:56:29 2006 +0200"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Sep 19 08:45:18 2006 -0400"
      },
      "message": "[GFS2] Export lm_interface to kernel headers\n\n\nlm_interface.h has a few out of the tree clients such as GFS1\nand userland tools.\n\nRight now, these clients keeps a copy of the file in their build tree\nthat can go out of sync.\n\nMove lm_interface.h to include/linux, export it to userland and\nclean up fs/gfs2 to use the new location.\n\nSigned-off-by: Fabio M. Di Nitto \u003cfabbione@ubuntu.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "a67cdbd4579c387c021a17c7447da8b88f2a94f4",
      "tree": "9c2a7825b7b43cd00fff8388f69c96fd6683a405",
      "parents": [
        "cca195c5c09b81065018dee39f4013b95bf47502"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Sep 05 14:41:30 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Sep 05 14:41:30 2006 -0400"
      },
      "message": "[GFS2] Style changes in logging code\n\nAs per Jan Engelhardt\u0027s comments, removed some unused code and\nremoved some brackets which were not required.\n\nCc: Jan Engelhardt \u003cjengelh@linux01.gwdg.de\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ea67eedb211d3418fa62fe3477e0d19b2888225e",
      "tree": "456cb81b1eb23ec76ce6a44e5ce2ce068995baa1",
      "parents": [
        "f2f7ba5237e2fe10ba3e328a4f728b9e1ff141da"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Sep 05 10:53:09 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Sep 05 10:53:09 2006 -0400"
      },
      "message": "[GFS2] Fix end of multi-line structures\n\nAs per Jan Engelhardt\u0027s request, I\u0027ve added a \u0027,\u0027 to the end of\neach of the multi-line structures which didn\u0027t already have\none (most already did).\n\nCc: Jan Engelhardt \u003cjengelh@linux01.gwdg.de\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "82ffa51637f9239aaddd3151fb0d41c657f760db",
      "tree": "13f06a70337998d81a6053dda28e892a7a6fdfcc",
      "parents": [
        "c26687113aea9a11c6f23ddf668f1fe43eca4ce7"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 04 14:47:06 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 04 14:47:06 2006 -0400"
      },
      "message": "[GFS2] More style changes\n\nAs per Jan Engelhardt\u0027s fourth email, this is the first part of the\nchange set with a few minor style points.\n\nCc: Jan Engelhardt \u003cjengelh@linux01.gwdg.de\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "cd915493fce912f1bd838ee1250737ecf33b8fae",
      "tree": "e14ec6643de91f473edb26a89905e710596fe6bc",
      "parents": [
        "a91ea69ffd3f8a0b7139bfd44042ab384461e631"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 04 12:49:07 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 04 12:49:07 2006 -0400"
      },
      "message": "[GFS2] Change all types to uX style\n\nThis makes all fixed size types have consistent names.\n\nCc: Jan Engelhardt \u003cjengelh@linux01.gwdg.de\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e9fc2aa091ab8fa46e60d4c9d06a89305c441652",
      "tree": "8cdf5fcc4adba8cd53c51f824b5d8107ce0f4bba",
      "parents": [
        "c6e6f0ba8fc1dea99c7bd020916f24d533b62697"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Sep 01 11:05:15 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Sep 01 11:05:15 2006 -0400"
      },
      "message": "[GFS2] Update copyright, tidy up incore.h\n\nAs per comments from Jan Engelhardt \u003cjengelh@linux01.gwdg.de\u003e this\nupdates the copyright message to say \"version\" in full rather than\n\"v.2\". Also incore.h has been updated to remove forward structure\ndeclarations which are not required.\n\nThe gfs2_quota_lvb structure has now had endianess annotations added\nto it. Also quota.c has been updated so that we now store the\nlvb data locally in endian independant format to avoid needing\na structure in host endianess too. As a result the endianess\nconversions are done as required at various points and thus the\nconversion routines in lvb.[ch] are no longer required. I\u0027ve\nmoved the one remaining constant in lvb.h thats used into lm.h\nand removed the unused lvb.[ch].\n\nI have not changed the HIF_ constants. That is left to a later patch\nwhich I hope will unify the gh_flags and gh_iflags fields of the\nstruct gfs2_holder.\n\nCc: Jan Engelhardt \u003cjengelh@linux01.gwdg.de\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "623d93555c8884768db65ffc11509c93e50dd4db",
      "tree": "08be5484217e9c7851b129d2794b4afe8e44760c",
      "parents": [
        "899be4d3b7e00bf364d84c1c8cfe8bbbd1e3507b"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Aug 31 12:14:44 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Aug 31 12:14:44 2006 -0400"
      },
      "message": "[GFS2] Fix releasepage bug (fixes direct i/o writes)\n\nThis patch fixes three main bugs. Firstly the direct i/o get_block\nwas returning the wrong return code in certain cases. Secondly, the\nGFS2\u0027s releasepage function was not dealing with cases when clean,\nordered buffers were found still queued on a transaction (which can\nhappen depending on the ordering of journal flushes). Thirdly, the\njournaling code itself needed altering to take account of the\nafter effects of removing the clean ordered buffers from the transactions\nbefore a journal flush.\n\nThe releasepage bug did also show up under \"normal\" buffered i/o\nas well, so its not just a fix for direct i/o. In fact its not\nnormally used in the direct i/o path at all, except when flushing\nexisting buffers after performing a direct i/o write, but that was\nthe code path that led us to spot this.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b8e1aabf218a2037d9d6a3256c33fc6ef96ac44c",
      "tree": "2f2dc82e7b53b6316f1eee996f6d930ffb9aa4c4",
      "parents": [
        "08867605e1d5f575685aa2b5bf575aba3d996758"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Aug 22 16:25:50 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Aug 22 16:25:50 2006 -0400"
      },
      "message": "[GFS2] Another list_del bug\n\nAnother case where list_del should be list_del_init.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "08867605e1d5f575685aa2b5bf575aba3d996758",
      "tree": "04e7903b18d11f5e0240d302c55322c36d561324",
      "parents": [
        "a345da3e8f28ff69e1b14df78f7ddc6e7b78b726"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Aug 22 11:03:57 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Aug 22 11:03:57 2006 -0400"
      },
      "message": "[GFS2] Fix to list_del in lops.c\n\nA list_del should have been a list_del_init in lops.c which was\nresulting in incorrect status returns from list_empty().\n\nSigned-off-by: Steven Whitheouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "15d00c0b91ca776b51b5ab04f79ab35b06670d30",
      "tree": "a970b4f59086ecbf7d20ec9b2201cf26b8446019",
      "parents": [
        "fcc8abc8d4fcdbddc383091449f3696b411aa8fb"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Aug 18 15:51:09 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Aug 18 15:51:09 2006 -0400"
      },
      "message": "[GFS2] Fix leak of gfs2_bufdata\n\nThis fixes a memory leak of struct gfs2_bufdata and also some\nproblems in the ordered write handling code. It needs a bit\nmore testing, but I believe that the reference counting of\nordered write buffers should now be correct.\n\nThis is aimed at fixing Red Hat bugzilla: #201028 and #201082\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b61dde795f120f5dca2c865a1860dd9ff76705a1",
      "tree": "5757a1fdab5598e0284d280fbac32e8db0bf04e8",
      "parents": [
        "2b3d6e2f23362b71de173649002d915d14e07622"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jun 19 10:51:11 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jun 19 10:51:11 2006 -0400"
      },
      "message": "[GFS2] Always include glock in transaction\n\nInclude the glock in the transaction, even when not journaling\ndata in order that ordered write data will be correctly flushed\nwhen the lock is released.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "3a8476dda13bc6690c5c2d5f1d3078048392c188",
      "tree": "1d08bad458d78ce27bec02416491d0f86a454b82",
      "parents": [
        "feaa7bba026c181ce071d5a4884f7f9dd26207a1"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jun 19 09:10:39 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jun 19 09:10:39 2006 -0400"
      },
      "message": "[GFS2] Remove debugging printks\n\nA few of my printks slipped through last time. Also fix a couple of\nminor bugs.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "feaa7bba026c181ce071d5a4884f7f9dd26207a1",
      "tree": "c858deb225917265cb07820730e9764674d133e8",
      "parents": [
        "22da645fd6675b7abc55cf937ddf6132f343e5b9"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jun 14 15:32:57 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jun 14 15:32:57 2006 -0400"
      },
      "message": "[GFS2] Fix unlinked file handling\n\nThis patch fixes the way we have been dealing with unlinked,\nbut still open files. It removes all limits (other than memory\nfor inodes, as per every other filesystem) on numbers of these\nwhich we can support on GFS2. It also means that (like other\nfs) its the responsibility of the last process to close the file\nto deallocate the storage, rather than the person who did the\nunlinking. Note that with GFS2, those two events might take place\non different nodes.\n\nAlso there are a number of other changes:\n\n o We use the Linux inode subsystem as it was intended to be\nused, wrt allocating GFS2 inodes\n o The Linux inode cache is now the point which we use for\nlocal enforcement of only holding one copy of the inode in\ncore at once (previous to this we used the glock layer).\n o We no longer use the unlinked \"special\" file. We just ignore it\ncompletely. This makes unlinking more efficient.\n o We now use the 4th block allocation state. The previously unused\nstate is used to track unlinked but still open inodes.\n o gfs2_inoded is no longer needed\n o Several fields are now no longer needed (and removed) from the in\ncore struct gfs2_inode\n o Several fields are no longer needed (and removed) from the in core\nsuperblock\n\nThere are a number of future possible optimisations and clean ups\nwhich have been made possible by this patch.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "3a8a9a1034813aa99f5ae3150f652d490c5ff10d",
      "tree": "427d4c1499b5c88dbf43c6e490d83cee350083b2",
      "parents": [
        "bd8968010a9a08e67a0ddb3ddee9feb8882e8c2f"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu May 18 15:09:15 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu May 18 15:09:15 2006 -0400"
      },
      "message": "[GFS2] Update copyright date to 2006\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "bd8968010a9a08e67a0ddb3ddee9feb8882e8c2f",
      "tree": "c3960853310112779e2ce583a8c8b524777cb70d",
      "parents": [
        "1b50259bc33f2adfcb4c5fba4b740bf80789df22"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu May 18 14:54:58 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu May 18 14:54:58 2006 -0400"
      },
      "message": "[GFS2] Remove semaphore.h from C files\n\nWe no longer use semaphores, everything has been converted to\nmutex or rwsem, so we don\u0027t need to include this header any more.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b09e593d799560f1a0782c20ac5900058390a26f",
      "tree": "20f04bd2c8ba9c09ac80a7bb1400d341c4fd7e21",
      "parents": [
        "55eccc6d00cea224bf634d44e9871cfe83200ff2"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Apr 07 11:17:32 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Apr 07 11:17:32 2006 -0400"
      },
      "message": "[GFS2] Fix a ref count bug and other clean ups\n\nThis fixes a ref count bug that sometimes showed up a umount time\n(causing it to hang) but it otherwise mostly harmless. At the same\ntime there are some clean ups including making the log operations\nstructures const, moving a memory allocation so that its not done\nin the fast path of checking to see if there is an outstanding\ntransaction related to a particular glock.\n\nRemoves the sd_log_wrap varaible which was updated, but never actually\nused anywhere. Updates the gfs2 ioctl() to run without the kernel lock\n(which it never needed anyway). Removes the \"invalidate inodes\" loop\nfrom GFS2\u0027s put_super routine. This is done in kill super anyway so\nwe don\u0027t need to do it here. The loop was also bogus in that if there\nare any inodes \"stuck\" at this point its a bug and we need to know\nabout it rather than hide it by hanging forever.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e3167ded1f1b16424bc14d5673cdc5414f179970",
      "tree": "1b995e6387b230b1f447aabe30b689d091ee0b52",
      "parents": [
        "cd45697f0ddbb58f3f83c29fe164713ee7765e21"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Mar 30 15:46:23 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Mar 30 15:46:23 2006 -0500"
      },
      "message": "[GFS] Fix bug in endian conversion for metadata header\n\nIn some cases 16 bit functions were being used rather than 32 bit\nfunctions.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b4dc72911d149d7d6b7ffb512bd68906f1cbd33a",
      "tree": "2b00b45b2c63eac9b3aa3b353f1ba44b9a14582d",
      "parents": [
        "c9fd43078f5007c6ca6b3a9cd04c51a8f0e44a20"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 01 17:41:58 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 01 17:41:58 2006 -0500"
      },
      "message": "[GFS2] Fix some bugs\n\nFix a bug I introduced earlier with a kfree() and usage of\na structure in the wrong order. Also try and get the counts\nof the journaled data buffers \"more correct\". Still some work\nto do in this area though.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "5c676f6d359b0404d53f542f02e1359583cb2895",
      "tree": "8741011990ec0a3d0d41fee9f0d7abf6a16834cc",
      "parents": [
        "f3b270a47882b958e9e3c5bd86894e3a7072899a"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 27 17:23:27 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 27 17:23:27 2006 -0500"
      },
      "message": "[GFS2] Macros removal in gfs2.h\n\nAs suggested by Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e.\n\nThe DIV_RU macro is renamed DIV_ROUND_UP and and moved to kernel.h\nThe other macros are gone from gfs2.h as (although not requested\nby Pekka Enberg) are a number of included header file which are now\nincluded individually. The inode number comparison function is\nnow an inline function.\n\nThe DT2IF and IF2DT may be addressed in a future patch.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "568f4c9659a2225b0d29cf86feecbcf25c9045c8",
      "tree": "8ec0fee12313f88a195e0b90924f6b7633ba29f1",
      "parents": [
        "3a8fe9be6c9794e55ac2253eab91d42b28a9dab6"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 27 12:00:42 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 27 12:00:42 2006 -0500"
      },
      "message": "[GFS2] 80 Column audit of GFS2\n\nRequested by:\nPrarit Bhargava \u003cprarit@redhat.com\u003e\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "91ffd7db71e7451f89941a8f428b4daa2a7c1e38",
      "tree": "8771f51fc0771a10ad9669e7187bc3922af97369",
      "parents": [
        "13538b8e46022b6a3721cda097fe3e0d91f16959"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Feb 22 16:41:45 2006 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Feb 22 16:41:45 2006 +0000"
      },
      "message": "[GFS2] Missed deletion of debugging code\n\nOne line which should have been deleted in the last patch\nwas missed.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "13538b8e46022b6a3721cda097fe3e0d91f16959",
      "tree": "7daf34dadd8bcdf5d98a09b17284a7755823c027",
      "parents": [
        "f55ab26a8f92a23988c3e6da28dae4741933a4e2"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Feb 22 11:15:03 2006 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Feb 22 11:15:03 2006 +0000"
      },
      "message": "[GFS2] Add list empty test to databuf_lo_add\n\nHeinz had spotted that I\u0027d forgotten to test in databuf_lo_add()\nthat the data buffer in question hadn\u0027t already been added to\nthe list. This was causing an infinite loop later on in the\n\"before commit\" routine.\n\nThis means that GFS2 is now ready to be tested by everybody.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "f55ab26a8f92a23988c3e6da28dae4741933a4e2",
      "tree": "b6f9e89ce1b2ccde8d81314aeea06f6a02f882f7",
      "parents": [
        "5c4e9e036678fae65c9288e1c00a6f33cd447283"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Feb 21 12:51:39 2006 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Feb 21 12:51:39 2006 +0000"
      },
      "message": "[GFS2] Use mutices rather than semaphores\n\nAs well as a number of minor bug fixes, this patch changes GFS\nto use mutices rather than semaphores. This results in better\ninformation in case there are any locking problems.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "7359a19cc758946aba0e45233b8641256b194884",
      "tree": "d96aaeb2fb239efe6fdb0b4698eb94108719f423",
      "parents": [
        "18ec7d5c3f434aed9661ed10a9e1f48cdeb4981d"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 13 12:27:43 2006 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 13 12:27:43 2006 +0000"
      },
      "message": "[GFS2] Fix for root inode ref count bug\n\nUmount is now working correctly again. The bug was due to\nnot getting an extra ref count when mounting the fs. We\nshould have bumped it by two (once for the internal pointer\nto the root inode from the super block and once for the\ninode hanging off the dcache entry for root).\n\nAlso this patch tidys up the code dealing with looking up\nand creating inodes. We now pass Linux inodes (with gfs2_inodes\nattached) rather than the other way around and this reduces code\nduplication in various places.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "18ec7d5c3f434aed9661ed10a9e1f48cdeb4981d",
      "tree": "a7161a4c4b3592052e6772e1c23849de16cac649",
      "parents": [
        "257f9b4e97e9a6cceeb247cead92119a4396d37b"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Feb 08 11:50:51 2006 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Feb 08 11:50:51 2006 +0000"
      },
      "message": "[GFS2] Make journaled data files identical to normal files on disk\n\nThis is a very large patch, with a few still to be resolved issues\nso you might want to check out the previous head of the tree since\nthis is known to be unstable. Fixes for the various bugs will be\nforthcoming shortly.\n\nThis patch removes the special data format which has been used\nup till now for journaled data files. Directories still retain the\nold format so that they will remain on disk compatible with earlier\nreleases. As a result you can now do the following with journaled\ndata files:\n\n 1) mmap them\n 2) export them over NFS\n 3) convert to/from normal files whenever you want to (the zero length\n    restriction is gone)\n\nIn addition the level at which GFS\u0027 locking is done has changed for all\nfiles (since they all now use the page cache) such that the locking is\ndone at the page cache level rather than the level of the fs operations.\nThis should mean that things like loopback mounts and other things which\ntouch the page cache directly should now work.\n\nCurrent known issues:\n\n 1. There is a lock mode inversion problem related to the resource\n    group hold function which needs to be resolved.\n 2. Any significant amount of I/O causes an oops with an offset of hex 320\n    (NULL pointer dereference) which appears to be related to a journaled data\n    buffer appearing on a list where it shouldn\u0027t be.\n 3. Direct I/O writes are disabled for the time being (will reappear later)\n 4. There is probably a deadlock between the page lock and GFS\u0027 locks under\n    certain combinations of mmap and fs operation I/O.\n 5. Issue relating to ref counting on internally used inodes causes a hang\n    on umount (discovered before this patch, and not fixed by it)\n 6. One part of the directory metadata is different from GFS1 and will need\n    to be resolved before next release.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "a98ab2204f8ed414c5e95fbca28a9f001c53bc7b",
      "tree": "69c309d47bd64015cdecfdd468ec856f294624e8",
      "parents": [
        "4f3df04137d426a0ad1758ab744f5b6d658617bf"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "steve@chygwyn.com",
        "time": "Wed Jan 18 13:38:44 2006 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "steve@chygwyn.com",
        "time": "Wed Jan 18 13:38:44 2006 +0000"
      },
      "message": "[GFS2] Rename gfs2_meta_pin to gfs2_pin\n\nSince we\u0027ll need to pin data if we are going to journal it, then\nI\u0027m renaming this function to make it less confusing. It might also\nbe worth moving it into lops.c since there are no users outside that\nfile.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "64fb4eb7d4cc9de89f4d9b9061adde46ed3b5641",
      "tree": "973c910cdf963f2e546ef0e8fcc93c16a7c04905",
      "parents": [
        "586dfdaaf328d79bb356d760db963b03a75a4131"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "steve@chygwyn.com",
        "time": "Wed Jan 18 13:14:40 2006 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "steve@chygwyn.com",
        "time": "Wed Jan 18 13:14:40 2006 +0000"
      },
      "message": "[GFS2] Remove gfs2_databuf in favour of gfs2_bufdata structure\n\nRemoving the gfs2_databuf structure and using gfs2_bufdata instead\nis a step towards allowing journaling of data without requiring the\nmetadata header on each journaled block. The idea is to merge the\ncode paths for ordered data with that of journaled data, with the\nlog operations in lops.c tacking account of the different types of\nbuffers as they are presented to it. Largely the code path for\nmetadata will be similar too, but obviously through a different set\nof log operations.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b3b94faa5fe5968827ba0640ee9fba4b3e7f736e",
      "tree": "70bd6068b050d2c46e338484f8b03fae4365c6c3",
      "parents": [
        "f7825dcf8c7301cfd3724eb40c5b443cc85ab7b8"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Mon Jan 16 16:50:04 2006 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 16 16:50:04 2006 +0000"
      },
      "message": "[GFS2] The core of GFS2\n\nThis patch contains all the core files for GFS2.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    }
  ]
}
