)]}'
{
  "log": [
    {
      "commit": "7afd88d9166a752b52517648bcbe923e05d393fc",
      "tree": "2fb945189e3cb1be7ad007088f8ec86e9f67ece6",
      "parents": [
        "60b779cfc1fa52034a996ee12a23b62d32e86000"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Feb 22 16:07:18 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:41:12 2008 +0100"
      },
      "message": "[GFS2] Fix a page lock / glock deadlock\n\nWe\u0027ve previously been using a \"try lock\" in readpage on the basis that\nit would prevent deadlocks due to the inverted lock ordering (our normal\nlock ordering is glock first and then page lock). Unfortunately tests\nhave shown that this isn\u0027t enough. If the glock has a demote request\nqueued such that run_queue() in the glock code tries to do a demote when\nits called under readpage then it will try and write out all the dirty\npages which requires locking them. This then deadlocks with the page\nlocked by readpage.\n\nThe solution is to always require two calls into readpage. The first\nunlocks the page, gets the glock and returns AOP_TRUNCATED_PAGE, the\nsecond does the actual readpage and unlocks the glock \u0026 page as\nrequired.\n\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": "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": "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": "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": "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": "e8edc6e03a5c8562dc70a6d969f732bdb355a7e7",
      "tree": "fc86c863655128a7041dfe613d14393d761fa7b9",
      "parents": [
        "ff1be9ad61e3e17ba83702d8ed0b534e5b8ee15c"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon May 21 01:22:52 2007 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 21 09:18:19 2007 -0700"
      },
      "message": "Detach sched.h from mm.h\n\nFirst thing mm.h does is including sched.h solely for can_do_mlock() inline\nfunction which has \"current\" dereference inside. By dealing with can_do_mlock()\nmm.h can be detached from sched.h which is good. See below, why.\n\nThis patch\na) removes unconditional inclusion of sched.h from mm.h\nb) makes can_do_mlock() normal function in mm/mlock.c\nc) exports can_do_mlock() to not break compilation\nd) adds sched.h inclusions back to files that were getting it indirectly.\ne) adds less bloated headers to some files (asm/signal.h, jiffies.h) that were\n   getting them indirectly\n\nNet result is:\na) mm.h users would get less code to open, read, preprocess, parse, ... if\n   they don\u0027t need sched.h\nb) sched.h stops being dependency for significant number of files:\n   on x86_64 allmodconfig touching sched.h results in recompile of 4083 files,\n   after patch it\u0027s only 3744 (-8.3%).\n\nCross-compile tested on\n\n\tall arm defconfigs, all mips defconfigs, all powerpc defconfigs,\n\talpha alpha-up\n\tarm\n\ti386 i386-up i386-defconfig i386-allnoconfig\n\tia64 ia64-up\n\tm68k\n\tmips\n\tparisc parisc-up\n\tpowerpc powerpc-up\n\ts390 s390-up\n\tsparc sparc-up\n\tsparc64 sparc64-up\n\tum-x86_64\n\tx86_64 x86_64-up x86_64-defconfig x86_64-allnoconfig\n\nas well as my two usual configs.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\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": "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": "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": "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": "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": "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": "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": "2ca99501fa5422e84f18333918a503433449e2b5",
      "tree": "46bdb25c3be5bdc4e4c80b30a99dd3811f2ee1c0",
      "parents": [
        "c594d8866460a2710c436839d79f334a0714a2a7"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 08 10:26:54 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:34:43 2006 -0500"
      },
      "message": "[GFS2] Fix page lock/glock deadlock\n\nThis fixes a race between the glock and the page lock encountered\nduring truncate in gfs2_readpage and gfs2_prepare_write. The gfs2_readpages\nfunction doesn\u0027t need the same fix since it only uses a try lock anyway, so\nit will fail back to gfs2_readpage in the case of a potential deadlock.\n\nThis bug was spotted by Russell Cattelan.\n\nCc: Russell Cattelan \u003ccattelan@redhat.com\u003e\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": "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": "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": "f2f7ba5237e2fe10ba3e328a4f728b9e1ff141da",
      "tree": "ab55597fa51321ba74e60d17b6fb449e23e8145c",
      "parents": [
        "2bdbc5d73961c040fdc9b30d985fab3047d697a0"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Sep 05 10:39:21 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Sep 05 10:39:21 2006 -0400"
      },
      "message": "[GFS2] Make headers compile on their own\n\nAs per Jan Engelhardt\u0027s comments, this should make all the headers\ncompile on their own by including and/or declaring structures\nearly.\n\nCc: Jan Engelhardt \u003cjengelh@linux01.gwdg.de\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "cd915493fce912f1bd838ee1250737ecf33b8fae",
      "tree": "e14ec6643de91f473edb26a89905e710596fe6bc",
      "parents": [
        "a91ea69ffd3f8a0b7139bfd44042ab384461e631"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 04 12:49:07 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 04 12:49:07 2006 -0400"
      },
      "message": "[GFS2] Change all types to uX style\n\nThis makes all fixed size types have consistent names.\n\nCc: Jan Engelhardt \u003cjengelh@linux01.gwdg.de\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "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": "5e2b0613ed9f9641937dd5948051631249447c57",
      "tree": "2bccd88b4303e7917824cef45aabbe43cd0d93c2",
      "parents": [
        "8fb4b536e7b9dbaf7a6b8204e887b92a14e4352c"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Aug 30 09:38:30 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Aug 30 09:38:30 2006 -0400"
      },
      "message": "[GFS2] Remove unused code from glock layer\n\nRemove the unused sync feature from glocks. This is currently done by\ncalling the required functions to sync pages/blocks directly so this\ncode isn\u0027t needed.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "8fb4b536e7b9dbaf7a6b8204e887b92a14e4352c",
      "tree": "f74f905188ca9df0fc6f5fda3c6ee25ede02ee2f",
      "parents": [
        "83b7a664a0c7c39ccfa4c72535dc1c001d4e7a18"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Aug 30 09:30:00 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Aug 30 09:30:00 2006 -0400"
      },
      "message": "[GFS2] Make glock operations const\n\nFor all the usual reasons of enforcing correctness and potentially\nreducing code size, this patch makes the glock operations const.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "feaa7bba026c181ce071d5a4884f7f9dd26207a1",
      "tree": "c858deb225917265cb07820730e9764674d133e8",
      "parents": [
        "22da645fd6675b7abc55cf937ddf6132f343e5b9"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jun 14 15:32:57 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jun 14 15:32:57 2006 -0400"
      },
      "message": "[GFS2] Fix unlinked file handling\n\nThis patch fixes the way we have been dealing with unlinked,\nbut still open files. It removes all limits (other than memory\nfor inodes, as per every other filesystem) on numbers of these\nwhich we can support on GFS2. It also means that (like other\nfs) its the responsibility of the last process to close the file\nto deallocate the storage, rather than the person who did the\nunlinking. Note that with GFS2, those two events might take place\non different nodes.\n\nAlso there are a number of other changes:\n\n o We use the Linux inode subsystem as it was intended to be\nused, wrt allocating GFS2 inodes\n o The Linux inode cache is now the point which we use for\nlocal enforcement of only holding one copy of the inode in\ncore at once (previous to this we used the glock layer).\n o We no longer use the unlinked \"special\" file. We just ignore it\ncompletely. This makes unlinking more efficient.\n o We now use the 4th block allocation state. The previously unused\nstate is used to track unlinked but still open inodes.\n o gfs2_inoded is no longer needed\n o Several fields are now no longer needed (and removed) from the in\ncore struct gfs2_inode\n o Several fields are no longer needed (and removed) from the in core\nsuperblock\n\nThere are a number of future possible optimisations and clean ups\nwhich have been made possible by this patch.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "320dd101e2d595a03439adb92b319f3af53dd1d0",
      "tree": "56a88401a218622018030045fec009bafdc4ce76",
      "parents": [
        "3a8a9a1034813aa99f5ae3150f652d490c5ff10d"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu May 18 16:25:27 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu May 18 16:25:27 2006 -0400"
      },
      "message": "[GFS2] glock debugging and inode cache changes\n\nThis adds some extra debugging to glock.c and changes\ninode.c\u0027s deallocation code to call the debugging code\nat a suitable moment. I\u0027m chasing down a particular bug\nto do with deallocation at the moment and the code can\ngo again once the bug is fixed.\n\nAlso this includes the first part of some changes to unify\nthe Linux struct inode and GFS2\u0027s struct gfs2_inode. This\ntransformation will happen in small parts over the next short\nperiod.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "3a8a9a1034813aa99f5ae3150f652d490c5ff10d",
      "tree": "427d4c1499b5c88dbf43c6e490d83cee350083b2",
      "parents": [
        "bd8968010a9a08e67a0ddb3ddee9feb8882e8c2f"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu May 18 15:09:15 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu May 18 15:09:15 2006 -0400"
      },
      "message": "[GFS2] Update copyright date to 2006\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "08bc2dbc7327e89b9d5b9c8ef9401d1df2622fca",
      "tree": "2c16cbd9f5bd856b00ef0a0d9f88b3afa67712ee",
      "parents": [
        "c56b39cd2c55d521597f04bbd872a08d1c4373ca"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Apr 28 10:59:12 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Apr 28 10:59:12 2006 -0400"
      },
      "message": "[GFS2] [-mm patch] fs/gfs2/: possible cleanups\n\nThis patch contains the following possible cleanups:\n- make needlessly global code static\n- #if 0 unused functions\n- remove the following global function that was both unused and\n  unimplemented:\n  - super.c: gfs2_do_upgrade()\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "579b78a43b366d51f9c888afaf1eab1f4ea599fa",
      "tree": "023e4893b71b35d312a1df18129b296934710d5c",
      "parents": [
        "5965b1f4792a1a9364b4e1ed6be8778a50eb981b"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 26 14:58:26 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 26 14:58:26 2006 -0400"
      },
      "message": "[GFS2] Remove GL_NEVER_RECURSE flag\n\nThere is no point in keeping this flag since recursion is not\nnow allowed for any glock.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "190562bd84a484bf6590425aa2bb4d6d611c112b",
      "tree": "dd99bcd847f8d2376f7836ea9d861a31d1021c71",
      "parents": [
        "fe1bdedc6c16adedc6fd3636185ea91596b1d6eb"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Apr 20 16:57:23 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Apr 20 16:57:23 2006 -0400"
      },
      "message": "[GFS2] Fix a bug: scheduling under a spinlock\n\nAt some stage, a mutex was added to gfs2_glock_put() without\nchecking all its call sites. Two of them were called from\nunder a spinlock causing random delays at various points and\ncrashes.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "fe1bdedc6c16adedc6fd3636185ea91596b1d6eb",
      "tree": "4d68a40c1a2db670e71952003e5fb09a95123975",
      "parents": [
        "4d8012b60e0f0e0217e65f67da7d97276d1824e9"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Apr 18 10:09:15 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Apr 18 10:09:15 2006 -0400"
      },
      "message": "[GFS2] Use vmalloc() in dir code\n\nWhen allocating memory to sort directory entries, use vmalloc()\nrather than kmalloc() since for larger directories, the required\nsize can easily be graeter than the 128k maximum of kmalloc().\n\nAlso adding the first steps towards getting the AOP_TRUNCATED_PAGE\nreturn code get in the glock code by flagging all places where we\nrequest a glock and we are holding a page lock.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "d0dc80dbafb5c10ad2084831a61bbf945484a139",
      "tree": "f7434367a66e4e4be0885daefe5e59ab43502a7f",
      "parents": [
        "484adff8a06cb5d952832f5487ae863f54c0fb69"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 29 14:36:49 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 29 14:36:49 2006 -0500"
      },
      "message": "[GFS2] Update debugging code\n\nUpdate the debugging code in trans.c and at the same time improve\nthe debugging code for gfs2_holders. The new code should be pretty\nfast during the normal case and provide just as much information\nin case of errors (or more).\n\nOne small function from glock.c has moved to glock.h as a static inline so\nthat its return address won\u0027t get in the way of the debugging.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b3b94faa5fe5968827ba0640ee9fba4b3e7f736e",
      "tree": "70bd6068b050d2c46e338484f8b03fae4365c6c3",
      "parents": [
        "f7825dcf8c7301cfd3724eb40c5b443cc85ab7b8"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Mon Jan 16 16:50:04 2006 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 16 16:50:04 2006 +0000"
      },
      "message": "[GFS2] The core of GFS2\n\nThis patch contains all the core files for GFS2.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    }
  ]
}
