)]}'
{
  "log": [
    {
      "commit": "677abe49ad017679627af9d3bbd9a7ecb3d94c42",
      "tree": "7cdb7fbc95b51b288e923a3978e17ed2207a4118",
      "parents": [
        "e90e4d9234c953b29267cc4fc9ad804128773313",
        "6a99be5d7b5973767b1ffa4fa68fed0738589c99"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 07:29:15 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 07:29:15 2010 -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 typo\n  GFS2: stuck in inode wait, no glocks stuck\n  GFS2: Eliminate useless err variable\n  GFS2: Fix writing to non-page aligned gfs2_quota structures\n  GFS2: Add some useful messages\n  GFS2: fix quota state reporting\n  GFS2: Various gfs2_logd improvements\n  GFS2: glock livelock\n  GFS2: Clean up stuffed file copying\n  GFS2: docs update\n  GFS2: Remove space from slab cache name\n"
    },
    {
      "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": "602c89d2e3e8652f94a697c9a919be739b9bcdd5",
      "tree": "791c0f4ea2b1f9028f7fdf60dbedd42fa0f8ce06",
      "parents": [
        "4cb947b59c5835783fb96aad2f7d92b1e4250aff"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Mar 25 14:32:43 2010 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 29 14:29:17 2010 +0100"
      },
      "message": "GFS2: Clean up stuffed file copying\n\nIf the inode size was corrupt for stuffed files, it was possible\nfor the copying of data to overrun the block and/or page. This patch\nchecks for that condition so that this is no longer possible.\n\nThis is also preparation for the new truncate sequence patch which\nrequires the ability to have stuffed files with larger sizes than\n(disk block size - sizeof(on disk inode)) with the restriction that\nonly the initial part of the file may be non-zero.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "07ccb7bf2c928fef4fea2cda69ba2e23479578db",
      "tree": "6aee126126d3a1245b5b9f79abe2101098392187",
      "parents": [
        "0e5a9fb0426108d750c97c25b1ab04d3768b5aff"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Feb 12 10:10:55 2010 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Feb 12 10:16:14 2010 +0000"
      },
      "message": "GFS2: Fix bmap allocation corner-case bug\n\nThis patch solves a corner case during allocation which occurs if both\nmetadata (indirect) and data blocks are required but there is an\nobstacle in the filesystem (e.g. a resource group header or another\nallocated block) such that when the allocation is requested only\nenough blocks for the metadata are returned.\n\nBy changing the exit condition of this loop, we ensure that a\nminimum of one data block will always be returned.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "63997775b795f97ef51f3e56bc3abc9edc04bbb0",
      "tree": "607519910f92b1101fbe0223c301c503001bc0ef",
      "parents": [
        "8ebf975608aaebd7feb33d77f07ba21a6380e086"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jun 12 08:49:20 2009 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jun 12 08:49:20 2009 +0100"
      },
      "message": "GFS2: Add tracepoints\n\nThis patch adds the ability to trace various aspects of the GFS2\nfilesystem. The trace points are divided into three groups,\nglocks, logging and bmap. These points have been chosen because\nthey allow inspection of the major internal functions of GFS2\nand they are also generic enough that they are unlikely to need\nany major changes as the filesystem evolves.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "40bc9a27e00d6c8c7e4dc2865c02d7402a950472",
      "tree": "0a445d4c8b22833898a5363f750744146cb05aff",
      "parents": [
        "f6d03139d745198b434f65a28aabed524f415a4c"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jun 10 09:09:40 2009 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jun 10 09:09:40 2009 +0100"
      },
      "message": "GFS2: Fix cache coherency between truncate and O_DIRECT read\n\nIf a page was partially zeroed as the result of a truncate, then it was\nnot being correctly marked dirty. This resulted in the deleted data\nreappearing if the file was read back via direct I/O.\n\nReported-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b1e71b0622974953e46a284aa986504a90869a9b",
      "tree": "0eb0f68c8b432b6332437e918ca2ab4e0c72d897",
      "parents": [
        "1ce97e564b628bee30b8dbb64e5e653a484308f6"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri May 22 10:01:55 2009 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri May 22 10:01:55 2009 +0100"
      },
      "message": "GFS2: Clean up some file names\n\nThis patch renames the ops_*.c files which have no counterpart\nwithout the ops_ prefix in order to shorten the name and make\nit more readable. In addition, ops_address.h (which was very\nsmall) is moved into inode.h and inode.h is cleaned up by\nadding extern where required.\n\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": "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": "7ed122e42c72b3e4531f8b4a9f72159e8303ac15",
      "tree": "aa9976f47cf34b0b6d267654e74b9ea4f7a29d75",
      "parents": [
        "9a776db7371b9c77a8f4f0d2ac6374d78ac7db7d"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Dec 10 10:28:10 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 05 07:39:17 2009 +0000"
      },
      "message": "GFS2: Streamline alloc calculations for writes\n\nThis patch removes some unused code, and make the calculation\nof the number of blocks required conditional in order to reduce\nthe number of times this (potentially expensive) calculation\nis done.\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": "c9e98886776386f1f7828d9685e78cd341849867",
      "tree": "5bf4ac819d1e9394f960f21a48881a9d2f9f69fe",
      "parents": [
        "3767ac21f471fe669a7d9f6abef682ddac8fc3d8"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Nov 04 09:47:33 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 05 07:38:58 2009 +0000"
      },
      "message": "GFS2: Move i_size from gfs2_dinode_host and rename it to i_disksize\n\nThis patch moved the i_size field from the gfs2_dinode_host and\nfollowing the ext3 convention renames it i_disksize.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@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": "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": "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": "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": "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": "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": "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": "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": "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": "eebd2aa355692afaf9906f62118620f1a1c19dbb",
      "tree": "207eead3a736963c3e50942038c463f2f611ccce",
      "parents": [
        "b98348bdd08dc4ec11828aa98a78edde15c53cfa"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Feb 04 22:28:29 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:13 2008 -0800"
      },
      "message": "Pagecache zeroing: zero_user_segment, zero_user_segments and zero_user\n\nSimplify page cache zeroing of segments of pages through 3 functions\n\nzero_user_segments(page, start1, end1, start2, end2)\n\n        Zeros two segments of the page. It takes the position where to\n        start and end the zeroing which avoids length calculations and\n\tmakes code clearer.\n\nzero_user_segment(page, start, end)\n\n        Same for a single segment.\n\nzero_user(page, start, length)\n\n        Length variant for the case where we know the length.\n\nWe remove the zero_user_page macro. Issues:\n\n1. Its a macro. Inline functions are preferable.\n\n2. The KM_USER0 macro is only defined for HIGHMEM.\n\n   Having to treat this special case everywhere makes the\n   code needlessly complex. The parameter for zeroing is always\n   KM_USER0 except in one single case that we open code.\n\nAvoiding KM_USER0 makes a lot of code not having to be dealing\nwith the special casing for HIGHMEM anymore. Dealing with\nkmap is only necessary for HIGHMEM configurations. In those\nconfigurations we use KM_USER0 like we do for a series of other\nfunctions defined in highmem.h.\n\nSince KM_USER0 is depends on HIGHMEM the existing zero_user_page\nfunction could not be a macro. zero_user_* functions introduced\nhere can be be inline because that constant is not used when these\nfunctions are called.\n\nAlso extract the flushing of the caches to be outside of the kmap.\n\n[akpm@linux-foundation.org: fix nfs and ntfs build]\n[akpm@linux-foundation.org: fix ntfs build some more]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nCc: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Anton Altaparmakov \u003caia21@cantab.net\u003e\nCc: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: David Chinner \u003cdgc@sgi.com\u003e\nCc: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1af535727bbf68e1da7ac232de47315da4c66ade",
      "tree": "ab24a9bc1271179fdae558d4f66e7ee0e401ce4c",
      "parents": [
        "05220535196d413db434527a3edcba79b7187df8"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jan 16 14:24:05 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:19:28 2008 +0000"
      },
      "message": "[GFS2] Fix write alloc required shortcut calculation\n\nThe comparison was being made against the wrong quantity.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "05220535196d413db434527a3edcba79b7187df8",
      "tree": "5811b6f1caeac55102afb993f0b1538bbe9ed2b8",
      "parents": [
        "598278bd4808ed81b0e6fa445458a7d549f72a32"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Fri Jan 11 13:44:50 2008 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:19:03 2008 +0000"
      },
      "message": "[GFS2] gfs2_alloc_required performance\n\nThis is a small I/O performance enhancement to gfs2.  (Actually, it is a rework of\nan earlier version I got wrong).  The idea here is to check if the write extends\npast the last block in the file.  If so, the function can save itself a lot of\ntime and trouble because it knows an allocate will be required.  Benchmarks like\niozone should see better performance.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "6dbd822487d0a9f14432cb4680415b80656b63a2",
      "tree": "f0391d598c27cd7c39c67cfa13799a784f4c389a",
      "parents": [
        "ac39aadd0440ae696e6dacaa8006ce1737b17008"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jan 10 15:18:55 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:18:25 2008 +0000"
      },
      "message": "[GFS2] Reduce inode size by moving i_alloc out of line\n\nIt is possible to reduce the size of GFS2 inodes by taking the i_alloc\nstructure out of the gfs2_inode. This patch allocates the i_alloc\nstructure whenever its needed, and frees it afterward. This decreases\nthe amount of low memory we use at the expense of requiring a memory\nallocation for each page or partial page that we write. A quick test\nwith postmark shows that the overhead is not measurable and I also note\nthat OCFS2 use the same approach.\n\nIn the future I\u0027d like to solve the problem by shrinking down the size\nof the members of the i_alloc structure, but for now, this reduces the\nimmediate problem of using too much low-memory on x86 and doesn\u0027t add\ntoo much overhead.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b0d5fd307463405fe1f57494fbb37f810715ed6d",
      "tree": "2a627d7362a6db7eea4c388b0e0f0ceed8362fb5",
      "parents": [
        "398bbe68321947f6763fbc259a01eb548ce19408"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Dec 11 19:16:09 2007 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:14:13 2008 +0000"
      },
      "message": "[GFS2] Only fetch the dinode once in block_map\n\nFunction gfs2_block_map was often looking up the disk inode twice.\nThis optimizes it so that only does it once.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e9e1ef2b6ee401d7c1e1eb38052857b4b206d172",
      "tree": "68dff93cf4058eb06b162d800f08ff7752cd1a55",
      "parents": [
        "2066b58b0a038d7aedd24133677efb8856cac3a1"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Mon Dec 10 14:13:27 2007 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:08:25 2008 +0000"
      },
      "message": "[GFS2] Remove function gfs2_get_block\n\nThis patch is just a cleanup.  Function gfs2_get_block() just calls\nfunction gfs2_block_map reversing the last two parameters.  By\nreversing the parameters, gfs2_block_map() may be called directly\nand function gfs2_get_block may be eliminated altogether.\nSince this function is done for every block operation,\nthis streamlines the code and makes it a little bit more efficient.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "bf36a713169432643d4fc7eeb4e0ace96d791d26",
      "tree": "2cb69c9716b9ee8c687ef807bb88d5e635db3462",
      "parents": [
        "e7e36f143565d14950055c893cfaf4400ad64d34"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 17 08:35:19 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:21 2008 +0000"
      },
      "message": "[GFS2] Add gfs2_is_writeback()\n\nThis adds a function \"gfs2_is_writeback()\" along the lines of the\nexisting \"gfs2_is_jdata()\" in order to clean up the code and make\nthe various tests for the inode mode more obvious. It also fixes\nthe PageChecked() logic where we were resetting the flag too early\nin the case of an error path.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "8475487befb29eeb038fef374a7433d276336a25",
      "tree": "1fb635fc8880475ab2042f4030b2643b31a63654",
      "parents": [
        "d7b616e252b125f12b007c392f7644053bb6f140"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Sun Sep 02 10:55:29 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:56:05 2007 +0100"
      },
      "message": "[GFS2] Fix ordering of dirty/journal for ordered buffer unstuffing\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "eaf965270ffff3086ef929e660ace45e862cfd2d",
      "tree": "7fda326324431424573ba5d62170637aa8f41d59",
      "parents": [
        "1e1a3d03e927d39282208aed676e49d25129feea"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Aug 27 09:49:37 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:58 2007 +0100"
      },
      "message": "[GFS2] Don\u0027t mark jdata dirty in gfs2_unstuffer_page()\n\nJournaled data is marked dirty by gfs2_unpin and should not be marked\ndirty here.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "a13b8c5f2381495879e6facd3b3ada51c9e68194",
      "tree": "79852951c3074af8b2d9e84fdc03d622bc022be3",
      "parents": [
        "9a5ad13856cbd10be429f09517c51277c02530f7"
      ],
      "author": {
        "name": "Wendy Cheng",
        "email": "wcheng@redhat.com",
        "time": "Mon Aug 20 09:29:53 2007 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:36 2007 +0100"
      },
      "message": "[GFS2] Reduce truncate IO traffic\n\nCurrent GFS2 setattr call unconditionally invokes do_shrink even the\nrequested size and actual file size are equal. This has generated large\namount of extra IOs found during NFS benchmark runs. This patch moves\nthe relevant logic out of shrink code path. Since setattr is a system\ncall, the time stamps update is still required.\n\nSigned-off-by: S. Wendy Cheng \u003cwcheng@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "1875f2f31b3955dff8c3712a56ae61836c8b90fe",
      "tree": "d2283452b7de1ae042cf6265cc9fe7f5dd08a20d",
      "parents": [
        "773ed1a044adc868036dee1722b8bca6ce5923e2"
      ],
      "author": {
        "name": "S. Wendy Cheng",
        "email": "wcheng@redhat.com",
        "time": "Mon Jun 25 21:14:31 2007 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:54 2007 +0100"
      },
      "message": "[GFS2] Fix gfs2_block_truncate_page err return\n\nCode segment inside gfs2_block_truncate_page() doesn\u0027t set the return\ncode correctly. This causes NFSD erroneously returns EIO back to client\nwith setattr procedure call (truncate error).\n\nSigned-off-by: S. Wendy Cheng \u003cwcheng@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "4bd91ba18198eee42c39d4c334c825d1a0a4b445",
      "tree": "f385969756303a17a7ce3d24280fc6bd64063c87",
      "parents": [
        "bb8d8a6f54c1c84d7c74623491bab043b36a38c5"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jun 05 09:39:18 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:12 2007 +0100"
      },
      "message": "[GFS2] Add nanosecond timestamp feature\n\nThis adds a nanosecond timestamp feature to the GFS2 filesystem. Due\nto the way that the on-disk format works, older filesystems will just\nappear to have this field set to zero. When mounted by an older version\nof GFS2, the filesystem will simply ignore the extra fields so that\nit will again appear to have whole second resolution, so that its\ntrivially backward compatible.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "bb8d8a6f54c1c84d7c74623491bab043b36a38c5",
      "tree": "76c62c505df2a1acd090f4aacc63fb9eddd3950f",
      "parents": [
        "ddf4b426aababdae4cb96326d7aeb9d119f42c50"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jun 01 14:11:58 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:10 2007 +0100"
      },
      "message": "[GFS2] Fix sign problem in quota/statfs and cleanup _host structures\n\nThis patch fixes some sign issues which were accidentally introduced\ninto the quota \u0026 statfs code during the endianess annotation process.\nAlso included is a general clean up which moves all of the _host\nstructures out of gfs2_ondisk.h (where they should not have been to\nstart with) and into the places where they are actually used (often only\none place). Also those _host structures which are not required any more\nare removed entirely (which is the eventual plan for all of them).\n\nThe conversion routines from ondisk.c are also moved into the places\nwhere they are actually used, which for almost every one, was just one\nsingle place, so all those are now static functions. This also cleans up\nthe end of gfs2_ondisk.h which no longer needs the #ifdef __KERNEL__.\n\nThe net result is a reduction of about 100 lines of code, many functions\nnow marked static plus the bug fixes as mentioned above. For good\nmeasure I ran the code through sparse after making these changes to\ncheck that there are no warnings generated.\n\nThis fixes Red Hat bz #239686\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "dbb7cae2a36170cd17ffbe286ec0c91a998740ff",
      "tree": "1f4da65b07ac31648fe9b72f2742075486a86008",
      "parents": [
        "41d7db0ab437bc84f8a6e77cccc626ce937605ac"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 15 15:37:50 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:22:24 2007 +0100"
      },
      "message": "[GFS2] Clean up inode number handling\n\nThis patch cleans up the inode number handling code. The main difference\nis that instead of looking up the inodes using a struct gfs2_inum_host\nwe now use just the no_addr member of this structure. The tests relating\nto no_formal_ino can then be done by the calling code. This has\nadvantages in that we want to do different things in different code\npaths if the no_formal_ino doesn\u0027t match. In the NFS patch we want to\nreturn -ESTALE, but in the -\u003elookup() path, its a bug in the fs if the\nno_formal_ino doesn\u0027t match and thus we can withdraw in this case.\n\nIn order to later fix bz #201012, we need to be able to look up an inode\nwithout knowing no_formal_ino, as the only information that is known to\nus is the on-disk location of the inode in question.\n\nThis patch will also help us to fix bz #236099 at a later date by\ncleaning up a lot of the code in that area.\n\nThere are no user visible changes as a result of this patch and there\nare no changes to the on-disk format either.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "0507ecf50f22e433592f5ec3a36dc831aaec2e02",
      "tree": "3b4274268cdb359809ccc37b606d9dcff9e03c95",
      "parents": [
        "6c53267f05dc6689ff662efeec426d25d2c0ab84"
      ],
      "author": {
        "name": "Nate Diller",
        "email": "nate.diller@gmail.com",
        "time": "Thu May 10 22:41:28 2007 -0700"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:22:17 2007 +0100"
      },
      "message": "[GFS2] use zero_user_page\n\nUse zero_user_page() instead of open-coding it.\n\nSigned-off-by: Nate Diller \u003cnate.diller@gmail.com\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\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": "ddfe0627838ca0c0e8babb0dd2bd7f4b35e25bff",
      "tree": "a6348245a2a4d58705119a2cec5aabd650ee64a1",
      "parents": [
        "90101c31867b7acc44286b425d50e1042aa55b8d"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Thu Jan 18 16:41:23 2007 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 05 13:37:38 2007 -0500"
      },
      "message": "[GFS2] use CURRENT_TIME_SEC instead of get_seconds in gfs2\n\nI was looking something else up and came across this...\n\nI don\u0027t honestly have a good reason to change it other than to make it\nlike every other Linux filesystem in this regard.  ;-)  It doesn\u0027t\nfunctionally change anything, but makes some lines shorter. :)\n\nI\u0027m also curious; why does gfs2 have 64-bits of on-disk timestamps, but\nnot in timespec_t format, and only stores second resolutions?  Seems like\nyou\u0027re halfway to sub-second resolutions already.\n\nI suppose if that gets implemented then all of the below should\ninstead be CURRENT_TIME not CURRENT_TIME_SEC.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "4cf1ed8144e740de27c6146c25d5d7ea26679cc5",
      "tree": "481555ec6e88e4fedba90498f1ac212056ea7828",
      "parents": [
        "ab923031ceb95ec50ef33ccadf28663c660aa94c"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 15 15:21:06 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:35:49 2006 -0500"
      },
      "message": "[GFS2] Tidy up bmap \u0026 fix boundary bug\n\nThis moves the locking for bmap into the bmap function itself\nrather than using a wrapper function. It also fixes a bug where\nthe boundary flag was set on the wrong bh. Also the flags on\nthe mapped bh are reset earlier in the function to ensure that\nthey are 100% correct on the error path.\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": "1a7b1eed5802502fd649e04784becd58557fdcf1",
      "tree": "31e9e9ab8ba1296751985d49d55154848ae2eefa",
      "parents": [
        "4f56110a00af5fb2e22fbccfcaf944d62cae8fcf"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 01 14:35:17 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:34:23 2006 -0500"
      },
      "message": "[GFS2] Shrink gfs2_inode (6) - di_atime/di_mtime/di_ctime\n\nRemove the di_[amc]time fields and use inode-\u003ei_[amc]time\nfields instead. This saves 24 bytes from the gfs2_inode.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "2933f9254a6af33db25270778c998a42029da668",
      "tree": "75dc8b32c901995352b0538607f2636cd2834a1d",
      "parents": [
        "b60623c238b6a819bd04090139704e2cb57a751f"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 01 13:23:29 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:34:17 2006 -0500"
      },
      "message": "[GFS2] Shrink gfs2_inode (4) - di_uid/di_gid\n\nRemove duplicate di_uid/di_gid fields in favour of using\ninode-\u003ei_uid/inode-\u003ei_gid instead. This saves 8 bytes.\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": "539e5d6b7ae8612c0393fe940d2da5b591318d3d",
      "tree": "3ae6afd9c47a9a08e87877988d1c47bc060d71bf",
      "parents": [
        "9c9ab3d5414653bfe5e5b9f4dfdaab0c6ab17196"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Oct 31 15:07:05 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:33:54 2006 -0500"
      },
      "message": "[GFS2] Change argument of gfs2_dinode_out\n\nEverywhere this was called, a struct gfs2_inode was available,\nbut despite that, it was always called with a struct gfs2_dinode\nas an argument. By making this change it paves the way to start\neliminating fields duplicated between the kernel\u0027s struct inode\nand the struct gfs2_dinode.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b44b84d765b02f813a67b96bf79e3b5d4d621631",
      "tree": "cc5353f1c7f4cacf8560d52c47f108333f179792",
      "parents": [
        "b62f963e1fdf838fed91faec21228d421a834f2d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Oct 14 10:46:30 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:33:46 2006 -0500"
      },
      "message": "[GFS2] gfs2 misc endianness annotations\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "23591256d61354e20f12e98d7a496ad5c23de74c",
      "tree": "3013a6e873a6e0a1d55fbace2fba638a978108c0",
      "parents": [
        "42fb00838a644d03f9a2a5fbbe0b668a5ff5df4d"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Oct 13 17:25:45 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Oct 20 09:13:40 2006 -0400"
      },
      "message": "[GFS2] Fix bmap to map extents properly\n\nThis fix means that bmap will map extents of the length requested\nby the VFS rather than guessing at it, or just mapping one block\nat a time. The other callers of gfs2_block_map are audited to ensure\nthey send the correct max extent lengths (i.e. set bh-\u003eb_size correctly).\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "48516ced21e83a755ebae3d1ed03f1731befc391",
      "tree": "9cf3c78506056d36909ce8da5560162d4c0fbc17",
      "parents": [
        "3cf1e7bed4681bdb1c14b6e146ae9c0afb6c1552"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Oct 02 12:39:19 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Oct 02 12:39:19 2006 -0400"
      },
      "message": "[GFS2] Remove uneeded endian conversion\n\nIn many places GFS2 was calling the endian conversion routines\nfor an inode even when only a single field, or a few fields might\nhave changed. As a result we were copying lots of data needlessly.\n\nThis patch replaces those calls with conversion of just the\nrequired fields in each case. This should be faster and easier\nto understand. There are still other places which suffer from this\nproblem, but this is a start in the right direction.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "907b9bceb41fa46beae93f79cc4a2247df502c0f",
      "tree": "7229e00c1f33fdd097fcacacd6208f2390e4728a",
      "parents": [
        "7276b3b0c77101f8b3f4e45e89a29cf9045e831a"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 25 09:26:04 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 25 09:26:04 2006 -0400"
      },
      "message": "[GFS2/DLM] Fix trailing whitespace\n\nAs per Andrew Morton\u0027s request, removed trailing whitespace.\n\nCc: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "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": "f3b30912e0eab0e4160c7649a5f2b10be68027b9",
      "tree": "e5fa7bc44825b819bf1ea082085f3ef98518e45a",
      "parents": [
        "07903c02d056452da369595f00eac078bf4c7ef0"
      ],
      "author": {
        "name": "akpm@osdl.org",
        "email": "akpm@osdl.org",
        "time": "Mon Sep 18 22:16:03 2006 -0700"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Sep 19 08:43:01 2006 -0400"
      },
      "message": "[GFS2] inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default-vs-gfs2\n\ni_blksize got removed in -mm.\n\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "7a6bbacbb8dec6fbd1242c959250388f907d429e",
      "tree": "8e314f0b3fd6e54154562c0a9b20173d539470a2",
      "parents": [
        "65952fb4e91c159d253bd28ceaf028a86dbb0b02"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 18 17:18:23 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 18 17:18:23 2006 -0400"
      },
      "message": "[GFS2] Map multiple blocks at once where possible\n\nThis is a tidy up of the GFS2 bmap code. The main change is that the\nbh is passed to gfs2_block_map allowing the flags to be set directly\nrather than having to repeat that code several times in ops_address.c.\n\nAt the same time, the extent mapping code from gfs2_extent_map has\nbeen moved into gfs2_block_map. This allows all calls to gfs2_block_map\nto map extents in the case that no allocation is taking place. As a\nresult reads and non-allocating writes should be faster. A quick test\nwith postmark appears to support this.\n\nThere is a limit on the number of blocks mapped in a single bmap\ncall in that it will only ever map blocks which are pointed to\nfrom a single pointer block. So in other words, it will never try\nto do additional i/o in order to satisfy read-ahead. The maximum\nnumber of blocks is thus somewhat less than 512 (the GFS2 4k block\nsize minus the header divided by sizeof(u64)). I\u0027ve further limited\nthe mapping of \"normal\" blocks to 32 blocks (to avoid extra work)\nsince readpages() will currently read a maximum of 32 blocks ahead (128k).\n\nSome further work will probably be needed to set a suitable value\nfor DIO as well, but for now thats left at the maximum 512 (see\nops_address.c:gfs2_get_block_direct).\n\nThere is probably a lot more that can be done to improve bmap for GFS2,\nbut this is a good first step.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "c53921248c79197befa7caa4c17b1af5c077a2c2",
      "tree": "e446672af150784bee2ac92ccc991a62ed699cca",
      "parents": [
        "7b62536141927212158ab84ce2afda9319ae6f2d"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@linux01.gwdg.de",
        "time": "Tue Sep 05 14:30:40 2006 +0200"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Sep 07 09:42:56 2006 -0400"
      },
      "message": "[GFS2] More style changes\n\nRemove redundant brackets\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@linux01.gwdg.de\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "c26687113aea9a11c6f23ddf668f1fe43eca4ce7",
      "tree": "e5cea81468e2b10e5c379a7c11fd56640d9c5c56",
      "parents": [
        "cd915493fce912f1bd838ee1250737ecf33b8fae"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 04 13:55:48 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 04 13:55:48 2006 -0400"
      },
      "message": "[GFS2] Remove a cast, tidy gfs2_inode_attr_in\n\nThe remains of the changes for Jan Engelhardt\u0027s third email. Remove\na cast and tidy up gfs2_inode_attr_in.\n\nCc: Jan Engelhardt \u003cjengelh@linux01.gwdg.de\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "cd915493fce912f1bd838ee1250737ecf33b8fae",
      "tree": "e14ec6643de91f473edb26a89905e710596fe6bc",
      "parents": [
        "a91ea69ffd3f8a0b7139bfd44042ab384461e631"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 04 12:49:07 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 04 12:49:07 2006 -0400"
      },
      "message": "[GFS2] Change all types to uX style\n\nThis makes all fixed size types have consistent names.\n\nCc: Jan Engelhardt \u003cjengelh@linux01.gwdg.de\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "a91ea69ffd3f8a0b7139bfd44042ab384461e631",
      "tree": "f05952e49e01609b21dbe8d27d9ffd30b4aa507f",
      "parents": [
        "75d3b817a0b48425da921052955cc58f20bbab52"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 04 12:04:26 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 04 12:04:26 2006 -0400"
      },
      "message": "[GFS2] Align all labels against LH side\n\nThis makes everything consistent.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "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": "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": "f25ef0c1b4e032b2641857ac4cff3315c6eb90e3",
      "tree": "bb07e8ed49264213cfb5d1694f19f3ece8cad1f0",
      "parents": [
        "81456807a33c2122e2f1f92acfbaaa77b3d06c3c"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jul 26 10:51:20 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jul 26 10:51:20 2006 -0400"
      },
      "message": "[GFS2] Tidy gfs2_unstuffer_page\n\nTidy up gfs2_unstuffer_page by:\n\n a) Moving it into bmap.c\n b) Making it static\n c) Calling it directly from gfs2_unstuff_dinode\n d) Updating all callers of gfs2_unstuff_dinode due to one less\n    required argument.\n\nIt doesn\u0027t change the behaviour at all.\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": "e90c01e148b967d30caf59e76accb3a58ca6b74b",
      "tree": "92f9b45febbdbc52174307e2e73dbb26aa893465",
      "parents": [
        "7d63b54a65ce902f9aaa8efe8192aa3b983264d4"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri May 12 12:09:15 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri May 12 12:09:15 2006 -0400"
      },
      "message": "[GFS2] Reverse block order in build_height\n\nThe original code ordered the blocks allocated in the build_height\nroutine backwards causing excessive disk seeks during a read of the\nmetadata. This patch reverses the order to try and reduce disk seeks.\n\nExample: A five level metadata tree, I \u003d Inode, P \u003d Pointers, D \u003d Data\n\nYou need to read the blocks in the order:\n\nI P5 P4 P3 P2 P1 D\n\nin order to read a single data block. The new code now orders the blocks\nin this way. The old code used to order them as:\n\nI P1 P2 P3 P4 P5 D\n\nrequiring two extra seeks on average. Note that for files which are\ngrown by gradual extension rather than by truncate or by llseek/write\nat a large offset, this doesn\u0027t apply. In the case of writing to a\nfile linearly, this routine will only be called upon to extend the\nheight of the tree by one block at a time, so the ordering is\ndetermined by when its called rather than by the internals of the\nroutine itself. Optimising that part of the ordering is a much\nharder problem.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "fd88de569b802c4a04aaa6ee74667775f4aed8c6",
      "tree": "1766c45303798bf289059afc8f117cf8bc784086",
      "parents": [
        "5bb76af1e089ac186c15c6aa792340d22b63d4b4"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri May 05 16:59:11 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri May 05 16:59:11 2006 -0400"
      },
      "message": "[GFS2] Readpages support\n\nThis adds readpages support (and also corrects a small bug in\nthe readpage error path at the same time). Hopefully this will\nimprove performance by allowing GFS to submit larger lumps of\nI/O at a time.\n\nIn order to simplify the setting of BH_Boundary, it currently gets\nset when we hit the end of a indirect pointer block. There is\nalways a boundary at this point with the current allocation code.\nIt doesn\u0027t get all the boundaries right though, so there is still\nroom for improvement in this.\n\nSee comments in fs/gfs2/ops_address.c for further information about\nreadpages with GFS2.\n\nSigned-off-by: Steven Whitehouse\n"
    },
    {
      "commit": "56409abbf8a9e3754d752d0189f9b9a609ec78de",
      "tree": "ad58978a564ce0679d4a560e187840308ed7cc25",
      "parents": [
        "bac1e07926ae514739e6a12218c8b6ce8ce04514"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Apr 28 11:48:45 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Apr 28 11:48:45 2006 -0400"
      },
      "message": "[GFS2] Remove some unused code\n\nRemove some of the unused code flagged up by Adrian Bunk.\n\nCc: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Steven Whitehouse\n"
    },
    {
      "commit": "08bc2dbc7327e89b9d5b9c8ef9401d1df2622fca",
      "tree": "2c16cbd9f5bd856b00ef0a0d9f88b3afa67712ee",
      "parents": [
        "c56b39cd2c55d521597f04bbd872a08d1c4373ca"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Apr 28 10:59:12 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Apr 28 10:59:12 2006 -0400"
      },
      "message": "[GFS2] [-mm patch] fs/gfs2/: possible cleanups\n\nThis patch contains the following possible cleanups:\n- make needlessly global code static\n- #if 0 unused functions\n- remove the following global function that was both unused and\n  unimplemented:\n  - super.c: gfs2_do_upgrade()\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "61e085a88cb59232eb8ff5b446d70491c7bf2c68",
      "tree": "a1e0bb72b6a79ee8700fefc8190e48a6c78d33cd",
      "parents": [
        "1e09ae544eb1a2d11b04c6924f738a310c7a7a2b"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Apr 24 10:07:13 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Apr 24 10:07:13 2006 -0400"
      },
      "message": "[GFS2] Tidy up dir code as per Christoph Hellwig\u0027s comments\n\n1. Comment whitespace fix\n2. Removed unused header files from dir.c\n3. Split the gfs2_dir_get_buffer() function into two functions\n\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "71b86f562b5eb6f94ea00bba060caa64d0137969",
      "tree": "63d982e09a9cb934fe656afe115031c0a9dc5e4a",
      "parents": [
        "94aabbd99370f738da4f6cb4ea0b94cd9024002f"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Mar 28 14:14:04 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Mar 28 14:14:04 2006 -0500"
      },
      "message": "[GFS2] Further updates to dir and logging code\n\nThis reduces the size of the directory code by about 3k and gets\nreaddir() to use the functions which were introduced in the previous\ndirectory code update.\n\nTwo memory allocations are merged into one. Eliminates zeroing of some\nbuffers which were never used before they were initialised by\nother data.\n\nThere is still scope for further improvement in the directory code.\n\nOn the logging side, a hand created mutex has been replaced by a\nstandard Linux mutex in the log allocation code.\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": "568f4c9659a2225b0d29cf86feecbcf25c9045c8",
      "tree": "8ec0fee12313f88a195e0b90924f6b7633ba29f1",
      "parents": [
        "3a8fe9be6c9794e55ac2253eab91d42b28a9dab6"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 27 12:00:42 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 27 12:00:42 2006 -0500"
      },
      "message": "[GFS2] 80 Column audit of GFS2\n\nRequested by:\nPrarit Bhargava \u003cprarit@redhat.com\u003e\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "18ec7d5c3f434aed9661ed10a9e1f48cdeb4981d",
      "tree": "a7161a4c4b3592052e6772e1c23849de16cac649",
      "parents": [
        "257f9b4e97e9a6cceeb247cead92119a4396d37b"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Feb 08 11:50:51 2006 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Feb 08 11:50:51 2006 +0000"
      },
      "message": "[GFS2] Make journaled data files identical to normal files on disk\n\nThis is a very large patch, with a few still to be resolved issues\nso you might want to check out the previous head of the tree since\nthis is known to be unstable. Fixes for the various bugs will be\nforthcoming shortly.\n\nThis patch removes the special data format which has been used\nup till now for journaled data files. Directories still retain the\nold format so that they will remain on disk compatible with earlier\nreleases. As a result you can now do the following with journaled\ndata files:\n\n 1) mmap them\n 2) export them over NFS\n 3) convert to/from normal files whenever you want to (the zero length\n    restriction is gone)\n\nIn addition the level at which GFS\u0027 locking is done has changed for all\nfiles (since they all now use the page cache) such that the locking is\ndone at the page cache level rather than the level of the fs operations.\nThis should mean that things like loopback mounts and other things which\ntouch the page cache directly should now work.\n\nCurrent known issues:\n\n 1. There is a lock mode inversion problem related to the resource\n    group hold function which needs to be resolved.\n 2. Any significant amount of I/O causes an oops with an offset of hex 320\n    (NULL pointer dereference) which appears to be related to a journaled data\n    buffer appearing on a list where it shouldn\u0027t be.\n 3. Direct I/O writes are disabled for the time being (will reappear later)\n 4. There is probably a deadlock between the page lock and GFS\u0027 locks under\n    certain combinations of mmap and fs operation I/O.\n 5. Issue relating to ref counting on internally used inodes causes a hang\n    on umount (discovered before this patch, and not fixed by it)\n 6. One part of the directory metadata is different from GFS1 and will need\n    to be resolved before next release.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "257f9b4e97e9a6cceeb247cead92119a4396d37b",
      "tree": "5bd94507046b09a9d6cc067c1dcc1124fbaa4016",
      "parents": [
        "f42faf4fa4eaf7e108dd60f3f2ca5c6e9b45352c"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jan 31 10:00:25 2006 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jan 31 10:00:25 2006 +0000"
      },
      "message": "[GFS2] Update truncate function (shrinking partial blocks)\n\nUpdate the function in GFS2 which deals with truncation of\npartial blocks. Some of the code is \"borrowed\" from ext3\nsince it appears to give a good model of how to do this\noperation. The function is renamed gfs2_block_truncate_page\naccordingly.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "aa6a85a971065b013a71a399c3fc4312e2dd81eb",
      "tree": "ae2d11d0ec557f17cce29e79b18df29b78f9b0f7",
      "parents": [
        "8ca05c60de49c3bb523a435abc216b6b6eeb1067"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "steve@men-an-tol.chygwyn.com",
        "time": "Tue Jan 24 10:37:06 2006 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "steve@men-an-tol.chygwyn.com",
        "time": "Tue Jan 24 10:37:06 2006 +0000"
      },
      "message": "[GFS2] Remove pointless argument relating to truncate\n\nFor some reason a function pointer was being passed through\nthe truncate code which only ever took one value. This removes\nthe function pointer and replaces it with a single call to\nthe function in question.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "d4e9c4c3bf861ef2ac96e0de659c75a00da92b28",
      "tree": "925ececc725ad5180b9253f732b50c51bfa0754d",
      "parents": [
        "b96ca4fa4e3b510d528a093a5bac0befbc2ba46d"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "steve@chygwyn.com",
        "time": "Wed Jan 18 11:19:28 2006 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "steve@chygwyn.com",
        "time": "Wed Jan 18 11:19:28 2006 +0000"
      },
      "message": "[GFS2] Add an additional argument to gfs2_trans_add_bh()\n\nThis adds an extra argument to gfs2_trans_add_bh() to indicate whether the\nbh being added to the transaction is metadata or data. Its currently unused\nsince all existing callers set it to 1 (metadata) but following patches will\nmake use of it.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "666a2c534cc6238932296a95c9e9c06ca3b73d97",
      "tree": "c446ee47e6949f8315616b257bd82f918f3792db",
      "parents": [
        "c73530a1f9633b2e7e6e19d0274b575febf8e8dc"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "steve@chygwyn.com",
        "time": "Wed Jan 18 10:29:04 2006 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "steve@chygwyn.com",
        "time": "Wed Jan 18 10:29:04 2006 +0000"
      },
      "message": "[GFS2] Remove unused code from various files\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"
    }
  ]
}
