)]}'
{
  "log": [
    {
      "commit": "254db57f9b12daba841a4d91ddb9a8161e9c74ba",
      "tree": "e5d4f107d8bdf6278738c85a67b54d96d1a900e8",
      "parents": [
        "6d80c39f9155e289fe8037a8b6352931ff916ceb"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Sep 26 10:23:22 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Sep 26 10:23:22 2008 +0100"
      },
      "message": "GFS2: Support for I/O barriers\n\nThis patch adds barrier support to GFS2. There is not a lot of change\nreally... we just add the barrier flag when we write journal header\nblocks. If the underlying device refuses to support them, we fall back\nto the previous way of doing things (wait for the I/O and hope) since\nthere is nothing else we can do. There is no user configuration,\nbarriers will always be on unless the device refuses to support them.\nThis seems a reasonable solution to me since this is a correctness\nissue.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "2d81afb87972013b43b055b4711dc75fdeeb9ba8",
      "tree": "4fe094c9ec57c6a6fa3e23767facc112f1d9d2df",
      "parents": [
        "048bca223739368aa5b9ce7cfb1d576c32d66cc7"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Thu May 29 18:27:51 2008 -0700"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jun 27 09:39:31 2008 +0100"
      },
      "message": "[GFS2] trivial sparse lock annotations\n\nAnnotate the \u0026sdp-\u003esd_log_lock.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "62be1f71677c53d5e51223807a06ac9052f49b0f",
      "tree": "954b987466f9616934364b716d7fb93dcba12b46",
      "parents": [
        "16c5f06f15ad4e5a5d6e90b78ffb1ac14319e445"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "12o3l@tiscali.nl",
        "time": "Thu Apr 17 17:25:37 2008 +0200"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Apr 18 08:36:09 2008 +0100"
      },
      "message": "[GFS2] fix assertion in log_refund()\n\nsince unsigned, unused \u003e\u003d 0 is always true.\n\nSigned-off-by: Roel Kluin \u003c12o3l@tiscali.nl\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": "ac39aadd0440ae696e6dacaa8006ce1737b17008",
      "tree": "d2a6784809c6bec674879dc865de4150e8b0fb01",
      "parents": [
        "9656b2c14c6ee0806c90a6be41dec71117fc8f50"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jan 10 14:49:43 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:18:03 2008 +0000"
      },
      "message": "[GFS2] Fix assert in log code\n\nAlthough the values were all being calculated correctly, there was a\nrace in the assert due to the way it was using atomic variables. This\nchanges the value we assert on so that we get the same effect by testing\na different variable. This prevents the assert triggering when it shouldn\u0027t.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ff91cc9bb41b62bc4ea7d5ced396fabf97539df9",
      "tree": "8e14975bba539c796cddb30853d76f0a0c2d060e",
      "parents": [
        "fa3742fa8545df20e54aa0953a1873cca3a9bd92"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Dec 14 14:04:34 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:15:58 2008 +0000"
      },
      "message": "[GFS2] Fix log block mapper\n\nA missing offset in the calculation.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "da6dd40d59fa9617ed697b90114e197036901632",
      "tree": "49e869021ed1f911bf3cdf185e9c4ce75c67f42a",
      "parents": [
        "e9e1ef2b6ee401d7c1e1eb38052857b4b206d172"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Dec 11 18:49:21 2007 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:11:46 2008 +0000"
      },
      "message": "[GFS2] Journal extent mapping\n\nThis patch saves a little time when gfs2 writes to the journals by\nkeeping a mapping between logical and physical blocks on disk.\nThat\u0027s better than constantly looking up indirect pointers in\nbuffers, when the journals are several levels of indirection\n(which they typically are).\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e9e1ef2b6ee401d7c1e1eb38052857b4b206d172",
      "tree": "68dff93cf4058eb06b162d800f08ff7752cd1a55",
      "parents": [
        "2066b58b0a038d7aedd24133677efb8856cac3a1"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Mon Dec 10 14:13:27 2007 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:08:25 2008 +0000"
      },
      "message": "[GFS2] Remove function gfs2_get_block\n\nThis patch is just a cleanup.  Function gfs2_get_block() just calls\nfunction gfs2_block_map reversing the last two parameters.  By\nreversing the parameters, gfs2_block_map() may be called directly\nand function gfs2_get_block may be eliminated altogether.\nSince this function is done for every block operation,\nthis streamlines the code and makes it a little bit more efficient.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "1a2781cfa5ed8eb82bb311d684f268c1822dae69",
      "tree": "d65a551d4e0b8b12365fd150fe70cfd9f14f80e2",
      "parents": [
        "00c134756c5ad570a1ad3d6f93a67fc9c25a67ea"
      ],
      "author": {
        "name": "Fabio Massimo Di Nitto",
        "email": "fabbione@ubuntu.com",
        "time": "Fri Nov 16 09:50:40 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:08:06 2008 +0000"
      },
      "message": "[GFS2] Fix runtime issue with UP kernels\n\nThe issue is indeed UP vs SMP and it is totally random.\n\nspin_is_locked() is a bad assertion because there is no correct answer on UP.\non UP spin_is_locked() has to return either one value or another, always.\n\nThis means that in my setup I am lucky enough to trigger the issue and your you\nare lucky enough not to.\n\nthe patch in attachment removes the bogus calls to BUG_ON and according to David\n(in CC and thanks for the long explanation on the problem) we can rely upon\nthings like lockdep to find problem that might be trying to catch.\n\nSigned-off-by: Fabio M. Di Nitto \u003cfabbione@ubuntu.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e35b921185728850c5db3b5d5b356178f931a157",
      "tree": "1f5586886b1a81fe961425da3ccc9fde8f40b538",
      "parents": [
        "ec69b188837a347769e187997d040e84a683b38a"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Nov 09 10:07:21 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:59 2008 +0000"
      },
      "message": "[GFS2] Don\u0027t periodically update the jindex\n\nWe only care about the content of the jindex in two cases,\none is when we mount the fs and the other is when we need\nto recover another journal. In both cases we have to update\nthe jindex anyway, so there is no point in updating it\nperiodically between times, so this removes it to simplify\ngfs2_logd.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ec69b188837a347769e187997d040e84a683b38a",
      "tree": "d16ebc9b83807f99a114efe3a093315f9839b81c",
      "parents": [
        "fd041f0b4045db8646b36d393cbb274db60649f5"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Nov 09 10:01:41 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:56 2008 +0000"
      },
      "message": "[GFS2] Move gfs2_logd into log.c\n\nThis means that we can mark gfs2_ail1_empty static and prepares\nthe way for further changes.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "fd041f0b4045db8646b36d393cbb274db60649f5",
      "tree": "dd09e7317eb471d45c685e3269bd3c20dc686f3e",
      "parents": [
        "2bcd610d2fdea608a8fdac32788fc35a32a2327c"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 08 14:55:03 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:54 2008 +0000"
      },
      "message": "[GFS2] Use atomic_t for journal free blocks counter\n\nThis patch changes the counter which keeps track of the free\nblocks in the journal to an atomic_t in preparation for the\nfollowing patch which will update the log reservation code.\n\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": "b8e7cbb65bcc99630e123422c6829ce3c0fcdf14",
      "tree": "a9f68259b90e9e65ea7f0369f448d580a8944f06",
      "parents": [
        "9ff8ec32e58875022447af619bec6e5aee7c77e4"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 17 09:04:24 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:28 2008 +0000"
      },
      "message": "[GFS2] Add writepages for GFS2 jdata\n\nThis patch resolves a lock ordering issue where we had been getting\na transaction lock in the wrong order with respect to the page lock.\nBy using writepages rather than just writepage, it is then possible\nto start a transaction before locking the page, and thus matching the\nlocking order elsewhere in the code.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "f91a0d3e24e4b0198be5fae20d45a35c40d1efce",
      "tree": "cda8095f9befd25cbfaf5f63a4c8ca26870d45ca",
      "parents": [
        "3cc3f710ce0effe397b830826a1a081fa81f11c7"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Oct 15 16:29:05 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:16 2008 +0000"
      },
      "message": "[GFS2] Remove useless i_cache from inodes\n\nThe i_cache was designed to keep references to the indirect blocks\nused during block mapping so that they didn\u0027t have to be looked\nup continually. The idea failed because there are too many places\nwhere the i_cache needs to be freed, and this has in the past been\nthe cause of many bugs.\n\nIn addition there was no performance benefit being gained since the\ndisk blocks in question were cached anyway. So this patch removes\nit in order to simplify the code to prepare for other changes which\nwould otherwise have had to add further support for this feature.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "5a60c532c9224babc172fafccc9e2fec6937af6f",
      "tree": "1acf07fea71d33fbce3ae0404b05a94087406984",
      "parents": [
        "891ba6d4a5f9e6302bb6542592d73feb4d0d3687"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Sep 26 09:39:31 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:56:34 2007 +0100"
      },
      "message": "[GFS2] Get superblock a different way\n\nThe mapping may be NULL by the time the I/O has completed, so\nwe now get the superblock by a different route (via the bd and glock)\nto avoid this problem.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Wendy Cheng \u003cwcheng@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": "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": "1e1a3d03e927d39282208aed676e49d25129feea",
      "tree": "731cca9b4df1a6164c809f002290a3d7fd6af1f4",
      "parents": [
        "8497a46e178addb27ad1c981befaa17ca788b5c3"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Aug 27 09:45:26 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:55 2007 +0100"
      },
      "message": "[GFS2] Introduce gfs2_remove_from_ail\n\nThis collects together the operations required to remove a gfs2_bufdata\nfrom the ail lists. Its only called from two places to start with, but\nexpect to see more of this function in future.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "bb3b0e3df5420fdf2c6bbb4417525c6d2ef55bbb",
      "tree": "6eab0fa06b4dc9f9a8d62cedaa6879327966a20c",
      "parents": [
        "2d9a4bbf6d28673f4057682cc02d16bf288b4a35"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Aug 16 16:03:57 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:29 2007 +0100"
      },
      "message": "[GFS2] Clean up invalidatepage/releasepage\n\nThis patch fixes some bugs relating to journaled data files by cleaning\nup the gfs2_invalidatepage() and gfs2_releasepage() functions. We now\nnever block during gfs2_releasepage(), instead we always either release\nor refuse to release depending on the status of the buffers.\n\nThis fixes Red Hat bugzillas #248969 and #252392.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Bob Peterson \u003crpeterso@redhat.com\u003e\n"
    },
    {
      "commit": "0f8468c8bef3d04637c924e7bef20ca53018b319",
      "tree": "fc4fa6fedb9fe4e704c8bedc749a0b90a39d0218",
      "parents": [
        "cee23c79d08c57bbbb9923703409af3b17518c58"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Jul 25 10:06:22 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:01 2007 +0100"
      },
      "message": "[GFS2] Detach buf data during in-place writeback\n\nThis is patch 5 of 5 for bug #248176\n\nMetadata corruption was occurring because page references weren\u0027t\nbeing removed in all cases.  I previously added a function called\ndetach_bufdata, but I discovered there already WAS a function out\nthere to do the job.  It\u0027s called gfs2_meta_cache_flush.  So I added\na call to that to remove the page references.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "693ddeabbb3e563f192a7ac74ec04168aa92e8d8",
      "tree": "c82fb871747d8dc05c43d1627bb2f777a869a115",
      "parents": [
        "905d2aefa9e06ebb995df96920d273a516fcd3f9"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Jul 24 14:07:33 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:54:53 2007 +0100"
      },
      "message": "[GFS2] Revert part of earlier log.c changes\n\nThis is patch 2 of 5 for bug #248176.\n\nThe list_move code previously concocted in log.c for bug #238162\n(see https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id\u003d238162#c23)\nnever runs as bh can now never be NULL at this point.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "a0a24741cac414aba5918e9939afafa70c37f952",
      "tree": "aee42799f08cff93d5d67d8093d8fe881978ed17",
      "parents": [
        "ac90a2552500996c529d5f0ddc16a9bf60bf670d"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 15:43:07 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 15:43:07 2007 +0100"
      },
      "message": "[GFS2] Small fixes to logging code\n\nThis reverts part of an earlier patch which tried to reclaim\ngfs2_bufdata structures too early and resulted in a \"use after free\"\ncase (this bit from me). Also a change to not write out log headers\nunless we really need to (in the case of flushing nothing we don\u0027t need\na header) from Bob.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: Bob Peterson \u003crpeterso@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": "89918647a445fddfe223b097e29f775dcfa81eab",
      "tree": "627b21140ea3b2655c6818c03d3df55157c2a387",
      "parents": [
        "1990e917651d58a3c5155d0491431c09e29e385b"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jun 01 15:19:33 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:03 2007 +0100"
      },
      "message": "[GFS2] Make the log reserved blocks depend on block size\n\nThe number of blocks which we reserve in the log at the start of each\ntransaction needs to depends upon the block size since the overhead is\nrelated to the number of \"pointers\" which can be fitted into a single\nblock.\n\nThis relates to Red Hat bz #240435\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "aed3255f2267e2d1d95b9cf7f2995ce24e6c873b",
      "tree": "0a3a82c6064c9dc21347ffbc019d1fb1acb6de67",
      "parents": [
        "2896ee37ccc1f9acb244c9b02becb74a43661009"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "ryusuke@osrg.net",
        "time": "Tue Nov 28 02:53:22 2006 +0900"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:37:04 2006 -0500"
      },
      "message": "[GFS2] fs/gfs2/log.c:log_bmap() fix printk format warning\n\nFix a printk format warning in fs/gfs2/log.c:\nfs/gfs2/log.c:322: warning: format \u0027%llu\u0027 expects type \u0027long long unsigned int\u0027, but argument 3 has type \u0027sector_t\u0027\n\nSigned-off-by: Ryusuke Konishi \u003cryusuke@osrg.net\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "a25311c8e0b7071b129ca9a9e49e22eeaf620864",
      "tree": "6da042d3f24461b88d968d0ca7b85b37252c5e5a",
      "parents": [
        "b004157ab5b374a498a5874cda68c389219d23e7"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 23 11:06:35 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:36:45 2006 -0500"
      },
      "message": "[GFS2] Move gfs2_meta_syncfs() into log.c\n\nBy moving gfs2_meta_syncfs() into log.c, gfs2_ail1_start()\ncan be made static.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b004157ab5b374a498a5874cda68c389219d23e7",
      "tree": "1e7d7d5c62f3e12cc453e763bbff139b47458be4",
      "parents": [
        "ae619320b22f8e0b2bbe4a3a5ac2f9ccf08d7ec2"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 23 10:51:34 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:36:42 2006 -0500"
      },
      "message": "[GFS2] Fix journal flush problem\n\nThis fixes a bug which resulted in poor performance due to flushing\nthe journal too often. The code path in question was via the inode_go_sync()\nfunction in glops.c. The solution is not to flush the journal immediately\nwhen inodes are ejected from memory, but batch up the work for glockd to\ndeal with later on. This means that glocks may now live on beyond the end of\nthe lifetime of their inodes (but not very much longer in the normal case).\n\nAlso fixed in this patch is a bug (which was hidden by the bug mentioned above) in\ncalculation of the number of free journal blocks.\n\nThe gfs2_logd process has been altered to be more responsive to the journal\nfilling up. We now wake it up when the number of uncommitted journal blocks\nhas reached the threshold level rather than trying to flush directly at the\nend of each transaction. This again means doing fewer, but larger, log\nflushes in general.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "23591256d61354e20f12e98d7a496ad5c23de74c",
      "tree": "3013a6e873a6e0a1d55fbace2fba638a978108c0",
      "parents": [
        "42fb00838a644d03f9a2a5fbbe0b668a5ff5df4d"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Oct 13 17:25:45 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Oct 20 09:13:40 2006 -0400"
      },
      "message": "[GFS2] Fix bmap to map extents properly\n\nThis fix means that bmap will map extents of the length requested\nby the VFS rather than guessing at it, or just mapping one block\nat a time. The other callers of gfs2_block_map are audited to ensure\nthey send the correct max extent lengths (i.e. set bh-\u003eb_size correctly).\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "fe1a698ffef5af546dd4a8cd6a1f2f202491c4ef",
      "tree": "6e4bcc487487e2b751e40ef5e531be08e8630419",
      "parents": [
        "1ee48af22ed6dcddea8cdf93c7f2a268cbcf0d56"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 11 13:34:59 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Oct 12 17:10:55 2006 -0400"
      },
      "message": "[GFS2] Fix bug where lock not held\n\nThe log lock needs to be held when manipulating the counter\nfor the number of free journal blocks.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ddacfaf76dd620af9b73343a975749778321b51c",
      "tree": "1199c2a78b5e2cdd6efc6965dd4cd8caa00ec482",
      "parents": [
        "f92a0b6ff43e8e07bbd5b1d2dd1cff130014f3c7"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Oct 03 11:10:41 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Oct 03 11:10:41 2006 -0400"
      },
      "message": "[GFS2] Move logging code into log.c (mostly)\n\nThis moves the logging code from meta_io.c into log.c and glops.c. As a\nresult the routines can now be static and all the logging code is together\nin log.c, leaving meta_io.c with just metadata i/o code in it.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "74669416f747363c14dba2ee6137540ae5a6834f",
      "tree": "280aaacf7ec5e68b0d301b093a7a2358795e339c",
      "parents": [
        "7d308590ae60d1f038a54a94e78a385c5c163452"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Sep 19 11:17:38 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Sep 19 11:17:38 2006 -0400"
      },
      "message": "[GFS2] Use list_for_each_entry_safe_reverse in gfs2_ail1_start()\n\nThis is an attempt to fix Red Hat bz 204364. I don\u0027t hit it all\nthe time, but with these changes, running postmark which used to\ntrigger it on a regular basis no longer appears to. So I\u0027m not\nsaying that its 100% certain that its fixed, but it does look\npromising at the moment.\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": "7a6bbacbb8dec6fbd1242c959250388f907d429e",
      "tree": "8e314f0b3fd6e54154562c0a9b20173d539470a2",
      "parents": [
        "65952fb4e91c159d253bd28ceaf028a86dbb0b02"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 18 17:18:23 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 18 17:18:23 2006 -0400"
      },
      "message": "[GFS2] Map multiple blocks at once where possible\n\nThis is a tidy up of the GFS2 bmap code. The main change is that the\nbh is passed to gfs2_block_map allowing the flags to be set directly\nrather than having to repeat that code several times in ops_address.c.\n\nAt the same time, the extent mapping code from gfs2_extent_map has\nbeen moved into gfs2_block_map. This allows all calls to gfs2_block_map\nto map extents in the case that no allocation is taking place. As a\nresult reads and non-allocating writes should be faster. A quick test\nwith postmark appears to support this.\n\nThere is a limit on the number of blocks mapped in a single bmap\ncall in that it will only ever map blocks which are pointed to\nfrom a single pointer block. So in other words, it will never try\nto do additional i/o in order to satisfy read-ahead. The maximum\nnumber of blocks is thus somewhat less than 512 (the GFS2 4k block\nsize minus the header divided by sizeof(u64)). I\u0027ve further limited\nthe mapping of \"normal\" blocks to 32 blocks (to avoid extra work)\nsince readpages() will currently read a maximum of 32 blocks ahead (128k).\n\nSome further work will probably be needed to set a suitable value\nfor DIO as well, but for now thats left at the maximum 512 (see\nops_address.c:gfs2_get_block_direct).\n\nThere is probably a lot more that can be done to improve bmap for GFS2,\nbut this is a good first step.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "faa31ce85f626dff30ba865684bd1f0ad97a9ca0",
      "tree": "24e2573df5da036c832972fecc227e2628941aac",
      "parents": [
        "16feb9fec0e1f74339bd6992130ceedb3aa9567e"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Sep 13 11:13:27 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Sep 13 11:13:27 2006 -0400"
      },
      "message": "[GFS2] Tidy up log.c\n\nBased upon previous feedback from lkml and also removing some\ncommented out debugging which is no longer needed.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "c53921248c79197befa7caa4c17b1af5c077a2c2",
      "tree": "e446672af150784bee2ac92ccc991a62ed699cca",
      "parents": [
        "7b62536141927212158ab84ce2afda9319ae6f2d"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@linux01.gwdg.de",
        "time": "Tue Sep 05 14:30:40 2006 +0200"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Sep 07 09:42:56 2006 -0400"
      },
      "message": "[GFS2] More style changes\n\nRemove redundant brackets\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@linux01.gwdg.de\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": "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": "5dc39fe621ead2fa2a0439a686be4df185861eae",
      "tree": "3ca539e18bae3f45f0e807165998440db0f7a033",
      "parents": [
        "a2242db0906445491d9ac50bfa756b0de0a25d45"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Thu Aug 24 14:47:17 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Aug 25 09:57:41 2006 -0400"
      },
      "message": "[GFS2] Fix journal off-by-one error\n\nlog_refund() incorrectly assumed that if a transaction had been touched, it\nalways committed buffers to the incore log. Thus, when you got around to\nflushing the log, you would need one more block than you committed, to account\nfor the header. So it automatically set reserved to 1, which had the effect of\nmaking sdp-\u003esd_log_blks_reserved one greater when you got to gfs2_log_flush().\nHowever, if you don\u0027t actually commit anything to the incore log between\nflushes, you don\u0027t need the header, because you aren\u0027t writing anything out.\nWith this patch, log_refund() only increments reservered to account for the\nheader if something has been committed since the last flush.\n\nSigned-off-by: Benjamin E. Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "59a1cc6bdabf5ed148b48808ad1a418d87f5e6bf",
      "tree": "6463071a09201040267702e895d63359e62c393d",
      "parents": [
        "899bb264507cfed83922bf14cd66a073494601ba"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Aug 04 15:41:22 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Aug 04 15:41:22 2006 -0400"
      },
      "message": "[GFS2] Fix lock ordering bug in page fault path\n\nMmapped files were able to trigger a lock ordering bug. Private\nmaps do not need to take the glock so early on. Shared maps do\nunfortunately, however we can get around that by adding a flag\ninto the flags for the struct gfs2_file. This only works because\nwe are taking an exclusive lock at this point, so we know that\nnobody else can be racing with us.\n\nFixes Red Hat bugzilla: #201196\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e0f2bf780a970f7aae9263db2e14149132671cf2",
      "tree": "d763d095028efe598d3acf99389af9891d37bf1f",
      "parents": [
        "634ee0b9f458f3530b9c0ea7e6951dd03db7d678"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 17 09:36:28 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 17 09:36:28 2006 -0400"
      },
      "message": "[GFS2] Fix endian conversion bug\n\nFix an endian coversion bug in log.c spotted by Kevin Anderson.\n\nCc: Kevin Anderson \u003ckanderso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "fd4de2d41a9de2d949b0850d637aa84616f87ab8",
      "tree": "98bcb0cf0c6768f9a882e797fea14ea8de3bb344",
      "parents": [
        "3864caea2ed2b43bfc92e5cfbe001abe3f002a06"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jul 05 13:14:59 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jul 05 13:14:59 2006 -0400"
      },
      "message": "[GFS2] Add cast for printk\n\nCast a uint64_t to unsigned long long for a printk.\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": "fd88de569b802c4a04aaa6ee74667775f4aed8c6",
      "tree": "1766c45303798bf289059afc8f117cf8bc784086",
      "parents": [
        "5bb76af1e089ac186c15c6aa792340d22b63d4b4"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri May 05 16:59:11 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri May 05 16:59:11 2006 -0400"
      },
      "message": "[GFS2] Readpages support\n\nThis adds readpages support (and also corrects a small bug in\nthe readpage error path at the same time). Hopefully this will\nimprove performance by allowing GFS to submit larger lumps of\nI/O at a time.\n\nIn order to simplify the setting of BH_Boundary, it currently gets\nset when we hit the end of a indirect pointer block. There is\nalways a boundary at this point with the current allocation code.\nIt doesn\u0027t get all the boundaries right though, so there is still\nroom for improvement in this.\n\nSee comments in fs/gfs2/ops_address.c for further information about\nreadpages with GFS2.\n\nSigned-off-by: Steven Whitehouse\n"
    },
    {
      "commit": "a74604bee27da7c9506114e5710f91f388e98296",
      "tree": "bfd1c8b14c03022894396c788bf8b0377c5afe49",
      "parents": [
        "a748422ee45725e04e1d3792fa19dfa90ddfd116"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Apr 21 15:10:46 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Apr 21 15:10:46 2006 -0400"
      },
      "message": "[GFS2] sem -\u003e mutex conversion in locking.c\n\nConvert a semaphore to a mutex in locking.c and also tidy\nup one or two loose ends.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "190562bd84a484bf6590425aa2bb4d6d611c112b",
      "tree": "dd99bcd847f8d2376f7836ea9d861a31d1021c71",
      "parents": [
        "fe1bdedc6c16adedc6fd3636185ea91596b1d6eb"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Apr 20 16:57:23 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Apr 20 16:57:23 2006 -0400"
      },
      "message": "[GFS2] Fix a bug: scheduling under a spinlock\n\nAt some stage, a mutex was added to gfs2_glock_put() without\nchecking all its call sites. Two of them were called from\nunder a spinlock causing random delays at various points and\ncrashes.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "f4154ea039bbf45c52840b30c68143a2dc28d4b4",
      "tree": "fa00645dd60a9140e885be96a4aa9797cf4cfeac",
      "parents": [
        "ed3865079b573ef55dc13ab0bfb242ed5ebab4c1"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Apr 11 14:49:06 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Apr 11 14:49:06 2006 -0400"
      },
      "message": "[GFS2] Update journal accounting code.\n\nA small update to the journaling code to change the way that\nthe \"extra\" blocks are accounted for in the journal. These are\nused at a rate of one per 503 metadata blocks or one per 251\njournaled data blocks (or just one if the total number of journaled\nblocks in the transaction is smaller). Since we are using them at\ntwo different rates the old method of accounting for them no longer\nworks and we count them up as required.\n\nSince the \"per transaction\" accounting can\u0027t handle this (there is no\nfixed number of header blocks per transaction) we have to account for\nit in the general journal code. We now require that each transaction\nreserves more blocks than it actually needs to take account of the\npossible extra blocks.\n\nAlso a final fix to dir.c to ensure that all ref counts are handled\ncorrectly.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ed3865079b573ef55dc13ab0bfb242ed5ebab4c1",
      "tree": "805051b854553a04cc6bb5082a74e3030216372b",
      "parents": [
        "b09e593d799560f1a0782c20ac5900058390a26f"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Apr 07 16:28:07 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Apr 07 16:28:07 2006 -0400"
      },
      "message": "[GFS2] Finally get ref counting correct\n\nThe last patch missed some other instances of incorrect ref counting,\nthis fixes all of those too.\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": "484adff8a06cb5d952832f5487ae863f54c0fb69",
      "tree": "e43a9387a3a313cfdb4a34298d532dc7a1b7391c",
      "parents": [
        "7aabffcab47a0f881c7640f5c108e8d3f2e35ebf"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 29 09:12:12 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 29 09:12:12 2006 -0500"
      },
      "message": "[GFS2] Update locking in log.c\n\nReplace the lock_for_trans()/lock_for_flush() functions with an rwsem.\nIn fact the sd_log_flush_lock becomes an rwsem (the write part of it)\nand is extended slightly to cover everything that the lock_for_flush()\nused to cover. The read part of the lock is instead of lock_for_trans().\n\nThis corrects the races in the original code and reduces the code size.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "71b86f562b5eb6f94ea00bba060caa64d0137969",
      "tree": "63d982e09a9cb934fe656afe115031c0a9dc5e4a",
      "parents": [
        "94aabbd99370f738da4f6cb4ea0b94cd9024002f"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Mar 28 14:14:04 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Mar 28 14:14:04 2006 -0500"
      },
      "message": "[GFS2] Further updates to dir and logging code\n\nThis reduces the size of the directory code by about 3k and gets\nreaddir() to use the functions which were introduced in the previous\ndirectory code update.\n\nTwo memory allocations are merged into one. Eliminates zeroing of some\nbuffers which were never used before they were initialised by\nother data.\n\nThere is still scope for further improvement in the directory code.\n\nOn the logging side, a hand created mutex has been replaced by a\nstandard Linux mutex in the log allocation code.\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": "6a6b3d018f4781f108d170f2181281a3c5589dc8",
      "tree": "471b6b8392fbcad36e62161c8f97893f97f0699e",
      "parents": [
        "8d3b35a4af87965d1873872b21e504558f62116a"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Thu Feb 23 10:11:47 2006 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Feb 23 10:11:47 2006 +0000"
      },
      "message": "[GFS2] Patch to remove stats gathering from GFS2\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\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": "4f3df04137d426a0ad1758ab744f5b6d658617bf",
      "tree": "15665b5278481508d72ecd45b79cd400aa5438f1",
      "parents": [
        "64fb4eb7d4cc9de89f4d9b9061adde46ed3b5641"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "steve@chygwyn.com",
        "time": "Wed Jan 18 13:20:16 2006 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "steve@chygwyn.com",
        "time": "Wed Jan 18 13:20:16 2006 +0000"
      },
      "message": "[GFS2] Change memory allocations to GFP_NOFS\n\nI\u0027d like to be rid of these memory allocations entirely so far as is\npossible. For the moment though, mark them GFP_NOFS to make them less\nharmful.\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"
    }
  ]
}
