)]}'
{
  "log": [
    {
      "commit": "8e24eea728068bbeb6a3c500b848f883a20bf225",
      "tree": "93e79da649723e2766237505b22725fec395f139",
      "parents": [
        "530b6412786d7f83592c1a8e2445541ed73fca76"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Apr 30 00:55:09 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:54 2008 -0700"
      },
      "message": "fs: replace remaining __FUNCTION__ occurrences\n\n__FUNCTION__ is gcc-specific, use __func__\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3c18ddd160d1fcd46d1131d9ad6c594dd8e9af99",
      "tree": "7307ba1ae4bdb99d1363eb59b1ebefcf5295c8ef",
      "parents": [
        "4d3d5b41a72b52555d43efbfc4ccde6ba6e5444f"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Apr 28 02:12:10 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:18 2008 -0700"
      },
      "message": "mm: remove nopage\n\nNothing in the tree uses nopage any more.  Remove support for it in the\ncore mm code and documentation (and a few stray references to it in\ncomments).\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2402211a8389282fd2942fad4511f02c0eeeffc5",
      "tree": "853e5818a29816e642689d7e793a845d2519711b",
      "parents": [
        "d44e0fc704143624b3e88fbf8fbcfda7a83fd299"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Fri Mar 14 15:09:15 2008 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Mon Apr 21 11:22:28 2008 -0500"
      },
      "message": "dlm: move plock code from gfs2\n\nMove the code that handles cluster posix locks from gfs2 into the dlm\nso that it can be used by both gfs2 and ocfs2.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "62be1f71677c53d5e51223807a06ac9052f49b0f",
      "tree": "954b987466f9616934364b716d7fb93dcba12b46",
      "parents": [
        "16c5f06f15ad4e5a5d6e90b78ffb1ac14319e445"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "12o3l@tiscali.nl",
        "time": "Thu Apr 17 17:25:37 2008 +0200"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Apr 18 08:36:09 2008 +0100"
      },
      "message": "[GFS2] fix assertion in log_refund()\n\nsince unsigned, unused \u003e\u003d 0 is always true.\n\nSigned-off-by: Roel Kluin \u003c12o3l@tiscali.nl\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "16c5f06f15ad4e5a5d6e90b78ffb1ac14319e445",
      "tree": "84204e44e0246e9a3f4db23223a5209105fde368",
      "parents": [
        "773adff8e983cba1f5844c3be3be224ca6645f26"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "jbacik@redhat.com",
        "time": "Wed Apr 09 09:33:41 2008 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Apr 10 09:55:26 2008 +0100"
      },
      "message": "[GFS2] fix GFP_KERNEL misuses\n\nThere are several places where GFP_KERNEL allocations happen under a glock,\nwhich will result in hangs if we\u0027re under memory pressure and go to re-enter the\nfs in order to flush stuff out.  This patch changes the culprits to GFS_NOFS to\nkeep this problem from happening.  Thank you,\n\nSigned-off-by: Josef Bacik \u003cjbacik@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "773adff8e983cba1f5844c3be3be224ca6645f26",
      "tree": "369f9a4394176b0a8860e9558852d63453ccc9a4",
      "parents": [
        "58e9fee13e579df44922172dbe3c9e3ba3edf7a3"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Mon Mar 24 19:08:48 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:41:46 2008 +0100"
      },
      "message": "[GFS2] test for IS_ERR rather than 0\n\nThe function gfs2_inode_lookup always returns either a valid pointer or a\nvalue made with ERR_PTR, so its result should be tested with IS_ERR, not\nwith a test for 0.\n\nThe problem was found using the following semantic match.\n(http://www.emn.fr/x-info/coccinelle/)\n\n//\u003csmpl\u003e\n@a@\nexpression E, E1;\nstatement S,S1;\nposition p;\n@@\n\nE \u003d gfs2_inode_lookup(...)\n... when !\u003d E \u003d E1\nif@p (E) S else S1\n\n@n@\nposition a.p;\nexpression E,E1;\nstatement S,S1;\n@@\n\nE \u003d NULL\n... when !\u003d E \u003d E1\nif@p (E) S else S1\n\n@depends on !n@\nexpression E;\nstatement S,S1;\nposition a.p;\n@@\n\n* if@p (E)\n  S else S1\n//\u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@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": "f5a8cd020173c455705fc0095b7d299da6f8f87b",
      "tree": "1468178666f6adc40d5c13f3658e0e565a5dd17c",
      "parents": [
        "1f466a47e8a3a3e3b527b3285c7b9c8a837fb7ec"
      ],
      "author": {
        "name": "akpm@linux-foundation.org",
        "email": "akpm@linux-foundation.org",
        "time": "Wed Mar 12 14:01:29 2008 -0700"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:41:41 2008 +0100"
      },
      "message": "[GFS2] fs/gfs2/recovery.c: suppress warnings\n\nfs/gfs2/recovery.c: In function \u0027get_log_header\u0027:\nfs/gfs2/recovery.c:152: warning: \u0027lh.lh_sequence\u0027 may be used uninitialized in this function\nfs/gfs2/recovery.c:152: warning: \u0027lh.lh_flags\u0027 may be used uninitialized in this function\nfs/gfs2/recovery.c:152: warning: \u0027lh.lh_tail\u0027 may be used uninitialized in this function\nfs/gfs2/recovery.c:152: warning: \u0027lh.lh_blkno\u0027 may be used uninitialized in this function\nfs/gfs2/recovery.c:152: warning: \u0027lh.lh_hash\u0027 may be used uninitialized in this function\n\nCc: David Teigland \u003cteigland@redhat.com\u003e\nCc: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "1f466a47e8a3a3e3b527b3285c7b9c8a837fb7ec",
      "tree": "355f6084118d4ee9a986e07e5154eaa0e25b834a",
      "parents": [
        "d82661d96993ac4efc1d54259ea85ffcd9b8bec6"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Mon Mar 10 18:17:47 2008 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:41:39 2008 +0100"
      },
      "message": "[GFS2] Faster gfs2_bitfit algorithm\n\nThis version of the gfs2_bitfit algorithm includes the latest\nsuggestions from Steve Whitehouse.  It is typically eight to\nten times faster than the version we\u0027re using today.  If there\nis a lot of metadata mixed in (lots of small files) the\nalgorithm is often 15 times faster, and given the right\nconditions, I\u0027ve seen peaks of 20 times faster.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "d82661d96993ac4efc1d54259ea85ffcd9b8bec6",
      "tree": "0a42b5a3ff34839673e0007fca4335f18078803a",
      "parents": [
        "860b25d4a913a00331d333f8e207a088c7a1b84a"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 10 15:34:50 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:41:36 2008 +0100"
      },
      "message": "[GFS2] Streamline quota lock/check for no-quota case\n\nThis patch streamlines the quota checking in the \"no quota\" case by\nmaking the check inline in the calling function, thus reducing the\nnumber of function calls. Eventually we might be able to remove the\nchecks from the gfs2_quota_lock() and gfs2_quota_check() functions, but\ncurrently we can\u0027t as there are a very few places in the code which need\nto call these functions directly still.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Abhijith Das \u003cadas@redhat.com\u003e\n"
    },
    {
      "commit": "860b25d4a913a00331d333f8e207a088c7a1b84a",
      "tree": "a08771cae65f1d829db28735f0d96eb1b18f1653",
      "parents": [
        "20b95bf2c4c5c28e093aa42699e67829b6cd7fd0"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 10 10:13:31 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:41:33 2008 +0100"
      },
      "message": "[GFS2] Remove drop of module ref where not needed\n\nIn an earlier patch \"[GFS2] fix file_system_type leak on gfs2meta mount\"\nwe removed the code to grab a ref to the module which was not needed\n(since we know that the module cannot be unloaded at that time) so\nthis patch removes the code to drop that reference.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "20b95bf2c4c5c28e093aa42699e67829b6cd7fd0",
      "tree": "e611fb6ee336f37609a5881a0846ffdf80bf58dc",
      "parents": [
        "182fe5abd8ebbb3a00c1be91f44e4783e139918c"
      ],
      "author": {
        "name": "Abhijith Das",
        "email": "adas@redhat.com",
        "time": "Thu Mar 06 17:43:52 2008 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:41:30 2008 +0100"
      },
      "message": "[GFS2] gfs2_adjust_quota has broken unstuffing code\n\nThis patch combines the 2 patches in bug 434736 to correct the lock\nordering in the unstuffing of the quota inode in gfs2_adjust_quota and\nadjusting the number of revokes in gfs2_write_jdata_pagevec\n\nSigned-off-by: Abhijith Das \u003cadas@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "182fe5abd8ebbb3a00c1be91f44e4783e139918c",
      "tree": "7404993656166f2b7cb78e54e4275d44336ba27c",
      "parents": [
        "105284970ba7d0d0ff4b97e57728eac7adf6a42a"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@gmail.com",
        "time": "Mon Mar 03 21:54:21 2008 +0300"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:41:28 2008 +0100"
      },
      "message": "[GFS2] possible null pointer dereference fixup\n\ngfs2_alloc_get may fail so we have to check it to prevent\nNULL pointer dereference.\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@gamil.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "105284970ba7d0d0ff4b97e57728eac7adf6a42a",
      "tree": "102a221328048fdd69963b09e49648d3c305aebb",
      "parents": [
        "43a33c53cc9131a537522ab9736c6e4c03ddf57a"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Feb 27 17:56:27 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:41:25 2008 +0100"
      },
      "message": "[GFS2] Need to ensure that sector_t is 64bits for GFS2\n\nWe need to ensure that sector_t is 64bits for GFS2, so that we need to\ndepend on LBD as well as LSF.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "43a33c53cc9131a537522ab9736c6e4c03ddf57a",
      "tree": "0b06320ba8b253bf6c3e464db093093be97fa85e",
      "parents": [
        "d83225d45d2b76175279abb2a3d7ee325a09aba8"
      ],
      "author": {
        "name": "Denis Cheng",
        "email": "crquan@gmail.com",
        "time": "Tue Feb 26 15:25:04 2008 +0800"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:41:22 2008 +0100"
      },
      "message": "[GFS2] re-support special inode\n\na previous commit removed call to\ninit_special_inode from inode lookuping, this cause problems as:\n\n # mknod /mnt/gfs2/dev/null c 1 3\n # cat /mnt/gfs2/dev/null\n cat: /mnt/gfs2/dev/null: Invalid argument\n\nwithout special inode, GFS2 cannot support char device file,\nblock device file, fifo pipe, and socket file, lose many important\nfeatures as a common file system.\n\nthis one line patch re add special inode support.\n\nSigned-off-by: Denis Cheng \u003ccrquan@gmail.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "d83225d45d2b76175279abb2a3d7ee325a09aba8",
      "tree": "e6fc40998a7e7e0c7a22b2e0f29149ad47e0e2b0",
      "parents": [
        "7dc2cf1c8ffbd471722f1aa479bc68d4df1c9edc"
      ],
      "author": {
        "name": "Denis Cheng",
        "email": "crquan@gmail.com",
        "time": "Tue Feb 26 15:25:03 2008 +0800"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:41:20 2008 +0100"
      },
      "message": "[GFS2] remove gfs2_dev_iops\n\nstruct inode_operations gfs2_dev_iops is always the same as gfs2_file_iops,\nsince Jan 2006, when GFS2 merged into mainstream kernel.\n\nSo one of them could be removed.\n\nSigned-off-by: Denis Cheng \u003ccrquan@gmail.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "7dc2cf1c8ffbd471722f1aa479bc68d4df1c9edc",
      "tree": "68a9aca21c277db3d5223a12b61600b8a33bd7c0",
      "parents": [
        "9b8c81d1de49943ec69d157234b8981008c30d31"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Feb 25 18:58:36 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:41:17 2008 +0100"
      },
      "message": "[GFS2] fix file_system_type leak on gfs2meta mount\n\nget_gfs2_sb does a get_fs_type without doing a put_filesystem and\nthus leaking a file_system_type reference everytime it\u0027s called.\n\nJust use gfs2_fs_type directly instead of doing the lookup and thus\nfix the problem.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "9b8c81d1de49943ec69d157234b8981008c30d31",
      "tree": "c0cbbd25fdcbf376c06c9dcfb7d25b8873caa6ff",
      "parents": [
        "7afd88d9166a752b52517648bcbe923e05d393fc"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Feb 22 16:09:31 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:41:14 2008 +0100"
      },
      "message": "[GFS2] Allow bmap to allocate extents\n\nWe\u0027ve supported mapping of extents when no block allocation is required\nfor some time. This patch extends that to mapping of extents when an\nallocation has been requested. In that case we try to allocate as many\nblocks as are requested, but we might return fewer in case there is\nsomething preventing us from returning the complete amount (e.g. an\nalready allocated block is in the way).\n\nCurrently the only code path which can actually request multiple data\nblocks in a single bmap call is the page_mkwrite path and even then it\nonly happens if there are multiple blocks per page. What this patch does\ndo however, is merge the allocation requests for metadata (growing the\nmetadata tree in either height or depth) with the allocation of the data\nblocks in the case that both are needed. This results in lower overheads\neven in the single block allocation case.\n\nThe one thing which we can\u0027t handle here at the moment is unstuffing. I\nwould like to be able to do that, but the problem which arises is that\nin order to unstuff one has to get a locked page from the page cache\nwhich results in locking problems in the (usual) case that the caller is\nholding the page lock on the page it wishes to map. So that case will\nhave to be addressed in future patches.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "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": "60b779cfc1fa52034a996ee12a23b62d32e86000",
      "tree": "0b72bc10ef735cb02f609d3ccccb38c636895b20",
      "parents": [
        "8af4c72f7df2442230fca3ff49a97f978cfb4a04"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Sun Feb 17 10:20:34 2008 +0200"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:41:09 2008 +0100"
      },
      "message": "[GFS2] proper extern for gfs2/locking/dlm/mount.c:gdlm_ops\n\nThis patch adds a proper extern declaration for gdlm_ops in\nfs/gfs2/locking/dlm/lock_dlm.h\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "8af4c72f7df2442230fca3ff49a97f978cfb4a04",
      "tree": "f307f8f4f94d775abc43d492f64eb4d06f276c3b",
      "parents": [
        "bb16b342b2e2c83fa47dbb042400db91b748ded7"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Sun Feb 17 10:17:12 2008 +0200"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:41:06 2008 +0100"
      },
      "message": "[GFS2] gfs2/ops_file.c should #include \"ops_inode.h\"\n\nEvery file should include the headers containing the prototypes for\nits global functions (in this case for gfs2_set_inode_flags()).\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "bb16b342b2e2c83fa47dbb042400db91b748ded7",
      "tree": "86563acc182b83aa49157158c04b32a546690060",
      "parents": [
        "840ca0ec70903ce8e0fba1596460876c796e4f60"
      ],
      "author": {
        "name": "Marcin Slusarz",
        "email": "marcin.slusarz@gmail.com",
        "time": "Wed Feb 13 00:06:10 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:41:03 2008 +0100"
      },
      "message": "[GFS2] be*_add_cpu conversion\n\nreplace all:\nbig_endian_variable \u003d cpu_to_beX(beX_to_cpu(big_endian_variable) +\n\t\t\t\t\texpression_in_cpu_byteorder);\nwith:\n\tbeX_add_cpu(\u0026big_endian_variable, expression_in_cpu_byteorder);\ngenerated with semantic patch\n\nSigned-off-by: Marcin Slusarz \u003cmarcin.slusarz@gmail.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": "e23159d2a7b2df5bce5f0ee8d57d3292243abf66",
      "tree": "e7b447b7d1538b614bf041414e59603107c10151",
      "parents": [
        "77658aad226866fb94097236d14d41a88aaab2ec"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Feb 12 14:48:39 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:40:58 2008 +0100"
      },
      "message": "[GFS2] Get inode buffer only once per block map call\n\nIn the case that we needed to grow the height of the metadata tree\nwe were looking up the inode buffer and then brelse()ing it despite\nthe fact that it is needed later in the block map process.\n\nThis patch ensures that we look up the inode\u0027s buffer once and only\nonce during the block map process.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "77658aad226866fb94097236d14d41a88aaab2ec",
      "tree": "2849313fccb193bd3c4f93f241fd5fb98ad871ca",
      "parents": [
        "30cbf189cd2a1ba13ff3c8c8ee2103dbdb18578a"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Feb 12 14:17:27 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:40:55 2008 +0100"
      },
      "message": "[GFS2] Eliminate (almost) duplicate field from gfs2_inode\n\nThe blocks counter is almost a duplicate of the i_blocks\nfield in the VFS inode. The only difference is that i_blocks\ncan be only 32bits long for 32bit arch without large single file\nsupport. Since GFS2 doesn\u0027t handle the non-large single file\ncase (for 32 bit anyway) this adds a new config dependency on\n64BIT || LSF. This has always been the case, however we\u0027ve never\nexplicitly said so before.\n\nEven if we do add support for the non-LSF case, we will still\nnot require this field to be duplicated since we will not be\nable to access oversized files anyway.\n\nSo the net result of all this is that we shave 8 bytes from a gfs2_inode\nand get our config deps correct.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "30cbf189cd2a1ba13ff3c8c8ee2103dbdb18578a",
      "tree": "5d3a3e54850f021abf3ccf43879b692025610cb1",
      "parents": [
        "c85a665f064863cc8a2fe88e5f1eb4def5446e90"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Feb 08 13:18:11 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:40:53 2008 +0100"
      },
      "message": "[GFS2] Add a function to interate over an extent\n\nThis adds a function (currently the only use is during mapping\nof already allocated blocks, but watch this space) which iterates\nover a number of pointers in a block and returns the extent length.\n\nIf the initial pointer is 0 (i.e. unallocated) it will return the\nnumber of unallocated blocks in the extent. If the initial pointer\nis allocated, then it returns the number of contiguously allocated\nblocks in the extent.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "c85a665f064863cc8a2fe88e5f1eb4def5446e90",
      "tree": "e0494fb688424e7c27a4e372b02f245a2b3fb3c4",
      "parents": [
        "b45e41d7d56dfef1ae9e02e6c59990066ba82e5c"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Feb 12 12:14:59 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:40:50 2008 +0100"
      },
      "message": "[GFS2] The case of the missing asterisk\n\nA dereference was forgotten. This adds it back correctly.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b45e41d7d56dfef1ae9e02e6c59990066ba82e5c",
      "tree": "c139447fa57beb3886def4e17449cc34bf40cf3c",
      "parents": [
        "1639431a3f57b43da1e15e9268a1d691ac01ba26"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Feb 06 10:11:15 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:40:47 2008 +0100"
      },
      "message": "[GFS2] Add extent allocation to block allocator\n\nRather than having to allocate a single block at a time, this patch\nallows the block allocator to allocate an extent. Since there is\nno difference (so far as the block allocator is concerned) between\ndata blocks and indirect blocks, it is posible to allocate a single\nextent and for the caller to unrevoke just the blocks required\nfor indirect blocks.\n\nCurrently the only bit of GFS2 to make use of this feature is the\nbuild height function. The intention is that gfs2_block_map will\nbe changed to make use of this feature in future patches.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "1639431a3f57b43da1e15e9268a1d691ac01ba26",
      "tree": "0e8147c9009c917566cf03c7e23f6ea4ffda8d72",
      "parents": [
        "5731be53e3d82aedd06e02574f833a57b07a08d2"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Feb 01 14:52:30 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:40:45 2008 +0100"
      },
      "message": "[GFS2] Merge gfs2_alloc_meta and gfs2_alloc_data\n\nThanks to the preceeding patches, the only difference between\nthese two functions is their name. We can thus merge them\nand call the new function gfs2_alloc_block to reflect the\nfact that it can allocate either kind of block.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "5731be53e3d82aedd06e02574f833a57b07a08d2",
      "tree": "8877d9c51ac96a3455d8ac5e3148cd7af62d7c98",
      "parents": [
        "ac576cc5bed0dd7759e2b196468c7df93d6aeeee"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Feb 01 13:16:55 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:40:42 2008 +0100"
      },
      "message": "[GFS2] Update gfs2_trans_add_unrevoke to accept extents\n\nBy adding an extra argument to gfs2_trans_add_unrevoke we can now\nspecify an extent length of blocks to unrevoke. This means that\nwe only need to make one pass through the list for each extent\nrather than each block. Currently the only extent length which\nis used is 1, but that will change in the future.\n\nAlso gfs2_trans_add_unrevoke is removed from gfs2_alloc_meta\nsince its the only difference between this and gfs2_alloc_data\nwhich is left. This will allow a future patch to merge these\ntwo functions into one (i.e. one call to allocate both data\nand metadata in a single extent in the future).\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ac576cc5bed0dd7759e2b196468c7df93d6aeeee",
      "tree": "dc3a36d5a3d8042f041ffe1381accb8af7dc5725",
      "parents": [
        "ce276b06e8b81845926387e93f77bf81e14b5cc2"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Feb 01 10:34:15 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:40:39 2008 +0100"
      },
      "message": "[GFS2] Merge the rd_last_alloc_meta and rd_last_alloc_data fields\n\nWe don\u0027t need to keep track of when we last allocated data\nand metadata separately since the only thing thats important\nwhen searching for a free block is whether its free or not,\nwhich is independent from what type of block it is.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ce276b06e8b81845926387e93f77bf81e14b5cc2",
      "tree": "ed28cd74af058761ccaa30829babc872762cf0a7",
      "parents": [
        "9feb7c889f2a3b088a7f6583e609bd39997c0f47"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Feb 06 09:25:45 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:40:37 2008 +0100"
      },
      "message": "[GFS2] Reduce inode size by merging fields\n\nThere were three fields being used to keep track of the location\nof the most recently allocated block for each inode. These have\nbeen merged into a single field in order to better keep the\ndata and metadata for an inode close on disk, and also to reduce\nthe space required for storage.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "9feb7c889f2a3b088a7f6583e609bd39997c0f47",
      "tree": "cd54d87a2b123a85d6da71312017c2b0a5a33541",
      "parents": [
        "9a0045088d888c9c539c8c626a366cb52c0fbdab"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Feb 05 17:11:40 2008 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:40:34 2008 +0100"
      },
      "message": "[GFS2] Remove unused counters\n\nThis is kind of trivial in the greater scheme of things, but\nthis removes three counters that AFAICT are never used.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "9a0045088d888c9c539c8c626a366cb52c0fbdab",
      "tree": "eac1d44330603c08dddf397fc46484f97a69a11e",
      "parents": [
        "cf45b752c9f23939e40d823b0600bf876e97b0e0"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Feb 01 09:23:44 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:40:31 2008 +0100"
      },
      "message": "[GFS2] Shrink \u0026 rename di_depth\n\nThis patch forms a pair with the previous patch which shrunk\ndi_height. Like that patch di_depth is renamed i_depth and moved\ninto struct gfs2_inode directly. Also the field goes from 16 bits\nto 8 bits since it is also limited to a max value which is rather\nsmall (17 in this case). In addition we also now validate the field\nagainst this maximum value when its read in.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@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": "110acf38377b5b341b11644bfe98389eccec627d",
      "tree": "cafe58b50d12c9102d061d0d9b668e1f78342849",
      "parents": [
        "dbac6710a6dfcec7fbe7d9571c183d86a4237623"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jan 29 13:30:20 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:40:21 2008 +0100"
      },
      "message": "[GFS2] Add consts to various bits of rgrp.c\n\nThere are a couple of routines which scan bitmaps where we can\nmark the bitmaps const, plus a couple of call sites that can\nbe updated too.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "dbac6710a6dfcec7fbe7d9571c183d86a4237623",
      "tree": "2aea63cbfaf42f5ca4473d7eb3e8486b66dfa669",
      "parents": [
        "11707ea05e85290d10c482b87e195c198f5eb3cf"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jan 29 09:12:55 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:40:18 2008 +0100"
      },
      "message": "[GFS2] Introduce array of buffers to struct metapath\n\nThe reason for doing this is to allow all the block mapping code\nto share the same array. As a result we can remove two arguments\nfrom lookup_metapath since they are now returned via the array.\n\nWe also add a function to drop all refs to buffer heads when we\nare done with the metapath. The build_height function shares the\nstruct metapath, but currently still frees its own buffers, and\nthis will change in a future patch.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "11707ea05e85290d10c482b87e195c198f5eb3cf",
      "tree": "3fec683526bc8b4940ea06d8df07f90c42fc5da0",
      "parents": [
        "29d38cd16358dcaef4a6c50866ecee28025b481a"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 28 15:10:29 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:40:15 2008 +0100"
      },
      "message": "[GFS2] Move part of gfs2_block_map into a separate function\n\nThis is required to enable future changes to the block\nmapping code.\n\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": "42d52e3818751633656fb90df1bd5cb5362fa8cc",
      "tree": "83097388e3e82f921cffa79499d30a5f09d6a020",
      "parents": [
        "6bdd9be628fa5f4dd14eb89ebddc12840d684277"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Mon Jan 28 18:38:07 2008 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:40:10 2008 +0100"
      },
      "message": "[GFS2] Combine rg_flags and rd_flags\n\nThis patch reduces the memory required by GFS2 by combining\nthe rd_flags and rg_flags (in core only).\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "6bdd9be628fa5f4dd14eb89ebddc12840d684277",
      "tree": "7a995fa251a55af6f7b185810a24a7ebb5d00a33",
      "parents": [
        "3ad62e87cd38817361e165cf4ad496ab76e19e81"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Mon Jan 28 17:20:26 2008 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:40:07 2008 +0100"
      },
      "message": "[GFS2] Allocate gfs2_rgrpd from slab memory\n\nThis patch moves the gfs2_rgrpd structure to its own slab\nmemory.  This makes it easier to control and monitor, and\nyields less memory fragmentation.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "3ad62e87cd38817361e165cf4ad496ab76e19e81",
      "tree": "b094e3244239d67d1d1c72abac50a1ba792aaa6a",
      "parents": [
        "048786f1e6042022a8fb2035157a8c8c3a82a4f2"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Mon Jan 28 16:35:13 2008 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:40:05 2008 +0100"
      },
      "message": "[GFS2] Plug an unlikely leak\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "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": "7eabb77e65c559d9c284da232b9ba5354898028a",
      "tree": "b5df9c7ca0317abde3b76e56dc8f6c0050d9558e",
      "parents": [
        "d0109bfa84d6603becac8c2e87b3716f557f2039"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Mon Jan 28 11:24:35 2008 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:39:57 2008 +0100"
      },
      "message": "[GFS2] Misc fixups\n\nThis patch contains two small fixups that didn\u0027t fit elsewhere.\nThey are: (1) get rid of temp variable in find_metapath.\n(2) Remove vestigial \"ret\" variable from gfs2_writepage_common.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "d0109bfa84d6603becac8c2e87b3716f557f2039",
      "tree": "6da41dae00d5784f4e52831d3d40629c1698b00a",
      "parents": [
        "ca390601a8bbb4ab8301a9469d23cdb1cf77e7cb"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Mon Jan 28 11:20:10 2008 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:39:54 2008 +0100"
      },
      "message": "[GFS2] Only do lo_incore_commit once\n\nThis patch is performance related.  When we\u0027re doing a log flush,\nI noticed we were calling buf_lo_incore_commit twice: once for\ndata bufs and once for metadata bufs.  Since this is the same\nfunction and does the same thing in both cases, there should be\nno reason to call it twice.  Since we only need to call it once,\nwe can also make it faster by removing it from the generic \"lops\"\ncode and making it a stand-along static function.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ca390601a8bbb4ab8301a9469d23cdb1cf77e7cb",
      "tree": "db76913358aa21accdefc33ac8bcb8b7b22d0568",
      "parents": [
        "fe6c991c52a0dd07d4a19d392fd65048226cb1bc"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Mon Jan 28 11:15:57 2008 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:39:52 2008 +0100"
      },
      "message": "[GFS2] Fix debug inode printing\n\nI noticed that the latest change to i_height got rid of the\nvalue from the inode dump.  This patch adds it back.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "fe6c991c52a0dd07d4a19d392fd65048226cb1bc",
      "tree": "629a2a35887047f7e973edeb9b543fe833a1065c",
      "parents": [
        "ecc30c79157103e8bd7492043ee992b763443832"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Mon Jan 28 11:13:02 2008 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:39:49 2008 +0100"
      },
      "message": "[GFS2] Get rid of unneeded parameter in gfs2_rlist_alloc\n\nThis patch removed the unnecessary parameter from function\ngfs2_rlist_alloc.  The parameter was always passed in as 0.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ecc30c79157103e8bd7492043ee992b763443832",
      "tree": "51b1af9b58dfcf1b561888a6752255ac86070808",
      "parents": [
        "941e6d7d09aaf455c0d7ad383f7f5ae67e4ccf16"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 28 10:37:35 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:39:46 2008 +0100"
      },
      "message": "[GFS2] Streamline indirect pointer tree height calculation\n\nThis patch improves the calculation of the tree height in order to reduce\nthe number of operations which are carried out on each call to gfs2_block_map.\nIn the common case, we now make a single comparison, rather than calculating\nthe required tree height from scratch each time. Also in the case that the\ntree does need some extra height, we start from the current height rather from\nzero when we work out what the new height ought to be.\n\nIn addition the di_height field is moved into the inode proper and reduced\nin size to a u8 since the value must be between 0 and GFS2_MAX_META_HEIGHT (10).\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "941e6d7d09aaf455c0d7ad383f7f5ae67e4ccf16",
      "tree": "b6d066178387b9222fa25dfd7ea3555cc8b91621",
      "parents": [
        "a9edadbf790d72adf6ebed476cb5caf7743e7e4a"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 28 08:47:38 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:39:44 2008 +0100"
      },
      "message": "[GFS2] Speed up gfs2_write_alloc_required, deprecate gfs2_extent_map\n\nThis patch removes the call to gfs2_extent_map from gfs2_write_alloc_required,\ninstead we call gfs2_block_map directly. This results in fewer overall calls\nto gfs2_block_map in the multi-block case.\n\nAlso, gfs2_extent_map is marked as deprecated so that people know that its\ngoing away as soon as all the callers have been converted.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "1d957f9bf87da74f420424d16ece005202bbebd3",
      "tree": "363d4770c0c74a536524c99ccd2762ce96ee9bbe",
      "parents": [
        "4ac9137858e08a19f29feac4e1f4df7c268b0ba5"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Thu Feb 14 19:34:35 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 14 21:13:33 2008 -0800"
      },
      "message": "Introduce path_put()\n\n* Add path_put() functions for releasing a reference to the dentry and\n  vfsmount of a struct path in the right order\n\n* Switch from path_release(nd) to path_put(\u0026nd-\u003epath)\n\n* Rename dput_path() to path_put_conditional()\n\n[akpm@linux-foundation.org: fix cifs]\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: \u003clinux-fsdevel@vger.kernel.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4ac9137858e08a19f29feac4e1f4df7c268b0ba5",
      "tree": "f5b5d84fd12fcc2b0ba0e7ce1a79ff381ad8f5dd",
      "parents": [
        "c5e725f33b733a77de622e91b6ba5645fcf070be"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Thu Feb 14 19:34:32 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 14 21:13:33 2008 -0800"
      },
      "message": "Embed a struct path into struct nameidata instead of nd-\u003e{dentry,mnt}\n\nThis is the central patch of a cleanup series. In most cases there is no good\nreason why someone would want to use a dentry for itself. This series reflects\nthat fact and embeds a struct path into nameidata.\n\nTogether with the other patches of this series\n- it enforced the correct order of getting/releasing the reference count on\n  \u003cdentry,vfsmount\u003e pairs\n- it prepares the VFS for stacking support since it is essential to have a\n  struct path in every place where the stack can be traversed\n- it reduces the overall code size:\n\nwithout patch series:\n   text    data     bss     dec     hex filename\n5321639  858418  715768 6895825  6938d1 vmlinux\n\nwith patch series:\n   text    data     bss     dec     hex filename\n5320026  858418  715768 6894212  693284 vmlinux\n\nThis patch:\n\nSwitch from nd-\u003e{dentry,mnt} to nd-\u003epath.{dentry,mnt} everywhere.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: fix cifs]\n[akpm@linux-foundation.org: fix smack]\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Casey Schaufler \u003ccasey@schaufler-ca.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "69840b0d065a031a2e5b3fcc3f30560229e312da",
      "tree": "8fc5f8934a71fd5e219a64462b6b72698e25e180",
      "parents": [
        "aa7fa240c7d4ed28ee2d1afacd97be2d76e3cb49"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Feb 07 00:15:29 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:27 2008 -0800"
      },
      "message": "iget: use iget_failed() in GFS2\n\nUse iget_failed() in GFS2 to kill a failed inode.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e231c2ee64eb1c5cd3c63c31da9dac7d888dcf7f",
      "tree": "d4b17ef65960594681397a3acac02c2d248200b5",
      "parents": [
        "d1bc8e95445224276d7896b8b08cbb0b28a0ca80"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Feb 07 00:15:26 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:26 2008 -0800"
      },
      "message": "Convert ERR_PTR(PTR_ERR(p)) instances to ERR_CAST(p)\n\nConvert instances of ERR_PTR(PTR_ERR(p)) to ERR_CAST(p) using:\n\nperl -spi -e \u0027s/ERR_PTR[(]PTR_ERR[(](.*)[)][)]/ERR_CAST(\\1)/\u0027 `grep -rl \u0027ERR_PTR[(]*PTR_ERR\u0027 fs crypto net security`\n\nSigned-off-by: David Howells \u003cdhowells@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": "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": "eebd2aa355692afaf9906f62118620f1a1c19dbb",
      "tree": "207eead3a736963c3e50942038c463f2f611ccce",
      "parents": [
        "b98348bdd08dc4ec11828aa98a78edde15c53cfa"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Feb 04 22:28:29 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:13 2008 -0800"
      },
      "message": "Pagecache zeroing: zero_user_segment, zero_user_segments and zero_user\n\nSimplify page cache zeroing of segments of pages through 3 functions\n\nzero_user_segments(page, start1, end1, start2, end2)\n\n        Zeros two segments of the page. It takes the position where to\n        start and end the zeroing which avoids length calculations and\n\tmakes code clearer.\n\nzero_user_segment(page, start, end)\n\n        Same for a single segment.\n\nzero_user(page, start, length)\n\n        Length variant for the case where we know the length.\n\nWe remove the zero_user_page macro. Issues:\n\n1. Its a macro. Inline functions are preferable.\n\n2. The KM_USER0 macro is only defined for HIGHMEM.\n\n   Having to treat this special case everywhere makes the\n   code needlessly complex. The parameter for zeroing is always\n   KM_USER0 except in one single case that we open code.\n\nAvoiding KM_USER0 makes a lot of code not having to be dealing\nwith the special casing for HIGHMEM anymore. Dealing with\nkmap is only necessary for HIGHMEM configurations. In those\nconfigurations we use KM_USER0 like we do for a series of other\nfunctions defined in highmem.h.\n\nSince KM_USER0 is depends on HIGHMEM the existing zero_user_page\nfunction could not be a macro. zero_user_* functions introduced\nhere can be be inline because that constant is not used when these\nfunctions are called.\n\nAlso extract the flushing of the caches to be outside of the kmap.\n\n[akpm@linux-foundation.org: fix nfs and ntfs build]\n[akpm@linux-foundation.org: fix ntfs build some more]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nCc: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Anton Altaparmakov \u003caia21@cantab.net\u003e\nCc: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: David Chinner \u003cdgc@sgi.com\u003e\nCc: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c78bad11fbf1272ea021f56458025dc98486d6f4",
      "tree": "7ac1cc64d3429c3b3c52e707212d5a0711a9a9d1",
      "parents": [
        "ee0fc097ef47a4a6ff6b4800f2391030131b7828"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Sun Feb 03 17:33:42 2008 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Sun Feb 03 17:33:42 2008 +0200"
      },
      "message": "fs/: Spelling fixes\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\n"
    },
    {
      "commit": "e07dd2ad305f6b29b47d713600aa8b722ef2a9f7",
      "tree": "4815808e538ec625bf2766b1eb9d91c7b3beaead",
      "parents": [
        "eba0e319c12fb098d66316a8eafbaaa9174a07c3",
        "7bc5c414fe6627ec518c82d154c796f0981f5b02"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 25 08:39:18 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 25 08:39:18 2008 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw: (56 commits)\n  [GFS2] Allow journal recovery on read-only mount\n  [GFS2] Lockup on error\n  [GFS2] Fix page_mkwrite truncation race path\n  [GFS2] Fix typo\n  [GFS2] Fix write alloc required shortcut calculation\n  [GFS2] gfs2_alloc_required performance\n  [GFS2] Remove unneeded i_spin\n  [GFS2] Reduce inode size by moving i_alloc out of line\n  [GFS2] Fix assert in log code\n  [GFS2] Fix problems relating to execution of files on GFS2\n  [GFS2] Initialize extent_list earlier\n  [GFS2] Allow page migration for writeback and ordered pages\n  [GFS2] Remove unused variable\n  [GFS2] Fix log block mapper\n  [GFS2] Minor correction\n  [GFS2] Eliminate the no longer needed sd_statfs_mutex\n  [GFS2] Incremental patch to fix compiler warning\n  [GFS2] Function meta_read optimization\n  [GFS2] Only fetch the dinode once in block_map\n  [GFS2] Reorganize function gfs2_glmutex_lock\n  ...\n"
    },
    {
      "commit": "7bc5c414fe6627ec518c82d154c796f0981f5b02",
      "tree": "affd4857934df6c86b6fde572de0370700e6fe9a",
      "parents": [
        "1b8177ec1e779bcc3ed89419ff7c80dbc3dcc489"
      ],
      "author": {
        "name": "Abhijith Das",
        "email": "adas@redhat.com",
        "time": "Fri Jan 18 14:06:37 2008 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:21:22 2008 +0000"
      },
      "message": "[GFS2] Allow journal recovery on read-only mount\n\nThis patch allows gfs2 to perform journal recovery even if it is mounted\nread-only. Strictly speaking, a read-only mount should not be writing to\nthe filesystem, but we do this only to perform journal recovery. A\nread-only mount will fail if we don\u0027t recover the dirty journal. Also,\nwhen gfs2 is used as a root filesystem, it will be mounted read-only\nbefore being mounted read-write during the boot sequence. A failed\nread-only mount will panic the machine during bootup.\n\nSigned-off-by: Abhijith Das \u003cadas@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "1b8177ec1e779bcc3ed89419ff7c80dbc3dcc489",
      "tree": "f0bd7d9446dd5d6a90eada749ebb129caa4c6c0a",
      "parents": [
        "b7fe2e391ee7b711d6dfd6a694d60c4f21113cbb"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Sat Jan 19 21:50:24 2008 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:21:04 2008 +0000"
      },
      "message": "[GFS2] Lockup on error\n\nI spotted this bug while I was digging around.  Looks like it could cause\na lockup in some rare error condition.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b7fe2e391ee7b711d6dfd6a694d60c4f21113cbb",
      "tree": "4a5d141ffd4ae77dc6ce1a47b0bb8ce9d6d7c685",
      "parents": [
        "3e5cd0877e6d2f059dc36b8206cb7e93938151db"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jan 17 15:12:03 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:20:15 2008 +0000"
      },
      "message": "[GFS2] Fix page_mkwrite truncation race path\n\nThere was a bug in the truncation/invalidation race path for\n-\u003epage_mkwrite for gfs2. It ought to return 0 so that the effect is the\nsame as if the page was truncated at any of the other points at which\nthe page_lock is dropped. This will result in the restart of the whole\npage fault path. If it was due to a real truncation (as opposed to an\ninvalidate because we let a glock go) then the -\u003efault path will pick\nthat up when it gets called again.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "3e5cd0877e6d2f059dc36b8206cb7e93938151db",
      "tree": "ac4de94b84c94d06864c7256bbc50dd264a62998",
      "parents": [
        "1af535727bbf68e1da7ac232de47315da4c66ade"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Jan 16 08:45:39 2008 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:19:51 2008 +0000"
      },
      "message": "[GFS2] Fix typo\n\nThis patch fixes a minor typo.  Surprisingly, it still compiled.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "1af535727bbf68e1da7ac232de47315da4c66ade",
      "tree": "ab24a9bc1271179fdae558d4f66e7ee0e401ce4c",
      "parents": [
        "05220535196d413db434527a3edcba79b7187df8"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jan 16 14:24:05 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:19:28 2008 +0000"
      },
      "message": "[GFS2] Fix write alloc required shortcut calculation\n\nThe comparison was being made against the wrong quantity.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "05220535196d413db434527a3edcba79b7187df8",
      "tree": "5811b6f1caeac55102afb993f0b1538bbe9ed2b8",
      "parents": [
        "598278bd4808ed81b0e6fa445458a7d549f72a32"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Fri Jan 11 13:44:50 2008 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:19:03 2008 +0000"
      },
      "message": "[GFS2] gfs2_alloc_required performance\n\nThis is a small I/O performance enhancement to gfs2.  (Actually, it is a rework of\nan earlier version I got wrong).  The idea here is to check if the write extends\npast the last block in the file.  If so, the function can save itself a lot of\ntime and trouble because it knows an allocate will be required.  Benchmarks like\niozone should see better performance.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "598278bd4808ed81b0e6fa445458a7d549f72a32",
      "tree": "92a49c8fc86b2d87e853cc5a5c5407d1c8d6ae7e",
      "parents": [
        "6dbd822487d0a9f14432cb4680415b80656b63a2"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Fri Jan 11 13:31:12 2008 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:18:44 2008 +0000"
      },
      "message": "[GFS2] Remove unneeded i_spin\n\nThis patch removes a vestigial variable \"i_spin\" from the gfs2_inode\nstructure.  This not only saves us memory (\u003e300000 of these in memory\nfor the oom test) it also saves us time because we don\u0027t have to\nspend time initializing it (i.e. slightly better performance).\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "6dbd822487d0a9f14432cb4680415b80656b63a2",
      "tree": "f0391d598c27cd7c39c67cfa13799a784f4c389a",
      "parents": [
        "ac39aadd0440ae696e6dacaa8006ce1737b17008"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jan 10 15:18:55 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:18:25 2008 +0000"
      },
      "message": "[GFS2] Reduce inode size by moving i_alloc out of line\n\nIt is possible to reduce the size of GFS2 inodes by taking the i_alloc\nstructure out of the gfs2_inode. This patch allocates the i_alloc\nstructure whenever its needed, and frees it afterward. This decreases\nthe amount of low memory we use at the expense of requiring a memory\nallocation for each page or partial page that we write. A quick test\nwith postmark shows that the overhead is not measurable and I also note\nthat OCFS2 use the same approach.\n\nIn the future I\u0027d like to solve the problem by shrinking down the size\nof the members of the i_alloc structure, but for now, this reduces the\nimmediate problem of using too much low-memory on x86 and doesn\u0027t add\ntoo much overhead.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ac39aadd0440ae696e6dacaa8006ce1737b17008",
      "tree": "d2a6784809c6bec674879dc865de4150e8b0fb01",
      "parents": [
        "9656b2c14c6ee0806c90a6be41dec71117fc8f50"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jan 10 14:49:43 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:18:03 2008 +0000"
      },
      "message": "[GFS2] Fix assert in log code\n\nAlthough the values were all being calculated correctly, there was a\nrace in the assert due to the way it was using atomic variables. This\nchanges the value we assert on so that we get the same effect by testing\na different variable. This prevents the assert triggering when it shouldn\u0027t.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "9656b2c14c6ee0806c90a6be41dec71117fc8f50",
      "tree": "3e093571e695bf780885f36caec9594392da31fc",
      "parents": [
        "0811a127cb83ad2e0355e5e3e30164d7ef0f2d65"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jan 08 08:14:30 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:17:31 2008 +0000"
      },
      "message": "[GFS2] Fix problems relating to execution of files on GFS2\n\nThis patch fixes a couple of problems which affected the execution of files\non GFS2. The first is that there was a corner case where inodes were not\nalways uptodate at the point at which permissions checks were being carried\nout, this was resulting in refusal of execute permission, but only on the\nfirst lookup, subsequent requests worked correctly. The second was a problem\nrelating to incorrect updating of file sizes which was introduced with the\nwrite_begin/end code for GFS2 a little while back.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Abhijith Das \u003cadas@redhat.com\u003e\n"
    },
    {
      "commit": "0811a127cb83ad2e0355e5e3e30164d7ef0f2d65",
      "tree": "f1e7eacb1a8a30e47299137db25be673621b9ee0",
      "parents": [
        "e5d9dc278c7f79c220e4506cc1ade2efa2ca73fd"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Thu Jan 03 09:24:53 2008 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:17:04 2008 +0000"
      },
      "message": "[GFS2] Initialize extent_list earlier\n\nHere is a patch for the latest upstream GFS2 code:\nThe journal extent map needs to be initialized sooner than it\ncurrently is.  Otherwise failed mount attempts (e.g. not enough\njournals, etc.) may panic trying to access the uninitialized list.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e5d9dc278c7f79c220e4506cc1ade2efa2ca73fd",
      "tree": "f984562ccb3b29f31fa1e63d4dfe1f01d8e74be7",
      "parents": [
        "65a6290998f3d38b5c5e84423ae9e08bdd957095"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jan 03 11:31:38 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:16:41 2008 +0000"
      },
      "message": "[GFS2] Allow page migration for writeback and ordered pages\n\nTo improve performance on NUMA, we use the VM\u0027s standard page\nmigration for writeback and ordered pages. Probably we could\nalso do the same for journaled data, but that would need a\ncareful audit of the code, so will be the subject of a later\npatch.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "65a6290998f3d38b5c5e84423ae9e08bdd957095",
      "tree": "2263af7252e61281429115d63eaa8e019224e678",
      "parents": [
        "ff91cc9bb41b62bc4ea7d5ced396fabf97539df9"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jan 02 10:16:56 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:16:19 2008 +0000"
      },
      "message": "[GFS2] Remove unused variable\n\nThe go_drop_th function is never called or referenced.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ff91cc9bb41b62bc4ea7d5ced396fabf97539df9",
      "tree": "8e14975bba539c796cddb30853d76f0a0c2d060e",
      "parents": [
        "fa3742fa8545df20e54aa0953a1873cca3a9bd92"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Dec 14 14:04:34 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:15:58 2008 +0000"
      },
      "message": "[GFS2] Fix log block mapper\n\nA missing offset in the calculation.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "fa3742fa8545df20e54aa0953a1873cca3a9bd92",
      "tree": "12a52441aa753408af536919583ad3cfe59848ec",
      "parents": [
        "c3f60b6e3a7667f78a63b15cf09655ecfca757fc"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Dec 12 17:52:13 2007 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:15:37 2008 +0000"
      },
      "message": "[GFS2] Minor correction\n\nThis is a small correction to my previously posted patch1.\nIt just changes a divide to a shift.  It\u0027s faster and doesn\u0027t\nintroduce odd dependencies on 32-bit compiles.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "c3f60b6e3a7667f78a63b15cf09655ecfca757fc",
      "tree": "8dbe2656098c1fa69a9e149248533e1fba131ac5",
      "parents": [
        "b3513fca7e41965d85125c9770ce5f8fd4ff509a"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Dec 12 11:44:41 2007 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:15:16 2008 +0000"
      },
      "message": "[GFS2] Eliminate the no longer needed sd_statfs_mutex\n\nThis patch eliminates the unneeded sd_statfs_mutex mutex but preserves\nthe ordering as discussed.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b3513fca7e41965d85125c9770ce5f8fd4ff509a",
      "tree": "3747019335ccd0f91bf30bd4a85609db455d7214",
      "parents": [
        "15c7cee7995a9013f1b2f31a15b70e1d2e8ae501"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Dec 12 09:24:08 2007 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:14:53 2008 +0000"
      },
      "message": "[GFS2] Incremental patch to fix compiler warning\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "15c7cee7995a9013f1b2f31a15b70e1d2e8ae501",
      "tree": "22646442ffd942d77fc34f168d270e7bd2668643",
      "parents": [
        "b0d5fd307463405fe1f57494fbb37f810715ed6d"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Dec 11 19:29:17 2007 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:14:33 2008 +0000"
      },
      "message": "[GFS2] Function meta_read optimization\n\nThis patch optimizes function gfs2_meta_read.  Basically, gfs2_meta_wait\nwas being called regardless of whether a disk read was requested.\nThis just pulls that wait into the if that triggers the read.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b0d5fd307463405fe1f57494fbb37f810715ed6d",
      "tree": "2a627d7362a6db7eea4c388b0e0f0ceed8362fb5",
      "parents": [
        "398bbe68321947f6763fbc259a01eb548ce19408"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Dec 11 19:16:09 2007 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:14:13 2008 +0000"
      },
      "message": "[GFS2] Only fetch the dinode once in block_map\n\nFunction gfs2_block_map was often looking up the disk inode twice.\nThis optimizes it so that only does it once.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\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": "5fdc2eeb5d1d3800367f471690b01fcd1fd5b963",
      "tree": "d1e138b18a74541570736f933d938aa7f6e2d376",
      "parents": [
        "0d0868bde33273a200b33e54f4fad6099ad0c566"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Dec 11 19:00:16 2007 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:13:31 2008 +0000"
      },
      "message": "[GFS2] Run through full bitmaps quicker in gfs2_bitfit\n\nI eliminated the passing of an unused parameter into gfs2_bitfit called rgd.\n\nThis also changes the gfs2_bitfit code that searches for free (or used) blocks.\nBefore, the code was trying to check for bytes that indicated 4 blocks in\nthe undesired state.  The problem is, it was spending more time trying to\ndo this than it actually was saving.  This version only optimizes the case\nwhere we\u0027re looking for free blocks, and it checks a machine word at a time.\nSo on 32-bit machines, it will check 32-bits (16 blocks) and on 64-bit\nmachines, it will check 64-bits (32 blocks) at a time.  The compiler\noptimizes that quite well and we save some time, especially when running\nthrough full bitmaps (like the bitmaps allocated for the journals).\n\nThere\u0027s probably a more elegant or optimized way to do this, but I haven\u0027t\nthought of it yet.  I\u0027m open to suggestions.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "0d0868bde33273a200b33e54f4fad6099ad0c566",
      "tree": "482f3c72e582ce48b54c67760ca21e190f278ed4",
      "parents": [
        "da6dd40d59fa9617ed697b90114e197036901632"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Dec 11 18:51:25 2007 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:13:01 2008 +0000"
      },
      "message": "[GFS2] Get rid of useless \"found\" variable in quota.c\n\nThis just eliminates an unused variable from the quota code.\nNot likely to be a time saver.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "da6dd40d59fa9617ed697b90114e197036901632",
      "tree": "49e869021ed1f911bf3cdf185e9c4ce75c67f42a",
      "parents": [
        "e9e1ef2b6ee401d7c1e1eb38052857b4b206d172"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Dec 11 18:49:21 2007 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:11:46 2008 +0000"
      },
      "message": "[GFS2] Journal extent mapping\n\nThis patch saves a little time when gfs2 writes to the journals by\nkeeping a mapping between logical and physical blocks on disk.\nThat\u0027s better than constantly looking up indirect pointers in\nbuffers, when the journals are several levels of indirection\n(which they typically are).\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e9e1ef2b6ee401d7c1e1eb38052857b4b206d172",
      "tree": "68dff93cf4058eb06b162d800f08ff7752cd1a55",
      "parents": [
        "2066b58b0a038d7aedd24133677efb8856cac3a1"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Mon Dec 10 14:13:27 2007 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:08:25 2008 +0000"
      },
      "message": "[GFS2] Remove function gfs2_get_block\n\nThis patch is just a cleanup.  Function gfs2_get_block() just calls\nfunction gfs2_block_map reversing the last two parameters.  By\nreversing the parameters, gfs2_block_map() may be called directly\nand function gfs2_get_block may be eliminated altogether.\nSince this function is done for every block operation,\nthis streamlines the code and makes it a little bit more efficient.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "2066b58b0a038d7aedd24133677efb8856cac3a1",
      "tree": "0afb8a5ee7a9c1a0e4f618b818f8bd05ccd8c3a9",
      "parents": [
        "dbee2199c37336e89060fbe9abdfd1ca8454372a"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Thu Dec 06 09:35:25 2007 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:08:23 2008 +0000"
      },
      "message": "[GFS2] use pid for plock owner for nfs clients\n\nThe fl_owner is that of lockd when posix locks arrive from nfs\nclients, so it can\u0027t be used to distinguish between lock holders.\nUse fl_pid as owner instead; it\u0027s the pid of the process on the\nnfs client.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "dbee2199c37336e89060fbe9abdfd1ca8454372a",
      "tree": "9005d78b7e6064016b8bc6c8ab8ae79442eb80ff",
      "parents": [
        "292c8c14cace19c94c6abe25506310239daf949e"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Nov 30 08:17:15 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:08:20 2008 +0000"
      },
      "message": "[GFS2] Remove unused variable\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "292c8c14cace19c94c6abe25506310239daf949e",
      "tree": "3b1b1407e00abc154768dc2f5a684b0fcf0cbd1f",
      "parents": [
        "c97bfe4351771675963e02f34d31e206fd2d7150"
      ],
      "author": {
        "name": "Abhijith Das",
        "email": "adas@redhat.com",
        "time": "Thu Nov 29 14:13:54 2007 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:08:18 2008 +0000"
      },
      "message": "[GFS2] patch to check for recursive lock requests in gfs2_rename code path\n\nA certain scenario in the rename code path triggers a kernel BUG()\nbecause it accidentally does recursive locking The first lock is\nrequested to unlink an already existing inode (replacing a file) and the\nsecond lock is requested when the destination directory needs to alloc\nsome space. It is rare that these two\nevents happen during the same rename call, and even more rare that these\ntwo instances try to lock the same rgrp. It is, however, possible.\nhttps://bugzilla.redhat.com/show_bug.cgi?id\u003d404711\n\nSigned-off-by: Abhijith Das \u003cadas@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "c97bfe4351771675963e02f34d31e206fd2d7150",
      "tree": "9ee4de86cacc54f3e49135a4ce39cf7a236efb31",
      "parents": [
        "bcd405599faa16cf32a3d3f1ce6a1e12cb37fede"
      ],
      "author": {
        "name": "Wendy Cheng",
        "email": "wcheng@redhat.com",
        "time": "Thu Nov 29 17:56:51 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:08:15 2008 +0000"
      },
      "message": "[GFS2] Remove lock methods for lock_nolock protocol\n\nGFS2 supports two modes of locking - lock_nolock for single node filesystem\nand lock_dlm for cluster mode locking. The gfs2 lock methods are removed from\nfile operation table for lock_nolock protocol. This would allow VFS to handle\nposix lock and flock logics just like other in-tree filesystems without\nduplication.\n\nSigned-off-by: S. Wendy Cheng \u003cwcheng@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "bcd405599faa16cf32a3d3f1ce6a1e12cb37fede",
      "tree": "216771f3a69086c8ccafa58a6d4449926f455336",
      "parents": [
        "6a69a23f7df18f39e4a084e10b62ff4a144b05a5"
      ],
      "author": {
        "name": "Fabio M. Di Nitto",
        "email": "fabbione@ubuntu.com",
        "time": "Wed Nov 28 16:22:09 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:08:13 2008 +0000"
      },
      "message": "[GFS2] Remove unrequired code\n\nSigned-off-by: Fabio M. Di Nitto \u003cfabbione@ubuntu.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "6a69a23f7df18f39e4a084e10b62ff4a144b05a5",
      "tree": "d5bc744a43f2f05aea7a419b3c93ea314397d311",
      "parents": [
        "002ef1dc63ded14507c110d3cf83d0c3f51374ab"
      ],
      "author": {
        "name": "Fabio Massimo Di Nitto",
        "email": "fabbione@ubuntu.com",
        "time": "Tue Nov 27 06:16:42 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:08:11 2008 +0000"
      },
      "message": "[GFS2] Fix build warnings\n\nHi Steven,\n\nSteven Whitehouse wrote:\n\u003e Hi,\n\u003e\n\u003e Now in the -nmw git tree. Thanks,\n\u003e\n\u003e Steve.\n\u003e\n\u003e On Wed, 2007-11-21 at 11:54 -0600, Ryan O\u0027Hara wrote:\n\nthis patch introduces a bunch of build warnings by leaving around\n\nstruct inode *inode \u003d \u0026ip-\u003ei_inode;\n\nThe patch in attachment cleans them up. Please apply.\n\nSigned-off-by: Fabio Massimo Di Nitto \u003cfabbione@ubuntu.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "002ef1dc63ded14507c110d3cf83d0c3f51374ab",
      "tree": "c81a66cdd0b8bf49a515141c669a2600e7b01140",
      "parents": [
        "1a2781cfa5ed8eb82bb311d684f268c1822dae69"
      ],
      "author": {
        "name": "Ryan O\u0027Hara",
        "email": "rohara@redhat.com",
        "time": "Wed Nov 21 11:54:54 2007 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:08:08 2008 +0000"
      },
      "message": "[GFS2] remove unnecessary permission checks\n\nRemove read/write permission() checks from xattr operations.\nVFS layer is already handling permission for xattrs via the\nxattr_permission() call, so there is no need for gfs2 to\ncheck permissions. Futhermore, using permission() for SELinux\nxattrs ops is incorrect.\n\nSigned-off-by: Ryan O\u0027Hara \u003crohara@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": "00c134756c5ad570a1ad3d6f93a67fc9c25a67ea",
      "tree": "36176240919582d17d4655a1838e1b934ede9cb8",
      "parents": [
        "0b7580c786a5feda6291fe68ead3a1b92b6b35b8"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Thu Nov 15 09:01:13 2007 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:08:04 2008 +0000"
      },
      "message": "[GFS2] tidy up error message\n\nPrint error with log_error() to be consistent with others.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\nSigned-off-by: Fabio M. Di Nitto \u003cfabbione@ubuntu.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "0b7580c786a5feda6291fe68ead3a1b92b6b35b8",
      "tree": "baa74404abb5166fd7a3f3601c724ff1d9fc94db",
      "parents": [
        "e35b921185728850c5db3b5d5b356178f931a157"
      ],
      "author": {
        "name": "Fabio Massimo Di Nitto",
        "email": "fabbione@ubuntu.com",
        "time": "Thu Nov 15 13:48:52 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:08:01 2008 +0000"
      },
      "message": "[GFS2] Check for installation of mount helpers for DLM mounts\n\nThe patch is a fix to abort mount if the mount.gfs* and possible\numount.* are missing from /sbin.\n\nWhile we do what we can to guarantee that they are installed properly in\nuserland (CVS HEAD), we want to make sure that mount still aborts properly.\n\nThe only sign of missing helpers is that lock_dlm will receive no mount options\nat all. According to David the problem does not exist for lock_nolock as the\nhelpers are not required.\n\nThe patch has been tested for both gfs and gfs2 and it works as expected. The\nlack of mount.gfs* will generate an error that is propagated to mount:\n\noot@node1:~# mount -t  gfs2 /dev/nbd2 /mnt/\nmount: wrong fs type, bad option, bad superblock on /dev/nbd2,\n       missing codepage or helper program, or other error\n       In some cases useful info is found in syslog - try\n       dmesg | tail  or so\n\n[ 3513.303346] GFS2: fsid\u003d: Trying to join cluster \"lock_dlm\", \"gutsy:gfs2\"\n[ 3513.304546] DLM/GFS2/GFS ERROR: (u)mount helpers are not installed properly!\n[ 3513.306290] GFS2: fsid\u003d: can\u0027t mount proto\u003dlock_dlm, table\u003dgutsy:gfs2, hostdata\u003d\n\nYou might want to notice that it will also avoid mount to hang or fail silently\nor with strange errors that will require the cluster to reboot/restart before\nyou can actually mount the filesystem again.\n\nSigned-off-by: Fabio M. Di Nitto \u003cfabbione@ubuntu.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e35b921185728850c5db3b5d5b356178f931a157",
      "tree": "1f5586886b1a81fe961425da3ccc9fde8f40b538",
      "parents": [
        "ec69b188837a347769e187997d040e84a683b38a"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Nov 09 10:07:21 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:59 2008 +0000"
      },
      "message": "[GFS2] Don\u0027t periodically update the jindex\n\nWe only care about the content of the jindex in two cases,\none is when we mount the fs and the other is when we need\nto recover another journal. In both cases we have to update\nthe jindex anyway, so there is no point in updating it\nperiodically between times, so this removes it to simplify\ngfs2_logd.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ec69b188837a347769e187997d040e84a683b38a",
      "tree": "d16ebc9b83807f99a114efe3a093315f9839b81c",
      "parents": [
        "fd041f0b4045db8646b36d393cbb274db60649f5"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Nov 09 10:01:41 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:56 2008 +0000"
      },
      "message": "[GFS2] Move gfs2_logd into log.c\n\nThis means that we can mark gfs2_ail1_empty static and prepares\nthe way for further changes.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "fd041f0b4045db8646b36d393cbb274db60649f5",
      "tree": "dd09e7317eb471d45c685e3269bd3c20dc686f3e",
      "parents": [
        "2bcd610d2fdea608a8fdac32788fc35a32a2327c"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 08 14:55:03 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:54 2008 +0000"
      },
      "message": "[GFS2] Use atomic_t for journal free blocks counter\n\nThis patch changes the counter which keeps track of the free\nblocks in the journal to an atomic_t in preparation for the\nfollowing patch which will update the log reservation code.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "2bcd610d2fdea608a8fdac32788fc35a32a2327c",
      "tree": "5b3753ff18c1da54bb860dbd67211e6abea78ca7",
      "parents": [
        "8cbc4342478311c2a85260a7ca54d96cb7f71f7b"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 08 14:25:12 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:52 2008 +0000"
      },
      "message": "[GFS2] Don\u0027t add glocks to the journal\n\nThe only reason for adding glocks to the journal was to keep track\nof which locks required a log flush prior to release. We add a\nflag to the glock to allow this check to be made in a simpler way.\n\nThis reduces the size of a glock (by 12 bytes on i386, 24 on x86_64)\nand means that we can avoid extra work during the journal flush.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "8cbc4342478311c2a85260a7ca54d96cb7f71f7b",
      "tree": "23a8ab6a4a2c154274d01cfe0e69715cd7ad4d86",
      "parents": [
        "c7227e46423a57b4df27a2d75b5869bd3ae654d0"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Nov 07 09:03:56 2007 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:49 2008 +0000"
      },
      "message": "[GFS2] check kthread_should_stop when waiting\n\nUse wait_event_interruptible() in the lock_dlm thread instead\nof an open coded equivalent, and include a kthread_should_stop()\ncheck in the wait test so we don\u0027t miss a kthread_stop().\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    }
  ],
  "next": "c7227e46423a57b4df27a2d75b5869bd3ae654d0"
}
