)]}'
{
  "log": [
    {
      "commit": "ed4878e8a4f550fd357ce5144cfd412015f6a111",
      "tree": "897124839ad6b529c42601037dee74d16abe941a",
      "parents": [
        "d7dbf4ffee1c7a17e2e5b5f01efe76fbd1671db6"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Thu May 20 23:30:11 2010 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri May 21 16:11:36 2010 +0100"
      },
      "message": "GFS2: Rework reclaiming unlinked dinodes\n\nThe previous patch I wrote for reclaiming unlinked dinodes\nhad some shortcomings and did not prevent all hangs.\nThis version is much cleaner and more logical, and has\npassed very difficult testing.  Sorry for the churn.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "1a0eae8848cde6e0734360f6456496c995ee1e23",
      "tree": "536f944468ef5bc6f47ec09325422adbc5a3907a",
      "parents": [
        "602c89d2e3e8652f94a697c9a919be739b9bcdd5"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Apr 14 11:58:16 2010 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 14 16:48:05 2010 +0100"
      },
      "message": "GFS2: glock livelock\n\nThis patch fixes a couple gfs2 problems with the reclaiming of\nunlinked dinodes.  First, there were a couple of livelocks where\neverything would come to a halt waiting for a glock that was\nseemingly held by a process that no longer existed.  In fact, the\nprocess did exist, it just had the wrong pid number in the holder\ninformation.  Second, there was a lock ordering problem between\ninode locking and glock locking.  Third, glock/inode contention\ncould sometimes cause inodes to be improperly marked invalid by\niget_failed.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\n"
    },
    {
      "commit": "009d851837ab26cab18adda6169a813f70b0b21b",
      "tree": "073bc05e3a8c527bf9ce3332e2c2f6694484984d",
      "parents": [
        "30ff056c42c665b9ea535d8515890857ae382540"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Dec 08 12:12:13 2009 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 01 14:07:37 2010 +0000"
      },
      "message": "GFS2: Metadata address space clean up\n\nSince the start of GFS2, an \"extra\" inode has been used to store\nthe metadata belonging to each inode. The only reason for using\nthis inode was to have an extra address space, the other fields\nwere unused. This means that the memory usage was rather inefficient.\n\nThe reason for keeping each inode\u0027s metadata in a separate address\nspace is that when glocks are requested on remote nodes, we need to\nbe able to efficiently locate the data and metadata which relating\nto that glock (inode) in order to sync or sync and invalidate it\n(depending on the remotely requested lock mode).\n\nThis patch adds a new type of glock, which has in addition to\nits normal fields, has an address space. This applies to all\ninode and rgrp glocks (but to no other glock types which remain\nas before). As a result, we no longer need to have the second\ninode.\n\nThis results in three major improvements:\n 1. A saving of approx 25% of memory used in caching inodes\n 2. A removal of the circular dependency between inodes and glocks\n 3. No confusion between \"normal\" and \"metadata\" inodes in super.c\n\nAlthough the first of these is the more immediately apparent, the\nsecond is just as important as it now enables a number of clean\nups at umount time. Those will be the subject of future patches.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "eaff8079d4f1016a12e34ab323737314f24127dd",
      "tree": "a3d9e00320c6195e55811d5247a521f99341a411",
      "parents": [
        "7a0ad10c367ab57c899d340372f37880cbe6ab52"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Dec 17 14:25:01 2009 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 17 11:03:25 2009 -0500"
      },
      "message": "kill I_LOCK\n\nAfter I_SYNC was split from I_LOCK the leftover is always used together with\nI_NEW and thus superflous.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "431547b3c4533b8c7fd150ab36980b9a3147797b",
      "tree": "807ff2790f3c13c7c91ed2afd6d833032899482d",
      "parents": [
        "ef26ca97e83052790940cbc444b01b0d17a813c1"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Nov 13 09:52:56 2009 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 12:16:49 2009 -0500"
      },
      "message": "sanitize xattr handler prototypes\n\nAdd a flags argument to struct xattr_handler and pass it to all xattr\nhandler methods.  This allows using the same methods for multiple\nhandlers, e.g. for the ACL methods which perform exactly the same action\nfor the access and default ACLs, just using a different underlying\nattribute.  With a little more groundwork it\u0027ll also allow sharing the\nmethods for the regular user/trusted/secure handlers in extN, ocfs2 and\njffs2 like it\u0027s already done for xfs in this patch.\n\nAlso change the inode argument to the handlers to a dentry to allow\nusing the handlers mechnism for filesystems that require it later,\ne.g. cifs.\n\n[with GFS2 bits updated by Steven Whitehouse \u003cswhiteho@redhat.com\u003e]\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0ab7d13fcbd7ce1658c563e345990ba453719deb",
      "tree": "5db7f97c264883765da4a9c6324019f0cf746e44",
      "parents": [
        "2c77634965ee28c8b4790ffb5e83dd5ff7ac8988"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Nov 06 16:20:51 2009 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Dec 03 11:58:47 2009 +0000"
      },
      "message": "GFS2: Tag all metadata with jid\n\nThere are two spare field in the header common to all GFS2\nmetadata. One is just the right size to fit a journal id\nin it, and this patch updates the journal code so that each\ntime a metadata block is modified, we tag it with the journal\nid of the node which is performing the modification.\n\nThe reason for this is that it should make it much easier to\ndebug issues which arise if we can tell which node was the\nlast to modify a particular metadata block.\n\nSince the field is updated before the block is written into\nthe journal, each journal should only contain metadata which\nis tagged with its own journal id. The one exception to this\nis the journal header block, which might have a different node\u0027s\nid in it, if that journal was recovered by another node in the\ncluster.\n\nThus each journal will contain a record of which nodes recovered\nit, via the journal header.\n\nThe other field in the metadata header could potentially be\nused to hold information about what kind of operation was\nperformed, but for the time being we just zero it on each\ntransaction so that if we use it for that in future, we\u0027ll\nknow that the information (where it exists) is reliable.\n\nI did consider using the other field to hold the journal\nsequence number, however since in GFS2\u0027s journaling we write\nthe modified data into the journal and not the original\ndata, this gives no information as to what action caused the\nmodification, so I think we can probably come up with a better\nuse for those 64 bits in the future.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "479c427dd60fe1aadbbf2e6cbf2f84942baeb210",
      "tree": "0f51cf8e107d599c2e5c3b63bcdb2b17243dc7c4",
      "parents": [
        "69dca42464962d8d0989b7e09877ba644c9cba66"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Oct 02 12:00:00 2009 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Dec 03 11:47:35 2009 +0000"
      },
      "message": "GFS2: Clean up ACLs\n\nTo prepare for support for caching of ACLs, this cleans up the GFS2\nACL support by pushing the xattr code back into xattr.c and changing\nthe acl_get function into one which only returns ACLs so that we\ncan drop the caching function into it shortly.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "8d8291ae93ecb4a246e87e452d55cca412373300",
      "tree": "ccf67c703fb9f9b2e4ee945f3221b8b20c1804db",
      "parents": [
        "307cf6e63cfa5025589ea1a06db44439a43819ff"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Aug 27 15:51:07 2009 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Aug 27 15:51:07 2009 +0100"
      },
      "message": "GFS2: Remove no_formal_ino generating code\n\nThe inum structure used throughout GFS2 has two fields. One\nno_addr is the disk block number of the inode in question and\nis used everywhere as the inode number. The other, no_formal_ino,\nis used only as the generation number for NFS.\n\nHistorically the no_formal_ino field was set using a complicated\nsystem of one global and one per-node file containing inode numbers\nin order to ensure that each no_formal_ino was unique. Also this\ncode made no provision for what would happen when eventually the\n(64 bit) numbers ran out. Now I know that is pretty unlikely to\nhappen given the large space of numbers, but it is possible\nnevertheless.\n\nThe only guarantee required for no_formal_ino is that, for any\nsingle inode, the same number doesn\u0027t get reused too quickly.\n\nWe already have a generation number which is kept in the inode\nand initialised from a counter in the resource group (almost\nno overhead, since we have to touch the resource group anyway\nin order to allocate an inode in the first place). Aside from\nensuring that we never use the value 0 in the no_formal_ino\nfield, we can use that counter directly.\n\nAs a result of that change, we lose about 200 lines of code and\nalso gain about 10 creates/sec on the postmark benchmark (on\nmy test machine).\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "307cf6e63cfa5025589ea1a06db44439a43819ff",
      "tree": "a1c8be1c2af112dc055a16569487cdcd99ebfdb2",
      "parents": [
        "40b78a322365aa1d87770200f7fc7de3b361c11a"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Aug 26 18:51:04 2009 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Aug 26 18:51:04 2009 +0100"
      },
      "message": "GFS2: Rename eattr.[ch] as xattr.[ch]\n\nUse the more conventional name for the extended attribute\nsupport code. Update all the places which care.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "40b78a322365aa1d87770200f7fc7de3b361c11a",
      "tree": "9e33daa30113741d9ef716f3723ac1d9690e33cf",
      "parents": [
        "b6ed2e03df1e2c6ee41cf0e2e2699f2410671916"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Aug 26 18:41:32 2009 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Aug 26 18:41:32 2009 +0100"
      },
      "message": "GFS2: Clean up of extended attribute support\n\nThis has been on my list for some time. We need to change the way\nin which we handle extended attributes to allow faster file creation\ntimes (by reducing the number of transactions required) and the\nextended attribute code is the main obstacle to this.\n\nIn addition to that, the VFS provides a way to demultiplex the xattr\ncalls which we ought to be using, rather than rolling our own. This\npatch changes the GFS2 code to use that VFS feature and as a result\nthe code shrinks by a couple of hundred lines or so, and becomes\neasier to read.\n\nI\u0027m planning on doing further clean up work in this area, but this\npatch is a good start. The cleaned up code also uses the more usual\n\"xattr\" shorthand, I plan to eliminate the use of \"eattr\" eventually\nand in the mean time it serves as a flag as to which bits of the code\nhave been updated.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "6050b9c74f24513191fc6b5e4b3583e38d146bf5",
      "tree": "ff77010d008e55f6091df69519182e9f88a78215",
      "parents": [
        "440d6da207e9eef2b576331cfedd5ecae9068663"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jul 31 16:19:40 2009 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Aug 17 11:05:31 2009 +0100"
      },
      "message": "GFS2: Improve error handling in inode allocation\n\nA little while back, block allocation was given some improved\nerror handling which meant that -EIO was returned in the case\nof there being a problem in the resource group data. In addition\na message is printed explaning what went wrong and how to fix it.\nThis extends that error handling so that it also covers inode\nallocation too.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "87ec21741138bb42e7f943bb142b1d8567c10925",
      "tree": "d173754b440f7b14b2b29334ac7addc4b9621286",
      "parents": [
        "536baf02f650f4547f105386878b4736fbc181e8"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri May 22 10:54:50 2009 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri May 22 10:54:50 2009 +0100"
      },
      "message": "GFS2: Move gfs2_unlink_ok into ops_inode.c\n\nAnother function which is only called from one ops_inode.c so\nwe move it and make it static.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "536baf02f650f4547f105386878b4736fbc181e8",
      "tree": "eeb326e76515c074f6eb0ae63deb598605632523",
      "parents": [
        "2286dbfad1fb622ee2691537e5caaedee4618860"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri May 22 10:48:59 2009 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri May 22 10:48:59 2009 +0100"
      },
      "message": "GFS2: Move gfs2_readlinki into ops_inode.c\n\nMove gfs2_readlinki into ops_inode.c and make it static\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "2286dbfad1fb622ee2691537e5caaedee4618860",
      "tree": "da16646efb25515c3b6865b84bf3485a4714caee",
      "parents": [
        "9e6e0a128bca0a151d8d3fbd9459b22fc21cfebb"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri May 22 10:45:09 2009 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri May 22 10:45:09 2009 +0100"
      },
      "message": "GFS2: Move gfs2_rmdiri into ops_inode.c\n\nMove gfs2_rmdiri() into ops_inode.c and make it static.\n\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": "10d2198805d7faa2b193485446ff6b1de42c9b78",
      "tree": "be7e570d0c640aa8e544ee9e264a5f908b06e51c",
      "parents": [
        "a228df6339e0d385b8149c860d81b6007f5e9c81"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Apr 07 19:42:17 2009 +0200"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 15 10:17:18 2009 +0100"
      },
      "message": "GFS2: cleanup file_operations mess\n\nRemove the weird pointer to file_operations mess and replace it with\nstraight-forward defining of the lockinginstance names to the _nolock\nvariants.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "f057f6cdf64175db1151b1f5d110e29904f119a1",
      "tree": "582dbf358e351f64977620c29ebf772d693b1948",
      "parents": [
        "22077f57dec8fcbeb1112b35313961c0902ff038"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 12 10:43:39 2009 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "steve@dolmen.chygwyn.com",
        "time": "Tue Mar 24 11:21:14 2009 +0000"
      },
      "message": "GFS2: Merge lock_dlm module into GFS2\n\nThis is the big patch that I\u0027ve been working on for some time\nnow. There are many reasons for wanting to make this change\nsuch as:\n o Reducing overhead by eliminating duplicated fields between structures\n o Simplifcation of the code (reduces the code size by a fair bit)\n o The locking interface is now the DLM interface itself as proposed\n   some time ago.\n o Fewer lookups of glocks when processing replies from the DLM\n o Fewer memory allocations/deallocations for each glock\n o Scope to do further optimisations in the future (but this patch is\n   more than big enough for now!)\n\nPlease note that (a) this patch relates to the lock_dlm module and\nnot the DLM itself, that is still a separate module; and (b) that\nwe retain the ability to build GFS2 as a standalone single node\nfilesystem with out requiring the DLM.\n\nThis patch needs a lot of testing, hence my keeping it I restarted\nmy -git tree after the last merge window. That way, this has the maximum\nexposure before its merged. This is (modulo a few minor bug fixes) the\nsame patch that I\u0027ve been posting on and off the the last three months\nand its passed a number of different tests so far.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "97cc1025b1a91c52e84f12478dcf0f853abc6564",
      "tree": "cd71419049aeb13eea7012889d0ee0c715394e4d",
      "parents": [
        "9ac1b4d9b6f885ccd7d8f56bceb609003a920ff7"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 20 13:39:47 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 05 07:39:09 2009 +0000"
      },
      "message": "GFS2: Kill two daemons with one patch\n\nThis patch removes the two daemons, gfs2_scand and gfs2_glockd\nand replaces them with a shrinker which is called from the VM.\n\nThe net result is that GFS2 responds better when there is memory\npressure, since it shrinks the glock cache at the same rate\nas the VFS shrinks the dcache and icache. There are no longer\nany time based criteria for shrinking glocks, they are kept\nuntil such time as the VM asks for more memory and then we\ndemote just as many glocks as required.\n\nThere are potential future changes to this code, including the\npossibility of sorting the glocks which are to be written back\ninto inode number order, to get a better I/O ordering. It would\nbe very useful to have an elevator based workqueue implementation\nfor this, as that would automatically deal with the read I/O cases\nat the same time.\n\nThis patch is my answer to Andrew Morton\u0027s remark, made during\nthe initial review of GFS2, asking why GFS2 needs so many kernel\nthreads, the answer being that it doesn\u0027t :-) This patch is a\nnet loss of about 200 lines of code.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "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": "3767ac21f471fe669a7d9f6abef682ddac8fc3d8",
      "tree": "c028ea68502e9005e3fa353c7ca54797d12a136a",
      "parents": [
        "ad6203f2b46c2217f74b2e88299640eef5889e72"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Nov 03 14:28:42 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 05 07:38:57 2009 +0000"
      },
      "message": "GFS2: Move di_eattr into \"proper\" inode\n\nThis moves the di_eattr field out of gfs2_inode_host and\ninto the inode proper.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ad6203f2b46c2217f74b2e88299640eef5889e72",
      "tree": "24197a5bc7ffac80071d2375ff46947cabe9b365",
      "parents": [
        "bcf0b5b348a1f49c2c878ffdb78e68c930baabb8"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Nov 03 13:59:19 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 05 07:38:56 2009 +0000"
      },
      "message": "GFS2: Move \"entries\" into \"proper\" inode\n\nThis moves the directory entry count into the proper inode.\nPotentially we could get this to share the space used by\nsomething else in the future, but this is one more step\non the way to removing the gfs2_dinode_host structure.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "bcf0b5b348a1f49c2c878ffdb78e68c930baabb8",
      "tree": "f5ee33d171f397bbcf55b3138b41b7684d6e4654",
      "parents": [
        "55ba474daed9763b2f6fe26ad762ee373554d65e"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Nov 03 13:39:46 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 05 07:38:55 2009 +0000"
      },
      "message": "GFS2: Move generation number into \"proper\" part of inode\n\nThis moves the generation number from the gfs2_dinode_host\ninto the gfs2_inode structure. Eventually the plan is to get\nrid of the gfs2_dinode_host structure completely.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b276058371f5c2ad92f9f27373a72b219ed580ed",
      "tree": "a8a39f45c3bee6e523d043eecd636249bc180b1b",
      "parents": [
        "e9079cce201784632aed4b1a3121ee38c1ced0b6"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Oct 14 16:05:55 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 05 07:38:48 2009 +0000"
      },
      "message": "GFS2: Rationalise header files\n\nMove the contents of some headers which contained very\nlittle into more sensible places, and remove the original\nheader files. This should make it easier to find things.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "3de7be335593859bc84a122b1338ec358bf70e9b",
      "tree": "0ae33e6f15271e153ae5f1ce37826a9ace52ec3c",
      "parents": [
        "2186a71cbcddda946dd3cfccd5285e210ec3af10"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:38:53 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:38:53 2008 +1100"
      },
      "message": "CRED: Wrap task credential accesses in the GFS2 filesystem\n\nWrap access to task credentials so that they can be separated more easily from\nthe task_struct during the introduction of COW creds.\n\nChange most current-\u003e(|e|s|fs)[ug]id to current_(|e|s|fs)[ug]id().\n\nChange some task-\u003ee?[ug]id to task_e?[ug]id().  In some places it makes more\nsense to use RCU directly rather than a convenient wrapper; these will be\naddressed by later patches.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: cluster-devel@redhat.com\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "719ee344675c2efed9115934f19aa66a526b6e5b",
      "tree": "7f9502d696a09eaf5eba0a0d3fa35557ffd3c503",
      "parents": [
        "37ec89e83c4ca98323fe74f139301ff3949cfdb6"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Sep 18 13:53:59 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Sep 18 13:53:59 2008 +0100"
      },
      "message": "GFS2: high time to take some time over atime\n\nUntil now, we\u0027ve used the same scheme as GFS1 for atime. This has failed\nsince atime is a per vfsmnt flag, not a per fs flag and as such the\n\"noatime\" flag was not getting passed down to the filesystems. This\npatch removes all the \"special casing\" around atime updates and we\nsimply use the VFS\u0027s atime code.\n\nThe net result is that GFS2 will now support all the same atime related\nmount options of any other filesystem on a per-vfsmnt basis. We do lose\nthe \"lazy atime\" updates, but we gain \"relatime\". We could add lazy\natime to the VFS at a later date, if there is a requirement for that\nvariant still - I suspect relatime will be enough.\n\nAlso we lose about 100 lines of code after this patch has been applied,\nand I have a suspicion that it will speed things up a bit, even when\natime is \"on\". So it seems like a nice clean up as well.\n\nFrom a user perspective, everything stays the same except the loss of\nthe per-fs atime quantum tweekable (ought to be per-vfsmnt at the very\nleast, and to be honest I don\u0027t think anybody ever used it) and that a\nnumber of options which were ignored before now work correctly.\n\nPlease let me know if you\u0027ve got any comments. I\u0027m pushing this out\nearly so that you can all see what my plans are.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "bd1eb8818cc2c8ddab86be027ab43fb852942704",
      "tree": "b072daf0c29f929217acc7a589b48c615da6b238",
      "parents": [
        "dff5257473ca1e05002809809f51f858e9a966fc"
      ],
      "author": {
        "name": "Julien Brunel",
        "email": "brunel@diku.dk",
        "time": "Mon Sep 01 10:51:22 2008 +0200"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Sep 05 14:19:44 2008 +0100"
      },
      "message": "GFS2: Use an IS_ERR test rather than a NULL test\n\nIn case of error, the function gfs2_inode_lookup returns an\nERR pointer, but never returns a NULL pointer. So a NULL test that\nnecessarily comes after an IS_ERR test should be deleted, and a NULL\ntest that may come after a call to this function should be\nstrengthened by an IS_ERR test.\n\nThe semantic match that finds this problem is as follows:\n(http://www.emn.fr/x-info/coccinelle/)\n\n// \u003csmpl\u003e\n@match_bad_null_test@\nexpression x, E;\nstatement S1,S2;\n@@\nx \u003d gfs2_inode_lookup(...)\n... when !\u003d x \u003d E\n* if (x !\u003d NULL)\nS1 else S2\n// \u003c/smpl\u003e\n\nSigned-off-by:  Julien Brunel \u003cbrunel@diku.dk\u003e\nSigned-off-by:  Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "0188d6c5807b65e2e20dcb75a668efbe5418b27e",
      "tree": "419ee0e74cded399d2e4b9adf4dacf9f9dd31a3e",
      "parents": [
        "72dbf4790fc6736f9cb54424245114acf0b0038c"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Aug 26 09:38:26 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Aug 27 13:33:10 2008 +0100"
      },
      "message": "GFS2: Fix \u0026 clean up GFS2 rename\n\nThis patch fixes a locking issue in the rename code by ensuring that we hold\nthe per sb rename lock over both directory and \"other\" renames which involve\ndifferent parent directories.\n\nAt the same time, this moved the (only called from one place) function\ngfs2_ok_to_move into the file that its called from, so we can mark it\nstatic. This should make a code a bit easier to follow.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Peter Staubach \u003cstaubach@redhat.com\u003e\n"
    },
    {
      "commit": "a569c711f63995ad80c23918525111e0cdb0bc73",
      "tree": "38186f0201614b6b1e71bea0708ef35814825ea6",
      "parents": [
        "2ad94ae654f5eb72fd3260b706aea645cf4a7791"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 23 14:42:05 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:36 2008 -0400"
      },
      "message": "[PATCH] don\u0027t pass nameidata to gfs2_lookupi()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c9f6a6bbc284ba87337876086f7e2e6e0b0d50dd",
      "tree": "68930f47e91f82ca41b3a9f35fd118d2ff11d891",
      "parents": [
        "9cabcdbd4638cf884839ee4cd15780800c223b90"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 10 16:09:29 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 10 16:09:29 2008 +0100"
      },
      "message": "[GFS2] Remove support for unused and pointless flag\n\nThe ability to mark files for direct i/o access when opened\nnormally is both unused and pointless, so this patch removes\nsupport for that feature.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "f58ba889106af60f52af792efbe1973e458a2138",
      "tree": "f81426c7f611b74dec685cd416d3da8e7fe647d2",
      "parents": [
        "f17172e00167238cc5e4f61ac4e78c68e5c558ec"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Wed Jul 02 21:12:01 2008 +0200"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 03 10:22:01 2008 +0100"
      },
      "message": "[GFS2] don\u0027t call permission()\n\nGFS2 calls permission() to verify permissions after locks on the files\nhave been taken.\n\nFor this it\u0027s sufficient to call gfs2_permission() instead.  This\nresults in the following changes:\n\n  - IS_RDONLY() check is not performed\n  - IS_IMMUTABLE() check is not performed\n  - devcgroup_inode_permission() is not called\n  - security_inode_permission() is not called\n\nIS_RDONLY() should be unnecessary anyway, as the per-mount read-only\nflag should provide protection against read-only remounts during\noperations.  do_gfs2_set_flags() has been fixed to perform\nmnt_want_write()/mnt_drop_write() to protect against remounting\nread-only.\n\nIS_IMMUTABLE has been added to gfs2_permission()\n\nRepeating the security checks seems to be pointless, as they don\u0027t\nnormally change, and if they do, it\u0027s independent of the filesystem\nstate.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "091806edd458486af13ad83c9802f5b8b54d6d19",
      "tree": "cf10d6aaf2e6bf0ed5b0ad94306623a2fc3fdb56",
      "parents": [
        "492c2e476eac010962850006c49df326919b284c"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Apr 29 12:35:48 2008 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon May 12 08:54:53 2008 +0100"
      },
      "message": "[GFS2] filesystem consistency error from do_strip\n\nThis patch fixes a GFS2 filesystem consistency error reported from\nfunction do_strip.  The problem was caused by a timing window\nthat allowed two vfs inodes to be created in memory that point\nto the same file.  The problem is fixed by making the vfs\u0027s\niget_test, iget_set mechanism check and set a new bit in the\nin-core gfs2_inode structure while the vfs inode spin_lock is held.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "16c5f06f15ad4e5a5d6e90b78ffb1ac14319e445",
      "tree": "84204e44e0246e9a3f4db23223a5209105fde368",
      "parents": [
        "773adff8e983cba1f5844c3be3be224ca6645f26"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "jbacik@redhat.com",
        "time": "Wed Apr 09 09:33:41 2008 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Apr 10 09:55:26 2008 +0100"
      },
      "message": "[GFS2] fix GFP_KERNEL misuses\n\nThere are several places where GFP_KERNEL allocations happen under a glock,\nwhich will result in hangs if we\u0027re under memory pressure and go to re-enter the\nfs in order to flush stuff out.  This patch changes the culprits to GFS_NOFS to\nkeep this problem from happening.  Thank you,\n\nSigned-off-by: Josef Bacik \u003cjbacik@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "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": "43a33c53cc9131a537522ab9736c6e4c03ddf57a",
      "tree": "0b06320ba8b253bf6c3e464db093093be97fa85e",
      "parents": [
        "d83225d45d2b76175279abb2a3d7ee325a09aba8"
      ],
      "author": {
        "name": "Denis Cheng",
        "email": "crquan@gmail.com",
        "time": "Tue Feb 26 15:25:04 2008 +0800"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:41:22 2008 +0100"
      },
      "message": "[GFS2] re-support special inode\n\na previous commit removed call to\ninit_special_inode from inode lookuping, this cause problems as:\n\n # mknod /mnt/gfs2/dev/null c 1 3\n # cat /mnt/gfs2/dev/null\n cat: /mnt/gfs2/dev/null: Invalid argument\n\nwithout special inode, GFS2 cannot support char device file,\nblock device file, fifo pipe, and socket file, lose many important\nfeatures as a common file system.\n\nthis one line patch re add special inode support.\n\nSigned-off-by: Denis Cheng \u003ccrquan@gmail.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "d83225d45d2b76175279abb2a3d7ee325a09aba8",
      "tree": "e6fc40998a7e7e0c7a22b2e0f29149ad47e0e2b0",
      "parents": [
        "7dc2cf1c8ffbd471722f1aa479bc68d4df1c9edc"
      ],
      "author": {
        "name": "Denis Cheng",
        "email": "crquan@gmail.com",
        "time": "Tue Feb 26 15:25:03 2008 +0800"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:41:20 2008 +0100"
      },
      "message": "[GFS2] remove gfs2_dev_iops\n\nstruct inode_operations gfs2_dev_iops is always the same as gfs2_file_iops,\nsince Jan 2006, when GFS2 merged into mainstream kernel.\n\nSo one of them could be removed.\n\nSigned-off-by: Denis Cheng \u003ccrquan@gmail.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "7afd88d9166a752b52517648bcbe923e05d393fc",
      "tree": "2fb945189e3cb1be7ad007088f8ec86e9f67ece6",
      "parents": [
        "60b779cfc1fa52034a996ee12a23b62d32e86000"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Feb 22 16:07:18 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:41:12 2008 +0100"
      },
      "message": "[GFS2] Fix a page lock / glock deadlock\n\nWe\u0027ve previously been using a \"try lock\" in readpage on the basis that\nit would prevent deadlocks due to the inverted lock ordering (our normal\nlock ordering is glock first and then page lock). Unfortunately tests\nhave shown that this isn\u0027t enough. If the glock has a demote request\nqueued such that run_queue() in the glock code tries to do a demote when\nits called under readpage then it will try and write out all the dirty\npages which requires locking them. This then deadlocks with the page\nlocked by readpage.\n\nThe solution is to always require two calls into readpage. The first\nunlocks the page, gets the glock and returns AOP_TRUNCATED_PAGE, the\nsecond does the actual readpage and unlocks the glock \u0026 page as\nrequired.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "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": "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": "9a0045088d888c9c539c8c626a366cb52c0fbdab",
      "tree": "eac1d44330603c08dddf397fc46484f97a69a11e",
      "parents": [
        "cf45b752c9f23939e40d823b0600bf876e97b0e0"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Feb 01 09:23:44 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:40:31 2008 +0100"
      },
      "message": "[GFS2] Shrink \u0026 rename di_depth\n\nThis patch forms a pair with the previous patch which shrunk\ndi_height. Like that patch di_depth is renamed i_depth and moved\ninto struct gfs2_inode directly. Also the field goes from 16 bits\nto 8 bits since it is also limited to a max value which is rather\nsmall (17 in this case). In addition we also now validate the field\nagainst this maximum value when its read in.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ca390601a8bbb4ab8301a9469d23cdb1cf77e7cb",
      "tree": "db76913358aa21accdefc33ac8bcb8b7b22d0568",
      "parents": [
        "fe6c991c52a0dd07d4a19d392fd65048226cb1bc"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Mon Jan 28 11:15:57 2008 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:39:52 2008 +0100"
      },
      "message": "[GFS2] Fix debug inode printing\n\nI noticed that the latest change to i_height got rid of the\nvalue from the inode dump.  This patch adds it back.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "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": "69840b0d065a031a2e5b3fcc3f30560229e312da",
      "tree": "8fc5f8934a71fd5e219a64462b6b72698e25e180",
      "parents": [
        "aa7fa240c7d4ed28ee2d1afacd97be2d76e3cb49"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Feb 07 00:15:29 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:27 2008 -0800"
      },
      "message": "iget: use iget_failed() in GFS2\n\nUse iget_failed() in GFS2 to kill a failed inode.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1b8177ec1e779bcc3ed89419ff7c80dbc3dcc489",
      "tree": "f0bd7d9446dd5d6a90eada749ebb129caa4c6c0a",
      "parents": [
        "b7fe2e391ee7b711d6dfd6a694d60c4f21113cbb"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Sat Jan 19 21:50:24 2008 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:21:04 2008 +0000"
      },
      "message": "[GFS2] Lockup on error\n\nI spotted this bug while I was digging around.  Looks like it could cause\na lockup in some rare error condition.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "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": "c97bfe4351771675963e02f34d31e206fd2d7150",
      "tree": "9ee4de86cacc54f3e49135a4ce39cf7a236efb31",
      "parents": [
        "bcd405599faa16cf32a3d3f1ce6a1e12cb37fede"
      ],
      "author": {
        "name": "Wendy Cheng",
        "email": "wcheng@redhat.com",
        "time": "Thu Nov 29 17:56:51 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:08:15 2008 +0000"
      },
      "message": "[GFS2] Remove lock methods for lock_nolock protocol\n\nGFS2 supports two modes of locking - lock_nolock for single node filesystem\nand lock_dlm for cluster mode locking. The gfs2 lock methods are removed from\nfile operation table for lock_nolock protocol. This would allow VFS to handle\nposix lock and flock logics just like other in-tree filesystems without\nduplication.\n\nSigned-off-by: S. Wendy Cheng \u003cwcheng@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "2bcd610d2fdea608a8fdac32788fc35a32a2327c",
      "tree": "5b3753ff18c1da54bb860dbd67211e6abea78ca7",
      "parents": [
        "8cbc4342478311c2a85260a7ca54d96cb7f71f7b"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 08 14:25:12 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:52 2008 +0000"
      },
      "message": "[GFS2] Don\u0027t add glocks to the journal\n\nThe only reason for adding glocks to the journal was to keep track\nof which locks required a log flush prior to release. We add a\nflag to the glock to allow this check to be made in a simpler way.\n\nThis reduces the size of a glock (by 12 bytes on i386, 24 on x86_64)\nand means that we can avoid extra work during the journal flush.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "5561093e2cac9f7d2a77e39cc689b8d2b7f9b2bc",
      "tree": "aac1fa3e47604f2d7bb1e4d9e97f41b8ffebe91e",
      "parents": [
        "bf36a713169432643d4fc7eeb4e0ace96d791d26"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 17 08:47:38 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:23 2008 +0000"
      },
      "message": "[GFS2] Introduce gfs2_set_aops()\n\nJust like ext3 we now have three sets of address space operations\nto cover the cases of writeback, ordered and journalled data\nwrites. This means that the individual operations can now become\nless complicated as we are able to remove some of the tests for\nfile data mode from the code.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "f91a0d3e24e4b0198be5fae20d45a35c40d1efce",
      "tree": "cda8095f9befd25cbfaf5f63a4c8ca26870d45ca",
      "parents": [
        "3cc3f710ce0effe397b830826a1a081fa81f11c7"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Oct 15 16:29:05 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:16 2008 +0000"
      },
      "message": "[GFS2] Remove useless i_cache from inodes\n\nThe i_cache was designed to keep references to the indirect blocks\nused during block mapping so that they didn\u0027t have to be looked\nup continually. The idea failed because there are too many places\nwhere the i_cache needs to be freed, and this has in the past been\nthe cause of many bugs.\n\nIn addition there was no performance benefit being gained since the\ndisk blocks in question were cached anyway. So this patch removes\nit in order to simplify the code to prepare for other changes which\nwould otherwise have had to add further support for this feature.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "51ff87bdd9f21a5d3672517b75d25ab5842d94a8",
      "tree": "7a8de5720b2a63e8d7d03a940a2b06196b2a3776",
      "parents": [
        "cc7e79b168a552152299bd8a8254dc099aacc993"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Oct 15 14:42:35 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:11 2008 +0000"
      },
      "message": "[GFS2] Clean up internal read function\n\nAs requested by Christoph, this patch cleans up GFS2\u0027s internal\nread function so that it no longer uses the do_generic_mapping_read\nfunction. This function is obsolete and GFS2 is the last user of it.\n\nAs a side effect the internal read code gets smaller and easier\nto read and gfs2_readpage is split into two. One function has the locking\nand the other function has the rest of the logic.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "7a9f53b3c1875bef22ad4588e818bc046ef183da",
      "tree": "0b23b5b8a667d0d57c695c47f6b4eb6d50c2d661",
      "parents": [
        "de986e859a29097fb9211b052d86a9a2c868f6cd"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Tue Sep 18 13:33:18 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:56:29 2007 +0100"
      },
      "message": "[GFS2] Alternate gfs2_iget to avoid looking up inodes being freed\n\nThere is a possible deadlock between two processes on the same node, where one\nprocess is deleting an inode, and another process is looking for allocated but\nunused inodes to delete in order to create more space.\n\nprocess A does an iput() on inode X, and it\u0027s i_count drops to 0. This causes\niput_final() to be called, which puts an inode into state I_FREEING at\ngeneric_delete_inode(). There no point between when iput_final() is called, and\nwhen I_FREEING is set where GFS2 could acquire any glocks. Once I_FREEING is\nset, no other process on that node can successfully look up that inode until\nthe delete finishes.\n\nprocess B locks the the resource group for the same inode in get_local_rgrp(),\nwhich is called by gfs2_inplace_reserve_i()\n\nprocess A tries to lock the resource group for the inode in\ngfs2_dinode_dealloc(), but it\u0027s already locked by process B\n\nprocess B waits in find_inode for the inode to have the I_FREEING state cleared.\n\nDeadlock.\n\nThis patch solves the problem by adding an alternative to gfs2_iget(),\ngfs2_iget_skip(), that simply skips any inodes that are in the I_FREEING\nstate.o The alternate test function is just like the original one, except that\nit fails if the inode is being freed, and sets a skipped flag. The alternate\nset function is just like the original, except that it fails if the skipped\nflag is set. Only try_rgrp_unlink() calls gfs2_iget_skip() instead of\ngfs2_iget().\n\nSigned-off-by: Benjamin E. Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e9bd2b3bafd29bf75522546207f0bba0ec4515c2",
      "tree": "fac6201981d94d827390ba23fe8fe6afc2fb0119",
      "parents": [
        "c4f68a130fc1795e4a75ec5bdaf9e85d86c22419"
      ],
      "author": {
        "name": "Wendy Cheng",
        "email": "wcheng@redhat.com",
        "time": "Fri Aug 24 09:15:01 2007 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:51 2007 +0100"
      },
      "message": "[GFS2] fix inode meta data corruption\n\nFix a nasty inode meta data corruption issue by keeping the buffer head in\nicache array. This buffer needs to stay in memory until journal flush occurs\nOtherwise, gfs2_meta_inode_buffer could do a disk read before the inode hits\ndisk. It ends up with meta data corruptions. The buffer will be released as\npart of the existing journal flush logic.\n\nSigned-off-by: S. Wendy Cheng \u003cwcheng@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "35dcc52e3a916184b145fd840250244b81004200",
      "tree": "f3ab5a4094a676967e668fb407c0296a1150264a",
      "parents": [
        "bb9bcf061660661c57ddcf31337529f82414b937"
      ],
      "author": {
        "name": "Wendy Cheng",
        "email": "wcheng@redhat.com",
        "time": "Wed Jun 27 17:07:53 2007 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:24:11 2007 +0100"
      },
      "message": "[GFS2] Remove i_mode passing from NFS File Handle\n\nGFS2 has been passing i_mode within NFS File Handle. Other than the\nwrong assumption that there is always room for this extra 16 bit value,\nthe current gfs2_get_dentry doesn\u0027t really need the i_mode to work\ncorrectly. Note that GFS2 NFS code does go thru the same lookup code\npath as direct file access route (where the mode is obtained from name\nlookup) but gfs2_get_dentry() is coded for different purpose. It is not\nused during lookup time. It is part of the file access procedure call.\nWhen the call is invoked, if on-disk inode is not in-memory, it has to\nbe read-in. This makes i_mode passing a useless overhead.\n\nSigned-off-by: S. Wendy Cheng \u003cwcheng@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "bb9bcf061660661c57ddcf31337529f82414b937",
      "tree": "0876874e5252c4939b8e7bbd62a22a6eb4ad1abf",
      "parents": [
        "f4fadb23ca49abd2f1387a0b7e78b385ebc760ce"
      ],
      "author": {
        "name": "Wendy Cheng",
        "email": "wcheng@redhat.com",
        "time": "Wed Jun 27 17:07:08 2007 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:24:08 2007 +0100"
      },
      "message": "[GFS2] Obtaining no_formal_ino from directory entry\n\nGFS2 lookup code doesn\u0027t ask for inode shared glock. This implies during\nin-memory inode creation for existing file, GFS2 will not disk-read in\nthe inode contents. This leaves no_formal_ino un-initialized during\nlookup time. The un-initialized no_formal_ino is subsequently encoded\ninto file handle. Clients will get ESTALE error whenever it tries to\naccess these files.\n\nSigned-off-by: S. Wendy Cheng \u003cwcheng@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "d93cfa9884354dac2d8ccd894594a43e0b962b6f",
      "tree": "72704d54aaa99e0021d3cc0b025fb8c67b09e4ce",
      "parents": [
        "a7a2ff8a951ab373732116e7c31e2e1fe025d5e0"
      ],
      "author": {
        "name": "Abhijith Das",
        "email": "adas@redhat.com",
        "time": "Mon Jun 11 08:22:32 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:36 2007 +0100"
      },
      "message": "[GFS2] Fix deallocation issues\n\nThere were two issues during deallocation of unlinked inodes. The\nfirst was relating to the use of a \"try\" lock which in the case of\nthe inode lock wasn\u0027t trying hard enough to deallocate in all\ncircumstances (now changed to a normal glock) and in the case of\nthe iopen lock didn\u0027t wait for the demotion of the shared lock before\nattempting to get the exclusive lock, and thereby sometimes (timing dependent)\nnot completing the deallocation when it should have done.\n\nThe second issue related to the lack of a way to invalidate dcache entries\non remote nodes (now fixed by this patch) which meant that unlinks were\ntaking a long time to return disk space to the fs. By adding some code to\ninvalidate the dcache entries across the cluster for unlinked inodes, that\nis now fixed.\n\nThis patch was written jointly by Abhijith Das and Steven Whitehouse.\n\nSigned-off-by: Abhijith Das \u003cadas@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "037bcbb7564e35aef937c54799550cd27735aac6",
      "tree": "8155f5365683068480b1cb61bfcaa9679e8431b8",
      "parents": [
        "c8cdf479377462315d6b4f56379f8ac989b0ef29"
      ],
      "author": {
        "name": "akpm@linux-foundation.org",
        "email": "akpm@linux-foundation.org",
        "time": "Fri Jun 08 16:42:14 2007 -0700"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:29 2007 +0100"
      },
      "message": "[GFS2] gfs2_lookupi() uninitialised var fix\n\nfs/gfs2/inode.c: In function \u0027gfs2_lookupi\u0027:\nfs/gfs2/inode.c:392: warning: \u0027error\u0027 may be used uninitialized in this function\n\nLooks like a real bug to me.\n\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "c8cdf479377462315d6b4f56379f8ac989b0ef29",
      "tree": "3eee98ca4af8bba92a6df096f6fd2de615a71fa5",
      "parents": [
        "b35997d4482ed24b43a5951c5b021d224b24293c"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jun 08 10:05:33 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:26 2007 +0100"
      },
      "message": "[GFS2] Recovery for lost unlinked inodes\n\nUnder certain circumstances its possible (though rather unlikely) that\ninodes which were unlinked by one node while still open on another might\nget \"lost\" in the sense that they don\u0027t get deallocated if the node\nwhich held the inode open crashed before it was unlinked.\n\nThis patch adds the recovery code which allows automatic deallocation of\nthe inode if its found during block allocation (the sensible time to\nlook for such inodes since we are scanning the rgrp\u0027s bitmaps anyway at\nthis time, so it adds no overhead to do this).\n\nSince the inode will have had its i_nlink set to zero, all we need to\ntrigger recovery is a lookup and an iput(), and the normal deallocation\ncode takes care of the rest.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e1cc86037b689a82cdb2df50c32fa8cf9d6b6c3a",
      "tree": "8d7502be9841fae1f13afd2676b86c9139ac0fc2",
      "parents": [
        "ffed8ab342e39b8b5f4d5c94c37a708e225ffcd8"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jun 07 11:47:52 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:22 2007 +0100"
      },
      "message": "[GFS2] Fix bug in error path of inode\n\nThis fixes a bug in the ordering of operations in the error path of\ncreatei. Its not valid to do an iput() when holding the inode\u0027s glock\nsince the iput() will (in this case) result in delete_inode() being\ncalled which needs to grab the lock itself. This was causing the\nrecursive lock checking code to trigger.\n\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": "1be3867955731b5cb2dc14060cc46f0882e87873",
      "tree": "6b62524ccc4809a8f60c3eda3f9066529891c72a",
      "parents": [
        "cad5b9392754910ee7dbe551eb004010a864c882"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Mar 01 10:00:53 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 07 14:01:53 2007 -0500"
      },
      "message": "[GFS2] Fix bz 229831, lookup returns wrong inode\n\nThe following patch fixes Red Hat bz 229831. Without this patch its\npossible for the wrong inode to be returned in certain cases. It is a\npretty unusual event, so that its taken some time to track down. Thanks\nand due to Josef Whiter who did a lot of the testing required to thrack\nthis down and fix it.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "fb0d3bce8e88cca4abb26076f778f64edcaf19aa",
      "tree": "e4234e7fb9415bac32c12a607b8030d98acb22e0",
      "parents": [
        "84c6e8cd359adc34d21e40efcafe09297510b3c8"
      ],
      "author": {
        "name": "Wendy Cheng",
        "email": "wcheng@redhat.com",
        "time": "Wed Feb 28 11:24:25 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 07 13:58:45 2007 -0500"
      },
      "message": "[GFS2] pass formal ino in do_filldir_main\n\nok, the following is the minimum changes to get NFSD going before we\nsettle down this issue .. would appreciate this in the tree so other NFS\nrelated works can get done in parallel.\n\nSigned-off-by: S. Wendy Cheng \u003cwcheng@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ddee76089cc9bcbd8ae9ec6c26e726a8ab2fe675",
      "tree": "cf08d003789a2be0f109d3d5f255137fd36360f5",
      "parents": [
        "61be084efcc4451934257350281962595418a33c"
      ],
      "author": {
        "name": "Russell Cattelan",
        "email": "cattelan@redhat.com",
        "time": "Mon Jan 29 17:13:44 2007 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 05 13:38:17 2007 -0500"
      },
      "message": "[GFS2] Fix unlink deadlocks\n\nMove the glock acquisition to outside of the transactions.\n\nLock odering must be preserved in order to prevent ABBA\ndeadlocks. The current gfs2_change_nlink code would tries\nto grab the glock after having started a transaction and thus is holding\nthe log lock. This is inconsistent with other code paths in\ngfs that grab the resource group glock prior to staring\na tranactions.\n\nOne problem with this fix is that the resource group\nlock is always grabbed now even if the inode still has\nref count and can not be marked for unlink.\n\nSigned-off-by: Russell Cattelan \u003ccattelan@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "d7c103d0bd29c94f78155a4538faf314e49d9713",
      "tree": "62c453ffe7d6d4637aa93dd43dbb0665175f644c",
      "parents": [
        "b790c3b7c38aae28c497bb363a6fe72f7c96568f"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jan 25 17:14:59 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 05 13:37:53 2007 -0500"
      },
      "message": "[GFS2] Fix recursive locking attempt with NFS\n\nIn certain cases, its possible for NFS to call the lookup code while\nholding the glock (when doing a readdirplus operation) so we need to\ncheck for that and not try and lock the glock twice. This also fixes a\ntypo in a previous NFS related GFS2 patch.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\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": "03dc6a538e42bcc8d5dfabcee208b639db85a80c",
      "tree": "2b1f4c9407b5e8eb7f77cc1c79f642c54a794368",
      "parents": [
        "70831465646b1fef9bf7b51b64409276411e9746"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sat Jan 13 10:56:41 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 05 13:36:49 2007 -0500"
      },
      "message": "[GFS2] make gfs2_change_nlink_i() static\n\nOn Thu, Jan 11, 2007 at 10:26:27PM -0800, Andrew Morton wrote:\n\u003e...\n\u003e Changes since 2.6.20-rc3-mm1:\n\u003e...\n\u003e  git-gfs2-nmw.patch\n\u003e...\n\u003e  git trees\n\u003e...\n\nThis patch makes the needlessly globlal gfs2_change_nlink_i() static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "87d21e07f3880b8d489f0b4a639deb1362101838",
      "tree": "20b41fc6dad45363b81a9e44daf5b278f532f183",
      "parents": [
        "6c93fd1e578669364e026a0d44c669b871e2a8c4"
      ],
      "author": {
        "name": "S. Wendy Cheng",
        "email": "wcheng@redhat.com",
        "time": "Thu Jan 18 16:07:03 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 05 13:36:31 2007 -0500"
      },
      "message": "[GFS2] Fix gfs2_rename deadlock\n\nSecond round of gfs2_rename lock re-ordering to allow Anaconda adding\nroot partition on top of gfs2. Previous to this patch the recursive\nlock detector in glock.c can be triggered due to attempting to lock\nthe rgrp twice. This fixes it by checking to see whether the rgrp\nis already locked.\n\nThis fixes Red Hat bugzilla #221237\n\nSigned-off-by: S. Wendy Cheng \u003cwcheng@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "6c93fd1e578669364e026a0d44c669b871e2a8c4",
      "tree": "282fd8a70fd4791a80a06dbddac1060cbc4f3848",
      "parents": [
        "49686f71060e342bce6644a5c69fbc6ad0e75a13"
      ],
      "author": {
        "name": "Russell Cattelan",
        "email": "cattelan@redhat.com",
        "time": "Mon Jan 08 17:47:51 2007 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 05 13:36:28 2007 -0500"
      },
      "message": "[GFS2] BZ 217008 fsfuzzer fix.\n\nUpdate the quilt header comments to match the\ncode changes.\n\nChange gfs2_lookup_simple to return an error in the case\nof a NULL inode.\nThe callers of gfs2_lookup_simple do not check for NULL\nin the no entry case and such would end up dereferencing a NULL ptr.\n\nThis fixes:\nhttp://projects.info-pull.com/mokb/MOKB-15-11-2006.html\n\nSigned-off-by: Russell Cattelan \u003ccattelan@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "5509826f1e548d14bb888c1cb6e3bbf23f855770",
      "tree": "20915fb965f5895f3a41361bdb6182ae10db242c",
      "parents": [
        "e1d5b18ae92d0bbfe66dc2b4bab65006d32c5f7d"
      ],
      "author": {
        "name": "S. Wendy Cheng",
        "email": "wcheng@redhat.com",
        "time": "Thu Jan 18 15:56:34 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 05 13:36:15 2007 -0500"
      },
      "message": "[GFS2] Fix change nlink deadlock\n\nBugzilla 215088\n\nFix deadlock in gfs2_change_nlink() while installing RHEL5 into GFS2\npartition. The gfs2_rename() apparently needs block allocation for the\nnew name (into the directory) where it requires rg locks. At the same\ntime, while updating the nlink count for the replaced file,\ngfs2_change_nlink() tries to return the inode meta-data back to resource\ngroup where it needs rg locks too. Our logic doesn\u0027t allow process to\nacquire these locks recursively by the same process  (RHEL installer)\nthat results a BUG call. This only happens within rename code path and\nonly if the destination file exists before the rename operation.\n\nSigned-off-by: S. Wendy Cheng \u003cwcheng@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "28626e2078571c4b776a17eaa486bbd2b7dfe2cd",
      "tree": "7baa910604078685266ebc023121a536b0931b88",
      "parents": [
        "1a14d3a68f04527546121eb7b45187ff6af63151"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 22 11:13:21 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:36:33 2006 -0500"
      },
      "message": "[GFS2] Fix glock ordering on inode creation\n\nThe lock order here should be parent -\u003e child rather than\nnumeric order.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "dcd2479959c79d44f5dd77e71672e70f1f8b1f06",
      "tree": "a41926c69b0ea6aac9bc9970b59bcd04f5867866",
      "parents": [
        "175011cf6edddea32e5f5e0e04434104cc348de9"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 16 11:08:16 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:35:57 2006 -0500"
      },
      "message": "[GFS2] Remove unused function from inode.c\n\nThe gfs2_glock_nq_m_atime function is unused in so far as its only\never called with num_gh \u003d 1, and this falls through to the\ngfs2_glock_nq_atime function, so we might as well call that directly.\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": "e7c698d74fc9e0e76b3086062b0519df3601ff52",
      "tree": "86235c17ba14372b0265bef88fe677ebaf16ad5d",
      "parents": [
        "6b124d8dba1f46c5f2caf3b3159bbe627f75b9b6"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 08 13:52:05 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:34:48 2006 -0500"
      },
      "message": "[GFS2] Inode number is constant\n\nSince the inode number is constant, we don\u0027t need to keep updating\nit everytime we refresh the other inode fields.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "6b124d8dba1f46c5f2caf3b3159bbe627f75b9b6",
      "tree": "42f03f02a7fe7ccfc9c676ddcdbdcdcb28defef6",
      "parents": [
        "2ca99501fa5422e84f18333918a503433449e2b5"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 08 12:51:06 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:34:45 2006 -0500"
      },
      "message": "[GFS2] Only set inode flags when required\n\nWe were setting the inode flags from GFS2\u0027s flags far too often, even when they\ncouldn\u0027t possibly have changed. This patch reduces the amount of flag\nsetting going on so that we do it only when the inode is read in or\nwhen the flags have changed. The create case is covered by the \"when\nthe inode is read in\" case.\n\nThis also fixes a bug where we didn\u0027t set S_SYNC correctly.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "294caaa3b8304c0a14c5039691caf23363bd9369",
      "tree": "fbc47d2b1e5bc0c0840881573581b922a804505c",
      "parents": [
        "bfded27ba010d1c3b0aa3843f97dc9b80de751be"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 02 11:59:28 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:34:33 2006 -0500"
      },
      "message": "[GFS2] Tidy up 0 initialisations in inode.c\n\nWe don\u0027t need to use endian conversions for 0 initialisations\nwhen creating a new on-disk inode.\n\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "bfded27ba010d1c3b0aa3843f97dc9b80de751be",
      "tree": "55d0009b96ae00188fa4ab546cdcad5686a3fdde",
      "parents": [
        "a9583c7983cbba9726bfe64ee46613d654fc9e26"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 01 16:05:38 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:34:30 2006 -0500"
      },
      "message": "[GFS2] Shrink gfs2_inode (8) - i_vn\n\nThis shrinks the size of the gfs2_inode by 8 bytes by\nreplacing the version counter with a one bit valid/invalid\nflag.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "a9583c7983cbba9726bfe64ee46613d654fc9e26",
      "tree": "37a23321b8254499e48f93bc65d946ab47547fa4",
      "parents": [
        "1a7b1eed5802502fd649e04784becd58557fdcf1"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 01 20:09:14 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:34:26 2006 -0500"
      },
      "message": "[GFS2] Shrink gfs2_inode (7) - di_payload_format\n\nThis is almost never used. Its there for backward\ncompatibility with GFS1. It doesn\u0027t need its own\nfield since it can always be calculated from the\ninode mode \u0026 flags. This saves a bit more space\nin the gfs2_inode.\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": "4f56110a00af5fb2e22fbccfcaf944d62cae8fcf",
      "tree": "764e9b9e6b48637f6b3339496fa11e7047c37899",
      "parents": [
        "2933f9254a6af33db25270778c998a42029da668"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 01 14:04:17 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:34:20 2006 -0500"
      },
      "message": "[GFS2] Shrink gfs2_inode (5) - di_nlink\n\nRemove the di_nlink field in favour of inode-\u003ei_nlink and\nupdate the nlink handling to use the proper macros. This\nsaves 4 bytes.\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": "e7f14f4d094ea1a9ce1953375f5bc1500c760c79",
      "tree": "da539b26dedd351ecb591e7ccb571b94a679452e",
      "parents": [
        "af339c0241d0dd3b35f9097b4f4999bb22ffe502"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Oct 31 21:45:08 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:34:11 2006 -0500"
      },
      "message": "[GFS2] Shrink gfs2_inode (2) - di_major/di_minor\n\nThis removes the device numbers from this structure by using\ninode-\u003ei_rdev instead. It also cleans up the code in gfs2_mknod.\nIt results in shrinking the gfs2_inode by 8 bytes.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "af339c0241d0dd3b35f9097b4f4999bb22ffe502",
      "tree": "c4c3e66de3c63b7a8205717bdf833dd567f6b746",
      "parents": [
        "4cc14f0b88bf3e0b508143e091eb5a8dff3e3b9c"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 01 10:34:15 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:34:07 2006 -0500"
      },
      "message": "[GFS2] Shrink gfs2_inode (1) - di_header/di_num\n\nThe metadata header doesn\u0027t need to be stored in the incore\nstruct gfs2_inode since its constant, and this patch removes it.\nAlso, there is already a field for the inode\u0027s number in the\nstruct gfs2_inode, so we don\u0027t need one in struct gfs2_dinode_host\nas well.\n\nThis saves 28 bytes of space in the struct gfs2_inode.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "4cc14f0b88bf3e0b508143e091eb5a8dff3e3b9c",
      "tree": "122fd017b608a6421bb720c544c21d84a9f41e82",
      "parents": [
        "ea744d01c6a5acf1f6171b4c6e1658a742063613"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Oct 31 19:00:24 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:34:03 2006 -0500"
      },
      "message": "[GFS2] Change argument to gfs2_dinode_print\n\nChange argument for gfs2_dinode_print in order to prepare\nfor removal of duplicate fields between struct inode and\nstruct gfs2_dinode_host.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ea744d01c6a5acf1f6171b4c6e1658a742063613",
      "tree": "6157f726ee369f9caec62c11093f4dde1da4ff42",
      "parents": [
        "891ea14712da68e282de8583e5fa14f0d3f3731e"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Oct 31 15:28:00 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:34:00 2006 -0500"
      },
      "message": "[GFS2] Move gfs2_dinode_in to inode.c\n\ngfs2_dinode_in() is only ever called from one place, so move it\nto that place (in inode.c) and make it static.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "891ea14712da68e282de8583e5fa14f0d3f3731e",
      "tree": "2550fb6f9cfe3fce0f1a27b7b4c781a67f2497e2",
      "parents": [
        "539e5d6b7ae8612c0393fe940d2da5b591318d3d"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Oct 31 15:22:10 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:33:57 2006 -0500"
      },
      "message": "[GFS2] Change argument to gfs2_dinode_in\n\nThis is a preliminary patch to enable the removal of fields\nin gfs2_dinode_host which are duplicated in struct inode.\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": "629a21e7ecedf779c68dcaa9a186069f57a7c652",
      "tree": "aff577cb9d1d3cf42ddb16f4552411d08e5cdc51",
      "parents": [
        "1e81c4c3e0f55c95b6278a827262b80debd0dc7e"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 13 22:51:24 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:33:32 2006 -0500"
      },
      "message": "[GFS2] split and annotate gfs2_inum\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e697264709c86040271cdd7abee781d7adbb7f91",
      "tree": "4050d047b28a7a85b56a41143096bf11a4fa3095",
      "parents": [
        "68826664d12827d7a732192e2f00ba46fb899414"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 13 21:29:46 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:33:11 2006 -0500"
      },
      "message": "[GFS2] split and annotate gfs2_inum_range\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "3ca68df6ee61e1a2034f3307b9edb9b3d87e5ca1",
      "tree": "9172d33578fe98a6cba4c6819cd868be290fe0c1",
      "parents": [
        "0215ffb08ce99e2bb59eca114a99499a4d06e704"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 13 20:11:25 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:32:50 2006 -0500"
      },
      "message": "[GFS2] split gfs2_dinode into on-disk and host variants\n\nThe latter is used as part of gfs2-private part of struct inode.\nIt actually stores a lot of fields differently; for now the\ndeclaration is just cloned, inode field is swtiched and changes\npropagated.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "26d83dedf61d26d85f10bc34b92f4de7660fd746",
      "tree": "69fc1d3ccc85fa25b5506e826aad90e6fd3d8f6f",
      "parents": [
        "4a221953ed121692aa25998451a57c7f4be8b4f6"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Oct 30 16:59:08 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Nov 06 08:59:42 2006 -0500"
      },
      "message": "[GFS2] Fix OOM error handling\n\nFix the OOM error handling in inode.c where it was possible for\na NULL pointer to be dereferenced.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "fcb47e0bd279cab5ba8299c0a1e3364d15413a6b",
      "tree": "c7f01edc5e57fcf4671bc7e6eb58e18c7f377d56",
      "parents": [
        "ddacfaf76dd620af9b73343a975749778321b51c"
      ],
      "author": {
        "name": "Ryan O\u0027Hara",
        "email": "rohara@redhat.com",
        "time": "Tue Oct 03 11:57:35 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Oct 03 11:57:35 2006 -0400"
      },
      "message": "[GFS2] Initialize SELinux extended attributes at inode creation time.\n\nThis patch has gfs2_security_init declared as a static function, which\nis correct. As a result, the declaration of this function in inode.h is\nremoved (and thus inode.h is unchanged). Also removed #include eaops.h,\nwhich is not needed.\n\nSigned-Off-By: Ryan O\u0027Hara \u003crohara@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "f92a0b6ff43e8e07bbd5b1d2dd1cff130014f3c7",
      "tree": "f2df811b31bea986185f8a0b9364b0c8dccb96d2",
      "parents": [
        "409e185d2370356ac2e4c7160e002ac5340b6709"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Oct 02 16:01:53 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Oct 02 16:01:53 2006 -0400"
      },
      "message": "[GFS2] Mark nlink cleared so VFS sees it happen\n\nThis does nothing atm, but will be required for later support of\nr/o bind mounts.\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": "825f9075d74028d11d7f5932f04e1b5db3022b51",
      "tree": "cbb7ce19f89410a770d82cd3142a55f5f8a30249",
      "parents": [
        "bba9dfd83587017de1c55a94c077983e0dfa0251"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 27 01:50:32 2006 -0700"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Sep 28 08:32:51 2006 -0400"
      },
      "message": "[GFS2] inode-diet: Eliminate i_blksize from the inode structure\n\nThis eliminates the i_blksize field from struct inode.  Filesystems that want\nto provide a per-inode st_blksize can do so by providing their own getattr\nroutine instead of using the generic_fillattr() function.\n\nNote that some filesystems were providing pretty much random (and incorrect)\nvalues for i_blksize.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\n"
    },
    {
      "commit": "bba9dfd83587017de1c55a94c077983e0dfa0251",
      "tree": "8af76134269374850dea490ee1020cb92f4fdb9b",
      "parents": [
        "185a257f2f73bcd89050ad02da5bedbc28fc43fa"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 27 01:50:31 2006 -0700"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Sep 28 08:32:24 2006 -0400"
      },
      "message": "[GFS2] inode_diet: Replace inode.u.generic_ip with inode.i_private (gfs)\n\nThe following patches reduce the size of the VFS inode structure by 28 bytes\non a UP x86.  (It would be more on an x86_64 system).  This is a 10% reduction\nin the inode size on a UP kernel that is configured in a production mode\n(i.e., with no spinlock or other debugging functions enabled; if you want to\nsave memory taken up by in-core inodes, the first thing you should do is\ndisable the debugging options; they are responsible for a huge amount of bloat\nin the VFS inode structure).\n\nThis patch:\n\nThe filesystem or device-specific pointer in the inode is inside a union,\nwhich is pretty pointless given that all 30+ users of this field have been\nusing the void pointer.  Get rid of the union and rename it to i_private, with\na comment to explain who is allowed to use the void pointer.  This is just a\ncleanup, but it allows us to reuse the union \u0027u\u0027 for something something where\nthe union will actually be used.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\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": "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"
    }
  ],
  "next": "c26687113aea9a11c6f23ddf668f1fe43eca4ce7"
}
