)]}'
{
  "log": [
    {
      "commit": "a447c0932445f92ce6f4c1bd020f62c5097a7842",
      "tree": "bacf05bc7f9764515cdd6f7dc5e2254776b4f160",
      "parents": [
        "54cebc68c81eacac41a21bdfe99dc889d3882c60"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Oct 13 10:46:57 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 10:10:37 2008 -0700"
      },
      "message": "vfs: Use const for kernel parser table\n\nThis is a much better version of a previous patch to make the parser\ntables constant. Rather than changing the typedef, we put the \"const\" in\nall the various places where its required, allowing the __initconst\nexception for nfsroot which was the cause of the previous trouble.\n\nThis was posted for review some time ago and I believe its been in -mm\nsince then.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Alexander Viro \u003caviro@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "13dd7f876dffb44088c5435c3df1986e33cff960",
      "tree": "c9043429452663661dc888e1cbafa87bd2a62f44",
      "parents": [
        "b0af205afb111e17ac8db64c3b9c4f2c332de92a",
        "27eccf46491e1f77f9af9bbe0778122ce6882890"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 10 11:13:55 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 10 11:13:55 2008 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm:\n  dlm: choose better identifiers\n  dlm: remove bkl\n  dlm: fix address compare\n  dlm: fix locking of lockspace list in dlm_scand\n  dlm: detect available userspace daemon\n  dlm: allow multiple lockspace creates\n"
    },
    {
      "commit": "254db57f9b12daba841a4d91ddb9a8161e9c74ba",
      "tree": "e5d4f107d8bdf6278738c85a67b54d96d1a900e8",
      "parents": [
        "6d80c39f9155e289fe8037a8b6352931ff916ceb"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Sep 26 10:23:22 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Sep 26 10:23:22 2008 +0100"
      },
      "message": "GFS2: Support for I/O barriers\n\nThis patch adds barrier support to GFS2. There is not a lot of change\nreally... we just add the barrier flag when we write journal header\nblocks. If the underlying device refuses to support them, we fall back\nto the previous way of doing things (wait for the I/O and hope) since\nthere is nothing else we can do. There is no user configuration,\nbarriers will always be on unless the device refuses to support them.\nThis seems a reasonable solution to me since this is a correctness\nissue.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "719ee344675c2efed9115934f19aa66a526b6e5b",
      "tree": "7f9502d696a09eaf5eba0a0d3fa35557ffd3c503",
      "parents": [
        "37ec89e83c4ca98323fe74f139301ff3949cfdb6"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Sep 18 13:53:59 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Sep 18 13:53:59 2008 +0100"
      },
      "message": "GFS2: high time to take some time over atime\n\nUntil now, we\u0027ve used the same scheme as GFS1 for atime. This has failed\nsince atime is a per vfsmnt flag, not a per fs flag and as such the\n\"noatime\" flag was not getting passed down to the filesystems. This\npatch removes all the \"special casing\" around atime updates and we\nsimply use the VFS\u0027s atime code.\n\nThe net result is that GFS2 will now support all the same atime related\nmount options of any other filesystem on a per-vfsmnt basis. We do lose\nthe \"lazy atime\" updates, but we gain \"relatime\". We could add lazy\natime to the VFS at a later date, if there is a requirement for that\nvariant still - I suspect relatime will be enough.\n\nAlso we lose about 100 lines of code after this patch has been applied,\nand I have a suspicion that it will speed things up a bit, even when\natime is \"on\". So it seems like a nice clean up as well.\n\nFrom a user perspective, everything stays the same except the loss of\nthe per-fs atime quantum tweekable (ought to be per-vfsmnt at the very\nleast, and to be honest I don\u0027t think anybody ever used it) and that a\nnumber of options which were ignored before now work correctly.\n\nPlease let me know if you\u0027ve got any comments. I\u0027m pushing this out\nearly so that you can all see what my plans are.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "37ec89e83c4ca98323fe74f139301ff3949cfdb6",
      "tree": "5bb249dcfdc38f06ef1d363f099f9f88e23043e7",
      "parents": [
        "acd2c8aa02f302ed838348052e16ee575c645147"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Sep 18 13:49:32 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Sep 18 13:49:32 2008 +0100"
      },
      "message": "GFS2: The war on bloat\n\nThe following patch shrinks the gfs2_args structure which is embedded in\nevery GFS2 superblock. It cuts down the size of the options to a single\nunsigned int (the 13 bits of bitfields will be rounded up to that size\nby the compiler) from the current 11 unsigned ints. So on x86 thats 44\nbytes shrinking to 4 bytes, in each and every GFS2 superblock.\n\nSigned-off-by: Steven Whitehouse \u003cswhitho@redhat.com\u003e\n"
    },
    {
      "commit": "acd2c8aa02f302ed838348052e16ee575c645147",
      "tree": "2348e1103be0a2ada199b1b8bbac58bb646b5f57",
      "parents": [
        "acb57a3652c614efed26080dad5972c0076166b1"
      ],
      "author": {
        "name": "Abhijith Das",
        "email": "adas@redhat.com",
        "time": "Mon Sep 15 08:54:06 2008 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 15 16:08:32 2008 +0100"
      },
      "message": "GFS2: GFS2 will panic if you misspell any mount options\n\nThe gfs2 superblock pointer is NULL after a failed mount. When control\neventually goes to gfs2_kill_sb, we dereference this NULL pointer. This\npatch ensures that the gfs2 superblock pointer is not NULL before being\ndereferenced in gfs2_kill_sb.\n\nSigned-off-by:   Abhijith Das \u003cadas@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "acb57a3652c614efed26080dad5972c0076166b1",
      "tree": "e459ed13f5a05eb6a2427015c60356e3afe85c55",
      "parents": [
        "bd1eb8818cc2c8ddab86be027ab43fb852942704"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Thu Sep 11 15:35:37 2008 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 15 10:31:54 2008 +0100"
      },
      "message": "GFS2: Direct IO write at end of file error\n\nThis patch fixes a problem whereby a direct_io write doesn\u0027t fall\nback to buffered write properly at end of file.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "bd1eb8818cc2c8ddab86be027ab43fb852942704",
      "tree": "b072daf0c29f929217acc7a589b48c615da6b238",
      "parents": [
        "dff5257473ca1e05002809809f51f858e9a966fc"
      ],
      "author": {
        "name": "Julien Brunel",
        "email": "brunel@diku.dk",
        "time": "Mon Sep 01 10:51:22 2008 +0200"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Sep 05 14:19:44 2008 +0100"
      },
      "message": "GFS2: Use an IS_ERR test rather than a NULL test\n\nIn case of error, the function gfs2_inode_lookup returns an\nERR pointer, but never returns a NULL pointer. So a NULL test that\nnecessarily comes after an IS_ERR test should be deleted, and a NULL\ntest that may come after a call to this function should be\nstrengthened by an IS_ERR test.\n\nThe semantic match that finds this problem is as follows:\n(http://www.emn.fr/x-info/coccinelle/)\n\n// \u003csmpl\u003e\n@match_bad_null_test@\nexpression x, E;\nstatement S1,S2;\n@@\nx \u003d gfs2_inode_lookup(...)\n... when !\u003d x \u003d E\n* if (x !\u003d NULL)\nS1 else S2\n// \u003c/smpl\u003e\n\nSigned-off-by:  Julien Brunel \u003cbrunel@diku.dk\u003e\nSigned-off-by:  Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "dff5257473ca1e05002809809f51f858e9a966fc",
      "tree": "4d9bd636ce8828dcc0e8e2676cf4e9e86ed272c8",
      "parents": [
        "0188d6c5807b65e2e20dcb75a668efbe5418b27e"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Sep 02 13:33:17 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Sep 05 14:18:02 2008 +0100"
      },
      "message": "GFS2: Fix race relating to glock min-hold time\n\nIn the case that a request for a glock arrives right after the\ngrant reply has arrived, it sometimes means that the gl_tstamp\nfield hasn\u0027t been updated recently enough. The net result is that\nthe min-hold time for the glock is ignored. If this happens\noften enough, it leads to poor performance.\n\nThis patch adds an additional test, so that if the reply pending\nbit is set on a glock, then it will select the maximum length of\ntime for the min-hold time, rather than looking at gl_tstamp.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "0f8e0d9a317406612700426fad3efab0b7bbc467",
      "tree": "b4ed35afeab36615e50d5c7928a6199780fd2fca",
      "parents": [
        "4c246edd2550304df5b766cc841584b2bb058843"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Aug 06 13:30:24 2008 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Thu Aug 28 11:49:15 2008 -0500"
      },
      "message": "dlm: allow multiple lockspace creates\n\nAdd a count for lockspace create and release so that create can\nbe called multiple times to use the lockspace from different places.\nAlso add the new flag DLM_LSFL_NEWEXCL to create a lockspace with\nthe previous behavior of returning -EEXIST if the lockspace already\nexists.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "0188d6c5807b65e2e20dcb75a668efbe5418b27e",
      "tree": "419ee0e74cded399d2e4b9adf4dacf9f9dd31a3e",
      "parents": [
        "72dbf4790fc6736f9cb54424245114acf0b0038c"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Aug 26 09:38:26 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Aug 27 13:33:10 2008 +0100"
      },
      "message": "GFS2: Fix \u0026 clean up GFS2 rename\n\nThis patch fixes a locking issue in the rename code by ensuring that we hold\nthe per sb rename lock over both directory and \"other\" renames which involve\ndifferent parent directories.\n\nAt the same time, this moved the (only called from one place) function\ngfs2_ok_to_move into the file that its called from, so we can mark it\nstatic. This should make a code a bit easier to follow.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Peter Staubach \u003cstaubach@redhat.com\u003e\n"
    },
    {
      "commit": "72dbf4790fc6736f9cb54424245114acf0b0038c",
      "tree": "9ed5bd66844fa0950d947bc5673292114e58e9ac",
      "parents": [
        "9b8df98fc8973ad1c5f0d7c4cf71c7fb84fe22c5"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Aug 12 13:39:29 2008 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Aug 13 10:00:12 2008 +0100"
      },
      "message": "GFS2: rm on multiple nodes causes panic\n\nThis patch fixes a problem whereby simultaneous unlink, rmdir,\nrename and link operations (e.g. rm -fR *) from multiple nodes\non the same GFS2 file system can cause kernel panics, hangs,\nand/or memory corruption.  It also gets rid of all the non-rgrp\ncalls to gfs2_glock_nq_m.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "9b8df98fc8973ad1c5f0d7c4cf71c7fb84fe22c5",
      "tree": "6a0445afd83d0f7a63a301c2e146647abf59ad82",
      "parents": [
        "c1e817d03a7de57a963654c35e6e80af9a5dbff5"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Aug 08 13:45:13 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Aug 13 09:59:40 2008 +0100"
      },
      "message": "GFS2: Fix metafs mounts\n\nThis patch is intended to fix the issues reported in bz #457798. Instead\nof having the metafs as a separate filesystem, it becomes a second root\nof gfs2. As a result it will appear as type gfs2 in /proc/mounts, but it\nis still possible (for backwards compatibility purposes) to mount it as\ntype gfs2meta. A new mount flag \"meta\" is introduced so that its possible\nto tell the two cases apart in /proc/mounts.\n\nAs a result it becomes possible to mount type gfs2 with -o meta and\nget the same result as mounting type gfs2meta. So it is possible to\nmount just the metafs on its own. Currently if you do this, its then\nimpossible to mount the \"normal\" root of the gfs2 filesystem without\nfirst unmounting the metafs root. I\u0027m not sure if thats a feature or\na bug :-)\n\nEither way, this is a great improvement on the previous scheme and I\u0027ve\nverified that it works ok with bind mounts on both the \"normal\" root\nand the metafs root in various combinations.\n\nThere were also a bunch of functions in super.c which didn\u0027t belong there,\nso this moves them into ops_fstype.c where they can be static. Hopefully\nthe mount/umount sequence is now more obvious as a result.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Alexander Viro \u003caviro@redhat.com\u003e\n"
    },
    {
      "commit": "c1e817d03a7de57a963654c35e6e80af9a5dbff5",
      "tree": "e90926cce9311091b31ea60fbf35dc11c9d18a3f",
      "parents": [
        "30a2f3c60a84092c8084dfe788b710f8d0768cd4"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jul 22 22:58:03 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Aug 13 09:59:10 2008 +0100"
      },
      "message": "GFS2: Fix debugfs glock file iterator\n\nDue to an incorrect iterator, some glocks were being missed from the\nglock dumps obtained via debugfs. This patch fixes the problem and\nensures that we don\u0027t miss any glocks in future.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "a569c711f63995ad80c23918525111e0cdb0bc73",
      "tree": "38186f0201614b6b1e71bea0708ef35814825ea6",
      "parents": [
        "2ad94ae654f5eb72fd3260b706aea645cf4a7791"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 23 14:42:05 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:36 2008 -0400"
      },
      "message": "[PATCH] don\u0027t pass nameidata to gfs2_lookupi()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e6305c43eda10ebfd2ad9e35d6e172ccc7bb3695",
      "tree": "8a95bd0e27fb3ce895cca9ef91af2e1605e4cdab",
      "parents": [
        "1bd5191d9f5d1928c4efdf604c4164b04bb88dbe"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 15 21:03:57 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:14 2008 -0400"
      },
      "message": "[PATCH] sanitize -\u003epermission() prototype\n\n* kill nameidata * argument; map the 3 bits in -\u003eflags anybody cares\n  about to new MAY_... ones and pass with the mask.\n* kill redundant gfs2_iop_permission()\n* sanitize ecryptfs_permission()\n* fix remaining places where -\u003epermission() instances might barf on new\n  MAY_... found in mask.\n\nThe obvious next target in that direction is permission(9)\n\nfolded fix for nfs_permission() breakage from Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "51cc50685a4275c6a02653670af9f108a64e01cf",
      "tree": "819d47bd2b0c8a9d1835d863853804b0a0242b97",
      "parents": [
        "d91958815d214ea365b98cbff6215383897edcb6"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Jul 25 19:45:34 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:07 2008 -0700"
      },
      "message": "SL*B: drop kmem cache argument from constructor\n\nKmem cache passed to constructor is only needed for constructors that are\nthemselves multiplexeres.  Nobody uses this \"feature\", nor does anybody uses\npassed kmem cache in non-trivial way, so pass only pointer to object.\n\nNon-trivial places are:\n\tarch/powerpc/mm/init_64.c\n\tarch/powerpc/mm/hugetlbpage.c\n\nThis is flag day, yes.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Jon Tollefson \u003ckniht@linux.vnet.ibm.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\n[akpm@linux-foundation.org: fix arch/powerpc/mm/hugetlbpage.c]\n[akpm@linux-foundation.org: fix mm/slab.c]\n[akpm@linux-foundation.org: fix ubifs]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "38c46578ffd8ffbfec514c2a9876d527303322d6",
      "tree": "d55ad8a52048f70bc6ef51d388c0f21ff467155e",
      "parents": [
        "e7849f16c13476288fe4fbd420975e8456c75aa0",
        "4abaca17e758e3326c96ced88b2cd9b7b84922f6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 15 10:38:46 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 15 10:38:46 2008 -0700"
      },
      "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:\n  [GFS2] Fix GFS2\u0027s use of do_div() in its quota calculations\n  [GFS2] Remove unused declaration\n  [GFS2] Remove support for unused and pointless flag\n  [GFS2] Replace rgrp \"recent list\" with mru list\n  [GFS2] Allow local DF locks when holding a cached EX glock\n  [GFS2] Fix delayed demote race\n  [GFS2] don\u0027t call permission()\n  [GFS2] Fix module building\n  [GFS2] Glock documentation\n  [GFS2] Remove all_list from lock_dlm\n  [GFS2] Remove obsolete conversion deadlock avoidance code\n  [GFS2] Remove remote lock dropping code\n  [GFS2] kernel panic mounting volume\n  [GFS2] Revise readpage locking\n  [GFS2] Fix ordering of args for list_add\n  [GFS2] trivial sparse lock annotations\n  [GFS2] No lock_nolock\n  [GFS2] Fix ordering bug in lock_dlm\n  [GFS2] Clean up the glock core\n"
    },
    {
      "commit": "2fceef397f9880b212a74c418290ce69e7ac00eb",
      "tree": "d9cc09ab992825ef7fede4a688103503e3caf655",
      "parents": [
        "feae1ef116ed381625d3731c5ae4f4ebcb3fa302",
        "bce7f793daec3e65ec5c5705d2457b81fe7b5725"
      ],
      "author": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Mon Jul 14 15:29:34 2008 -0600"
      },
      "committer": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Mon Jul 14 15:29:34 2008 -0600"
      },
      "message": "Merge commit \u0027v2.6.26\u0027 into bkl-removal\n"
    },
    {
      "commit": "4abaca17e758e3326c96ced88b2cd9b7b84922f6",
      "tree": "920bcf9d988d3141d5a906ad683b8903ef074068",
      "parents": [
        "a93a6ce24215c69126c88f9c488afa50a168e0ca"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jul 11 14:39:56 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jul 11 14:35:01 2008 +0100"
      },
      "message": "[GFS2] Fix GFS2\u0027s use of do_div() in its quota calculations\n\nFix GFS2\u0027s need_sync()\u0027s use of do_div() on an s64 by using div_s64() instead.\n\nThis does assume that gt_quota_scale_den can be cast to an s32.\n\nThis was introduced by patch b3b94faa5fe5968827ba0640ee9fba4b3e7f736e.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "a93a6ce24215c69126c88f9c488afa50a168e0ca",
      "tree": "3e3503ab90ae9a18c04e27fb17f188f052e24f1d",
      "parents": [
        "c9f6a6bbc284ba87337876086f7e2e6e0b0d50dd"
      ],
      "author": {
        "name": "Li Xiaodong",
        "email": "lixd@cn.fujitsu.com",
        "time": "Mon Jul 07 18:04:09 2008 +0800"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 10 16:22:23 2008 +0100"
      },
      "message": "[GFS2] Remove unused declaration\n\nThe implementation of gfs2_inode_attr_in is removed.\nSo remove its declaration.\n\nSigned-off-by: Li Xiaodong \u003clixd@cn.fujitsu.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "c9f6a6bbc284ba87337876086f7e2e6e0b0d50dd",
      "tree": "68930f47e91f82ca41b3a9f35fd118d2ff11d891",
      "parents": [
        "9cabcdbd4638cf884839ee4cd15780800c223b90"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 10 16:09:29 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 10 16:09:29 2008 +0100"
      },
      "message": "[GFS2] Remove support for unused and pointless flag\n\nThe ability to mark files for direct i/o access when opened\nnormally is both unused and pointless, so this patch removes\nsupport for that feature.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "9cabcdbd4638cf884839ee4cd15780800c223b90",
      "tree": "7f5c4aa81a919fde33e33e5d8df04e053f99b93b",
      "parents": [
        "209806aba9d540dde3db0a5ce72307f85f33468f"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 10 15:54:12 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 10 15:54:12 2008 +0100"
      },
      "message": "[GFS2] Replace rgrp \"recent list\" with mru list\n\nThis patch removes the \"recent list\" which is used during allocation\nand replaces it with the (already existing) mru list used during\ndeletion. The \"recent list\" was not a true mru list leading to a number\nof inefficiencies including a \"next\" function which made scanning the\nlist an order N^2 operation wrt to the number of list elements.\n\nThis should increase allocation performance with large numbers of rgrps.\nIts also a useful preparation and cleanup before some further changes\nwhich are planned in this area.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "209806aba9d540dde3db0a5ce72307f85f33468f",
      "tree": "22543b35c6b06d9a736c1c9af881ea7cf305d2bd",
      "parents": [
        "265d529cef6fd57698d79b3c0edd3a8178059ea6"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 07 10:07:28 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 07 10:07:28 2008 +0100"
      },
      "message": "[GFS2] Allow local DF locks when holding a cached EX glock\n\nWe already allow local SH locks while we hold a cached EX glock, so here\nwe allow DF locks as well. This works only because we rely on the VFS\u0027s\ninvalidation for locally cached data, and because if we hold an EX lock,\nthen we know that no other node can be caching data relating to this\nfile.\n\nIt dramatically speeds up initial writes to O_DIRECT files since we fall\nback to buffered I/O for this and would otherwise bounce between DF and\nEX modes on each and every write call. The lessons to be learned from\nthat are to ensure that (for the time being anyway) O_DIRECT files are\npreallocated and that they are written to using reasonably large I/O\nsizes. Even so this change fixes that corner case nicely\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "265d529cef6fd57698d79b3c0edd3a8178059ea6",
      "tree": "d92cc42c3f9db89bdce635a78f9d8d1904dde43a",
      "parents": [
        "f58ba889106af60f52af792efbe1973e458a2138"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 07 10:02:36 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 07 10:02:36 2008 +0100"
      },
      "message": "[GFS2] Fix delayed demote race\n\nThere is a race in the delayed demote code where it does the wrong thing\nif a demotion to UN has occurred for other reasons before the delay has\nexpired. This patch adds an assert to catch that condition as well as\nfixing the root cause by adding an additional check for the UN state.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Bob Peterson \u003crpeterso@redhat.com\u003e\n"
    },
    {
      "commit": "f58ba889106af60f52af792efbe1973e458a2138",
      "tree": "f81426c7f611b74dec685cd416d3da8e7fe647d2",
      "parents": [
        "f17172e00167238cc5e4f61ac4e78c68e5c558ec"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Wed Jul 02 21:12:01 2008 +0200"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 03 10:22:01 2008 +0100"
      },
      "message": "[GFS2] don\u0027t call permission()\n\nGFS2 calls permission() to verify permissions after locks on the files\nhave been taken.\n\nFor this it\u0027s sufficient to call gfs2_permission() instead.  This\nresults in the following changes:\n\n  - IS_RDONLY() check is not performed\n  - IS_IMMUTABLE() check is not performed\n  - devcgroup_inode_permission() is not called\n  - security_inode_permission() is not called\n\nIS_RDONLY() should be unnecessary anyway, as the per-mount read-only\nflag should provide protection against read-only remounts during\noperations.  do_gfs2_set_flags() has been fixed to perform\nmnt_want_write()/mnt_drop_write() to protect against remounting\nread-only.\n\nIS_IMMUTABLE has been added to gfs2_permission()\n\nRepeating the security checks seems to be pointless, as they don\u0027t\nnormally change, and if they do, it\u0027s independent of the filesystem\nstate.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "9465efc9e96135a2cec8154c0c766fa59984a298",
      "tree": "079b94123ab65ff80c4869bcf25192c8596b049c",
      "parents": [
        "9c20616c385ebeaa30257ef5d35e8f346db4ee32"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Fri Jun 27 11:05:24 2008 +0200"
      },
      "committer": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Wed Jul 02 15:06:27 2008 -0600"
      },
      "message": "Remove BKL from remote_llseek v2\n\n- Replace remote_llseek with generic_file_llseek_unlocked (to force compilation\nfailures in all users)\n- Change all users to either use generic_file_llseek_unlocked directly or\ntake the BKL around. I changed the file systems who don\u0027t use the BKL\nfor anything (CIFS, GFS) to call it directly. NCPFS and SMBFS and NFS\ntake the BKL, but explicitely in their own source now.\n\nI moved them all over in a single patch to avoid unbisectable sections.\n\nOpen problem: 32bit kernels can corrupt fpos because its modification\nis not atomic, but they can do that anyways because there\u0027s other paths who\nmodify it without BKL.\n\nDo we need a special lock for the pos/f_version \u003d 0 checks?\n\nTrond says the NFS BKL is likely not needed, but keep it for now\nuntil his full audit.\n\nv2: Use generic_file_llseek_unlocked instead of remote_llseek_unlocked\n    and factor duplicated code (suggested by hch)\n\nCc: Trond.Myklebust@netapp.com\nCc: swhiteho@redhat.com\nCc: sfrench@samba.org\nCc: vandrove@vc.cvut.cz\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Jonathan Corbet \u003ccorbet@lwn.net\u003e\n"
    },
    {
      "commit": "f17172e00167238cc5e4f61ac4e78c68e5c558ec",
      "tree": "267f97db00a5393e566b9463946bd356729b35c9",
      "parents": [
        "9f1585cb03866452e0df61a83c88302181e50054"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jun 27 09:40:57 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jun 27 09:40:57 2008 +0100"
      },
      "message": "[GFS2] Fix module building\n\nTwo lines missed from the previous patch.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "31fcba00fe7145527b159f8893ec6c9cc61309fd",
      "tree": "6fef1dc1b20166b881356159d9ac8208a9335978",
      "parents": [
        "b2cad26cfc2091050574a460b304ed103a35dbda"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jun 04 15:06:21 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jun 27 09:39:50 2008 +0100"
      },
      "message": "[GFS2] Remove all_list from lock_dlm\n\nI discovered that we had a list onto which every lock_dlm\nlock was being put. Its only function was to discover whether\nwe\u0027d got any locks left after umount. Since there was already\na counter for that purpose as well, I removed the list. The\nsaving is sizeof(struct list_head) per glock - well worth\nhaving.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b2cad26cfc2091050574a460b304ed103a35dbda",
      "tree": "3238ab4b7406836e98d27de5c70dc8419675a914",
      "parents": [
        "1bdad606338debc6384b2844f1b53cc436b3ac90"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jun 03 14:34:14 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jun 27 09:39:47 2008 +0100"
      },
      "message": "[GFS2] Remove obsolete conversion deadlock avoidance code\n\nThis is only used by GFS1 so can be removed.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "1bdad606338debc6384b2844f1b53cc436b3ac90",
      "tree": "7929bc1f652f88f104e8b6fa6a424cd211b50a42",
      "parents": [
        "9171f5a991e7613cbee816874ad8c9515dcab50f"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jun 03 14:09:53 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jun 27 09:39:44 2008 +0100"
      },
      "message": "[GFS2] Remove remote lock dropping code\n\nThere are several reasons why this is undesirable:\n\n 1. It never happens during normal operation anyway\n 2. If it does happen it causes performance to be very, very poor\n 3. It isn\u0027t likely to solve the original problem (memory shortage\n    on remote DLM node) it was supposed to solve\n 4. It uses a bunch of arbitrary constants which are unlikely to be\n    correct for any particular situation and for which the tuning seems\n    to be a black art.\n 5. In an N node cluster, only 1/N of the dropped locked will actually\n    contribute to solving the problem on average.\n\nSo all in all we are better off without it. This also makes merging\nthe lock_dlm module into GFS2 a bit easier.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "9171f5a991e7613cbee816874ad8c9515dcab50f",
      "tree": "6fd5df32583c059344f7ec4b9436b68edecd61c0",
      "parents": [
        "01b7c7ae88a6376c508b35a22bb61e04cb1b37f0"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Mon Jun 09 12:08:23 2008 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jun 27 09:39:41 2008 +0100"
      },
      "message": "[GFS2] kernel panic mounting volume\n\nThis patch fixes Red Hat bugzilla bug 450156.\n\nThis started with a not-too-improbable mount failure because the\nlocking protocol was never set back to its proper \"lock_dlm\" after the\nsystem was rebooted in the middle of a gfs2_fsck.  That left a\n(purposely) invalid locking protocol in the superblock, which caused an\nerror when the file system was mounted the next time.\n\nWhen there\u0027s an error mounting, vfs calls DQUOT_OFF, which calls\nvfs_quota_off which calls gfs2_sync_fs.  Next, gfs2_sync_fs calls\ngfs2_log_flush passing s_fs_info.  But due to the error, s_fs_info\nhad been previously set to NULL, and so we have the kernel oops.\n\nMy solution in this patch is to test for the NULL value before passing\nit.  I tested this patch and it fixes the problem.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "01b7c7ae88a6376c508b35a22bb61e04cb1b37f0",
      "tree": "01276b4382270285375540682d1eddf2a167103d",
      "parents": [
        "80274737220f8c5ea75696dde4c5c7feba39456f"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jun 02 09:14:54 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jun 27 09:39:37 2008 +0100"
      },
      "message": "[GFS2] Revise readpage locking\n\nThe previous attempt to fix the locking in readpage failed due\nto the use of a \"try lock\" which resulted in occasional high\ncpu usage during testing (due to repeated tries) and also it\ndid not resolve all the ordering problems wrt the transaction\nlock (although it did solve all the inode lock ordering problems).\n\nThis patch avoids the problem by unlocking the page and getting the\nlocks in the correct order. This means that we have to retest the\npage to ensure that it hasn\u0027t changed when we relock the page.\n\nThis now passes the tests which were previously failing.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "80274737220f8c5ea75696dde4c5c7feba39456f",
      "tree": "474bd28108d0340ce09f3345958d88eace374240",
      "parents": [
        "2d81afb87972013b43b055b4711dc75fdeeb9ba8"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jun 02 09:08:47 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jun 27 09:39:34 2008 +0100"
      },
      "message": "[GFS2] Fix ordering of args for list_add\n\nThe patch to remove lock_nolock managed to get the arguments\nof this list_add backwards. This fixes it.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "2d81afb87972013b43b055b4711dc75fdeeb9ba8",
      "tree": "4fe094c9ec57c6a6fa3e23767facc112f1d9d2df",
      "parents": [
        "048bca223739368aa5b9ce7cfb1d576c32d66cc7"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Thu May 29 18:27:51 2008 -0700"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jun 27 09:39:31 2008 +0100"
      },
      "message": "[GFS2] trivial sparse lock annotations\n\nAnnotate the \u0026sdp-\u003esd_log_lock.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "048bca223739368aa5b9ce7cfb1d576c32d66cc7",
      "tree": "66d4f1c0e90eb6429755cb4529f8c7f609026e89",
      "parents": [
        "f3c9d38a26be32abf9b8897e9e0afc7166c712dd"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri May 23 14:46:04 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jun 27 09:39:28 2008 +0100"
      },
      "message": "[GFS2] No lock_nolock\n\nThis patch merges the lock_nolock module into GFS2 itself. As well as removing\nsome of the overhead of the module, it also means that its now impossible to\nbuild GFS2 without a lock module (which would be a pointless thing to do\nanyway).\n\nWe also plan to merge lock_dlm into GFS2 in the future, but that is a more\ntricky task, and will therefore be a separate patch.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "f3c9d38a26be32abf9b8897e9e0afc7166c712dd",
      "tree": "01b892d0d01720a396589c1f537dd0997128a060",
      "parents": [
        "6802e3400ff4549525930ee744030c36fce9cc73"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed May 21 17:21:42 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jun 27 09:39:25 2008 +0100"
      },
      "message": "[GFS2] Fix ordering bug in lock_dlm\n\nThis looks like a lot of change, but in fact its not. Mostly its\nthings moving from one file to another. The change is just that\ninstead of queuing lock completions and callbacks from the DLM\nwe now pass them directly to GFS2.\n\nThis gives us a net loss of two list heads per glock (a fair\nsaving in memory) plus a reduction in the latency of delivering\nthe messages to GFS2, plus we now have one thread fewer as well.\nThere was a bug where callbacks and completions could be delivered\nin the wrong order due to this unnecessary queuing which is fixed\nby this patch.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Bob Peterson \u003crpeterso@redhat.com\u003e\n"
    },
    {
      "commit": "6802e3400ff4549525930ee744030c36fce9cc73",
      "tree": "db889bf5337c1d3bb12ebbf571c3c1cad1040496",
      "parents": [
        "543cf4cb3fe6f6cae3651ba918b9c56200b257d0"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed May 21 17:03:22 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jun 27 09:39:22 2008 +0100"
      },
      "message": "[GFS2] Clean up the glock core\n\nThis patch implements a number of cleanups to the core of the\nGFS2 glock code. As a result a lot of code is removed. It looks\nlike a really big change, but actually a large part of this patch\nis either removing or moving existing code.\n\nThere are some new bits too though, such as the new run_queue()\nfunction which is considerably streamlined. Highlights of this\npatch include:\n\n o Fixes a cluster coherency bug during SH -\u003e EX lock conversions\n o Removes the \"glmutex\" code in favour of a single bit lock\n o Removes the -\u003ego_xmote_bh() for inodes since it was duplicating\n   -\u003ego_lock()\n o We now only use the -\u003elm_lock() function for both locks and\n   unlocks (i.e. unlock is a lock with target mode LM_ST_UNLOCKED)\n o The fast path is considerably shortly, giving performance gains\n   especially with lock_nolock\n o The glock_workqueue is now used for all the callbacks from the DLM\n   which allows us to simplify the lock_dlm module (see following patch)\n o The way is now open to make further changes such as eliminating the two\n   threads (gfs2_glockd and gfs2_scand) in favour of a more efficient\n   scheme.\n\nThis patch has undergone extensive testing with various test suites\nso it should be pretty stable by now.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Bob Peterson \u003crpeterso@redhat.com\u003e\n"
    },
    {
      "commit": "5af4e7a0bea715f2dd7190859a43eb2258b1f388",
      "tree": "3b2ab96e295ba9036fd5de6ccf45f95c8229c6e5",
      "parents": [
        "17c15da00c0e7289375ad57e8fea0c7892b74aa0"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Tue Jun 24 12:53:38 2008 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jun 24 19:02:28 2008 +0100"
      },
      "message": "[GFS2] fix gfs2 block allocation (cleaned up)\n\nThis patch fixes bz 450641.\n\nThis patch changes the computation for zero_metapath_length(), which it\nrenames to metapath_branch_start(). When you are extending the metadata\ntree, The indirect blocks that point to the new data block must either\ndiverge from the existing tree either at the inode, or at the first\nindirect block. They can diverge at the first indirect block because the\ninode has room for 483 pointers while the indirect blocks have room for\n509 pointers, so when the tree is grown, there is some free space in the\nfirst indirect block. What metapath_branch_start() now computes is the\nheight where the first indirect block for the new data block is located.\nIt can either be 1 (if the indirect block diverges from the inode) or 2\n(if it diverges from the first indirect block).\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "17c15da00c0e7289375ad57e8fea0c7892b74aa0",
      "tree": "72390f591711ea6fb0ee50509aa9ccad993f4c69",
      "parents": [
        "62786b9e81a2dbe9c073a2ade52d33a2627d6d85"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Jun 18 11:30:40 2008 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jun 24 14:17:45 2008 +0100"
      },
      "message": "[GFS2] BUG: unable to handle kernel paging request at ffff81002690e000\n\nThis patch fixes bugzilla bug bz448866: gfs2: BUG: unable to\nhandle kernel paging request at ffff81002690e000.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "00377d8e3842776d1da633ad9c79a16ecb548b92",
      "tree": "647be450fa7c93a5dc1ad7fa650cde9db812b833",
      "parents": [
        "ad99f77778e83358c371dab7a50bde69270ed6b8"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Fri May 09 17:59:51 2008 +0200"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon May 12 08:57:11 2008 +0100"
      },
      "message": "[GFS2] Prefer strlcpy() over snprintf()\n\nstrlcpy is faster than snprintf when you don\u0027t use the returned value.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ad99f77778e83358c371dab7a50bde69270ed6b8",
      "tree": "d01363df916a0235bbea125317697fb05a30712f",
      "parents": [
        "091806edd458486af13ad83c9802f5b8b54d6d19"
      ],
      "author": {
        "name": "Andrew Price",
        "email": "andy@andrewprice.me.uk",
        "time": "Thu May 01 11:55:38 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon May 12 08:54:56 2008 +0100"
      },
      "message": "[GFS2] Fix cast from unsigned int to s64\n\nThis fixes bz 444829 where allocating a new block caused gfs2 file systems to\nreport 0 bytes used in df. It was caused by a broken cast from an unsigned int\nin gfs2_block_alloc() to a negative s64 in gfs2_statfs_change(). This patch\ncasts the unsigned int to an s64 before the unary minus is applied.\n\nSigned-off-by: Andrew Price \u003candy@andrewprice.me.uk\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "091806edd458486af13ad83c9802f5b8b54d6d19",
      "tree": "cf10d6aaf2e6bf0ed5b0ad94306623a2fc3fdb56",
      "parents": [
        "492c2e476eac010962850006c49df326919b284c"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Apr 29 12:35:48 2008 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon May 12 08:54:53 2008 +0100"
      },
      "message": "[GFS2] filesystem consistency error from do_strip\n\nThis patch fixes a GFS2 filesystem consistency error reported from\nfunction do_strip.  The problem was caused by a timing window\nthat allowed two vfs inodes to be created in memory that point\nto the same file.  The problem is fixed by making the vfs\u0027s\niget_test, iget_set mechanism check and set a new bit in the\nin-core gfs2_inode structure while the vfs inode spin_lock is held.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "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"
    }
  ],
  "next": "b1e058da50f7938e9c9e963e978b0730bba4ad32"
}
