)]}'
{
  "log": [
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "009d851837ab26cab18adda6169a813f70b0b21b",
      "tree": "073bc05e3a8c527bf9ce3332e2c2f6694484984d",
      "parents": [
        "30ff056c42c665b9ea535d8515890857ae382540"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Dec 08 12:12:13 2009 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 01 14:07:37 2010 +0000"
      },
      "message": "GFS2: Metadata address space clean up\n\nSince the start of GFS2, an \"extra\" inode has been used to store\nthe metadata belonging to each inode. The only reason for using\nthis inode was to have an extra address space, the other fields\nwere unused. This means that the memory usage was rather inefficient.\n\nThe reason for keeping each inode\u0027s metadata in a separate address\nspace is that when glocks are requested on remote nodes, we need to\nbe able to efficiently locate the data and metadata which relating\nto that glock (inode) in order to sync or sync and invalidate it\n(depending on the remotely requested lock mode).\n\nThis patch adds a new type of glock, which has in addition to\nits normal fields, has an address space. This applies to all\ninode and rgrp glocks (but to no other glock types which remain\nas before). As a result, we no longer need to have the second\ninode.\n\nThis results in three major improvements:\n 1. A saving of approx 25% of memory used in caching inodes\n 2. A removal of the circular dependency between inodes and glocks\n 3. No confusion between \"normal\" and \"metadata\" inodes in super.c\n\nAlthough the first of these is the more immediately apparent, the\nsecond is just as important as it now enables a number of clean\nups at umount time. Those will be the subject of future patches.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "c65f7fb5342ecb8cb85e9b676327b3a43a5a4735",
      "tree": "97ce229e5a0a7b8730e2fc68388107960f218e79",
      "parents": [
        "796bd9524731850967d437b7f47a86acc776ea89"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Oct 02 11:54:39 2009 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Dec 03 11:45:37 2009 +0000"
      },
      "message": "GFS2: Use forget_all_cached_acls()\n\nInvalidate all the cached ACLs when we drop the glock.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b94a170e96dc416828af9d350ae2e34b70ae7347",
      "tree": "6000929d554359c7b520a49a63415b9fc18b48b9",
      "parents": [
        "6b94617024bd6810cde1d0d491202c30d5a38d91"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Thu Jul 23 18:52:34 2009 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 30 11:01:03 2009 +0100"
      },
      "message": "GFS2: remove dcache entries for remote deleted inodes\n\nWhen a file is deleted from a gfs2 filesystem on one node, a dcache\nentry for it may still exist on other nodes in the cluster. If this\nhappens, gfs2 will be unable to free this file on disk. Because of this,\nit\u0027s possible to have a gfs2 filesystem with no files on it and no free\nspace. With this patch, when a node receives a callback notifying it\nthat the file is being deleted on another node, it schedules a new\nworkqueue thread to remove the file\u0027s dcache entry.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "09010978345e8883003bf411bb99753710eb5a3a",
      "tree": "c3a7eaf3a775649d11ad01c2be5d3549e90f6581",
      "parents": [
        "ef9e8b14a5c1d0afbaf12b4c3b271188ddfc52a4"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed May 20 10:48:47 2009 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed May 20 10:48:47 2009 +0100"
      },
      "message": "GFS2: Improve resource group error handling\n\nThis patch improves the error handling in the case where we\ndiscover that the summary information in the resource group\ndoesn\u0027t match the bitmap information while in the process of\nallocating blocks. Originally this resulted in a kernel bug,\nbut this patch changes that so that we return -EIO and print\nsome messages explaining what went wrong, and how to fix it.\n\nWe also remember locally not to try and allocate from the\nsame rgrp again, so that a subsequent allocation in a\ndifferent rgrp should succeed.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "52fcd11c0900b0cbc584eeda12a6e27dd6c9d046",
      "tree": "29ab55d89da3c559d9ce3d0fbe53bbd41c9f1701",
      "parents": [
        "3ee8da87ba6151ec91b2b8bbd27633bb248ea0d5"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Apr 20 08:58:45 2009 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Apr 20 09:05:21 2009 +0100"
      },
      "message": "GFS2: Clear dirty bit at end of inode glock sync\n\nThe dirty bit can get set during the inode glock sync. Its too\ncomplicated to change that at the moment, so this is the quick\nfix - to clear the bit again at the end of the function.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "6bac243f0793499782267342eba852a8a6cc7ac4",
      "tree": "8cf9bb9fa54767c6207bc7f72d75364c290702d9",
      "parents": [
        "02ffad08e838997fad3de05c85560a57e5fd92de"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 09 09:03:51 2009 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "steve@dolmen.chygwyn.com",
        "time": "Tue Mar 24 11:21:27 2009 +0000"
      },
      "message": "GFS2: Clean up of glops.c\n\nThis cleans up a number of bits of code mostly based in glops.c.\nA couple of simple functions have been merged into the callers\nto make it more obvious what is going on, the mysterious raising\nof i_writecount around the truncate_inode_pages() call has been\nremoved. The meta_go_* operations have been renamed rgrp_go_*\nsince that is the only lock type that they are used with.\n\nThe unused argument of gfs2_read_sb has been removed. Also\na bug has been fixed where a check for the rindex inode was\nin the wrong callback. More comments are added, and the\ndebugging code is improved too.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "64d576ba23bfd9b770cbb0279200f479272eb859",
      "tree": "8c119b0e45d288035fc24fd43cf5286da1947fb1",
      "parents": [
        "02e3cc70ecbd4352ae4d26459929f43ab1547251"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Feb 12 13:31:58 2009 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "steve@dolmen.chygwyn.com",
        "time": "Tue Mar 24 11:21:22 2009 +0000"
      },
      "message": "GFS2: Add a \"demote a glock\" interface to sysfs\n\nThis adds a sysfs file called demote_rq to GFS2\u0027s\nper filesystem directory. Its possible to use this\nfile to demote arbitrary glocks in exactly the same\nway as if a request had come in from a remote node.\n\nThis is intended for testing issues relating to caching\nof data under glocks. Despite that, the interface is\ngeneric enough to send requests to any type of glock,\nbut be careful as its not always safe to send an\narbitrary message to an arbitrary glock. For that reason\nand to prevent DoS, this interface is restricted to root\nonly.\n\nThe messages look like this:\n\n\u003ctype\u003e:\u003cglocknumber\u003e \u003cmode\u003e\n\nExample:\n\necho -n \"2:13324 EX\" \u003e/sys/fs/gfs2/unity:myfs/demote_rq\n\nWhich means \"please demote inode glock (type 2) number 13324 so that\nI can get an EX (exclusive) lock\". The lock modes are those which\nwould normally be sent by a remote node in its callback so if you\nwant to unlock a glock, you use EX, to demote to shared, use SH or PR\n(depending on whether you like GFS2 or DLM lock modes better!).\n\nIf the glock doesn\u0027t exist, you\u0027ll get -ENOENT returned. If the\narguments don\u0027t make sense, you\u0027ll get -EINVAL returned.\n\nThe plan is that this interface will be used in combination with\nthe blktrace patch which I recently posted for comments although\nit is, of course, still useful in its own right.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "d8348de06f704fc34d24ec068546ecb1045fc11a",
      "tree": "e6b7eb01ec128e40b255b903e3c6629fbd8174e5",
      "parents": [
        "e7c8707ea2b9106f0f78c43348ff5d5e82ba7961"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Feb 05 10:12:38 2009 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "steve@dolmen.chygwyn.com",
        "time": "Tue Mar 24 11:21:18 2009 +0000"
      },
      "message": "GFS2: Fix deadlock on journal flush\n\nThis patch fixes a deadlock when the journal is flushed and there\nare dirty inodes other than the one which caused the journal flush.\nOriginally the journal flushing code was trying to obtain the\ntransaction glock while running the flush code for an inode glock.\nWe no longer require the transaction glock at this point in time\nsince we know that any attempt to get the transaction glock from\nanother node will result in a journal flush. So if we are flushing\nthe journal, we can be sure that the transaction lock is still\ncached from when the transaction was started.\n\nBy inlining a version of gfs2_trans_begin() (minus the bit which\ngets the transaction glock) we can avoid the deadlock problems\ncaused if there is a demote request queued up on the transaction\nglock.\n\nIn addition I\u0027ve also moved the umount rwsem so that it covers\nthe glock workqueue, since it all demotions are done by this\nworkqueue now. That fixes a bug on umount which I came across\nwhile fixing the original problem.\n\nReported-by: David Teigland \u003cteigland@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "f057f6cdf64175db1151b1f5d110e29904f119a1",
      "tree": "582dbf358e351f64977620c29ebf772d693b1948",
      "parents": [
        "22077f57dec8fcbeb1112b35313961c0902ff038"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 12 10:43:39 2009 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "steve@dolmen.chygwyn.com",
        "time": "Tue Mar 24 11:21:14 2009 +0000"
      },
      "message": "GFS2: Merge lock_dlm module into GFS2\n\nThis is the big patch that I\u0027ve been working on for some time\nnow. There are many reasons for wanting to make this change\nsuch as:\n o Reducing overhead by eliminating duplicated fields between structures\n o Simplifcation of the code (reduces the code size by a fair bit)\n o The locking interface is now the DLM interface itself as proposed\n   some time ago.\n o Fewer lookups of glocks when processing replies from the DLM\n o Fewer memory allocations/deallocations for each glock\n o Scope to do further optimisations in the future (but this patch is\n   more than big enough for now!)\n\nPlease note that (a) this patch relates to the lock_dlm module and\nnot the DLM itself, that is still a separate module; and (b) that\nwe retain the ability to build GFS2 as a standalone single node\nfilesystem with out requiring the DLM.\n\nThis patch needs a lot of testing, hence my keeping it I restarted\nmy -git tree after the last merge window. That way, this has the maximum\nexposure before its merged. This is (modulo a few minor bug fixes) the\nsame patch that I\u0027ve been posting on and off the the last three months\nand its passed a number of different tests so far.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "97cc1025b1a91c52e84f12478dcf0f853abc6564",
      "tree": "cd71419049aeb13eea7012889d0ee0c715394e4d",
      "parents": [
        "9ac1b4d9b6f885ccd7d8f56bceb609003a920ff7"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 20 13:39:47 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 05 07:39:09 2009 +0000"
      },
      "message": "GFS2: Kill two daemons with one patch\n\nThis patch removes the two daemons, gfs2_scand and gfs2_glockd\nand replaces them with a shrinker which is called from the VM.\n\nThe net result is that GFS2 responds better when there is memory\npressure, since it shrinks the glock cache at the same rate\nas the VFS shrinks the dcache and icache. There are no longer\nany time based criteria for shrinking glocks, they are kept\nuntil such time as the VM asks for more memory and then we\ndemote just as many glocks as required.\n\nThere are potential future changes to this code, including the\npossibility of sorting the glocks which are to be written back\ninto inode number order, to get a better I/O ordering. It would\nbe very useful to have an elevator based workqueue implementation\nfor this, as that would automatically deal with the read I/O cases\nat the same time.\n\nThis patch is my answer to Andrew Morton\u0027s remark, made during\nthe initial review of GFS2, asking why GFS2 needs so many kernel\nthreads, the answer being that it doesn\u0027t :-) This patch is a\nnet loss of about 200 lines of code.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "813e0c46c9e2a0c6f0b6e774faac82afd7a2e812",
      "tree": "cb09aa118f9e053f02e17f7c5ff11139e8e22244",
      "parents": [
        "37b2c8377c98acb60cf4d0126e385ef2153bded9"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Nov 18 13:38:48 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 05 07:39:06 2009 +0000"
      },
      "message": "GFS2: Fix \"truncate in progress\" hang\n\nFollowing on from the recent clean up of gfs2_quotad, this patch moves\nthe processing of \"truncate in progress\" inodes from the glock workqueue\ninto gfs2_quotad. This fixes a hang due to the \"truncate in progress\"\nprocessing requiring glocks in order to complete.\n\nIt might seem odd to use gfs2_quotad for this particular item, but\nwe have to use a pre-existing thread since creating a thread implies\na GFP_KERNEL memory allocation which is not allowed from the glock\nworkqueue context. Of the existing threads, gfs2_logd and gfs2_recoverd\nmay deadlock if used for this operation. gfs2_scand and gfs2_glockd are\nboth scheduled for removal at some (hopefully not too distant) future\npoint. That leaves only gfs2_quotad whose workload is generally fairly\nlight and is easily adapted for this extra task.\n\nAlso, as a result of this change, it opens the way for a future patch to\nmake the reading of the inode\u0027s information asynchronous with respect to\nthe glock workqueue, which is another improvement that has been on the list\nfor some time now.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "fa75cedc3da5923b8ea3877be9d5bc09b02e3860",
      "tree": "91d169ff147e6d3dc96b2caf859b3d1b35f28905",
      "parents": [
        "73f749483ed18f3b5759909cc4187b1741f54b10"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Nov 10 10:10:12 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 05 07:39:04 2009 +0000"
      },
      "message": "GFS2: Add more detail to debugfs glock dumps\n\nAlthough the glock dumps print quite a lot of information about\nthe glocks themselves, there are more things which can be\nusefully added to the dump realting to the objects themselves.\n\nThis patch adds a few more fields to the inode and resource\ngroup lines, which should be useful for debugging.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "383f01fbf4a701b73f5e35ea805ed1700b4b4db9",
      "tree": "b2b7a1a188088f319a29e8cc4cc924490837352b",
      "parents": [
        "c9e98886776386f1f7828d9685e78cd341849867"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Nov 04 10:05:22 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 05 07:38:59 2009 +0000"
      },
      "message": "GFS2: Banish struct gfs2_dinode_host\n\nThe final field in gfs2_dinode_host was the i_flags field. Thats\nrenamed to i_diskflags in order to avoid confusion with the existing\ninode flags, and moved into the inode proper at a suitable location\nto avoid creating a \"hole\".\n\nAt that point struct gfs2_dinode_host is no longer needed and as\npromised (quite some time ago!) it can now be removed completely.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@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": "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": "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": "3042a2ccd68d2b609d283219e51cba363aa35c1d",
      "tree": "032653f2111bf20c1f4610d3801c42020c3a1abd",
      "parents": [
        "52d4c74b08bf859f698ddb4e8a43c0dc8d4a0685"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Nov 02 08:39:34 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:42 2008 +0000"
      },
      "message": "[GFS2] Reorder writeback for glock sync\n\nPreviously we were doing (write data, wait for data, write metadata, wait\nfor metadata). After this patch we so (write metadata, write data, wait for\ndata, wait for metadata) which should be more efficient.\n\nAlso I noticed that the drop_bh and xmote_bh functions were almost\nidentical. In fact the only difference was a single test, and that\ntest is such that in the drop_bh case, it would always evaluate to\nthe correct result. As such we can use the xmote_bh functions in\nall the places where we were using the drop_bh function and remove\nthe drop_bh functions.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "f91a0d3e24e4b0198be5fae20d45a35c40d1efce",
      "tree": "cda8095f9befd25cbfaf5f63a4c8ca26870d45ca",
      "parents": [
        "3cc3f710ce0effe397b830826a1a081fa81f11c7"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Oct 15 16:29:05 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:16 2008 +0000"
      },
      "message": "[GFS2] Remove useless i_cache from inodes\n\nThe i_cache was designed to keep references to the indirect blocks\nused during block mapping so that they didn\u0027t have to be looked\nup continually. The idea failed because there are too many places\nwhere the i_cache needs to be freed, and this has in the past been\nthe cause of many bugs.\n\nIn addition there was no performance benefit being gained since the\ndisk blocks in question were cached anyway. So this patch removes\nit in order to simplify the code to prepare for other changes which\nwould otherwise have had to add further support for this feature.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "3cc3f710ce0effe397b830826a1a081fa81f11c7",
      "tree": "53f69f1b8d1cbc2849c6bac08ce7786f3ecd7447",
      "parents": [
        "51ff87bdd9f21a5d3672517b75d25ab5842d94a8"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Oct 15 15:40:33 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:13 2008 +0000"
      },
      "message": "[GFS2] Use -\u003epage_mkwrite() for mmap()\n\nThis cleans up the mmap() code path for GFS2 by implementing the\npage_mkwrite function for GFS2. We are thus able to use the\ngeneric filemap_fault function for our -\u003efault() implementation.\n\nThis now means that shared writable mappings will be much more\nefficiently shared across the cluster if there is a reasonable\nproportion of read activity (the greater proportion, the better).\n\nAs a side effect, it also reduces the size of the code, removes\nspecial cases from readpage and readpages, and makes the code\npath easier to follow.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "1ad38c437fa33f85ba4b6a85ea8c5478ee72d5bd",
      "tree": "11a5fc7993ba9ae343fc72f03f9a11f312fd6128",
      "parents": [
        "0820ab517e1b100ee3f9584ec27f93309689ebe7"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 03 11:01:33 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:56:12 2007 +0100"
      },
      "message": "[GFS2] Clean up gfs2_trans_add_revoke()\n\nThe following alters gfs2_trans_add_revoke() to take a struct\ngfs2_bufdata as an argument. This eliminates the memory allocation which\nwas previously required by making use of the already existing struct\ngfs2_bufdata. It makes some sanity checks to ensure that the\ngfs2_bufdata has been removed from all the lists before its recycled as\na revoke structure. This saves one memory allocation and one free per\nrevoke structure.\n\nAlso as a result, and to simplify the locking, since there is no longer\nany blocking code in gfs2_trans_add_revoke() we must hold the log lock\nwhenever this function is called. This reduces the amount of times we\ntake and unlock the log lock.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "1e1a3d03e927d39282208aed676e49d25129feea",
      "tree": "731cca9b4df1a6164c809f002290a3d7fd6af1f4",
      "parents": [
        "8497a46e178addb27ad1c981befaa17ca788b5c3"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Aug 27 09:45:26 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:55 2007 +0100"
      },
      "message": "[GFS2] Introduce gfs2_remove_from_ail\n\nThis collects together the operations required to remove a gfs2_bufdata\nfrom the ail lists. Its only called from two places to start with, but\nexpect to see more of this function in future.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "c4f68a130fc1795e4a75ec5bdaf9e85d86c22419",
      "tree": "37251ae5634d4b73b5224e3e8679f92472de0ebe",
      "parents": [
        "d1e2777d4f419a865ddccdb9b3412021d0e4de51"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Thu Aug 23 13:19:05 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:48 2007 +0100"
      },
      "message": "[GFS2] delay glock demote for a minimum hold time\n\nWhen a lot of IO, with some distributed mmap IO, is run on a GFS2 filesystem in\na cluster, it will deadlock. The reason is that do_no_page() will repeatedly\ncall gfs2_sharewrite_nopage(), because each node keeps giving up the glock\ntoo early, and is forced to call unmap_mapping_range(). This bumps the\nmapping-\u003etruncate_count sequence count, forcing do_no_page() to retry. This\npatch institutes a minimum glock hold time a tenth a second.  This insures\nthat even in heavy contention cases, the node has enough time to get some\nuseful work done before it gives up the glock.\n\nA second issue is that when gfs2_glock_dq() is called from within a page fault\nto demote a lock, and the associated page needs to be written out, it will\ntry to acqire a lock on it, but it has already been locked at a higher level.\nThis patch puts makes gfs2_glock_dq() use the work queue as well, to avoid this\nissue. This is the same patch as Steve Whitehouse originally proposed to fix\nthis issue, execpt that gfs2_glock_dq() now grabs a reference to the glock\nbefore it queues up the work on it.\n\nSigned-off-by: Benjamin E. Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "bb3b0e3df5420fdf2c6bbb4417525c6d2ef55bbb",
      "tree": "6eab0fa06b4dc9f9a8d62cedaa6879327966a20c",
      "parents": [
        "2d9a4bbf6d28673f4057682cc02d16bf288b4a35"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Aug 16 16:03:57 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:29 2007 +0100"
      },
      "message": "[GFS2] Clean up invalidatepage/releasepage\n\nThis patch fixes some bugs relating to journaled data files by cleaning\nup the gfs2_invalidatepage() and gfs2_releasepage() functions. We now\nnever block during gfs2_releasepage(), instead we always either release\nor refuse to release depending on the status of the buffers.\n\nThis fixes Red Hat bugzillas #248969 and #252392.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Bob Peterson \u003crpeterso@redhat.com\u003e\n"
    },
    {
      "commit": "b524fe646c9a226a847e30ca1221dc22e952f16b",
      "tree": "873b37ab81cadbcc73b02c83cbfd85c1a5ccbee9",
      "parents": [
        "7dcca30a32aadb0520417521b0c44f42d09fe05c"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Wed May 02 09:44:03 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:22:07 2007 +0100"
      },
      "message": "[GFS2] flush the glock completely in inode_go_sync\n\nFix for bz #231910\nWhen filemap_fdatawrite() is called on the inode mapping in data\u003dordered mode,\nit will add the glock to the log. In inode_go_sync(), if you do the\ngfs2_log_flush() before this, after the filemap_fdatawrite() call, the glock\nand its associated data buffers will be on the log again. This means you can\ndemote a lock from exclusive, without having it flushed from the log. The\nattached patch simply moves the gfs2_log_flush up to after the\nfilemap_fdatawrite() call.\n\nOriginally, I tried moving the gfs2_log_flush to after gfs2_meta_sync(), but\nthat caused me to trip the following assert.\n\nGFS2: fsid\u003dcypher-36:test.0: fatal: assertion \"!buffer_busy(bh)\" failed\nGFS2: fsid\u003dcypher-36:test.0:   function \u003d gfs2_ail_empty_gl, file \u003d fs/gfs2/glops.c, line \u003d 61\n\nIt appears that gfs2_log_flush() puts some of the glocks buffers in the busy\nstate and the filemap_fdatawrite() call is necessary to flush them. This makes\nme worry slightly that a related problem could happen because of moving the\ngfs2_log_flush() after the initial filemap_fdatawrite(), but I assume that\ngfs2_ail_empty_gl() would catch that case as well.\n\nSigned-off-by: Benjamin E. Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "3e9f45bd18191bbd05468b19b7064b8da8262aba",
      "tree": "06c790a9cb1afc83d170447a277e51f5a1a5f303",
      "parents": [
        "c83e44842074a87614c78eca70fa6467b0bc3c4a"
      ],
      "author": {
        "name": "Guillaume Chazarain",
        "email": "guichaz@yahoo.fr",
        "time": "Tue May 08 00:23:25 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:14:57 2007 -0700"
      },
      "message": "Factor outstanding I/O error handling\n\nCleanup: setting an outstanding error on a mapping was open coded too many\ntimes.  Factor it out in mapping_set_error().\n\nSigned-off-by: Guillaume Chazarain \u003cguichaz@yahoo.fr\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c3f49bc209b28d2b5f82b78baaa827eb3a4d1891",
      "tree": "db160e1e04427ab48a7324f2781e66beb5c92072",
      "parents": [
        "95d97b7dd7d7a7a13d11a38b3ecb64849d2e5086"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 07 09:06:48 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 07 14:03:53 2007 -0500"
      },
      "message": "[GFS2] Fix bz 229873, alternate test: assertion \"!ip-\u003ei_inode.i_mapping-\u003enrpages\" failed\n\nThe following removes an incorrect assertion from the GFS2 glops code. This\nfixes Red Hat bz 229873. Thanks to Abhijith Das for testing the patch\nand confirming the fix.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Abhijith Das \u003cadas@redhat.com\u003e\n"
    },
    {
      "commit": "cad5b9392754910ee7dbe551eb004010a864c882",
      "tree": "8f471553844c6a920d607a82b466f649599a102e",
      "parents": [
        "fb0d3bce8e88cca4abb26076f778f64edcaf19aa"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Feb 28 14:03:00 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 07 14:00:14 2007 -0500"
      },
      "message": "[GFS2] Fix bz 230143, incorrect flushing of rgrps\n\nThe below patch fixes a problem where we were not flushing rgrps\ncorrectly. It only occurred in the specific case that a callback was\nreceived for an rgrp which was dirty and when a journal log flush had\nnot already resulted in the rgrp being flushed anyway. This fixes Red\nHat bz 230143,\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "cd354f1ae75e6466a7e31b727faede57a1f89ca5",
      "tree": "09a2da1672465fefbc7fe06ff4e6084f1dd14c6b",
      "parents": [
        "3fc605a2aa38899c12180ca311f1eeb61a6d867e"
      ],
      "author": {
        "name": "Tim Schmielau",
        "email": "tim@physik3.uni-rostock.de",
        "time": "Wed Feb 14 00:33:14 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 14 08:09:54 2007 -0800"
      },
      "message": "[PATCH] remove many unneeded #includes of sched.h\n\nAfter Al Viro (finally) succeeded in removing the sched.h #include in module.h\nrecently, it makes sense again to remove other superfluous sched.h includes.\nThere are quite a lot of files which include it but don\u0027t actually need\nanything defined in there.  Presumably these includes were once needed for\nmacros that used to live in sched.h, but moved to other header files in the\ncourse of cleaning it up.\n\nTo ease the pain, this time I did not fiddle with any header files and only\nremoved #includes from .c-files, which tend to cause less trouble.\n\nCompile tested against 2.6.20-rc2 and 2.6.20-rc2-mm2 (with offsets) on alpha,\narm, i386, ia64, mips, powerpc, and x86_64 with allnoconfig, defconfig,\nallmodconfig, and allyesconfig as well as a few randconfigs on x86_64 and all\nconfigs in arch/arm/configs on arm.  I also checked that no new warnings were\nintroduced by the patch (actually, some warnings are removed that were emitted\nby unnecessarily included header files).\n\nSigned-off-by: Tim Schmielau \u003ctim@physik3.uni-rostock.de\u003e\nAcked-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b5d32bead1578afc5ca817d40c320764d50a8600",
      "tree": "522400e0638b263a9973b05f0da40bafcfc8b0bb",
      "parents": [
        "f2f5095f9e63db57faa7cb082e958910ecdd7ad4"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 22 12:15:34 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 05 13:37:26 2007 -0500"
      },
      "message": "[GFS2] Tidy up glops calls\n\nThis patch doesn\u0027t make any changes to the ordering of the various\noperations related to glocking, but it does tidy up the calls to the\nglops.c functions to make the structure more obvious.\n\nThe two functions: gfs2_glock_xmote_th() and gfs2_glock_drop_th() can be\nmade static within glock.c since they are called by every set of glock\noperations. The xmote_th and drop_th glock operations are then made\nconditional upon those two routines existing and called from the\npreviously mentioned functions in glock.c respectively.\n\nAlso it can be seen that the go_sync operation isn\u0027t needed since it can\neasily be replaced by calls to xmote_bh and drop_bh respectively. This\nresults in no longer (confusingly) calling back into routines in glock.c\nfrom glops.c and also reducing the glock operations by one member.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "1c0f4872dc4bbeb2223a300517099786211fce83",
      "tree": "21e4c880e68751dabecfc0d77ff226ec6fcb6951",
      "parents": [
        "6bd9c8c2fb99d1f5af6201db2f063c1d754c230a"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 22 12:10:39 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 05 13:37:20 2007 -0500"
      },
      "message": "[GFS2] Remove local exclusive glock mode\n\nHere is a patch for GFS2 to remove the local exclusive flag. In\nthe places it was used, mutex\u0027s are always held earlier in the\ncall path, so it appears redundant in the LM_ST_SHARED case.\n\nAlso, the GFS2 holders were setting local exclusive in any case where\nthe requested lock was LM_ST_EXCLUSIVE. So the other places in the glock\ncode where the flag was tested have been replaced with tests for the\nlock state being LM_ST_EXCLUSIVE in order to ensure the logic is the\nsame as before (i.e. LM_ST_EXCLUSIVE is always locally exclusive as well\nas globally exclusive).\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e5dab552c82ce416d7be867b1e5a0fa585dcf590",
      "tree": "3719a33f1bd5a29785e4ca35982d9610dd5a1a63",
      "parents": [
        "fee852e374fb367c5436b1226eb93b35f8355ed9"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jan 18 17:44:20 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 05 13:37:14 2007 -0500"
      },
      "message": "[GFS2] Remove the \"greedy\" function from glock.[ch]\n\nThe \"greedy\" code was an attempt to retain glocks for a minimum length\nof time when they relate to mmap()ed files. The current implementation\nof this feature is not, however, ideal in that it required allocating\nmemory in order to do this and its overly complicated.\n\nIt also misses the mark by ignoring the other I/O operations which are\njust as likely to suffer from the same problem. So the plan is to remove\nthis now and then add the functionality back as part of the glock state\nmachine at a later date (and thus take into account all the possible\nusers of this feature)\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b004157ab5b374a498a5874cda68c389219d23e7",
      "tree": "1e7d7d5c62f3e12cc453e763bbff139b47458be4",
      "parents": [
        "ae619320b22f8e0b2bbe4a3a5ac2f9ccf08d7ec2"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 23 10:51:34 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:36:42 2006 -0500"
      },
      "message": "[GFS2] Fix journal flush problem\n\nThis fixes a bug which resulted in poor performance due to flushing\nthe journal too often. The code path in question was via the inode_go_sync()\nfunction in glops.c. The solution is not to flush the journal immediately\nwhen inodes are ejected from memory, but batch up the work for glockd to\ndeal with later on. This means that glocks may now live on beyond the end of\nthe lifetime of their inodes (but not very much longer in the normal case).\n\nAlso fixed in this patch is a bug (which was hidden by the bug mentioned above) in\ncalculation of the number of free journal blocks.\n\nThe gfs2_logd process has been altered to be more responsive to the journal\nfilling up. We now wake it up when the number of uncommitted journal blocks\nhas reached the threshold level rather than trying to flush directly at the\nend of each transaction. This again means doing fewer, but larger, log\nflushes in general.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "1a14d3a68f04527546121eb7b45187ff6af63151",
      "tree": "7bc48436f7c6aad5433398311b67a10661e2633d",
      "parents": [
        "fa2ecfc5e11b12f25b67f9c84ac6b0e74a6a0115"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Nov 20 10:37:45 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:36:30 2006 -0500"
      },
      "message": "[GFS2] Simplify glops functions\n\nThe go_sync callback took two flags, but one of them was set on every\ncall, so this patch removes once of the flags and makes the previously\nconditional operations (on this flag), unconditional.\n\nThe go_inval callback took three flags, each of which was set on every\ncall to it. This patch removes the flags and makes the operations\nunconditional, which makes the logic rather more obvious.\n\nTwo now unused flags are also removed from incore.h.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "9e2dbdac3df300516ffdd9a8631f23164d068a50",
      "tree": "088a7dce1a0cc678a80ca1609642e7e3ecacd4dd",
      "parents": [
        "e7c698d74fc9e0e76b3086062b0519df3601ff52"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 08 15:45:46 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:34:52 2006 -0500"
      },
      "message": "[GFS2] Remove gfs2_inode_attr_in\n\nThis function wasn\u0027t really doing the right thing. There was no need\nto update the inode size at this point and the updating of the\ni_blocks field has now been moved to the places where di_blocks is\nupdated. A result of this patch and some those preceeding it is that\nunlocking a glock is now a much more efficient process, since there\nis no longer any requirement to copy data from the gfs2 inode into\nthe vfs inode at this point.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "bfded27ba010d1c3b0aa3843f97dc9b80de751be",
      "tree": "55d0009b96ae00188fa4ab546cdcad5686a3fdde",
      "parents": [
        "a9583c7983cbba9726bfe64ee46613d654fc9e26"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 01 16:05:38 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:34:30 2006 -0500"
      },
      "message": "[GFS2] Shrink gfs2_inode (8) - i_vn\n\nThis shrinks the size of the gfs2_inode by 8 bytes by\nreplacing the version counter with a one bit valid/invalid\nflag.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b60623c238b6a819bd04090139704e2cb57a751f",
      "tree": "fcecc0599003db66d937138be94bef4b4372f15b",
      "parents": [
        "e7f14f4d094ea1a9ce1953375f5bc1500c760c79"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 01 12:22:46 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:34:14 2006 -0500"
      },
      "message": "[GFS2] Shrink gfs2_inode (3) - di_mode\n\nThis removes the duplicate di_mode field in favour of using the\ninode-\u003ei_mode field. This saves 4 bytes.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "551676226163379c217e8ec54bd287eab9b8521e",
      "tree": "84abfa1a29c23890124f6dc66790af49917940b4",
      "parents": [
        "e697264709c86040271cdd7abee781d7adbb7f91"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 13 21:47:13 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:33:14 2006 -0500"
      },
      "message": "[GFS2] split and annotate gfs2_log_head\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ddacfaf76dd620af9b73343a975749778321b51c",
      "tree": "1199c2a78b5e2cdd6efc6965dd4cd8caa00ec482",
      "parents": [
        "f92a0b6ff43e8e07bbd5b1d2dd1cff130014f3c7"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Oct 03 11:10:41 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Oct 03 11:10:41 2006 -0400"
      },
      "message": "[GFS2] Move logging code into log.c (mostly)\n\nThis moves the logging code from meta_io.c into log.c and glops.c. As a\nresult the routines can now be static and all the logging code is together\nin log.c, leaving meta_io.c with just metadata i/o code in it.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "7276b3b0c77101f8b3f4e45e89a29cf9045e831a",
      "tree": "3dd0a981218e490ddf47f925ba20c254e491ce98",
      "parents": [
        "91fa47964165a42401fbc1f41caa63ab78564305"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Sep 21 17:05:23 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Sep 21 17:05:23 2006 -0400"
      },
      "message": "[GFS2] Tidy up meta_io code\n\nFix a bug in the directory reading code, where we might have dereferenced\na NULL pointer in case of OOM. Updated the directory code to use the new\n\u0026 improved version of gfs2_meta_ra() which now returns the first block\nthat was being read. Previously it was releasing it requiring following\ncode to grab the block again at each point it was called.\n\nAlso turned off readahead on directory lookups since we are reading a\nhash table, and therefore reading the entries in order is very\nunlikely. Readahead is still used for all other calls to the\ndirectory reading function (e.g. when growing the hash table).\n\nRemoved the DIO_START constant. Everywhere this was used, it was\nused to unconditionally start i/o aside from a couple of places, so\nI\u0027ve removed it and made the couple of exceptions to this rule into\nseparate functions.\n\nAlso hunted through the other DIO flags and removed them as arguments\nfrom functions which were always called with the same combination of\narguments.\n\nUpdated gfs2_meta_indirect_buffer to be a bit more efficient and\nhopefully also be a bit easier to read.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "7d308590ae60d1f038a54a94e78a385c5c163452",
      "tree": "f672724840a07022ff6deb8022082af35dbad44c",
      "parents": [
        "f3b30912e0eab0e4160c7649a5f2b10be68027b9"
      ],
      "author": {
        "name": "Fabio Massimo Di Nitto",
        "email": "fabbione@ubuntu.com",
        "time": "Tue Sep 19 07:56:29 2006 +0200"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Sep 19 08:45:18 2006 -0400"
      },
      "message": "[GFS2] Export lm_interface to kernel headers\n\n\nlm_interface.h has a few out of the tree clients such as GFS1\nand userland tools.\n\nRight now, these clients keeps a copy of the file in their build tree\nthat can go out of sync.\n\nMove lm_interface.h to include/linux, export it to userland and\nclean up fs/gfs2 to use the new location.\n\nSigned-off-by: Fabio M. Di Nitto \u003cfabbione@ubuntu.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "94610610f10749c0e17b4d2840ff8a7cb636c413",
      "tree": "718d81be51c29da312136d93ca62f4f8071637f0",
      "parents": [
        "a5e08a9ef50e8b6feb099f8e4b253df04f5ec9db"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Sat Sep 09 18:59:27 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Sat Sep 09 18:59:27 2006 -0400"
      },
      "message": "[GFS2] Remove unused function from glock.c\n\nThe callback for iopen locks is unused, so this removes\nit.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ea67eedb211d3418fa62fe3477e0d19b2888225e",
      "tree": "456cb81b1eb23ec76ce6a44e5ce2ce068995baa1",
      "parents": [
        "f2f7ba5237e2fe10ba3e328a4f728b9e1ff141da"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Sep 05 10:53:09 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Sep 05 10:53:09 2006 -0400"
      },
      "message": "[GFS2] Fix end of multi-line structures\n\nAs per Jan Engelhardt\u0027s request, I\u0027ve added a \u0027,\u0027 to the end of\neach of the multi-line structures which didn\u0027t already have\none (most already did).\n\nCc: Jan Engelhardt \u003cjengelh@linux01.gwdg.de\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "75d3b817a0b48425da921052955cc58f20bbab52",
      "tree": "7fb2e9bf18d794a590f43397ee56f3ce917a2233",
      "parents": [
        "31e77ac55f18db0ec1c724840927562ef3093ef6"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 04 11:41:31 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 04 11:41:31 2006 -0400"
      },
      "message": "[GFS2] Tidy up bmap/inode code\n\nAs per Jan Engelhardt\u0027s third set of comments, this make various\ncode style changes and moves the structures from format.h into\nsuper.c, which was the only place that format.h was actually used.\n\nCc: Jan Engelhardt \u003cjengelh@linux01.gwdg.de\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e9fc2aa091ab8fa46e60d4c9d06a89305c441652",
      "tree": "8cdf5fcc4adba8cd53c51f824b5d8107ce0f4bba",
      "parents": [
        "c6e6f0ba8fc1dea99c7bd020916f24d533b62697"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Sep 01 11:05:15 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Sep 01 11:05:15 2006 -0400"
      },
      "message": "[GFS2] Update copyright, tidy up incore.h\n\nAs per comments from Jan Engelhardt \u003cjengelh@linux01.gwdg.de\u003e this\nupdates the copyright message to say \"version\" in full rather than\n\"v.2\". Also incore.h has been updated to remove forward structure\ndeclarations which are not required.\n\nThe gfs2_quota_lvb structure has now had endianess annotations added\nto it. Also quota.c has been updated so that we now store the\nlvb data locally in endian independant format to avoid needing\na structure in host endianess too. As a result the endianess\nconversions are done as required at various points and thus the\nconversion routines in lvb.[ch] are no longer required. I\u0027ve\nmoved the one remaining constant in lvb.h thats used into lm.h\nand removed the unused lvb.[ch].\n\nI have not changed the HIF_ constants. That is left to a later patch\nwhich I hope will unify the gh_flags and gh_iflags fields of the\nstruct gfs2_holder.\n\nCc: Jan Engelhardt \u003cjengelh@linux01.gwdg.de\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "5e2b0613ed9f9641937dd5948051631249447c57",
      "tree": "2bccd88b4303e7917824cef45aabbe43cd0d93c2",
      "parents": [
        "8fb4b536e7b9dbaf7a6b8204e887b92a14e4352c"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Aug 30 09:38:30 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Aug 30 09:38:30 2006 -0400"
      },
      "message": "[GFS2] Remove unused code from glock layer\n\nRemove the unused sync feature from glocks. This is currently done by\ncalling the required functions to sync pages/blocks directly so this\ncode isn\u0027t needed.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "8fb4b536e7b9dbaf7a6b8204e887b92a14e4352c",
      "tree": "f74f905188ca9df0fc6f5fda3c6ee25ede02ee2f",
      "parents": [
        "83b7a664a0c7c39ccfa4c72535dc1c001d4e7a18"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Aug 30 09:30:00 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Aug 30 09:30:00 2006 -0400"
      },
      "message": "[GFS2] Make glock operations const\n\nFor all the usual reasons of enforcing correctness and potentially\nreducing code size, this patch makes the glock operations const.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "f45b7ddd2bae1dc98e35c3611b55cba6d2a8da9e",
      "tree": "b2c498fc65855cb0f7ec17b9e2a42200aae633af",
      "parents": [
        "ae4a382004fc6cf229c51deaf69910410d313e0b"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 27 13:53:53 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 27 13:53:53 2006 -0400"
      },
      "message": "[GFS2] Use a bio to read the superblock\n\nThis means that we don\u0027t need to create a special inode just to contain\na struct address_space in order to read a single disk block. Instead\nwe read the disk block directly. Its slightly faster, and uses slightly\nless memory, but the real reason for doing this is that it removes a\nspecial case from the glock code.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ba7f72901cfd437d6de087bf44d2b64357cb38a5",
      "tree": "8661e91d3f4866b0dbcf5f1887bc86ca6564a0d1",
      "parents": [
        "f25ef0c1b4e032b2641857ac4cff3315c6eb90e3"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jul 26 11:27:10 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jul 26 11:27:10 2006 -0400"
      },
      "message": "[GFS2] Remove page.[ch]\n\nThe remaining routines in page.c were all only used in one other\nfile, so they are now moved into the files where they are referenced\nand made static. Thus page.[ch] are no longer required.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "3a8476dda13bc6690c5c2d5f1d3078048392c188",
      "tree": "1d08bad458d78ce27bec02416491d0f86a454b82",
      "parents": [
        "feaa7bba026c181ce071d5a4884f7f9dd26207a1"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jun 19 09:10:39 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jun 19 09:10:39 2006 -0400"
      },
      "message": "[GFS2] Remove debugging printks\n\nA few of my printks slipped through last time. Also fix a couple of\nminor bugs.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "feaa7bba026c181ce071d5a4884f7f9dd26207a1",
      "tree": "c858deb225917265cb07820730e9764674d133e8",
      "parents": [
        "22da645fd6675b7abc55cf937ddf6132f343e5b9"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jun 14 15:32:57 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jun 14 15:32:57 2006 -0400"
      },
      "message": "[GFS2] Fix unlinked file handling\n\nThis patch fixes the way we have been dealing with unlinked,\nbut still open files. It removes all limits (other than memory\nfor inodes, as per every other filesystem) on numbers of these\nwhich we can support on GFS2. It also means that (like other\nfs) its the responsibility of the last process to close the file\nto deallocate the storage, rather than the person who did the\nunlinking. Note that with GFS2, those two events might take place\non different nodes.\n\nAlso there are a number of other changes:\n\n o We use the Linux inode subsystem as it was intended to be\nused, wrt allocating GFS2 inodes\n o The Linux inode cache is now the point which we use for\nlocal enforcement of only holding one copy of the inode in\ncore at once (previous to this we used the glock layer).\n o We no longer use the unlinked \"special\" file. We just ignore it\ncompletely. This makes unlinking more efficient.\n o We now use the 4th block allocation state. The previously unused\nstate is used to track unlinked but still open inodes.\n o gfs2_inoded is no longer needed\n o Several fields are now no longer needed (and removed) from the in\ncore struct gfs2_inode\n o Several fields are no longer needed (and removed) from the in core\nsuperblock\n\nThere are a number of future possible optimisations and clean ups\nwhich have been made possible by this patch.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "3a8a9a1034813aa99f5ae3150f652d490c5ff10d",
      "tree": "427d4c1499b5c88dbf43c6e490d83cee350083b2",
      "parents": [
        "bd8968010a9a08e67a0ddb3ddee9feb8882e8c2f"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu May 18 15:09:15 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu May 18 15:09:15 2006 -0400"
      },
      "message": "[GFS2] Update copyright date to 2006\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "bd8968010a9a08e67a0ddb3ddee9feb8882e8c2f",
      "tree": "c3960853310112779e2ce583a8c8b524777cb70d",
      "parents": [
        "1b50259bc33f2adfcb4c5fba4b740bf80789df22"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu May 18 14:54:58 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu May 18 14:54:58 2006 -0400"
      },
      "message": "[GFS2] Remove semaphore.h from C files\n\nWe no longer use semaphores, everything has been converted to\nmutex or rwsem, so we don\u0027t need to include this header any more.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b09e593d799560f1a0782c20ac5900058390a26f",
      "tree": "20f04bd2c8ba9c09ac80a7bb1400d341c4fd7e21",
      "parents": [
        "55eccc6d00cea224bf634d44e9871cfe83200ff2"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Apr 07 11:17:32 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Apr 07 11:17:32 2006 -0400"
      },
      "message": "[GFS2] Fix a ref count bug and other clean ups\n\nThis fixes a ref count bug that sometimes showed up a umount time\n(causing it to hang) but it otherwise mostly harmless. At the same\ntime there are some clean ups including making the log operations\nstructures const, moving a memory allocation so that its not done\nin the fast path of checking to see if there is an outstanding\ntransaction related to a particular glock.\n\nRemoves the sd_log_wrap varaible which was updated, but never actually\nused anywhere. Updates the gfs2 ioctl() to run without the kernel lock\n(which it never needed anyway). Removes the \"invalidate inodes\" loop\nfrom GFS2\u0027s put_super routine. This is done in kill super anyway so\nwe don\u0027t need to do it here. The loop was also bogus in that if there\nare any inodes \"stuck\" at this point its a bug and we need to know\nabout it rather than hide it by hanging forever.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "5c676f6d359b0404d53f542f02e1359583cb2895",
      "tree": "8741011990ec0a3d0d41fee9f0d7abf6a16834cc",
      "parents": [
        "f3b270a47882b958e9e3c5bd86894e3a7072899a"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 27 17:23:27 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 27 17:23:27 2006 -0500"
      },
      "message": "[GFS2] Macros removal in gfs2.h\n\nAs suggested by Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e.\n\nThe DIV_RU macro is renamed DIV_ROUND_UP and and moved to kernel.h\nThe other macros are gone from gfs2.h as (although not requested\nby Pekka Enberg) are a number of included header file which are now\nincluded individually. The inode number comparison function is\nnow an inline function.\n\nThe DT2IF and IF2DT may be addressed in a future patch.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "7359a19cc758946aba0e45233b8641256b194884",
      "tree": "d96aaeb2fb239efe6fdb0b4698eb94108719f423",
      "parents": [
        "18ec7d5c3f434aed9661ed10a9e1f48cdeb4981d"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 13 12:27:43 2006 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 13 12:27:43 2006 +0000"
      },
      "message": "[GFS2] Fix for root inode ref count bug\n\nUmount is now working correctly again. The bug was due to\nnot getting an extra ref count when mounting the fs. We\nshould have bumped it by two (once for the internal pointer\nto the root inode from the super block and once for the\ninode hanging off the dcache entry for root).\n\nAlso this patch tidys up the code dealing with looking up\nand creating inodes. We now pass Linux inodes (with gfs2_inodes\nattached) rather than the other way around and this reduces code\nduplication in various places.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b3b94faa5fe5968827ba0640ee9fba4b3e7f736e",
      "tree": "70bd6068b050d2c46e338484f8b03fae4365c6c3",
      "parents": [
        "f7825dcf8c7301cfd3724eb40c5b443cc85ab7b8"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Mon Jan 16 16:50:04 2006 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 16 16:50:04 2006 +0000"
      },
      "message": "[GFS2] The core of GFS2\n\nThis patch contains all the core files for GFS2.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    }
  ]
}
