)]}'
{
  "log": [
    {
      "commit": "0c7a531a200480c7bc447260376973d830da9069",
      "tree": "778c5b97c869212f80bf94bd66ed04637e72e31d",
      "parents": [
        "091bf7624d1c90cec9e578a18529f615213ff847"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Apr 30 14:52:58 2009 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Sat May 09 15:15:17 2009 +0100"
      },
      "message": "GFS2: Fix glock ref counting bug\n\nDepending on the ordering of events as we go around the\nglock shrinker loop, it is possible to drop the ref count\nof a glock incorrectly. It doesn\u0027t happen very often. This\npatch corrects the got_ref variable, fixing the problem.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "a228df6339e0d385b8149c860d81b6007f5e9c81",
      "tree": "bf744dbc6bf8849ea7b81581818722c4e90b553e",
      "parents": [
        "5cf32524de745c56e1411d63eccf23fef1709d73"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Apr 07 14:01:34 2009 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 15 10:16:13 2009 +0100"
      },
      "message": "GFS2: Move umount flush rwsem\n\nThe rwsem, used only on umount, is in the wrong place in glock.c.\nThis patch moves it up a bit so that it does not get called under\na spinlock.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "64d576ba23bfd9b770cbb0279200f479272eb859",
      "tree": "8c119b0e45d288035fc24fd43cf5286da1947fb1",
      "parents": [
        "02e3cc70ecbd4352ae4d26459929f43ab1547251"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Feb 12 13:31:58 2009 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "steve@dolmen.chygwyn.com",
        "time": "Tue Mar 24 11:21:22 2009 +0000"
      },
      "message": "GFS2: Add a \"demote a glock\" interface to sysfs\n\nThis adds a sysfs file called demote_rq to GFS2\u0027s\nper filesystem directory. Its possible to use this\nfile to demote arbitrary glocks in exactly the same\nway as if a request had come in from a remote node.\n\nThis is intended for testing issues relating to caching\nof data under glocks. Despite that, the interface is\ngeneric enough to send requests to any type of glock,\nbut be careful as its not always safe to send an\narbitrary message to an arbitrary glock. For that reason\nand to prevent DoS, this interface is restricted to root\nonly.\n\nThe messages look like this:\n\n\u003ctype\u003e:\u003cglocknumber\u003e \u003cmode\u003e\n\nExample:\n\necho -n \"2:13324 EX\" \u003e/sys/fs/gfs2/unity:myfs/demote_rq\n\nWhich means \"please demote inode glock (type 2) number 13324 so that\nI can get an EX (exclusive) lock\". The lock modes are those which\nwould normally be sent by a remote node in its callback so if you\nwant to unlock a glock, you use EX, to demote to shared, use SH or PR\n(depending on whether you like GFS2 or DLM lock modes better!).\n\nIf the glock doesn\u0027t exist, you\u0027ll get -ENOENT returned. If the\narguments don\u0027t make sense, you\u0027ll get -EINVAL returned.\n\nThe plan is that this interface will be used in combination with\nthe blktrace patch which I recently posted for comments although\nit is, of course, still useful in its own right.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "d8348de06f704fc34d24ec068546ecb1045fc11a",
      "tree": "e6b7eb01ec128e40b255b903e3c6629fbd8174e5",
      "parents": [
        "e7c8707ea2b9106f0f78c43348ff5d5e82ba7961"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Feb 05 10:12:38 2009 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "steve@dolmen.chygwyn.com",
        "time": "Tue Mar 24 11:21:18 2009 +0000"
      },
      "message": "GFS2: Fix deadlock on journal flush\n\nThis patch fixes a deadlock when the journal is flushed and there\nare dirty inodes other than the one which caused the journal flush.\nOriginally the journal flushing code was trying to obtain the\ntransaction glock while running the flush code for an inode glock.\nWe no longer require the transaction glock at this point in time\nsince we know that any attempt to get the transaction glock from\nanother node will result in a journal flush. So if we are flushing\nthe journal, we can be sure that the transaction lock is still\ncached from when the transaction was started.\n\nBy inlining a version of gfs2_trans_begin() (minus the bit which\ngets the transaction glock) we can avoid the deadlock problems\ncaused if there is a demote request queued up on the transaction\nglock.\n\nIn addition I\u0027ve also moved the umount rwsem so that it covers\nthe glock workqueue, since it all demotions are done by this\nworkqueue now. That fixes a bug on umount which I came across\nwhile fixing the original problem.\n\nReported-by: David Teigland \u003cteigland@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ac2425e7d319dec0523e52ee120a158ce6668cbd",
      "tree": "eda6ebb0e1db3caad8b23e6417fd1c311f43e6cd",
      "parents": [
        "f057f6cdf64175db1151b1f5d110e29904f119a1"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jan 13 09:53:43 2009 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "steve@dolmen.chygwyn.com",
        "time": "Tue Mar 24 11:21:17 2009 +0000"
      },
      "message": "GFS2: Remove unused field from glock\n\nThe time stamp field is unused in the glock now that we are\nusing a shrinker, so that we can remove it and save sizeof(unsigned long)\nbytes in each glock.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "f057f6cdf64175db1151b1f5d110e29904f119a1",
      "tree": "582dbf358e351f64977620c29ebf772d693b1948",
      "parents": [
        "22077f57dec8fcbeb1112b35313961c0902ff038"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 12 10:43:39 2009 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "steve@dolmen.chygwyn.com",
        "time": "Tue Mar 24 11:21:14 2009 +0000"
      },
      "message": "GFS2: Merge lock_dlm module into GFS2\n\nThis is the big patch that I\u0027ve been working on for some time\nnow. There are many reasons for wanting to make this change\nsuch as:\n o Reducing overhead by eliminating duplicated fields between structures\n o Simplifcation of the code (reduces the code size by a fair bit)\n o The locking interface is now the DLM interface itself as proposed\n   some time ago.\n o Fewer lookups of glocks when processing replies from the DLM\n o Fewer memory allocations/deallocations for each glock\n o Scope to do further optimisations in the future (but this patch is\n   more than big enough for now!)\n\nPlease note that (a) this patch relates to the lock_dlm module and\nnot the DLM itself, that is still a separate module; and (b) that\nwe retain the ability to build GFS2 as a standalone single node\nfilesystem with out requiring the DLM.\n\nThis patch needs a lot of testing, hence my keeping it I restarted\nmy -git tree after the last merge window. That way, this has the maximum\nexposure before its merged. This is (modulo a few minor bug fixes) the\nsame patch that I\u0027ve been posting on and off the the last three months\nand its passed a number of different tests so far.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "eb8374e71f941a1b3c2ed6ea19dc809e7124dc5d",
      "tree": "0af77162169ad8a359974b8120be898487293bc4",
      "parents": [
        "88a19ad066c1aab2f9713beb670525fcc06e1c09"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Thu Dec 25 15:35:27 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 05 07:45:02 2009 +0000"
      },
      "message": "GFS2: Use DEFINE_SPINLOCK\n\nSPIN_LOCK_UNLOCKED is deprecated.  The following makes the change suggested\nin Documentation/spinlocks.txt\n\nThe semantic patch that makes this change is as follows:\n(http://www.emn.fr/x-info/coccinelle/)\n\n// \u003csmpl\u003e\n@@\ndeclarer name DEFINE_SPINLOCK;\nidentifier xxx_lock;\n@@\n\n- spinlock_t xxx_lock \u003d SPIN_LOCK_UNLOCKED;\n+ DEFINE_SPINLOCK(xxx_lock);\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "fefc03bfedeff2002f14e848ecb7c0cd77ee0b15",
      "tree": "830ec1d36b8688a70580e8c5c18ac5f40015448f",
      "parents": [
        "7ed122e42c72b3e4531f8b4a9f72159e8303ac15"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Dec 19 15:32:06 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 05 07:39:18 2009 +0000"
      },
      "message": "Revert \"GFS2: Fix use-after-free bug on umount\"\n\nThis reverts commit 78802499912f1ba31ce83a94c55b5a980f250a43.\n\nThe original patch is causing problems in relation to order of\noperations at umount in relation to jdata files. I need to fix\nthis a different way.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "3af165ac4d099385b12e3e75a9ee3ffd02da33e0",
      "tree": "b90552f6ac8db316c05d5f3246366cfa09cc7473",
      "parents": [
        "2e204703a1161e9bae38ba0d3d0df04a679e6f4f"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 27 08:27:28 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 05 07:39:14 2009 +0000"
      },
      "message": "GFS2: Fix use-after-free bug on umount\n\nThere was a use-after-free with the GFS2 super block during\numount. This patch moves almost all of the umount code from\n-\u003eput_super into -\u003ekill_sb, the only bit that cannot be moved\nbeing the glock hash clearing which has to remain as -\u003eput_super\ndue to umount ordering requirements. As a result its now obvious\nthat the kfree is the final operation, whereas before it was\nhidden in -\u003eput_super.\n\nAlso gfs2_jindex_free is then only referenced from a single file\nso thats moved and marked static too.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "2bfb6449b7a1f29a2a63e1d869103b5811c3b69f",
      "tree": "e4f8f51cf7346ec239ebd0b9ac9ddc2580c706e2",
      "parents": [
        "b52896813c2f16bcc5c5b67bb3c3f75bc084439b"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 26 13:30:49 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 05 07:39:12 2009 +0000"
      },
      "message": "GFS2: Move four functions from super.c\n\nThe functions which are being moved can all be marked\nstatic in their new locations, since they only have\na single caller each. Their new locations are more\nlogical than before and some of the functions are\nsmall enough that the compiler might well inline them.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "97cc1025b1a91c52e84f12478dcf0f853abc6564",
      "tree": "cd71419049aeb13eea7012889d0ee0c715394e4d",
      "parents": [
        "9ac1b4d9b6f885ccd7d8f56bceb609003a920ff7"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 20 13:39:47 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 05 07:39:09 2009 +0000"
      },
      "message": "GFS2: Kill two daemons with one patch\n\nThis patch removes the two daemons, gfs2_scand and gfs2_glockd\nand replaces them with a shrinker which is called from the VM.\n\nThe net result is that GFS2 responds better when there is memory\npressure, since it shrinks the glock cache at the same rate\nas the VFS shrinks the dcache and icache. There are no longer\nany time based criteria for shrinking glocks, they are kept\nuntil such time as the VM asks for more memory and then we\ndemote just as many glocks as required.\n\nThere are potential future changes to this code, including the\npossibility of sorting the glocks which are to be written back\ninto inode number order, to get a better I/O ordering. It would\nbe very useful to have an elevator based workqueue implementation\nfor this, as that would automatically deal with the read I/O cases\nat the same time.\n\nThis patch is my answer to Andrew Morton\u0027s remark, made during\nthe initial review of GFS2, asking why GFS2 needs so many kernel\nthreads, the answer being that it doesn\u0027t :-) This patch is a\nnet loss of about 200 lines of code.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "813e0c46c9e2a0c6f0b6e774faac82afd7a2e812",
      "tree": "cb09aa118f9e053f02e17f7c5ff11139e8e22244",
      "parents": [
        "37b2c8377c98acb60cf4d0126e385ef2153bded9"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Nov 18 13:38:48 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 05 07:39:06 2009 +0000"
      },
      "message": "GFS2: Fix \"truncate in progress\" hang\n\nFollowing on from the recent clean up of gfs2_quotad, this patch moves\nthe processing of \"truncate in progress\" inodes from the glock workqueue\ninto gfs2_quotad. This fixes a hang due to the \"truncate in progress\"\nprocessing requiring glocks in order to complete.\n\nIt might seem odd to use gfs2_quotad for this particular item, but\nwe have to use a pre-existing thread since creating a thread implies\na GFP_KERNEL memory allocation which is not allowed from the glock\nworkqueue context. Of the existing threads, gfs2_logd and gfs2_recoverd\nmay deadlock if used for this operation. gfs2_scand and gfs2_glockd are\nboth scheduled for removal at some (hopefully not too distant) future\npoint. That leaves only gfs2_quotad whose workload is generally fairly\nlight and is easily adapted for this extra task.\n\nAlso, as a result of this change, it opens the way for a future patch to\nmake the reading of the inode\u0027s information asynchronous with respect to\nthe glock workqueue, which is another improvement that has been on the list\nfor some time now.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "55ba474daed9763b2f6fe26ad762ee373554d65e",
      "tree": "cebf67226c2d5e84505fa1aa5e6d8e7afed005c0",
      "parents": [
        "1bb7322fd0d5abdce396de51cbc5dbc489523018"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Fri Oct 24 11:31:12 2008 -0700"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 05 07:38:50 2009 +0000"
      },
      "message": "GFS2: sparse annotation of gl-\u003egl_spin\n\nfs/gfs2/glock.c:308:5: warning: context problem in \u0027do_promote\u0027: \u0027_spin_unlock\u0027 expected different context\nfs/gfs2/glock.c:308:5:    context \u0027*gl+28\u0027: wanted \u003e\u003d 1, got 0\nfs/gfs2/glock.c:529:2: warning: context problem in \u0027do_xmote\u0027: \u0027_spin_unlock\u0027 expected different context\nfs/gfs2/glock.c:529:2:    context \u0027*gl+28\u0027: wanted \u003e\u003d 1, got 0\nfs/gfs2/glock.c:925:3: warning: context problem in \u0027add_to_queue\u0027: \u0027_spin_unlock\u0027 expected different context\nfs/gfs2/glock.c:925:3:    context \u0027*gl+28\u0027: wanted \u003e\u003d 1, got 0\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "719ee344675c2efed9115934f19aa66a526b6e5b",
      "tree": "7f9502d696a09eaf5eba0a0d3fa35557ffd3c503",
      "parents": [
        "37ec89e83c4ca98323fe74f139301ff3949cfdb6"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Sep 18 13:53:59 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Sep 18 13:53:59 2008 +0100"
      },
      "message": "GFS2: high time to take some time over atime\n\nUntil now, we\u0027ve used the same scheme as GFS1 for atime. This has failed\nsince atime is a per vfsmnt flag, not a per fs flag and as such the\n\"noatime\" flag was not getting passed down to the filesystems. This\npatch removes all the \"special casing\" around atime updates and we\nsimply use the VFS\u0027s atime code.\n\nThe net result is that GFS2 will now support all the same atime related\nmount options of any other filesystem on a per-vfsmnt basis. We do lose\nthe \"lazy atime\" updates, but we gain \"relatime\". We could add lazy\natime to the VFS at a later date, if there is a requirement for that\nvariant still - I suspect relatime will be enough.\n\nAlso we lose about 100 lines of code after this patch has been applied,\nand I have a suspicion that it will speed things up a bit, even when\natime is \"on\". So it seems like a nice clean up as well.\n\nFrom a user perspective, everything stays the same except the loss of\nthe per-fs atime quantum tweekable (ought to be per-vfsmnt at the very\nleast, and to be honest I don\u0027t think anybody ever used it) and that a\nnumber of options which were ignored before now work correctly.\n\nPlease let me know if you\u0027ve got any comments. I\u0027m pushing this out\nearly so that you can all see what my plans are.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "dff5257473ca1e05002809809f51f858e9a966fc",
      "tree": "4d9bd636ce8828dcc0e8e2676cf4e9e86ed272c8",
      "parents": [
        "0188d6c5807b65e2e20dcb75a668efbe5418b27e"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Sep 02 13:33:17 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Sep 05 14:18:02 2008 +0100"
      },
      "message": "GFS2: Fix race relating to glock min-hold time\n\nIn the case that a request for a glock arrives right after the\ngrant reply has arrived, it sometimes means that the gl_tstamp\nfield hasn\u0027t been updated recently enough. The net result is that\nthe min-hold time for the glock is ignored. If this happens\noften enough, it leads to poor performance.\n\nThis patch adds an additional test, so that if the reply pending\nbit is set on a glock, then it will select the maximum length of\ntime for the min-hold time, rather than looking at gl_tstamp.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "c1e817d03a7de57a963654c35e6e80af9a5dbff5",
      "tree": "e90926cce9311091b31ea60fbf35dc11c9d18a3f",
      "parents": [
        "30a2f3c60a84092c8084dfe788b710f8d0768cd4"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jul 22 22:58:03 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Aug 13 09:59:10 2008 +0100"
      },
      "message": "GFS2: Fix debugfs glock file iterator\n\nDue to an incorrect iterator, some glocks were being missed from the\nglock dumps obtained via debugfs. This patch fixes the problem and\nensures that we don\u0027t miss any glocks in future.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "209806aba9d540dde3db0a5ce72307f85f33468f",
      "tree": "22543b35c6b06d9a736c1c9af881ea7cf305d2bd",
      "parents": [
        "265d529cef6fd57698d79b3c0edd3a8178059ea6"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 07 10:07:28 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 07 10:07:28 2008 +0100"
      },
      "message": "[GFS2] Allow local DF locks when holding a cached EX glock\n\nWe already allow local SH locks while we hold a cached EX glock, so here\nwe allow DF locks as well. This works only because we rely on the VFS\u0027s\ninvalidation for locally cached data, and because if we hold an EX lock,\nthen we know that no other node can be caching data relating to this\nfile.\n\nIt dramatically speeds up initial writes to O_DIRECT files since we fall\nback to buffered I/O for this and would otherwise bounce between DF and\nEX modes on each and every write call. The lessons to be learned from\nthat are to ensure that (for the time being anyway) O_DIRECT files are\npreallocated and that they are written to using reasonably large I/O\nsizes. Even so this change fixes that corner case nicely\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "265d529cef6fd57698d79b3c0edd3a8178059ea6",
      "tree": "d92cc42c3f9db89bdce635a78f9d8d1904dde43a",
      "parents": [
        "f58ba889106af60f52af792efbe1973e458a2138"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 07 10:02:36 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 07 10:02:36 2008 +0100"
      },
      "message": "[GFS2] Fix delayed demote race\n\nThere is a race in the delayed demote code where it does the wrong thing\nif a demotion to UN has occurred for other reasons before the delay has\nexpired. This patch adds an assert to catch that condition as well as\nfixing the root cause by adding an additional check for the UN state.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Bob Peterson \u003crpeterso@redhat.com\u003e\n"
    },
    {
      "commit": "1bdad606338debc6384b2844f1b53cc436b3ac90",
      "tree": "7929bc1f652f88f104e8b6fa6a424cd211b50a42",
      "parents": [
        "9171f5a991e7613cbee816874ad8c9515dcab50f"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jun 03 14:09:53 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jun 27 09:39:44 2008 +0100"
      },
      "message": "[GFS2] Remove remote lock dropping code\n\nThere are several reasons why this is undesirable:\n\n 1. It never happens during normal operation anyway\n 2. If it does happen it causes performance to be very, very poor\n 3. It isn\u0027t likely to solve the original problem (memory shortage\n    on remote DLM node) it was supposed to solve\n 4. It uses a bunch of arbitrary constants which are unlikely to be\n    correct for any particular situation and for which the tuning seems\n    to be a black art.\n 5. In an N node cluster, only 1/N of the dropped locked will actually\n    contribute to solving the problem on average.\n\nSo all in all we are better off without it. This also makes merging\nthe lock_dlm module into GFS2 a bit easier.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "048bca223739368aa5b9ce7cfb1d576c32d66cc7",
      "tree": "66d4f1c0e90eb6429755cb4529f8c7f609026e89",
      "parents": [
        "f3c9d38a26be32abf9b8897e9e0afc7166c712dd"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri May 23 14:46:04 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jun 27 09:39:28 2008 +0100"
      },
      "message": "[GFS2] No lock_nolock\n\nThis patch merges the lock_nolock module into GFS2 itself. As well as removing\nsome of the overhead of the module, it also means that its now impossible to\nbuild GFS2 without a lock module (which would be a pointless thing to do\nanyway).\n\nWe also plan to merge lock_dlm into GFS2 in the future, but that is a more\ntricky task, and will therefore be a separate patch.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "6802e3400ff4549525930ee744030c36fce9cc73",
      "tree": "db889bf5337c1d3bb12ebbf571c3c1cad1040496",
      "parents": [
        "543cf4cb3fe6f6cae3651ba918b9c56200b257d0"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed May 21 17:03:22 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jun 27 09:39:22 2008 +0100"
      },
      "message": "[GFS2] Clean up the glock core\n\nThis patch implements a number of cleanups to the core of the\nGFS2 glock code. As a result a lot of code is removed. It looks\nlike a really big change, but actually a large part of this patch\nis either removing or moving existing code.\n\nThere are some new bits too though, such as the new run_queue()\nfunction which is considerably streamlined. Highlights of this\npatch include:\n\n o Fixes a cluster coherency bug during SH -\u003e EX lock conversions\n o Removes the \"glmutex\" code in favour of a single bit lock\n o Removes the -\u003ego_xmote_bh() for inodes since it was duplicating\n   -\u003ego_lock()\n o We now only use the -\u003elm_lock() function for both locks and\n   unlocks (i.e. unlock is a lock with target mode LM_ST_UNLOCKED)\n o The fast path is considerably shortly, giving performance gains\n   especially with lock_nolock\n o The glock_workqueue is now used for all the callbacks from the DLM\n   which allows us to simplify the lock_dlm module (see following patch)\n o The way is now open to make further changes such as eliminating the two\n   threads (gfs2_glockd and gfs2_scand) in favour of a more efficient\n   scheme.\n\nThis patch has undergone extensive testing with various test suites\nso it should be pretty stable by now.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Bob Peterson \u003crpeterso@redhat.com\u003e\n"
    },
    {
      "commit": "58e9fee13e579df44922172dbe3c9e3ba3edf7a3",
      "tree": "7b134f28032a3cd498b2d9a18c02ea085c0725e2",
      "parents": [
        "f5a8cd020173c455705fc0095b7d299da6f8f87b"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Fri Mar 14 13:52:52 2008 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:41:44 2008 +0100"
      },
      "message": "[GFS2] Invalidate cache at correct point\n\nGFS2 wasn\u0027t invalidating its cache before it called into the lock manager\nwith a request that could potentially drop a lock.  This was leaving a\nwindow where the lock could be actually be held by another node, but the\nfile\u0027s page cache would still appear valid, causing coherency problems.\nThis patch moves the cache invalidation to before the lock manager call\nwhen dropping a lock. It also adds the option to the lock_dlm lock\nmanager to not use conversion mode deadlock avoidance, which, on a\nconversion from shared to exclusive, could internally drop the lock, and\nthen reacquire in. GFS2 now asks lock_dlm to not do this.  Instead, GFS2\nmanually drops the lock and reacquires it.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "840ca0ec70903ce8e0fba1596460876c796e4f60",
      "tree": "fd9f86615fe0450cfb8d46bdd17fbea33fa1008f",
      "parents": [
        "e23159d2a7b2df5bce5f0ee8d57d3292243abf66"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Feb 12 15:28:21 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:41:01 2008 +0100"
      },
      "message": "[GFS2] Fix bug where we called drop_bh incorrectly\n\nAs a result of an earlier patch, drop_bh was being called in cases\nwhen it shouldn\u0027t have been. Since we never have a gh in the drop\ncase and we always have a gh in the promote case, we can use that\nextra information to tell which case has been seen.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Bob Peterson \u003crpeterso@redhat.com\u003e\n"
    },
    {
      "commit": "cf45b752c9f23939e40d823b0600bf876e97b0e0",
      "tree": "e37042a2e1437a81a32bd2bf069b4e714deb3411",
      "parents": [
        "da755fdb414470d6dce3df12ad188de9131cf96c"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Thu Jan 31 10:31:39 2008 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:40:29 2008 +0100"
      },
      "message": "[GFS2] Remove rgrp and glock version numbers\n\nThis patch further reduces GFS2\u0027s memory requirements by\neliminating the 64-bit version number fields in lieu of\na couple bits.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "da755fdb414470d6dce3df12ad188de9131cf96c",
      "tree": "7081889e6fc13f4ffdf86f5e928a748af7a7adbc",
      "parents": [
        "ab0d756681c9502a2ab9e2e4ab3685bc0567f4ee"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jan 30 15:34:04 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:40:26 2008 +0100"
      },
      "message": "[GFS2] Remove lm.[ch] and distribute content\n\nThe functions in lm.c were just wrappers which were mostly\nonly used in one other file. By moving the functions to\nthe files where they are being used, they can be marked\nstatic and also this will usually result in them being inlined\nsince they are often only used from one point in the code.\n\nA couple of really trivial functions have been inlined by hand\ninto the function which called them as it makes the code clearer\nto do that.\n\nWe also gain from one fewer function call in the glock lock and\nunlock paths.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ab0d756681c9502a2ab9e2e4ab3685bc0567f4ee",
      "tree": "6c308961e3976b6dc30809d9efc17adc6e685711",
      "parents": [
        "110acf38377b5b341b11644bfe98389eccec627d"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Jan 29 13:56:15 2008 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:40:23 2008 +0100"
      },
      "message": "[GFS2] Eliminate gl_req_bh\n\nThis patch further reduces the memory needs of GFS2 by\neliminating the gl_req_bh variable from struct gfs2_glock.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "29d38cd16358dcaef4a6c50866ecee28025b481a",
      "tree": "e8694d79f6c422aa68af5c493f8b761c7eff5515",
      "parents": [
        "42d52e3818751633656fb90df1bd5cb5362fa8cc"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Mon Jan 28 22:31:39 2008 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:40:13 2008 +0100"
      },
      "message": "[GFS2] Get rid of gl_waiters2\n\nThis patch reduces memory by replacing the int variable\ngl_waiters2 by a single bit in the gl_flags.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "048786f1e6042022a8fb2035157a8c8c3a82a4f2",
      "tree": "767dcd59a8fc6392c1347a4342b2220f7599780b",
      "parents": [
        "ef8c441cb7fece75dbbdb1f59d3f82b6a4be7474"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Tue Jan 29 00:11:34 2008 +0200"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:40:02 2008 +0100"
      },
      "message": "[GFS2] make gfs2_glock_hold() static\n\ngfs2_glock_hold() can now become static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ef8c441cb7fece75dbbdb1f59d3f82b6a4be7474",
      "tree": "2319b22825ccf910040fbbb99d88788ff4638708",
      "parents": [
        "7eabb77e65c559d9c284da232b9ba5354898028a"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Mon Jan 28 14:54:16 2008 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:40:00 2008 +0100"
      },
      "message": "[GFS2] Only wake the reclaim daemon if we need to\n\nThis patch only wakes up the glock reclaim daemon if there is\nactually something to be reclaimed.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "eccba068915feece2868c502787037e244db3376",
      "tree": "eac7790a497c1a33c167605a81ba62b22057b99c",
      "parents": [
        "4cbc76eadf56399cd11fb736b33c53aec9caab8c"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Feb 07 00:13:21 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:06 2008 -0800"
      },
      "message": "gfs2: make gfs2_glock.gl_owner_pid be a struct pid *\n\nThe gl_owner_pid field is used to get the lock owning task by its pid, so make\nit in a proper manner, i.e.  by using the struct pid pointer and pid_task()\nfunction.\n\nThe pid_task() becomes exported for the gfs2 module.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b1e058da50f7938e9c9e963e978b0730bba4ad32",
      "tree": "77dbff919c9c7f1d60d69426726c9aad6a2348a3",
      "parents": [
        "488b5ec871191359b9b79262a3d48456dae7ea5f"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Feb 07 00:13:19 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:06 2008 -0800"
      },
      "message": "gfs2: make gfs2_holder.gh_owner_pid be a struct pid *\n\nThe gl_owner_pid field is used to get the holder task by its pid and check\nwhether the current is a holder, so make it in a proper manner, i.e.  via the\nstruct pid * manipulations.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "398bbe68321947f6763fbc259a01eb548ce19408",
      "tree": "64cf07eb0f461aa5d26c2abdc873c8727d8a2bad",
      "parents": [
        "5fdc2eeb5d1d3800367f471690b01fcd1fd5b963"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Dec 11 19:13:54 2007 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:13:52 2008 +0000"
      },
      "message": "[GFS2] Reorganize function gfs2_glmutex_lock\n\nThis patch optimizes the function gfs2_glmutex_lock.\nThe basic theory is: Why bother initializing a holder, setting up\nwait bits and then waiting on them, if you know the glock can be\nyours.  So the holder stuff is placed inside the if checking if the\nglock is locked.  This one needs careful scrutiny because changing\nanything to do with locking should strike terror into one\u0027s heart.\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": "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": "e589665eb97b297412fb16b4c1737a01a91db903",
      "tree": "139a302a47bda6241d40a61bec1d7239de0e7108",
      "parents": [
        "3042a2ccd68d2b609d283219e51cba363aa35c1d"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Nov 02 09:14:31 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:44 2008 +0000"
      },
      "message": "[GFS2] Remove flags no longer required\n\nThe HIF_MUTEX and HIF_PROMOTE flags were set on the glock holders\ndepending upon which of the two waiters lists they were going to\nbe queued upon. They were then tested when the holders were taken\noff the lists to ensure that the right type of holder was being\ndequeued.\n\nSince we are already using separate lists, there doesn\u0027t seem a\nlot of point having these flags as well, and since setting them\nand testing them is in the fast path for locking and unlocking\nglock, this patch removes them.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "3042a2ccd68d2b609d283219e51cba363aa35c1d",
      "tree": "032653f2111bf20c1f4610d3801c42020c3a1abd",
      "parents": [
        "52d4c74b08bf859f698ddb4e8a43c0dc8d4a0685"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Nov 02 08:39:34 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:42 2008 +0000"
      },
      "message": "[GFS2] Reorder writeback for glock sync\n\nPreviously we were doing (write data, wait for data, write metadata, wait\nfor metadata). After this patch we so (write metadata, write data, wait for\ndata, wait for metadata) which should be more efficient.\n\nAlso I noticed that the drop_bh and xmote_bh functions were almost\nidentical. In fact the only difference was a single test, and that\ntest is such that in the drop_bh case, it would always evaluate to\nthe correct result. As such we can use the xmote_bh functions in\nall the places where we were using the drop_bh function and remove\nthe drop_bh functions.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "c2932e03dbcfe7ea9052953dbd5f3157183c1e9b",
      "tree": "4d72603f5fc136a0ad0fd65b423045d5d30e69ef",
      "parents": [
        "60b0d0877986b8fa70148f06055422d2ed858e88"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 01 09:26:54 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:37 2008 +0000"
      },
      "message": "[GFS2] Remove \"reclaim limit\"\n\nThis call to reclaim glocks is not needed, and in particular we don\u0027t want it\nin the fast path for locking glocks. The limit was entirely arbitrary anyway\nand we can\u0027t expect users to adjust things like this, the remaining code will\ndo the right thing on its own.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "cc7e79b168a552152299bd8a8254dc099aacc993",
      "tree": "65871c8ec495401846bc9e7030a89d3c6335f5ee",
      "parents": [
        "49914084e797530d9baaf51df9eda77babc98fa8"
      ],
      "author": {
        "name": "Wendy Cheng",
        "email": "wcheng@redhat.com",
        "time": "Fri Oct 05 00:27:58 2007 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:09 2008 +0000"
      },
      "message": "[GFS2] Handle multiple glock demote requests\n\nFix a race condition where multiple glock demote requests are sent to\na node back-to-back. This patch does a check inside handle_callback()\nto see whether a demote request is in progress. If true, it sets a flag\nto make sure run_queue() will loop again to handle the new request,\ninstead of erronously setting gl_demote_state to a different state.\n\nSigned-off-by: S. Wendy Cheng \u003cwcheng@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "49e61f2ef6f7d1d0296e3e30d366b28e0ca595c2",
      "tree": "7f2efb6c0dce87f3f16809e8cd1072137b12271c",
      "parents": [
        "b4c20166dcfca106f0f416bfce200099ed76ab18"
      ],
      "author": {
        "name": "Wendy Cheng",
        "email": "wcheng@redhat.com",
        "time": "Thu Sep 13 17:52:42 2007 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:56:17 2007 +0100"
      },
      "message": "[GFS2] Move inode deletion out of blocking_cb\n\nMove inode deletion code out of blocking_cb handle_callback route to\navoid racy conditions that end up blocking lock_dlm1 thread. Fix\nbugzilla 286821.\n\nSigned-off-by: Wendy Cheng \u003cwcheng@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b4c20166dcfca106f0f416bfce200099ed76ab18",
      "tree": "474e8c3bda161953202793c0801ab00a5b5433de",
      "parents": [
        "1ad38c437fa33f85ba4b6a85ea8c5478ee72d5bd"
      ],
      "author": {
        "name": "Abhijith Das",
        "email": "adas@redhat.com",
        "time": "Thu Sep 13 23:35:27 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:56:14 2007 +0100"
      },
      "message": "[GFS2] flocks from same process trip kernel BUG at fs/gfs2/glock.c:1118!\n\nThis patch adds a new flag to the gfs2_holder structure GL_FLOCK.\nIt is set on holders of glocks representing flocks. This flag is\nchecked in add_to_queue() and a process is permitted to queue more\nthan one holder onto a glock if it is set. This solves the issue\nof a process not being able to do multiple flocks on the same file.\nThrough a single descriptor, a process can now promote and demote\nflocks. Through multiple descriptors a process can now queue\nmultiple flocks on the same file. There\u0027s still the problem of\na process deadlocking itself (because gfs2 blocking locks are not\ninterruptible) by queueing incompatible deadlock.\n\nSigned-off-by: Abhijith Das \u003cadas@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "c4f68a130fc1795e4a75ec5bdaf9e85d86c22419",
      "tree": "37251ae5634d4b73b5224e3e8679f92472de0ebe",
      "parents": [
        "d1e2777d4f419a865ddccdb9b3412021d0e4de51"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Thu Aug 23 13:19:05 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:48 2007 +0100"
      },
      "message": "[GFS2] delay glock demote for a minimum hold time\n\nWhen a lot of IO, with some distributed mmap IO, is run on a GFS2 filesystem in\na cluster, it will deadlock. The reason is that do_no_page() will repeatedly\ncall gfs2_sharewrite_nopage(), because each node keeps giving up the glock\ntoo early, and is forced to call unmap_mapping_range(). This bumps the\nmapping-\u003etruncate_count sequence count, forcing do_no_page() to retry. This\npatch institutes a minimum glock hold time a tenth a second.  This insures\nthat even in heavy contention cases, the node has enough time to get some\nuseful work done before it gives up the glock.\n\nA second issue is that when gfs2_glock_dq() is called from within a page fault\nto demote a lock, and the associated page needs to be written out, it will\ntry to acqire a lock on it, but it has already been locked at a higher level.\nThis patch puts makes gfs2_glock_dq() use the work queue as well, to avoid this\nissue. This is the same patch as Steve Whitehouse originally proposed to fix\nthis issue, execpt that gfs2_glock_dq() now grabs a reference to the glock\nbefore it queues up the work on it.\n\nSigned-off-by: Benjamin E. Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "a947e0335699a1d387c3826e5b8eff9e0afe505e",
      "tree": "7ddf0cdec03bda17e21006cb5d5bc25d36b86a92",
      "parents": [
        "61d96be0f474df354c2ff4a2b2bf410b23a5cd60"
      ],
      "author": {
        "name": "Abhijith Das",
        "email": "adas@redhat.com",
        "time": "Tue Aug 21 09:57:29 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:41 2007 +0100"
      },
      "message": "[GFS2] Wendy\u0027s dump lockname in hex \u0026 fix glock dump\n\nWith this patch, gfs2 glockdump through the debugfs filesystem will only\ndump glocks for the specified filesystem instead of all glocks. Also, to\naid debugging, the glock number is dumped in hex instead of decimal.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: S. Wendy Cheng \u003cwcheng@redhat.com\u003e\nSigned-off-by: Abhijith Das \u003cadas@redhat.com\u003e\n"
    },
    {
      "commit": "8fbbfd214c853102b614f4705c1904ed14f5a808",
      "tree": "b33cb7ee7392d64f99124588ef6af7c0d0bc7e9d",
      "parents": [
        "ca5a939b33166a9f5a2556e6c4ec031524852ba2"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Aug 01 13:57:10 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:08 2007 +0100"
      },
      "message": "[GFS2] Reduce number of gfs2_scand processes to one\n\nWe only need a single gfs2_scand process rather than the one\nper filesystem which we had previously. As a result the parameter\ndetermining the frequency of gfs2_scand runs becomes a module\nparameter rather than a mount parameter as it was before.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "4ef290025ccde7c52ba219cf733a4295acd5401f",
      "tree": "9879ae00580d4869bfa0a443f00b3713c34f4bda",
      "parents": [
        "0f8468c8bef3d04637c924e7bef20ca53018b319"
      ],
      "author": {
        "name": "Denis Cheng",
        "email": "crquan@gmail.com",
        "time": "Tue Jul 31 18:31:11 2007 +0800"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:03 2007 +0100"
      },
      "message": "[GFS2] mark struct *_operations const\n\nthese struct *_operations are all method tables, thus should be const.\n\nSigned-off-by: Denis Cheng \u003ccrquan@gmail.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "7b08fc620109c2f66575e9ae884f45c37933ea18",
      "tree": "17fd00263b24dfd88242648a7bbd4de73826daec",
      "parents": [
        "afd0942d98f74296b74993739e41d2ca7cb9fd5a"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jul 24 13:53:36 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:54:49 2007 +0100"
      },
      "message": "[GFS2] Fix an oops in glock dumping\n\nThis fixes an oops which was occurring during glock dumping due to the\nseq file code not taking a reference to the glock. Also this fixes a\nmemory leak which occurred in certain cases, in turn preventing the\nfilesystem from unmounting.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "aa0481e58a9a97a97035725a712920b5fe32f348",
      "tree": "53a0244e0e1de14762ad1803aec1550e555064e5",
      "parents": [
        "26caee5bc643b318fa2e9bd4f66dace1755ec413"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.com",
        "time": "Sat Jul 21 17:03:22 2007 +0200"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:54:44 2007 +0100"
      },
      "message": "[GFS2] Clean up duplicate includes in fs/gfs2/\n\nThis patch cleans up duplicate includes in\n\tfs/gfs2/\n\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "26caee5bc643b318fa2e9bd4f66dace1755ec413",
      "tree": "d41f2a4c131de2eb6e0981b9d7c8eb9c2ae25255",
      "parents": [
        "87124e581bfeaa5864662a435b6ee2a19e91b905"
      ],
      "author": {
        "name": "Josef Whiter",
        "email": "jwhiter@redhat.com",
        "time": "Mon Jul 23 10:02:40 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:54:42 2007 +0100"
      },
      "message": "[GFS2] Fix calculation of demote state\n\nIf a glock is in the exclusive state and a request for demote to\ndeferred has been received, then further requests for demote to\nshared are being ignored. This patch fixes that by ensuring that\nwe demote to unlocked in that case.\n\nSigned-off-by: Josef Whiter \u003cjwhiter@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "87124e581bfeaa5864662a435b6ee2a19e91b905",
      "tree": "f9bc5d965834f1c7435123f26b9ab8f961c8848f",
      "parents": [
        "bbf25010f1a6b761914430f5fca081ec8c7accd1"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 23 09:54:36 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:54:39 2007 +0100"
      },
      "message": "[GFS2] Fix two races relating to glock callbacks\n\nOne of the races relates to referencing a variable while not holding\nits protecting spinlock. The patch simply moves the test inside the\nspin lock. The other races occurs when a demote to unlocked request\noccurs during the time a demote to shared request is already running.\nThis of course only happens in the case that the lock was in the\nexclusive mode to start with. The patch adds a check to see if another\ndemote request has occurred in the mean time and if it has, then it\nperforms a second demote.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "eaf5bd3cac92126e5825c6ebc10bee0fba35d555",
      "tree": "779ba2ba60bb6f18cf47a5155aa4164798a81a1f",
      "parents": [
        "2332c4435bb733b5cd4f612ee57532bd8fde4c1c"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jun 19 15:38:17 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:50 2007 +0100"
      },
      "message": "[GFS2] Simplify multiple glock aquisition\n\nThere is a bug in the code which acquires multiple glocks where if the\ninitial out-of-order attempt fails part way though we can land up trying\nto acquire the wrong number of glocks. This is part of the fix for red\nhat bz #239737. The other part of the bz doesn\u0027t apply to upstream\nkernels since it was fixed by:\n\nhttp://git.kernel.org/?p\u003dlinux/kernel/git/torvalds/linux-2.6.git;a\u003dcommitdiff;h\u003dd3717bdf8f08a0e1039158c8bab2c24d20f492b6\n\nSince the out-of-order code doesn\u0027t appear to add anything to the\nperformance of GFS2, this patch just removed it rather than trying to\nfix it. It should be much easier to see whats going on here now. In\naddition, we don\u0027t allocate any memory unless we are using a lot of\nglocks (which is a relatively uncommon case).\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "d93cfa9884354dac2d8ccd894594a43e0b962b6f",
      "tree": "72704d54aaa99e0021d3cc0b025fb8c67b09e4ce",
      "parents": [
        "a7a2ff8a951ab373732116e7c31e2e1fe025d5e0"
      ],
      "author": {
        "name": "Abhijith Das",
        "email": "adas@redhat.com",
        "time": "Mon Jun 11 08:22:32 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:36 2007 +0100"
      },
      "message": "[GFS2] Fix deallocation issues\n\nThere were two issues during deallocation of unlinked inodes. The\nfirst was relating to the use of a \"try\" lock which in the case of\nthe inode lock wasn\u0027t trying hard enough to deallocate in all\ncircumstances (now changed to a normal glock) and in the case of\nthe iopen lock didn\u0027t wait for the demotion of the shared lock before\nattempting to get the exclusive lock, and thereby sometimes (timing dependent)\nnot completing the deallocation when it should have done.\n\nThe second issue related to the lack of a way to invalidate dcache entries\non remote nodes (now fixed by this patch) which meant that unlinks were\ntaking a long time to return disk space to the fs. By adding some code to\ninvalidate the dcache entries across the cluster for unlinked inodes, that\nis now fixed.\n\nThis patch was written jointly by Abhijith Das and Steven Whitehouse.\n\nSigned-off-by: Abhijith Das \u003cadas@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "dbb7cae2a36170cd17ffbe286ec0c91a998740ff",
      "tree": "1f4da65b07ac31648fe9b72f2742075486a86008",
      "parents": [
        "41d7db0ab437bc84f8a6e77cccc626ce937605ac"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 15 15:37:50 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:22:24 2007 +0100"
      },
      "message": "[GFS2] Clean up inode number handling\n\nThis patch cleans up the inode number handling code. The main difference\nis that instead of looking up the inodes using a struct gfs2_inum_host\nwe now use just the no_addr member of this structure. The tests relating\nto no_formal_ino can then be done by the calling code. This has\nadvantages in that we want to do different things in different code\npaths if the no_formal_ino doesn\u0027t match. In the NFS patch we want to\nreturn -ESTALE, but in the -\u003elookup() path, its a bug in the fs if the\nno_formal_ino doesn\u0027t match and thus we can withdraw in this case.\n\nIn order to later fix bz #201012, we need to be able to look up an inode\nwithout knowing no_formal_ino, as the only information that is known to\nus is the on-disk location of the inode in question.\n\nThis patch will also help us to fix bz #236099 at a later date by\ncleaning up a lot of the code in that area.\n\nThere are no user visible changes as a result of this patch and there\nare no changes to the on-disk format either.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "cd81a4bac67d44742ab0aa1848f4a78e9d7e1093",
      "tree": "0cc323d20ff2cc8faffc99ee5a998409cb4f165d",
      "parents": [
        "0507ecf50f22e433592f5ec3a36dc831aaec2e02"
      ],
      "author": {
        "name": "Robert Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Mon May 14 12:42:18 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:22:19 2007 +0100"
      },
      "message": "[GFS2] Addendum patch 2 for gfs2_grow\n\nThis addendum patch 2 corrects three things:\n\n1. It fixes a stupid mistake in the previous addendum that broke gfs2.\n   Ref: https://www.redhat.com/archives/cluster-devel/2007-May/msg00162.html\n2. It fixes a problem that Dave Teigland pointed out regarding the\n   external declarations in ops_address.h being in the wrong place.\n3. It recasts a couple more %llu printks to (unsigned long long)\n   as requested by Steve Whitehouse.\n\nI would have loved to put this all in one revised patch, but there was\na rush to get some patches for RHEL5.\tTherefore, the previous patches\nwere applied to the git tree \"as is\" and therefore, I\u0027m posting another\naddendum.  Sorry.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "37fde8ca6c60ea61f5e9d7cb877c25ac60e74167",
      "tree": "bb5797f48de4f08dd1f525c72ef7e23d0bcb8de4",
      "parents": [
        "617e82e10ccf96a13eb2efd5eac4abef44a87d02"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 01 09:51:39 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 01 09:51:39 2007 +0100"
      },
      "message": "[GFS2] Uncomment sprintf_symbol calling code\n\nNow that the patch from -mm has gone upstream, we can uncomment the code\nin GFS2 which uses sprintf_symbol.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Robert Peterson \u003crpeterso@redhat.com\u003e\n"
    },
    {
      "commit": "5f8820960cf4fb621483d4a37c24939ad831bfe7",
      "tree": "8efc44452a7d353c41cefaf1b053a37868fb72c1",
      "parents": [
        "bdd19a22f85a7039e01accd8717eaec4addd9dfd"
      ],
      "author": {
        "name": "Robert Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Apr 18 11:41:11 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 01 09:11:33 2007 +0100"
      },
      "message": "[GFS2] lockdump improvements\n\nThe patch below consists of the following changes (in code order):\n\n1. I fixed a minor compiler warning regarding the printing of\n   a kernel symbol address.\n2. I implemented a suggestion from Dave Teigland that moves\n   the debugfs information for gfs2 into a subdirectory so\n   we can easily expand our use of debugfs in the future.\n   The current code keeps the glock information in:\n   /debug/gfs2/\u003cfs\u003e\n   With the patch, the new code keeps the glock information in:\n   /debug/gfs2/\u003cfs\u003e/glock\n   That will allow us to create more debugfs files in the future.\n3. This fixes a bug whereby a failed mount attempt causes the\n   debugfs file to not be deleted.  Failed mount attempts should\n   always clean up after themselves, including deleting the\n   debugfs file and/or directory.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "7a0079d9e3fe8826475a08785f3d348c4b509774",
      "tree": "6b2d7e2b24989b8ad03b831e4fcaafcc3de00850",
      "parents": [
        "8fa1de386f4d72f0710b389ccf96308fef87df78"
      ],
      "author": {
        "name": "Robert Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Apr 17 11:37:11 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 01 09:11:28 2007 +0100"
      },
      "message": "[GFS2] bz 236008: Kernel gpf doing cat /debugfs/gfs2/xxx (lock dump)\n\nThis is for Bugzilla Bug 236008: Kernel gpf doing cat /debugfs/gfs2/xxx\n(lock dump) seen at the \"gfs2 summit\".  This also fixes the bug that caused\ngarbage to be printed by the \"initialized at\" field.  I apologize for the\nkludge, but that code will all be ripped out anyway when the official\nsprint_symbol function becomes available in the Linux kernel.  I also\nchanged some formatting so that spaces are replaced by proper tabs.\n\nSigned-off-by: Robert Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "04b933f27bc8e7f3f6423020cec58a4eab3bb7a7",
      "tree": "992d9dd401b81ccb0b1f166fabd3ca315806361e",
      "parents": [
        "172e045a7fcc3ee647fa70dbd585a3c247b49cb2"
      ],
      "author": {
        "name": "Robert Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Fri Mar 23 17:05:15 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 01 09:10:55 2007 +0100"
      },
      "message": "[GFS2] Red Hat bz 228540: owner references\n\nIn Testing the previously posted and accepted patch for\nhttps://bugzilla.redhat.com/bugzilla/show_bug.cgi?id\u003d228540\nI uncovered some gfs2 badness.  It turns out that the current\ngfs2 code saves off a process pointer when glocks is taken\nin both the glock and glock holder structures.  Those\nstructures will persist in memory long after the process has\nended; pointers to poisoned memory.\n\nThis problem isn\u0027t caused by the 228540 fix; the new capability\nintroduced by the fix just uncovered the problem.\n\nI wrote this patch that avoids saving process pointers\nand instead saves off the process pid.  Rather than\nreferencing the bad pointers, it now does process lookups.\nThere is special code that makes the output nicer for\nprinting holder information for processes that have ended.\n\nThis patch also adds a stub for the new \"sprint_symbol\"\nfunction that exists in Andrew Morton\u0027s -mm patch set, but\nwon\u0027t go into the base kernel until 2.6.22, since it adds\nfunctionality but doesn\u0027t fix a bug.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "420d2a1028b906f24e836e37089a6ad55ab1848f",
      "tree": "a0fa71778dcec08d461aba2e75b045878b483498",
      "parents": [
        "3b8249f6178cb2b68b9d683587797270125cc06a"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Sun Mar 18 16:05:27 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 01 09:10:42 2007 +0100"
      },
      "message": "[GFS2] Fix a bug on i386 due to evaluation order\n\nSince gcc didn\u0027t evaluate the last two terms of the expression in\nglock.c:1881 as a constant expression, it resulted in an error on\ni386 due to the lack of a 64bit divide instruction. This adds some\nbrackets to fix the problem.\n\nThis was reported by Andrew Morton.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3b8249f6178cb2b68b9d683587797270125cc06a",
      "tree": "5bcc9bbd5eb923d5905077ba0bd41b5fa3f29ddd",
      "parents": [
        "1de913909263ba7f7054debeda1b79771a7233db"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Mar 16 09:40:31 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 01 09:10:39 2007 +0100"
      },
      "message": "[GFS2] Fix bz 224480 and cleanup glock demotion code\n\nThis patch prevents the printing of a warning message in cases where\nthe fs is functioning normally by handing off responsibility for\nunlinked, but still open inodes, to another node for eventual deallocation.\nAlso, there is now an improved system for ensuring that such requests\nto other nodes do not get lost. The callback on the iopen lock is\nonly ever called when i_nlink \u003d\u003d 0 and when a node is unable to deallocate\nit due to it still being in use on another node. When a node receives\nthe callback therefore, it knows that i_nlink must be zero, so we mark\nit as such (in gfs2_drop_inode) in order that it will then attempt\ndeallocation of the inode itself.\n\nAs an additional benefit, queuing a demote request no longer requires\na memory allocation. This simplifies the code for dealing with gfs2_holders\nas it removes one special case.\n\nThere are two new fields in struct gfs2_glock. gl_demote_state is the\nstate which the remote node has requested and gl_demote_time is the\ntime when the request came in. Both fields are only valid when the\nGLF_DEMOTE flag is set in gl_flags.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "5c7342d894973636f03270673e1fb7b908a421a8",
      "tree": "e6c4650417f120e3e0780e31e0e46b97d5d1e458",
      "parents": [
        "7c52b166c588c98cf3d2b2e7e6a0468a98e84d0d"
      ],
      "author": {
        "name": "Josef Whiter",
        "email": "jwhiter@redhat.com",
        "time": "Wed Mar 07 17:09:10 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 01 09:10:32 2007 +0100"
      },
      "message": "[GFS2] fix bz 231369, gfs2 will oops if you specify an invalid mount option\n\nIf you specify an invalid mount option when trying to mount a gfs2 filesystem,\ngfs2 will oops.  The attached patch resolves this problem.\n\nSigned-off-by: Josef Whiter \u003cjwhiter@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "7c52b166c588c98cf3d2b2e7e6a0468a98e84d0d",
      "tree": "3a38426f1479263cd75fa76204cdc1a620e7ca9f",
      "parents": [
        "dc87c3985e9b442c60994308a96f887579addc39"
      ],
      "author": {
        "name": "Robert Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Fri Mar 16 10:26:37 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 01 09:10:29 2007 +0100"
      },
      "message": "[GFS2] Add gfs2_tool lockdump support to gfs2 (bz 228540)\n\nThe attached patch resolves bz 228540.  This adds the capability\nfor gfs2 to dump gfs2 locks through the debugfs file system.\nThis used to exist in gfs1 as \"gfs_tool lockdump\" but it\u0027s missing from\ngfs2 because all the ioctls were stripped out.  Please see the bugzilla\nfor more history about the fix.  This patch is also attached to the bugzilla\nrecord.\n\nThe patch is against Steve Whitehouse\u0027s latest nmw git tree kernel\n(2.6.21-rc1) and has been tested on system trin-10.\n\nSigned-off-by: Robert Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "95d97b7dd7d7a7a13d11a38b3ecb64849d2e5086",
      "tree": "15203dc62e76e5905e12ef89d9add14ccbd13609",
      "parents": [
        "631c42e170564108423fa4073531db159f2523ea"
      ],
      "author": {
        "name": "akpm@linux-foundation.org",
        "email": "akpm@linux-foundation.org",
        "time": "Mon Mar 05 23:10:39 2007 -0800"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 07 14:03:25 2007 -0500"
      },
      "message": "[GFS2] build fix\n\nfs/gfs2/glock.c:2198: error: \u0027THIS_MODULE\u0027 undeclared here (not in a function)\n\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "631c42e170564108423fa4073531db159f2523ea",
      "tree": "aaa57c63ef9412f5b0b4b32683b08e786a28ea07",
      "parents": [
        "04b159b132c0d8e92dae8c72f134fd5b13b43deb"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Mar 01 10:36:32 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 07 14:02:53 2007 -0500"
      },
      "message": "[GFS2] go_drop_bh is never used, so remove it\n\nThe -\u003ego_drop_bh function is never used, so this removes it and the single\ncaller,\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "61be084efcc4451934257350281962595418a33c",
      "tree": "3f7b3e0d93f52803f27aa3268a4bd7098e48ae4d",
      "parents": [
        "bbb28ab7599789740b2233a0805d22aefb97f533"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 29 11:51:45 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 05 13:38:14 2007 -0500"
      },
      "message": "[GFS2] Put back semaphore to avoid umount problem\n\nDave Teigland fixed this bug a while back, but I managed to mistakenly\nremove the semaphore during later development. It is required to avoid\nthe list of inodes changing during an invalidate_inodes call. I have\nmade it an rwsem since the read side will be taken frequently during\nnormal filesystem operation. The write site will only happen during\numount of the file system.\n\nAlso the bug only triggers when using the DLM lock manager and only then\nunder certain conditions as its timing related.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "d043e1900c97f7282b71844c8530279913b6ec5a",
      "tree": "00880047322a93a17fd352abe821e3c78446911b",
      "parents": [
        "ddfe0627838ca0c0e8babb0dd2bd7f4b35e25bff"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jan 23 16:56:36 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 05 13:37:41 2007 -0500"
      },
      "message": "[GFS2] Fix typo in glock.c\n\nThis is a one letter typo fix in glock.c, spotted by Rob Kenna.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "90101c31867b7acc44286b425d50e1042aa55b8d",
      "tree": "3129323fd9112fb1e7ed187a0cdca8d37d0b42da",
      "parents": [
        "12132933c4fdeb458195a9388287d550c8476edf"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jan 23 13:20:41 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 05 13:37:35 2007 -0500"
      },
      "message": "[GFS2] Compile fix for glock.c\n\nThis one liner got missed from the previous patch.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "12132933c4fdeb458195a9388287d550c8476edf",
      "tree": "037a43592c395a7d60561628fdf24e80b5901489",
      "parents": [
        "bd44e2b007bc9024bce3357c185b38c73f87c3dd"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 22 13:09:04 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 05 13:37:32 2007 -0500"
      },
      "message": "[GFS2] Remove queue_empty() function\n\nThis function is not longer required since we do not do recursive\nlocking in the glock layer. As a result all its callers can be\nreplaceed with list_empty() calls.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b5d32bead1578afc5ca817d40c320764d50a8600",
      "tree": "522400e0638b263a9973b05f0da40bafcfc8b0bb",
      "parents": [
        "f2f5095f9e63db57faa7cb082e958910ecdd7ad4"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 22 12:15:34 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 05 13:37:26 2007 -0500"
      },
      "message": "[GFS2] Tidy up glops calls\n\nThis patch doesn\u0027t make any changes to the ordering of the various\noperations related to glocking, but it does tidy up the calls to the\nglops.c functions to make the structure more obvious.\n\nThe two functions: gfs2_glock_xmote_th() and gfs2_glock_drop_th() can be\nmade static within glock.c since they are called by every set of glock\noperations. The xmote_th and drop_th glock operations are then made\nconditional upon those two routines existing and called from the\npreviously mentioned functions in glock.c respectively.\n\nAlso it can be seen that the go_sync operation isn\u0027t needed since it can\neasily be replaced by calls to xmote_bh and drop_bh respectively. This\nresults in no longer (confusingly) calling back into routines in glock.c\nfrom glops.c and also reducing the glock operations by one member.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "1c0f4872dc4bbeb2223a300517099786211fce83",
      "tree": "21e4c880e68751dabecfc0d77ff226ec6fcb6951",
      "parents": [
        "6bd9c8c2fb99d1f5af6201db2f063c1d754c230a"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 22 12:10:39 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 05 13:37:20 2007 -0500"
      },
      "message": "[GFS2] Remove local exclusive glock mode\n\nHere is a patch for GFS2 to remove the local exclusive flag. In\nthe places it was used, mutex\u0027s are always held earlier in the\ncall path, so it appears redundant in the LM_ST_SHARED case.\n\nAlso, the GFS2 holders were setting local exclusive in any case where\nthe requested lock was LM_ST_EXCLUSIVE. So the other places in the glock\ncode where the flag was tested have been replaced with tests for the\nlock state being LM_ST_EXCLUSIVE in order to ensure the logic is the\nsame as before (i.e. LM_ST_EXCLUSIVE is always locally exclusive as well\nas globally exclusive).\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "6bd9c8c2fb99d1f5af6201db2f063c1d754c230a",
      "tree": "836052b520674d5dd732b12a82eff8f659de880d",
      "parents": [
        "e5dab552c82ce416d7be867b1e5a0fa585dcf590"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 19 13:57:36 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 05 13:37:17 2007 -0500"
      },
      "message": "[GFS2] Remove unused go_callback operation\n\nThis is never used, so we might as well remove it.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e5dab552c82ce416d7be867b1e5a0fa585dcf590",
      "tree": "3719a33f1bd5a29785e4ca35982d9610dd5a1a63",
      "parents": [
        "fee852e374fb367c5436b1226eb93b35f8355ed9"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jan 18 17:44:20 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 05 13:37:14 2007 -0500"
      },
      "message": "[GFS2] Remove the \"greedy\" function from glock.[ch]\n\nThe \"greedy\" code was an attempt to retain glocks for a minimum length\nof time when they relate to mmap()ed files. The current implementation\nof this feature is not, however, ideal in that it required allocating\nmemory in order to do this and its overly complicated.\n\nIt also misses the mark by ignoring the other I/O operations which are\njust as likely to suffer from the same problem. So the plan is to remove\nthis now and then add the functionality back as part of the glock state\nmachine at a later date (and thus take into account all the possible\nusers of this feature)\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "fee852e374fb367c5436b1226eb93b35f8355ed9",
      "tree": "0e373afa25bd27582b2fc4fff8f2964ff0de6722",
      "parents": [
        "330005c2b23e71e54931913e9b63d1712a19e444"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jan 17 15:33:23 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 05 13:37:11 2007 -0500"
      },
      "message": "[GFS2] Shrink gfs2_inode memory by half\n\nHere is something I spotted (while looking for something entirely\ndifferent) the other day.\n\nRather than using a completion in each and every struct gfs2_holder,\nthis removes it in favour of hashed wait queues, thus saving a\nconsiderable amount of memory both on the stack (where a number of\ngfs2_holder structures are allocated) and in particular in the\ngfs2_inode which has 8 gfs2_holder structures embedded within it.\n\nAs a result on x86_64 the gfs2_inode shrinks from 2488 bytes to\n1912 bytes, a saving of 576 bytes per inode (no thats not a typo!).\nIn actual practice we get a much better result than that since\nnow that a gfs2_inode is under the 2048 byte barrier, we get two\nper 4k slab page effectively halving the amount of memory required\nto store gfs2_inodes.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "3699e3a44bf56e0cd58c97e8655f375ad9b65d9d",
      "tree": "9ac31dd5b99373614f0cd52cc5a41536aeea271e",
      "parents": [
        "a8d638e30e768adc6956541f79f7bf05139ba475"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jan 17 15:09:20 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 05 13:37:04 2007 -0500"
      },
      "message": "[GFS2] Clean up/speed up readdir\n\nThis removes the extra filldir callback which gfs2 was using to\nenclose an attempt at readahead for inodes during readdir. The\ncode was too complicated and also hurts performance badly in the\ncase that the getdents64/readdir call isn\u0027t being followed by\nstat() and it wasn\u0027t even getting it right all the time when it\nwas.\n\nAs a result, on my test box an \"ls\" of a directory containing 250000\nfiles fell from about 7mins (freshly mounted, so nothing cached) to\nbetween about 15 to 25 seconds. When the directory content was cached,\nthe time taken fell from about 3mins to about 4 or 5 seconds.\n\nInterestingly in the cached case, running \"ls -l\" once reduced the time\ntaken for subsequent runs of \"ls\" to about 6 secs even without this\npatch. Now it turns out that there was a special case of glocks being\nused for prefetching the metadata, but because of the timeouts for these\nlocks (set to 10 secs) the metadata was being timed out before it was\nbeing used and this the prefetch code was constantly trying to prefetch\nthe same data over and over.\n\nCalling \"ls -l\" meant that the inodes were brought into memory and once\nthe inodes are cached, the glocks are not disposed of until the inodes\nare pushed out of the cache, thus extending the lifetime of the glocks,\nand thus bringing down the time for subsequent runs of \"ls\"\nconsiderably.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "1c1afa3c053d4ccdf44e5a4e159005cdfd48bfc6",
      "tree": "3e686ad4cf1ae2300e7190ff83afc3f3dd4ba740",
      "parents": [
        "0a01707b289853f56d1c000057b27e243c039722",
        "ac33d0710595579e3cfca42dde2257eb0b123f6d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 09:13:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 09:13:20 2006 -0800"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw\n\n* master.kernel.org:/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw: (73 commits)\n  [DLM] Clean up lowcomms\n  [GFS2] Change gfs2_fsync() to use write_inode_now()\n  [GFS2] Fix indent in recovery.c\n  [GFS2] Don\u0027t flush everything on fdatasync\n  [GFS2] Add a comment about reading the super block\n  [GFS2] Mount problem with the GFS2 code\n  [GFS2] Remove gfs2_check_acl()\n  [DLM] fix format warnings in rcom.c and recoverd.c\n  [GFS2] lock function parameter\n  [DLM] don\u0027t accept replies to old recovery messages\n  [DLM] fix size of STATUS_REPLY message\n  [GFS2] fs/gfs2/log.c:log_bmap() fix printk format warning\n  [DLM] fix add_requestqueue checking nodes list\n  [GFS2] Fix recursive locking in gfs2_getattr\n  [GFS2] Fix recursive locking in gfs2_permission\n  [GFS2] Reduce number of arguments to meta_io.c:getbuf()\n  [GFS2] Move gfs2_meta_syncfs() into log.c\n  [GFS2] Fix journal flush problem\n  [GFS2] mark_inode_dirty after write to stuffed file\n  [GFS2] Fix glock ordering on inode creation\n  ...\n"
    },
    {
      "commit": "0ac230699a0f3f0d15ad4e4ad99446dac5b4a21f",
      "tree": "c0d608cd584c3884492ec196544c6fcbf82a8fb8",
      "parents": [
        "98f176fb32f33795b6d0f83856008b932123ab38"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue Nov 28 22:29:19 2006 -0800"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:37:18 2006 -0500"
      },
      "message": "[GFS2] lock function parameter\n\nFix function parameter typing:\nfs/gfs2/glock.c:100: warning: function declaration isn\u0027t a prototype\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\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": "1a14d3a68f04527546121eb7b45187ff6af63151",
      "tree": "7bc48436f7c6aad5433398311b67a10661e2633d",
      "parents": [
        "fa2ecfc5e11b12f25b67f9c84ac6b0e74a6a0115"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Nov 20 10:37:45 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:36:30 2006 -0500"
      },
      "message": "[GFS2] Simplify glops functions\n\nThe go_sync callback took two flags, but one of them was set on every\ncall, so this patch removes once of the flags and makes the previously\nconditional operations (on this flag), unconditional.\n\nThe go_inval callback took three flags, each of which was set on every\ncall to it. This patch removes the flags and makes the operations\nunconditional, which makes the logic rather more obvious.\n\nTwo now unused flags are also removed from incore.h.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ab923031ceb95ec50ef33ccadf28663c660aa94c",
      "tree": "940a07b53d7ec155924f5c242ea41d6b0c9905db",
      "parents": [
        "b98c95af01c10827e3443157651eb469071391a3"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 15 15:17:03 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:35:46 2006 -0500"
      },
      "message": "[GFS2] Fix memory allocation in glock.c\n\nChange from GFP_KERNEL to GFP_NOFS as this was causing a\nslow down when trying to push inodes from cache.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "c594d8866460a2710c436839d79f334a0714a2a7",
      "tree": "87445c86a4162fdb7589ddec313ab42dc0d5ab18",
      "parents": [
        "f6e58f01e8dc869803b9f73b2aa9d5bc3f32ca05"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 08 09:01:13 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:34:40 2006 -0500"
      },
      "message": "[GFS2] Remove unused GL_DUMP flag\n\nThere is no way to set the GL_DUMP flag, and in any case the\nsame thing can be done with systemtap if required for debugging,\nso this removes it.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b60623c238b6a819bd04090139704e2cb57a751f",
      "tree": "fcecc0599003db66d937138be94bef4b4372f15b",
      "parents": [
        "e7f14f4d094ea1a9ce1953375f5bc1500c760c79"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 01 12:22:46 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:34:14 2006 -0500"
      },
      "message": "[GFS2] Shrink gfs2_inode (3) - di_mode\n\nThis removes the duplicate di_mode field in favour of using the\ninode-\u003ei_mode field. This saves 4 bytes.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "c4028958b6ecad064b1a6303a6a5906d4fe48d73",
      "tree": "1c4c89652c62a75da09f9b9442012007e4ac6250",
      "parents": [
        "65f27f38446e1976cc98fd3004b110fedcddd189"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Nov 22 14:57:56 2006 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Nov 22 14:57:56 2006 +0000"
      },
      "message": "WorkStruct: make allyesconfig\n\nFix up for make allyesconfig.\n\nSigned-Off-By: David Howells \u003cdhowells@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": "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": "a8336344a5fd1366eb3616d351c39cadcd077f43",
      "tree": "6ef37f62cc72151290aeb411f815eb72b7d82a3a",
      "parents": [
        "faa31ce85f626dff30ba865684bd1f0ad97a9ca0"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Sep 14 13:57:38 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Sep 14 13:57:38 2006 -0400"
      },
      "message": "[GFS2] Fix glock hash clearing\n\nA one liner bug fix to prevent the return value being\nwrong when more than one superblock is mounted.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "16feb9fec0e1f74339bd6992130ceedb3aa9567e",
      "tree": "cc759c3d591fdd2915de4dcd08bc7baf4290f48f",
      "parents": [
        "0bc0748dfbefacce9c6b67ab23f2c80133b598f7"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Sep 13 10:43:37 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Sep 13 10:43:37 2006 -0400"
      },
      "message": "[GFS2] Use atomic_t rather than kref in glock.c\n\nUse atomic_t as the ref count in glocks rather than a kref.\nThis is another step towards using RCU for the glock hash.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b6397893a5ed81970e803d61ee2f1a0e79f87438",
      "tree": "88b1f9fe213b70f0c4d96583bb40601d9cfc446d",
      "parents": [
        "24264434603cc102d71fb2a1b3b7e282a781f449"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Sep 12 10:10:01 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Sep 12 10:10:01 2006 -0400"
      },
      "message": "[GFS2] Use hlist for glock hash chains\n\nThis results in smaller list heads, so that we can have more chains\nin the same amount of memory (twice as many). I\u0027ve multiplied the\nsize of the table by four though - this is because we are saving\nmemory by not having one lock per chain any more. So we land up\nusing about the same amount of memory for the hash table as we\ndid before I started these changes, the difference being that we\nnow have four times as many hash chains.\n\nThe reason that I say \"about the same amount of memory\" is that the\nactual amount now depends upon the NR_CPUS and some of the config\nvariables, so that its not exact and in some cases we do use more\nmemory. Eventually we might want to scale the hash table size\naccording to the size of physical ram as measured on module load.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "24264434603cc102d71fb2a1b3b7e282a781f449",
      "tree": "18af5274fa222f0420df30651f57bab1eaf75eab",
      "parents": [
        "94610610f10749c0e17b4d2840ff8a7cb636c413"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 11 21:40:30 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 11 21:40:30 2006 -0400"
      },
      "message": "[GFS2] Rewrite of examine_bucket()\n\nThe existing implementation of this function in glock.c was not\nvery efficient as it relied upon keeping a cursor element upon the\nhash chain in question and moving it along. This new version improves\nupon this by using the current element as a cursor. This is possible\nsince we only look at the \"next\" element in the list after we\u0027ve\ntaken the read_lock() subsequent to calling the examiner function.\nObviously we have to eventually drop the ref count that we are then\nleft with and we cannot do that while holding the read_lock, so we\ndo that next time we drop the lock. That means either just before\nwe examine another glock, or when the loop has terminated.\n\nThe new implementation has several advantages: it uses only a\nread_lock() rather than a write_lock(), so it can run simnultaneously\nwith other code, it doesn\u0027t need a \"plug\" element, so that it removes\na test not only from this list iterator, but from all the other glock\nlist iterators too. So it makes things faster and smaller.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "94610610f10749c0e17b4d2840ff8a7cb636c413",
      "tree": "718d81be51c29da312136d93ca62f4f8071637f0",
      "parents": [
        "a5e08a9ef50e8b6feb099f8e4b253df04f5ec9db"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Sat Sep 09 18:59:27 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Sat Sep 09 18:59:27 2006 -0400"
      },
      "message": "[GFS2] Remove unused function from glock.c\n\nThe callback for iopen locks is unused, so this removes\nit.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "a5e08a9ef50e8b6feb099f8e4b253df04f5ec9db",
      "tree": "9d35e98597a51e39435fcc67f172f1ec14c6dbe4",
      "parents": [
        "087efdd391f47305dc251a7b00dcc5d69e8c636a"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Sat Sep 09 17:07:05 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Sat Sep 09 17:07:05 2006 -0400"
      },
      "message": "[GFS2] Add consts to glock sorting function\n\nAdd back the consts which were casted away in the glock sorting\nfunction. Also add early exit code.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "087efdd391f47305dc251a7b00dcc5d69e8c636a",
      "tree": "e6d74f4107b5046fb8280a33f76ad7cab1d2b992",
      "parents": [
        "ff6af411ae65da95a1801668b9580c5c33f0f7d1"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Sat Sep 09 16:59:11 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Sat Sep 09 16:59:11 2006 -0400"
      },
      "message": "[GFS2] Make glock hash locks proportional to NR_CPUS\n\nMake the number of locks used for hash chains in glock.c\nproportional to NR_CPUS. Also move constants for the number\nof hash chains into glock.c from incore.h since they are\nnot used outside of glock.c.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "37b2fa6a24f996d751dc80fbc8a77602cead269b",
      "tree": "2b96dc483c92593fac467076e76433f6fd6297be",
      "parents": [
        "9b47c11d1cbedcba685c9bd90c73fd41acdfab0e"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Sep 08 13:35:56 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Sep 08 13:35:56 2006 -0400"
      },
      "message": "[GFS2] Move rwlocks in glock.c into their own array\n\nThis splits the rwlocks guarding the hash chains of the glock hash\ntable into their own array. This will reduce memory usage in some\ncases due to better alignment, although the real reason for doing it\nis to allow the two tables to be different sizes in future (i.e.\nthe locks will be sized proportionally with the max number of CPUs\nand the hash chains sized proportinally with the size of physical memory)\n\nIn order to allow this, the gl_bucket member of struct gfs2_glock has\nnow become gl_hash, so we record the hash rather than a pointer to the\nbucket itself.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "9b47c11d1cbedcba685c9bd90c73fd41acdfab0e",
      "tree": "799f05877bd8973262da54852b7b8bf9a9916998",
      "parents": [
        "a2c4580797f62b0dd9a48f1e0ce3fe8b8fd76262"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Sep 08 10:17:58 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Sep 08 10:17:58 2006 -0400"
      },
      "message": "[GFS2] Use void * instead of typedef for locking module interface\n\nAs requested by Jan Engelhardt, this removes the typedefs in the\nlocking module interface and replaces them with void *. Also\nsince we are changing the interface, I\u0027ve added a few consts\nas well.\n\nCc: Jan Engelhardt \u003cjengelh@linux01.gwdg.de\u003e\nCc: David Teigland \u003cteigland@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "1c089c325d5cda0f64a3cf8edf3aaafa148f200a",
      "tree": "f59c862b0d84ffc06d7c208607fc26bd6f8da4b5",
      "parents": [
        "b9201ce9a826f5ae4a8e153b52cf5d29f525ca11"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Sep 07 15:50:20 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Sep 07 15:50:20 2006 -0400"
      },
      "message": "[GFS2] Remove one typedef\n\nThis removes one of the typedefs from the locking interface. It\nis replaced by a forward declaration of the gfs2 superblock. The\nother two are not so easy to solve since in their case, they\ncan refer to one of two possible structures.\n\nCc: David Teigland \u003cteigland@redhat.com\u003e\nCc: Jan Engelhardt \u003cjengelh@linux01.gwdg.de\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "85d1da67f7e1239afa3494d05be87da6fc3ecada",
      "tree": "01508570249764d8b0e38183e1ea7e9666b34b78",
      "parents": [
        "b8547856f9c158ff70effbcfd15969c908fbe1b3"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Sep 07 14:40:21 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Sep 07 14:40:21 2006 -0400"
      },
      "message": "[GFS2] Move glock hash table out of superblock\n\nThere are several reasons why we want to do this:\n - Firstly its large and thus we\u0027ll scale better with multiple\n   GFS2 fs mounted at the same time\n - Secondly its easier to scale its size as required (thats a plan\n   for later patches)\n - Thirdly, we can use kzalloc rather than vmalloc when allocating\n   the superblock (its now only 4888 bytes)\n - Fourth its all part of my plan to eventually be able to use RCU\n   with the glock hash.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b8547856f9c158ff70effbcfd15969c908fbe1b3",
      "tree": "11aed7e28899a3a3dc9a45a2cfc160ec084c581e",
      "parents": [
        "62f140c173f2c85e15527eefc6e2fb3c37a97eb1"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Sep 07 13:12:27 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Sep 07 13:12:27 2006 -0400"
      },
      "message": "[GFS2] Add gfs2 superblock to glock hash function\n\nThis is another patch preparing for sharing of the glock hash\ntable between different gfs2 mounts.\n\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": "a91ea69ffd3f8a0b7139bfd44042ab384461e631",
      "tree": "f05952e49e01609b21dbe8d27d9ffd30b4aa507f",
      "parents": [
        "75d3b817a0b48425da921052955cc58f20bbab52"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 04 12:04:26 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 04 12:04:26 2006 -0400"
      },
      "message": "[GFS2] Align all labels against LH side\n\nThis makes everything consistent.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "5029996547a9f3988459e11955c13259495308ef",
      "tree": "4667c98c19a6f39dc820e4eb648ecfa03b29bce2",
      "parents": [
        "e9fc2aa091ab8fa46e60d4c9d06a89305c441652"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 04 09:49:55 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 04 09:49:55 2006 -0400"
      },
      "message": "[GFS2] Tidy up locking code\n\nAs per Jan Engelhardt\u0027s second email, this removes some unused code,\nand fixes up indenting in various places.\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": "899be4d3b7e00bf364d84c1c8cfe8bbbd1e3507b",
      "tree": "fd3af3ebb3c237a4c309c3f48902f9550864c39e",
      "parents": [
        "d6a53727683bbf993c01ab49b45e0eac17e23df1"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Aug 30 12:50:28 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Aug 30 12:50:28 2006 -0400"
      },
      "message": "[GFS2] Add superblock into key for glock lookups\n\nThis adds the superblock as a key for glock lookups. Since the glocks\nare already stored in a per-superblock table, this has no effect at\nthe moment. Later on this will change though.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "d6a53727683bbf993c01ab49b45e0eac17e23df1",
      "tree": "c17d58d664222633c254f09561eed847c1ccef59",
      "parents": [
        "ec45d9f583b3663f90a7c5c559fd13e6e4c56ad5"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Aug 30 11:16:23 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Aug 30 11:16:23 2006 -0400"
      },
      "message": "[GFS2] Use const on glock lookup key\n\nUse const for the glock name which is being used as a lookup key\nin the glock hash table.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    }
  ],
  "next": "ec45d9f583b3663f90a7c5c559fd13e6e4c56ad5"
}
