)]}'
{
  "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": "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": "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": "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": "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": "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": "a93a6ce24215c69126c88f9c488afa50a168e0ca",
      "tree": "3e3503ab90ae9a18c04e27fb17f188f052e24f1d",
      "parents": [
        "c9f6a6bbc284ba87337876086f7e2e6e0b0d50dd"
      ],
      "author": {
        "name": "Li Xiaodong",
        "email": "lixd@cn.fujitsu.com",
        "time": "Mon Jul 07 18:04:09 2008 +0800"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 10 16:22:23 2008 +0100"
      },
      "message": "[GFS2] Remove unused declaration\n\nThe implementation of gfs2_inode_attr_in is removed.\nSo remove its declaration.\n\nSigned-off-by: Li Xiaodong \u003clixd@cn.fujitsu.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "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": "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": "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": "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": "bf36a713169432643d4fc7eeb4e0ace96d791d26",
      "tree": "2cb69c9716b9ee8c687ef807bb88d5e635db3462",
      "parents": [
        "e7e36f143565d14950055c893cfaf4400ad64d34"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 17 08:35:19 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:21 2008 +0000"
      },
      "message": "[GFS2] Add gfs2_is_writeback()\n\nThis adds a function \"gfs2_is_writeback()\" along the lines of the\nexisting \"gfs2_is_jdata()\" in order to clean up the code and make\nthe various tests for the inode mode more obvious. It also fixes\nthe PageChecked() logic where we were resetting the flag too early\nin the case of an error path.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "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": "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": "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": "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": "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": "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": "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": "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": "e9fc2aa091ab8fa46e60d4c9d06a89305c441652",
      "tree": "8cdf5fcc4adba8cd53c51f824b5d8107ce0f4bba",
      "parents": [
        "c6e6f0ba8fc1dea99c7bd020916f24d533b62697"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Sep 01 11:05:15 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Sep 01 11:05:15 2006 -0400"
      },
      "message": "[GFS2] Update copyright, tidy up incore.h\n\nAs per comments from Jan Engelhardt \u003cjengelh@linux01.gwdg.de\u003e this\nupdates the copyright message to say \"version\" in full rather than\n\"v.2\". Also incore.h has been updated to remove forward structure\ndeclarations which are not required.\n\nThe gfs2_quota_lvb structure has now had endianess annotations added\nto it. Also quota.c has been updated so that we now store the\nlvb data locally in endian independant format to avoid needing\na structure in host endianess too. As a result the endianess\nconversions are done as required at various points and thus the\nconversion routines in lvb.[ch] are no longer required. I\u0027ve\nmoved the one remaining constant in lvb.h thats used into lm.h\nand removed the unused lvb.[ch].\n\nI have not changed the HIF_ constants. That is left to a later patch\nwhich I hope will unify the gh_flags and gh_iflags fields of the\nstruct gfs2_holder.\n\nCc: Jan Engelhardt \u003cjengelh@linux01.gwdg.de\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "faf450ef4a8567e4c75a905aadae01cf401d893a",
      "tree": "b06d7b68191edd438f9a40e609caeb9380a2a90e",
      "parents": [
        "d9d1ca30505c6fed867e1724b16fdad0c281d7d1"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jun 22 10:59:10 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jun 22 10:59:10 2006 -0400"
      },
      "message": "[GFS2] Remove gfs2_repermission\n\ngfs2_repermission is just a wrapper for permission, so remove it and\ncall permission directly where required.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "feaa7bba026c181ce071d5a4884f7f9dd26207a1",
      "tree": "c858deb225917265cb07820730e9764674d133e8",
      "parents": [
        "22da645fd6675b7abc55cf937ddf6132f343e5b9"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jun 14 15:32:57 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jun 14 15:32:57 2006 -0400"
      },
      "message": "[GFS2] Fix unlinked file handling\n\nThis patch fixes the way we have been dealing with unlinked,\nbut still open files. It removes all limits (other than memory\nfor inodes, as per every other filesystem) on numbers of these\nwhich we can support on GFS2. It also means that (like other\nfs) its the responsibility of the last process to close the file\nto deallocate the storage, rather than the person who did the\nunlinking. Note that with GFS2, those two events might take place\non different nodes.\n\nAlso there are a number of other changes:\n\n o We use the Linux inode subsystem as it was intended to be\nused, wrt allocating GFS2 inodes\n o The Linux inode cache is now the point which we use for\nlocal enforcement of only holding one copy of the inode in\ncore at once (previous to this we used the glock layer).\n o We no longer use the unlinked \"special\" file. We just ignore it\ncompletely. This makes unlinking more efficient.\n o We now use the 4th block allocation state. The previously unused\nstate is used to track unlinked but still open inodes.\n o gfs2_inoded is no longer needed\n o Several fields are now no longer needed (and removed) from the in\ncore struct gfs2_inode\n o Several fields are no longer needed (and removed) from the in core\nsuperblock\n\nThere are a number of future possible optimisations and clean ups\nwhich have been made possible by this patch.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "3a8a9a1034813aa99f5ae3150f652d490c5ff10d",
      "tree": "427d4c1499b5c88dbf43c6e490d83cee350083b2",
      "parents": [
        "bd8968010a9a08e67a0ddb3ddee9feb8882e8c2f"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu May 18 15:09:15 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu May 18 15:09:15 2006 -0400"
      },
      "message": "[GFS2] Update copyright date to 2006\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "363275216c1a1b0b82c8419310c194b8c26b9c27",
      "tree": "476bb04ff32ac1724afa192f4950f4a39a0237f2",
      "parents": [
        "d26046bb0aff707aac38a9bf3dd56fa39b28a399"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Apr 28 10:46:21 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Apr 28 10:46:21 2006 -0400"
      },
      "message": "[GFS2] Reordering in deallocation to avoid recursive locking\n\nDespite my earlier careful search, there was a recursive lock left\nin the deallocation code. This removes it. It also should speed up\ndeallocation be reducing the number of locking operations which take\nplace by using two \"try lock\" operations on the two locks involved in\ninode deallocation which allows us to grab the locks out of order\n(compared with NFS which grabs the inode lock first and the iopen\nlock later). It is ok for us to fail while doing this since if it\ndoes fail it means that someone else is still using the inode and\nthus it wouldn\u0027t be possible to deallocate anyway.\n\nThis fixes the bug reported to me by Rob Kenna.\n\nCc: Rob Kenna \u003crkenna@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "c752666c17f870fa8ae9f16804dd457e9e6daaec",
      "tree": "c3c48383f386a24edbdf3c6292f25b587e6d9368",
      "parents": [
        "419c93e0b6b9eef0bf26b8ad415f2a5bf4300119"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 20 12:30:04 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 20 12:30:04 2006 -0500"
      },
      "message": "[GFS2] Fix bug in directory code and tidy up\n\nDue to a typo, the dir leaf split operation was (for the first\nsplit in a directory) writing the new hash vaules at the\nwrong offset. This is now fixed.\n\nAlso some other tidy ups are included:\n\n - We use GFS2\u0027s hash function for dentries (see ops_dentry.c) so that\n   we don\u0027t have to keep recalculating the hash values.\n - A lot of common code is eliminated between the various directory\n   lookup routines.\n - Better error checking on directory lookup (previously different\n   routines checked for different errors)\n - The leaf split operation has a couple of redundant operations\n   removed from it, so it should be faster.\n\nThere is still further scope for further clean ups in the directory\ncode, and readdir in particular could do with slimming down a bit.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "c9fd43078f5007c6ca6b3a9cd04c51a8f0e44a20",
      "tree": "5a083b01e88afd591fdcce76ad14c4d7d028ac23",
      "parents": [
        "e317ffcb7cc26c5e80cab97160a5e2761a4436ec"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 01 15:31:02 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 01 15:31:02 2006 -0500"
      },
      "message": "[GFS2] Tidy up mount code.\n\nWe no longer lookup \".gfs2_admin\" in the root directory in order to\nfind it, but instead use the inode number given in the superblock.\nBoth the root directory and the admin directory are now looked up using\nthe same routine, so the redundant code is removed.\n\nAlso, there is no longer a reference to the root inode in the\nGFS2 super block. When required this can be retreived via\nsb-\u003es_root-\u003ed_inode instead.\n\nAssuming that we introduce a metadata filesystem type for GFS, then\nthis is a first step towards that goal.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "568f4c9659a2225b0d29cf86feecbcf25c9045c8",
      "tree": "8ec0fee12313f88a195e0b90924f6b7633ba29f1",
      "parents": [
        "3a8fe9be6c9794e55ac2253eab91d42b28a9dab6"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 27 12:00:42 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 27 12:00:42 2006 -0500"
      },
      "message": "[GFS2] 80 Column audit of GFS2\n\nRequested by:\nPrarit Bhargava \u003cprarit@redhat.com\u003e\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "7359a19cc758946aba0e45233b8641256b194884",
      "tree": "d96aaeb2fb239efe6fdb0b4698eb94108719f423",
      "parents": [
        "18ec7d5c3f434aed9661ed10a9e1f48cdeb4981d"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 13 12:27:43 2006 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 13 12:27:43 2006 +0000"
      },
      "message": "[GFS2] Fix for root inode ref count bug\n\nUmount is now working correctly again. The bug was due to\nnot getting an extra ref count when mounting the fs. We\nshould have bumped it by two (once for the internal pointer\nto the root inode from the super block and once for the\ninode hanging off the dcache entry for root).\n\nAlso this patch tidys up the code dealing with looking up\nand creating inodes. We now pass Linux inodes (with gfs2_inodes\nattached) rather than the other way around and this reduces code\nduplication in various places.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "18ec7d5c3f434aed9661ed10a9e1f48cdeb4981d",
      "tree": "a7161a4c4b3592052e6772e1c23849de16cac649",
      "parents": [
        "257f9b4e97e9a6cceeb247cead92119a4396d37b"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Feb 08 11:50:51 2006 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Feb 08 11:50:51 2006 +0000"
      },
      "message": "[GFS2] Make journaled data files identical to normal files on disk\n\nThis is a very large patch, with a few still to be resolved issues\nso you might want to check out the previous head of the tree since\nthis is known to be unstable. Fixes for the various bugs will be\nforthcoming shortly.\n\nThis patch removes the special data format which has been used\nup till now for journaled data files. Directories still retain the\nold format so that they will remain on disk compatible with earlier\nreleases. As a result you can now do the following with journaled\ndata files:\n\n 1) mmap them\n 2) export them over NFS\n 3) convert to/from normal files whenever you want to (the zero length\n    restriction is gone)\n\nIn addition the level at which GFS\u0027 locking is done has changed for all\nfiles (since they all now use the page cache) such that the locking is\ndone at the page cache level rather than the level of the fs operations.\nThis should mean that things like loopback mounts and other things which\ntouch the page cache directly should now work.\n\nCurrent known issues:\n\n 1. There is a lock mode inversion problem related to the resource\n    group hold function which needs to be resolved.\n 2. Any significant amount of I/O causes an oops with an offset of hex 320\n    (NULL pointer dereference) which appears to be related to a journaled data\n    buffer appearing on a list where it shouldn\u0027t be.\n 3. Direct I/O writes are disabled for the time being (will reappear later)\n 4. There is probably a deadlock between the page lock and GFS\u0027 locks under\n    certain combinations of mmap and fs operation I/O.\n 5. Issue relating to ref counting on internally used inodes causes a hang\n    on umount (discovered before this patch, and not fixed by it)\n 6. One part of the directory metadata is different from GFS1 and will need\n    to be resolved before next release.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "f42faf4fa4eaf7e108dd60f3f2ca5c6e9b45352c",
      "tree": "23bf95db3b941a4b14f8b90f98a8aaa663ed6c81",
      "parents": [
        "fd2ee6bb1ef02dfe1f1e1f5b44322e0854596e9a"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 30 18:34:10 2006 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 30 18:34:10 2006 +0000"
      },
      "message": "[GFS2] Add gfs2_internal_read()\n\nAdd the new external read function. Its temporarily in jdata.c\neven though the protoype is in ops_file.h - this will change\nshortly. The current implementation will change to a page cache\none when that happens.\n\nIn order to effect the above changes, the various internal inodes\nnow have Linux inodes attached to them. We keep the references to\nthe Linux inodes, rather than the gfs2_inodes in the super block.\n\nIn order to get everything to work correctly I\u0027ve had to reorder\nthe init sequence on mount (which I should probably have done\nearlier when .gfs2_admin was made visible).\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b3b94faa5fe5968827ba0640ee9fba4b3e7f736e",
      "tree": "70bd6068b050d2c46e338484f8b03fae4365c6c3",
      "parents": [
        "f7825dcf8c7301cfd3724eb40c5b443cc85ab7b8"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Mon Jan 16 16:50:04 2006 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 16 16:50:04 2006 +0000"
      },
      "message": "[GFS2] The core of GFS2\n\nThis patch contains all the core files for GFS2.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    }
  ]
}
