)]}'
{
  "log": [
    {
      "commit": "b0b0382bb4904965a9e9fca77ad87514dfda0d1c",
      "tree": "dc46873fa74e0d194e4a2571b16f0767e1919ae8",
      "parents": [
        "6d42e7e9f6d86ed4dfacde75a6cf515068f9749c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Apr 02 14:34:06 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue May 29 23:28:33 2012 -0400"
      },
      "message": "-\u003eencode_fh() API change\n\npass inode + parent\u0027s inode or NULL instead of dentry + bool saying\nwhether we want the parent or not.\n\nNOTE: that needs ceph fix folded in.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "90324cc1b11a211e37eabd8cb863e1a1561d6b1d",
      "tree": "c8b79c6850420a114ca6660c1b44fc486b1ba86d",
      "parents": [
        "fb8b00675eb6462aacab56bca31ed6107bda5314",
        "169ebd90131b2ffca74bb2dbe7eeacd39fb83714"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 28 09:54:45 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 28 09:54:45 2012 -0700"
      },
      "message": "Merge tag \u0027writeback\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux\n\nPull writeback tree from Wu Fengguang:\n \"Mainly from Jan Kara to avoid iput() in the flusher threads.\"\n\n* tag \u0027writeback\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux:\n  writeback: Avoid iput() from flusher thread\n  vfs: Rename end_writeback() to clear_inode()\n  vfs: Move waiting for inode writeback from end_writeback() to evict_inode()\n  writeback: Refactor writeback_single_inode()\n  writeback: Remove wb-\u003elist_lock from writeback_single_inode()\n  writeback: Separate inode requeueing after writeback\n  writeback: Move I_DIRTY_PAGES handling\n  writeback: Move requeueing when I_SYNC set to writeback_sb_inodes()\n  writeback: Move clearing of I_SYNC into inode_sync_complete()\n  writeback: initialize global_dirty_limit\n  fs: remove 8 bytes of padding from struct writeback_control on 64 bit builds\n  mm: page-writeback.c: local functions should not be exposed globally\n"
    },
    {
      "commit": "6101167727932a929e37fb8a6eeb68bdbf54d58e",
      "tree": "da3e9c8244f86082c6ea4d150f7fa653a7843192",
      "parents": [
        "6133308ad1a386e7e7f776003a1c44e8b54e2166",
        "75af271ed5f51b1f3506c7c1d567b1f32e5c9206"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 22 19:31:38 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 22 19:31:38 2012 -0700"
      },
      "message": "Merge tag \u0027dlm-3.5\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm\n\nPull dlm updates from David Teigland:\n \"This set includes some minor fixes and improvements.  The one large\n  patch addresses the special \"nodir\" mode, which has been a long\n  neglected proof of concept, but with these fixes seems to be quite\n  usable.  It allows the resource master to be assigned statically\n  instead of dynamically, which can improve performance if there is\n  little locality and most resources are shared.\"\n\n* tag \u0027dlm-3.5\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm:\n  dlm: NULL dereference on failure in kmem_cache_create()\n  gfs2: fix recovery during unmount\n  dlm: fixes for nodir mode\n  dlm: improve error and debug messages\n  dlm: avoid unnecessary search in search_rsb\n  dlm: limit rcom debug messages\n  dlm: fix waiter recovery\n  dlm: prevent connections during shutdown\n"
    },
    {
      "commit": "62c8d922783a0fa41a9b4ca004f0467d6ca9be48",
      "tree": "f9090aa5e65edab8528a0b2bb5d29a629a6e439d",
      "parents": [
        "06930b94d19a8641f8a2dc9d6ec27e2a5a39d17c",
        "500242ac6152b8f20903f043a86e6fdd51478845"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 21 19:21:20 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 21 19:21:20 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw\n\nPull GFS2 changes from Steven Whitehouse.\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw: (24 commits)\n  GFS2: Fix quota adjustment return code\n  GFS2: Add rgrp information to block_alloc trace point\n  GFS2: Eliminate unused \"new\" parameter to gfs2_meta_indirect_buffer\n  GFS2: Update glock doc to add new stats info\n  GFS2: Update main gfs2 doc\n  GFS2: Remove redundant metadata block type check\n  GFS2: Fix sgid propagation when using ACLs\n  GFS2: eliminate log elements and simplify\n  GFS2: Eliminate vestigial sd_log_le_rg\n  GFS2: Eliminate needless parameter from function gfs2_setbit\n  GFS2: Log code fixes\n  GFS2: Remove unused argument from gfs2_internal_read\n  GFS2: Remove bd_list_tr\n  GFS2: Remove duplicate log code\n  GFS2: Clean up log write code path\n  GFS2: Use variable rather than qa to determine if unstuff necessary\n  GFS2: Change variable blk to biblk\n  GFS2: Fix function parameter comments in rgrp.c\n  GFS2: Eliminate offset parameter to gfs2_setbit\n  GFS2: Use slab for block reservation memory\n  ...\n"
    },
    {
      "commit": "500242ac6152b8f20903f043a86e6fdd51478845",
      "tree": "5497aad0f4887aa67d3df2bf8057e5d0e51305c8",
      "parents": [
        "41db1ab9bed189cb904f7b0e145c3c6030c094c6"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue May 15 14:51:54 2012 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed May 16 12:22:38 2012 +0100"
      },
      "message": "GFS2: Fix quota adjustment return code\n\nThis patch changes function gfs2_adjust_quota so that it properly\nreturns a good (zero) return code on the normal path through the code.\nWithout this, mounting GFS2 with -o quota\u003daccount periodically gave\nthis error message: GFS2: fsid\u003dcluster:fs: gfs2_quotad: sync error -5\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "41db1ab9bed189cb904f7b0e145c3c6030c094c6",
      "tree": "6e7180fc7380d1c3b0c2d288c2f513f973e47f8e",
      "parents": [
        "f2f9c8124482fa2e189d0ee321aac7a2cc76a57a"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed May 09 12:11:35 2012 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri May 11 10:31:34 2012 +0100"
      },
      "message": "GFS2: Add rgrp information to block_alloc trace point\n\nThis is a second attempt at a patch that adds rgrp information to the\nblock allocation trace point for GFS2. As suggested, the patch was\nmodified to list the rgrp information _after_ the fields that exist today.\n\nAgain, the reason for this patch is to allow us to trace and debug\nproblems with the block reservations patch, which is still in the works.\nWe can debug problems with reservations if we can see what block allocations\nresult from the block reservations. It may also be handy in figuring out\nif there are problems in rgrp free space accounting. In other words,\nwe can use it to track the rgrp and its free space along side the allocations\nthat are taking place.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "f2f9c8124482fa2e189d0ee321aac7a2cc76a57a",
      "tree": "1aa7b52bc76184b495065a462978553a80af6208",
      "parents": [
        "2ebc3f8b3ecf66ddf31285aad1b5db4245c2c04a"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Thu May 10 08:33:55 2012 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri May 11 10:19:23 2012 +0100"
      },
      "message": "GFS2: Eliminate unused \"new\" parameter to gfs2_meta_indirect_buffer\n\nIt turns out that the \"new\" parameter to function gfs2_meta_indirect_buffer\nwas always being passed in as zero. Therefore, this patch eliminates it\nand simplifies the function.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "26fe575028703948880fce4355a210c76bb0536e",
      "tree": "0a7d04289e1eb1f1739659ebc9498d40f2add5da",
      "parents": [
        "ee983e89670704b2a05e897b161f2674a42d1508"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 10 13:14:12 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 10 19:54:35 2012 -0700"
      },
      "message": "vfs: make it possible to access the dentry hash/len as one 64-bit entry\n\nThis allows comparing hash and len in one operation on 64-bit\narchitectures.  Right now only __d_lookup_rcu() takes advantage of this,\nsince that is the case we care most about.\n\nThe use of anonymous struct/unions hides the alternate 64-bit approach\nfrom most users, the exception being a few cases where we initialize a\n\u0027struct qstr\u0027 with a static initializer.  This makes the problematic\ncases use a new QSTR_INIT() helper function for that (but initializing\njust the name pointer with a \"{ .name \u003d xyzzy }\" initializer remains\nvalid, as does just copying another qstr structure).\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6de1e2f34a7864883da7b4a68756836d80952fb9",
      "tree": "d9fffa8873b0921c31b66d5f3fe4291fd4161c13",
      "parents": [
        "f9425ad4e5c8f8f9f6297d0358dc44ca058ffe47"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Fri Apr 27 08:40:16 2012 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 08 16:18:55 2012 +0100"
      },
      "message": "GFS2: Remove redundant metadata block type check\n\nThis patch removes a redundant metadata block check. See description below.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "dbd5768f87ff6fb0a4fe09c4d7b6c4a24de99430",
      "tree": "42ea94ea733538f797aa745945fc43c4d1b89217",
      "parents": [
        "7994e6f7254354e03028a11f98a27bd67dace9f1"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu May 03 14:48:02 2012 +0200"
      },
      "committer": {
        "name": "Fengguang Wu",
        "email": "fengguang.wu@intel.com",
        "time": "Sun May 06 13:43:41 2012 +0800"
      },
      "message": "vfs: Rename end_writeback() to clear_inode()\n\nAfter we moved inode_sync_wait() from end_writeback() it doesn\u0027t make sense\nto call the function end_writeback() anymore. Rename it to clear_inode()\nwhich well says what the function really does - set I_CLEAR flag.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\n"
    },
    {
      "commit": "f9425ad4e5c8f8f9f6297d0358dc44ca058ffe47",
      "tree": "5fad05178af7a4e2ccd21d63938a3559a60a353f",
      "parents": [
        "c0752aa7e4d48cc19e167ccb0092bea8e5b6ca3a"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri May 04 14:33:06 2012 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri May 04 14:33:06 2012 +0100"
      },
      "message": "GFS2: Fix sgid propagation when using ACLs\n\nThis cleans up the mode setting code when creating inodes. The\nSGID bit was being reset by setattr_copy() when the user creating a\nsubdirectory was not in the owning group. When ACLs are in use this\nSGID bit should have been propagated if the ACL allows creation of\na subdirectory. GFS2\u0027s behaviour now matches that of the other ACL\nsupporting filesystems in this regard.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "1a058f5288a74a20d5567a85ab1a04a9de69a212",
      "tree": "8ed2428f8aaee127fc4a87417dd520a90f60e3a7",
      "parents": [
        "4875647a08e35f77274838d97ca8fa44158d50e2"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Tue May 01 15:50:48 2012 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed May 02 14:19:12 2012 -0500"
      },
      "message": "gfs2: fix recovery during unmount\n\nJournal recovery from lock_dlm should not be ignored\nif there is an unmount in progress.  Ignoring it will\ncauses the recovery to get stuck.  The recovery\nprocess will correctly handle an in-progess unmount.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "4875647a08e35f77274838d97ca8fa44158d50e2",
      "tree": "bf8a39eaf3219af5d661ed3e347545306fd84bda",
      "parents": [
        "6d40c4a708e0e996fd9c60d4093aebba5fe1f749"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Thu Apr 26 15:54:29 2012 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed May 02 14:15:27 2012 -0500"
      },
      "message": "dlm: fixes for nodir mode\n\nThe \"nodir\" mode (statically assign master nodes instead\nof using the resource directory) has always been highly\nexperimental, and never seriously used.  This commit\nfixes a number of problems, making nodir much more usable.\n\n- Major change to recovery: recover all locks and restart\n  all in-progress operations after recovery.  In some\n  cases it\u0027s not possible to know which in-progess locks\n  to recover, so recover all.  (Most require recovery\n  in nodir mode anyway since rehashing changes most\n  master nodes.)\n\n- Change the way nodir mode is enabled, from a command\n  line mount arg passed through gfs2, into a sysfs\n  file managed by dlm_controld, consistent with the\n  other config settings.\n\n- Allow recovering MSTCPY locks on an rsb that has not\n  yet been turned into a master copy.\n\n- Ignore RCOM_LOCK and RCOM_LOCK_REPLY recovery messages\n  from a previous, aborted recovery cycle.  Base this\n  on the local recovery status not being in the state\n  where any nodes should be sending LOCK messages for the\n  current recovery cycle.\n\n- Hold rsb lock around dlm_purge_mstcpy_locks() because it\n  may run concurrently with dlm_recover_master_copy().\n\n- Maintain highbast on process-copy lkb\u0027s (in addition to\n  the master as is usual), because the lkb can switch\n  back and forth between being a master and being a\n  process copy as the master node changes in recovery.\n\n- When recovering MSTCPY locks, flag rsb\u0027s that have\n  non-empty convert or waiting queues for granting\n  at the end of recovery.  (Rename flag from LOCKS_PURGED\n  to RECOVER_GRANT and similar for the recovery function,\n  because it\u0027s not only resources with purged locks\n  that need grant a grant attempt.)\n\n- Replace a couple of unnecessary assertion panics with\n  error messages.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "c0752aa7e4d48cc19e167ccb0092bea8e5b6ca3a",
      "tree": "2ff43322a35871364f9be2c2e4a6427db7db8a0f",
      "parents": [
        "1c47f09592148ba629edb2020d4dd94f81b16d11"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue May 01 12:00:34 2012 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed May 02 09:14:36 2012 +0100"
      },
      "message": "GFS2: eliminate log elements and simplify\n\nThis patch eliminates the gfs2_log_element data structure and\nrolls its two components into the gfs2_bufdata. This makes the code\neasier to understand and makes it easier to migrate to a rbtree\nto keep the list sorted.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "1c47f09592148ba629edb2020d4dd94f81b16d11",
      "tree": "626468e622b1bcff23b82cbeae6d7418f10d2d16",
      "parents": [
        "06344b9186e0d9520cb1b032728aba9f6ee55b91"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Fri Apr 27 13:59:27 2012 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Apr 30 10:41:04 2012 +0100"
      },
      "message": "GFS2: Eliminate vestigial sd_log_le_rg\n\nThis patch eliminates gfs2 superblock variable sd_log_le_rg which\nis no longer used.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "06344b9186e0d9520cb1b032728aba9f6ee55b91",
      "tree": "d044143e9b6ed30c484c400bb18cbe31e7a51370",
      "parents": [
        "144a4c2ff75552e2aabb9256ca0ec5e277097153"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Thu Apr 26 12:44:35 2012 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Apr 27 10:46:07 2012 +0100"
      },
      "message": "GFS2: Eliminate needless parameter from function gfs2_setbit\n\nThis patch eliminates parameter \"buf1\" from function gfs2_setbit.\nThis is possible because it was always passed in as bi-\u003ebi_bh-\u003eb_data.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "144a4c2ff75552e2aabb9256ca0ec5e277097153",
      "tree": "aa27e93cc135ba15eb3fe17e732ed74b1a7b8886",
      "parents": [
        "4306629e1c0fd098d52f499e5a60aaa03e30df0d"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Apr 19 10:38:50 2012 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Apr 24 16:44:38 2012 +0100"
      },
      "message": "GFS2: Log code fixes\n\nThis patch removes a log lock from around atomic operation where\nit is not needed, removes an unused variable, and also changes\na void pointer used incorrectly to a struct page pointer.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "4306629e1c0fd098d52f499e5a60aaa03e30df0d",
      "tree": "82e2f8768dd0d273d31bb83eb8e10c1501eceece",
      "parents": [
        "c50b91c4bd511dfe844e2aa7be429b6b88406353"
      ],
      "author": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Mon Apr 16 16:40:55 2012 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Apr 24 16:44:37 2012 +0100"
      },
      "message": "GFS2: Remove unused argument from gfs2_internal_read\n\ngfs2_internal_read accepts an unused ra_state argument, left over from\nwhen we did readahead on the rindex. Since there are currently no plans\nto add back this readahead, this patch removes the ra_state parameter\nand updates the functions which call gfs2_internal_read accordingly.\n\nSigned-off-by: Andrew Price \u003canprice@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "c50b91c4bd511dfe844e2aa7be429b6b88406353",
      "tree": "0a9584ec238036b599bb717db5bd1a7df5c616ca",
      "parents": [
        "dad30e9031c5927c30b402f73ac57ffbe09dc9ee"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Apr 16 16:40:56 2012 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Apr 24 16:44:36 2012 +0100"
      },
      "message": "GFS2: Remove bd_list_tr\n\nThis is another clean up in the logging code. This per-transaction\nlist was largely unused. Its main function was to ensure that the\nnumber of buffers in a transaction was correct, however that counter\nwas only used to check the number of buffers in the bd_list_tr, plus\nan assert at the end of each transaction. With the assert now changed\nto use the calculated buffer counts, we can remove both bd_list_tr and\nits associated counter.\n\nThis should make the code easier to understand as well as shrinking\na couple of structures.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "dad30e9031c5927c30b402f73ac57ffbe09dc9ee",
      "tree": "01384e81d04644da848477b0cb51182d18229b59",
      "parents": [
        "e8c92ed769008cfc799497f0a34c8faf46243c4d"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Apr 16 09:40:00 2012 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Apr 24 16:44:35 2012 +0100"
      },
      "message": "GFS2: Remove duplicate log code\n\nThe main part of this patch merges the two functions used to\nwrite metadata and data buffers to the log. Most of the code\nis common between the two functions, so this provides a nice\nclean up, and makes the code more readable.\n\nThe gfs2_get_log_desc() function is also extended to take two more\narguments, and thus avoid having to set the length and data1\nfields of this strucuture as a separate operation.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e8c92ed769008cfc799497f0a34c8faf46243c4d",
      "tree": "6e00d9ddfd7d02ac9b1ac50d99de946d42443922",
      "parents": [
        "2f7ee358e5a0fedcb45c64bd83dad9dc9a212508"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Apr 16 09:28:31 2012 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Apr 24 16:44:34 2012 +0100"
      },
      "message": "GFS2: Clean up log write code path\n\nPrior to this patch, we have two ways of sending i/o to the log.\nOne of those is used when we need to allocate both the data\nto be written itself and also a buffer head to submit it. This\nis done via sb_getblk and friends. This is used mostly for writing\nlog headers.\n\nThe other method is used when writing blocks which have some\nin-place counterpart. This is the case for all the metadata\nblocks which are journalled, and when journaled data is in use,\nfor unescaped journalled data blocks.\n\nThis patch replaces both of those two methods, and about half\na dozen separate i/o submission points with a single i/o\nsubmission function. We also go direct to bio rather than\nusing buffer heads, since this allows us to build i/o\nrequests of the maximum size for the block device in\nquestion. It also reduces the memory required for flushing\nthe log, which can be very useful in low memory situations.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "2f7ee358e5a0fedcb45c64bd83dad9dc9a212508",
      "tree": "e164ccdd0ed95390bbdd2df8d5382303e307a77c",
      "parents": [
        "9598d25ed9b2fc0c36ed47e759c998303fd89503"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Thu Apr 12 09:19:30 2012 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Apr 24 16:44:33 2012 +0100"
      },
      "message": "GFS2: Use variable rather than qa to determine if unstuff necessary\n\nIn the future, the qadata structure will be eliminated and merged\nback in with the block reservation structure, after we extend the\nlifespan of that. This patch is a step forward in eliminating the\nqadata structure. It adds a variable to the do_grow function to\ndetermine when unstuffing is necessary, and has been done.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "9598d25ed9b2fc0c36ed47e759c998303fd89503",
      "tree": "9b3602b637b1c6344b4defaa52bb8e4dcae32b43",
      "parents": [
        "886b1416752d7b00fd04468a7c3f036699bddc31"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Thu Apr 12 08:41:43 2012 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Apr 24 16:44:32 2012 +0100"
      },
      "message": "GFS2: Change variable blk to biblk\n\nIn the resource group code, we have no less than three different\nkinds of block references: block relative to the file system (u64),\nblock relative to the rgrp (u32), and block relative to the bitmap.\nThis is a small step to making the code more readable; it renames\nvariable blk to biblk to solidify in my mind that it\u0027s relative to\nthe bitmap and nothing else.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "886b1416752d7b00fd04468a7c3f036699bddc31",
      "tree": "a4712907beda1004ad0a3ff665d4447e6518191e",
      "parents": [
        "29c578f567eec57b8db761d7adf6512d2d3e8efe"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Apr 11 13:03:52 2012 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Apr 24 16:44:31 2012 +0100"
      },
      "message": "GFS2: Fix function parameter comments in rgrp.c\n\nThis patch just fixes a bunch of function parameter comments.\nSlowly, over the years, the comments have gotten out of date\n(mostly my fault, as I haven\u0027t been good at keeping them up to date).\nThis patch rectifies some of that.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "29c578f567eec57b8db761d7adf6512d2d3e8efe",
      "tree": "7436e303ef3729b7fcc963653ef5eb19563f1487",
      "parents": [
        "36f5580be1dde43eb94ce4d58bc20e493be09f09"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Apr 11 13:01:07 2012 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Apr 24 16:44:30 2012 +0100"
      },
      "message": "GFS2: Eliminate offset parameter to gfs2_setbit\n\nThis patch eliminates a redundant parameter.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "36f5580be1dde43eb94ce4d58bc20e493be09f09",
      "tree": "5d8c2ce2b52d4ac806d04611b829e394b4365969",
      "parents": [
        "b120193e360f6c22b0c9424c928f2df40ba0ffdb"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Apr 11 12:59:32 2012 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Apr 24 16:44:29 2012 +0100"
      },
      "message": "GFS2: Use slab for block reservation memory\n\nThis patch changes block reservations so it uses slab storage.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b120193e360f6c22b0c9424c928f2df40ba0ffdb",
      "tree": "87124a26160f0361e4102e674bc87790bdea1837",
      "parents": [
        "df3fd117f98029eaf88c71dea770a1f8eacbfb99"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Apr 11 12:58:07 2012 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Apr 24 16:44:28 2012 +0100"
      },
      "message": "GFS2: make function gfs2_page_add_databufs static\n\nThis patch makes function gfs2_page_add_databufs static.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "df3fd117f98029eaf88c71dea770a1f8eacbfb99",
      "tree": "40473d408898528d6c10acbf07168edfd1372c89",
      "parents": [
        "14e5f1848dcaed611e7dadfaa0d593a4a1b93010"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Apr 11 12:56:41 2012 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Apr 24 16:44:27 2012 +0100"
      },
      "message": "GFS2: Rename function gfs2_close to gfs2_release\n\nThis patch renames function gfs2_close to gfs2_release.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "14e5f1848dcaed611e7dadfaa0d593a4a1b93010",
      "tree": "645446839468853520277f27b40bbfc5689fc70a",
      "parents": [
        "fdb76a4228303491b1b9b8923310f2cbcec8dc9f"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Apr 03 15:04:22 2012 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Apr 24 16:44:26 2012 +0100"
      },
      "message": "GFS2: Make gfs2_log_fake_buf() write the buffer too\n\nSince we always write the buffer directly after this function\nreturns, we might as well merge it into here. This is a clean\nup in preparation for some further updates to the log code\nwhich are coming soon.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "fdb76a4228303491b1b9b8923310f2cbcec8dc9f",
      "tree": "5b08c14e65adcd54dc440955b7a6e579e426a5cc",
      "parents": [
        "af3a3ab2966112c0d0a44df7eeb1e95fe32d4495"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Apr 02 15:34:36 2012 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Apr 24 16:44:24 2012 +0100"
      },
      "message": "GFS2: Drop \"pull\" argument from log_write_header()\n\nThe \"pull\" argument to log_write_header() is only used\nfor debug purposes and it is not really needed any more. There\nare other tests for this particular problem, so I think we can\ndispose of it in order to simplify the code.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "4c569a72c30dfee9b5133284aba67e3aa0c9505d",
      "tree": "774da90a4b3be800de638d6b2cda4ab7e15a3720",
      "parents": [
        "95f714727436836bb46236ce2bcd8ee8f9274aed"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Apr 10 14:45:24 2012 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Apr 24 13:26:50 2012 +0100"
      },
      "message": "GFS2: Instruct DLM to avoid queue convert slowdown\n\nThis patch instructs DLM to prevent an \"in place\" conversion, where the\nlock just stays on the granted queue, and instead forces the conversion to\nthe back of the convert queue. This is done on upward conversions only.\n    \nThis is useful in cases where, for example, a lock is frequently needed in\nPR on one node, but another node needs it temporarily in EX to update it.\nThis may happen, for example, when the rindex is being updated by gfs2_grow.\nThe gfs2_grow needs to have the lock in EX, but the other nodes need to\nre-read it to retrieve the updates. The glock is already granted in PR on\nthe non-growing nodes, so this prevents them from continually re-granting\nthe lock in PR, and forces the EX from gfs2_grow to go through.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "1b6150fe82de8a555b0200d20bb5e3752fbe4160",
      "tree": "d03b71e1b87b60d1a9dfbade34156e930f1be1bd",
      "parents": [
        "92ae03f2ef99fbc23bfa9080d6b58f25227bd7ef",
        "ca9248d8337d525c2d2b26a1d8314478d15707fb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 11 11:04:45 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 11 11:04:45 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-fixes\n\nPull GFS2 fixes from Steven Whitehouse\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-fixes:\n  GFS2: Allow caching of rindex glock\n  GFS2: Make sure rindex is uptodate before starting transactions\n  GFS2: use depends instead of select in kconfig\n  GFS2: put glock reference in error patch of read_rindex_entry\n"
    },
    {
      "commit": "ca9248d8337d525c2d2b26a1d8314478d15707fb",
      "tree": "7b419d409416939ca951e56efdd2f4e8b9ae2607",
      "parents": [
        "5e2f7d617b574dadf3ad125e4821ce1b180b1626"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Apr 10 08:56:04 2012 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Apr 10 13:49:53 2012 +0100"
      },
      "message": "GFS2: Allow caching of rindex glock\n\nThis patch allows caching of the rindex glock. We were previously\nsetting the GL_NOCACHE bit when the glock was released. That forced\nthe rindex inode to be invalidated, which caused us to re-read\nrindex at the next access. However, it caused the glock to be\nunnecessarily bounced around the cluster. This patch allows\nthe glock to remain cached, but it still causes the rindex to be\nre-read once it has been written to by gfs2_grow.\n\nBen and I have tested single-node gfs2_grow cases and I\u0027ve tested\nclustered gfs2_grow cases on my four-node cluster.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "5e2f7d617b574dadf3ad125e4821ce1b180b1626",
      "tree": "5976cc0546b526751441fb2ace3cac2337261e21",
      "parents": [
        "97cc008aaa8c1f02699b478ca890e81810244131"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Apr 04 22:11:16 2012 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Apr 05 10:20:10 2012 +0100"
      },
      "message": "GFS2: Make sure rindex is uptodate before starting transactions\n\nThis patch removes the call from gfs2_blk2rgrd to function\ngfs2_rindex_update and replaces it with individual calls.\nThe former way turned out to be too problematic.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "2f99c36986ff27a86f06f27212c5f5fa8c7164a3",
      "tree": "a90fd7fe865bb1c5a00b0946754b505bcf070b60",
      "parents": [
        "4a165d25f63a989d0aabe9d8eed5b3a5d5da1862"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 23 16:04:05 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 31 16:03:15 2012 -0400"
      },
      "message": "get rid of pointless includes of ext2_fs.h\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "97cc008aaa8c1f02699b478ca890e81810244131",
      "tree": "2eeb3e74fe584a9bf3fb186fc4b5e3f63b87d3aa",
      "parents": [
        "c1ac539ed43f273cd4d92bf7350ffd783b920184"
      ],
      "author": {
        "name": "Benjamin Poirier",
        "email": "bpoirier@suse.de",
        "time": "Fri Mar 23 18:06:18 2012 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 26 09:18:02 2012 +0100"
      },
      "message": "GFS2: use depends instead of select in kconfig\n\nAvoids having to duplicate the dependencies of what is \u0027select\u0027ed (and on\ndown...)\n\nThose dependencies are currently incomplete, leading to broken builds with\nGFS2_FS_LOCKING_DLM\u003dy and IP_SCTP\u003dn.\n\nSigned-off-by: Benjamin Poirier \u003cbpoirier@suse.de\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "c1ac539ed43f273cd4d92bf7350ffd783b920184",
      "tree": "3d1b9e08d5e215da8b0be0db788fff151d91ebbf",
      "parents": [
        "e22057c8599373e5caef0bc42bdb95d2a361ab0d"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Thu Mar 22 08:58:30 2012 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 26 09:16:56 2012 +0100"
      },
      "message": "GFS2: put glock reference in error patch of read_rindex_entry\n\nThis patch fixes the error path of function read_rindex_entry\nso that it correctly gives up its glock reference in cases where\nthere is a race to re-read the rindex after gfs2_grow.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "ad12ab259d9131a53aa11c7c4561d97f7cc900df",
      "tree": "457e99e4c4b1facf029a6a094428eaef73f5d261",
      "parents": [
        "30d73f375238441d6dc31de0d90bc39f5bb0bfe5",
        "220cca2a4f5867db595135e0450381032eb54902"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 18:00:03 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 18:00:03 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw\n\nPull gfs2 changes from Steven Whitehouse.\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw:\n  GFS2: Change truncate page allocation to be GFP_NOFS\n  GFS2: call gfs2_write_alloc_required for each chunk\n  GFS2: Clean up log flush header writing\n  GFS2: Remove a __GFP_NOFAIL allocation\n  GFS2: Flush pending glock work when evicting an inode\n  GFS2: make sure rgrps are up to date in func gfs2_blk2rgrpd\n  GFS2: Eliminate sd_rindex_mutex\n  GFS2: Unlock rindex mutex on glock error\n  GFS2: Make bd_cmp() static\n  GFS2: Sort the ordered write list\n  GFS2: FITRIM ioctl support\n  GFS2: Move two functions from log.c to lops.c\n  GFS2: glock statistics gathering\n"
    },
    {
      "commit": "e2a0883e4071237d09b604a342c28b96b44a04b3",
      "tree": "aa56f4d376b5eb1c32358c19c2669c2a94e0e1fd",
      "parents": [
        "3a990a52f9f25f45469e272017a31e7a3fda60ed",
        "07c0c5d8b8c122b2f2df9ee574ac3083daefc981"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 13:36:41 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 13:36:41 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull vfs pile 1 from Al Viro:\n \"This is _not_ all; in particular, Miklos\u0027 and Jan\u0027s stuff is not there\n  yet.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (64 commits)\n  ext4: initialization of ext4_li_mtx needs to be done earlier\n  debugfs-related mode_t whack-a-mole\n  hfsplus: add an ioctl to bless files\n  hfsplus: change finder_info to u32\n  hfsplus: initialise userflags\n  qnx4: new helper - try_extent()\n  qnx4: get rid of qnx4_bread/qnx4_getblk\n  take removal of PF_FORKNOEXEC to flush_old_exec()\n  trim includes in inode.c\n  um: uml_dup_mmap() relies on -\u003emmap_sem being held, but activate_mm() doesn\u0027t hold it\n  um: embed -\u003estub_pages[] into mmu_context\n  gadgetfs: list_for_each_safe() misuse\n  ocfs2: fix leaks on failure exits in module_init\n  ecryptfs: make register_filesystem() the last potential failure exit\n  ntfs: forgets to unregister sysctls on register_filesystem() failure\n  logfs: missing cleanup on register_filesystem() failure\n  jfs: mising cleanup on register_filesystem() failure\n  make configfs_pin_fs() return root dentry on success\n  configfs: configfs_create_dir() has parent dentry in dentry-\u003ed_parent\n  configfs: sanitize configfs_create()\n  ...\n"
    },
    {
      "commit": "48fde701aff662559b38d9a609574068f22d00fe",
      "tree": "aa6b203dc671b51d58575b65eb08310ff8309b60",
      "parents": [
        "6b4231e2f92adbcf96fb2a3fa751d7ca0a61b21f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 08 22:15:13 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 20 21:29:35 2012 -0400"
      },
      "message": "switch open-coded instances of d_make_root() to new helper\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d93492855ff307ce9d699e36d966af3420b80bb3",
      "tree": "796d1ab910796675960c780d128477cf97b9a4bb",
      "parents": [
        "2408f6ef6bf58620f8330b37181d2bdca2e7c7c5"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Fri Nov 25 23:14:30 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:23 2012 +0800"
      },
      "message": "gfs2: remove the second argument of k[un]map_atomic()\n\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "220cca2a4f5867db595135e0450381032eb54902",
      "tree": "c8b0f7dd3e5a49a3cc18c981f3e6087849be98c4",
      "parents": [
        "58a7d5fb8e31279b992db4027e44b053a84b7344"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Mon Mar 19 15:25:50 2012 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Mar 20 11:05:00 2012 +0000"
      },
      "message": "GFS2: Change truncate page allocation to be GFP_NOFS\n\nThis patch changes the page allocation in gfs2_block_truncate_page\nand two others to GFP_NOFS to avoid deadlock in low-memory conditions.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "58a7d5fb8e31279b992db4027e44b053a84b7344",
      "tree": "7ba74a4d2955e698f650308b82aef225610eeb24",
      "parents": [
        "34cc1781c2ae921107e89f6633cfab7436e355ba"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Thu Mar 08 13:16:32 2012 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Mar 09 15:29:10 2012 +0000"
      },
      "message": "GFS2: call gfs2_write_alloc_required for each chunk\n\ngfs2_fallocate was calling gfs2_write_alloc_required() once at the start of\nthe function. This caused problems since gfs2_write_alloc_required used a\nlong unsigned int for the len, but gfs2_fallocate could allocate a much\nlarger amount.  This patch will move the call into the loop where the\nchunks are actually allocated and zeroed out. This will keep the allocation\nsize under the limit, and also allow gfs2_fallocate to quickly skip over\nsections of the file that are already completely allocated.\n\nfallcate_chunk was also not correctly setting the file size.  It was using the\nlen veriable to find the last block written to, but by the time it was setting\nthe size, the len variable had already been decremented to 0.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "34cc1781c2ae921107e89f6633cfab7436e355ba",
      "tree": "e9577ab5ca926d6f2aaa8f0a0b28222c87071088",
      "parents": [
        "75ca61c101601a7071d93571920be9697b3fda9b"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Mar 09 10:45:56 2012 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Mar 09 14:07:06 2012 +0000"
      },
      "message": "GFS2: Clean up log flush header writing\n\nWe already send both a pre and post flush to the block device\nwhen writing a journal header. There is no need to wait for\nthe previous I/O specifically when we do this, unless we\u0027ve\nturned \"barriers\" off.\n\nAs a side effect, this also cleans up the code path for flushing\nthe journal and makes it more readable.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "75ca61c101601a7071d93571920be9697b3fda9b",
      "tree": "aaf42da2b6086a58d84efd4ef39a312f03cfbefb",
      "parents": [
        "35e478f42271673f79066a1ed008c6604621c6fe"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Mar 08 12:10:23 2012 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Mar 08 12:10:23 2012 +0000"
      },
      "message": "GFS2: Remove a __GFP_NOFAIL allocation\n\nIn order to ensure that we\u0027ve got enough buffer heads for flushing\nthe journal, the orignal code used __GFP_NOFAIL when performing\nthis allocation. Here we dispense with that in favour of using a\nmempool. This should improve efficiency in low memory conditions\nsince flushing the journal is a good way to get memory back, we\ndon\u0027t want to be spinning, waiting on memory allocations. The\nbuffers which are allocated via this mempool are fairly short lived,\nso that we\u0027ll recycle them pretty quickly.\n\nAlthough there are other memory allocations which occur during the\njournal flush process, this is the one which can potentially require\nthe most memory, so the most important one to fix.\n\nThe amount of memory reserved is a fixed amount, and we should not need\nto scale it when there are a greater number of filesystems in use.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "35e478f42271673f79066a1ed008c6604621c6fe",
      "tree": "ac4e7ac2aaf23588ede55aee92ff0f25abad3569",
      "parents": [
        "58884c4df005ee5ee854cfcd0385d5a6bf25aa30"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 07 10:43:02 2012 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 07 10:43:02 2012 +0000"
      },
      "message": "GFS2: Flush pending glock work when evicting an inode\n\nThis ensures that we will not try to access the inode thats\nbeing flushed via the glock after it has been freed.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "58884c4df005ee5ee854cfcd0385d5a6bf25aa30",
      "tree": "7acef9d1e5d66241b151fd85f7d71cc56022c855",
      "parents": [
        "6aad1c3d3eba3db38b3a1200e2b02ff3af501c5a"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Mon Mar 05 10:19:35 2012 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 05 15:10:34 2012 +0000"
      },
      "message": "GFS2: make sure rgrps are up to date in func gfs2_blk2rgrpd\n\nThis patch adds a call to gfs2_rindex_update from function gfs2_blk2rgrpd\nand removes calls to it that are made redundant by it. The problem is\nthat a gfs2_grow can add rgrps to the rindex, then put those rgrps into\nuse, thus rendering the rindex we read in at mount time incomplete.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "6aad1c3d3eba3db38b3a1200e2b02ff3af501c5a",
      "tree": "08643be75568eac3745f9fddce4f6fef27a6de70",
      "parents": [
        "a08fd280b58836c910a4af10eee2066e358d16db"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Mon Mar 05 09:20:59 2012 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 05 15:06:56 2012 +0000"
      },
      "message": "GFS2: Eliminate sd_rindex_mutex\n\nOver time, we\u0027ve slowly eliminated the use of sd_rindex_mutex.\nUp to this point, it was only used in two places: function\ngfs2_ri_total (which totals the file system size by reading\nand parsing the rindex file) and function gfs2_rindex_update\nwhich updates the rgrps in memory. Both of these functions have\nthe rindex glock to protect them, so the rindex is unnecessary.\nSince gfs2_grow writes to the rindex via the meta_fs, the mutex\nis in the wrong order according to the normal rules. This patch\neliminates the mutex entirely to avoid the problem.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "a08fd280b58836c910a4af10eee2066e358d16db",
      "tree": "bc3c614014490eaad0c1be3abb0e3c0cf9fada5d",
      "parents": [
        "08728f2d8b0ebf01618d3d63e69966f7d43859b9"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Feb 29 15:15:14 2012 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Mar 01 09:25:21 2012 +0000"
      },
      "message": "GFS2: Unlock rindex mutex on glock error\n\nThis patch fixes an error path in function gfs2_rindex_update\nthat leaves the rindex mutex held.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "08728f2d8b0ebf01618d3d63e69966f7d43859b9",
      "tree": "722f9cadfe8601e4173d722a28fe98332587d255",
      "parents": [
        "4a36d08d0d1cba0581d1656739102ce936f26557"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Feb 21 11:14:00 2012 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Feb 28 17:11:27 2012 +0000"
      },
      "message": "GFS2: Make bd_cmp() static\n\nAdd missing static to bd_cmp()\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "4a36d08d0d1cba0581d1656739102ce936f26557",
      "tree": "9cff2e9a41944f3b76507711d295fe2bd5f0f1d8",
      "parents": [
        "66fc061bda3526650328b73f69985da3518c4256"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Feb 14 14:49:57 2012 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Feb 28 17:10:53 2012 +0000"
      },
      "message": "GFS2: Sort the ordered write list\n\nThis patch sorts the ordered write list for GFS2 writes.\nThis increases the throughput for simultaneous writes.\nFor example, if you have ten processes, all doing:\ndd if\u003d/dev/zero of\u003d/mnt/gfs2/fileX\non different files, the throughput will be much better.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "66fc061bda3526650328b73f69985da3518c4256",
      "tree": "350471fda86ebf60fee5436350d36ce9cedbea75",
      "parents": [
        "47ac5537a794fc71f89d51af492a945bd233f70c"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Feb 08 12:58:32 2012 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Feb 28 17:10:21 2012 +0000"
      },
      "message": "GFS2: FITRIM ioctl support\n\nThe FITRIM ioctl provides an alternative way to send discard requests to\nthe underlying device. Using the discard mount option results in every\nfreed block generating a discard request to the block device. This can\nbe slow, since many block devices can only process discard requests of\nlarger sizes, and also such operations can be time consuming.\n\nRather than using the discard mount option, FITRIM allows a sweep of the\nfilesystem on an occasional basis, and also to optionally avoid sending\ndown discard requests for smaller regions.\n\nIn GFS2 FITRIM will work at resource group granularity. There is a flag\nfor each resource group which keeps track of which resource groups have\nbeen trimmed. This flag is reset whenever a deallocation occurs in the\nresource group, and set whenever a successful FITRIM of that resource\ngroup has taken place. This helps to reduce repeated discard requests\nfor the same block ranges, again improving performance.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "47ac5537a794fc71f89d51af492a945bd233f70c",
      "tree": "65c9c68c8b14ceb0fae31f5a03ec4d811fdbec99",
      "parents": [
        "a245769f254bbbea868e2cf8dc42daa061cd276f"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Feb 03 15:21:59 2012 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Feb 28 17:09:59 2012 +0000"
      },
      "message": "GFS2: Move two functions from log.c to lops.c\n\ngfs2_log_get_buf() and gfs2_log_fake_buf() are both used\nonly in lops.c, so move them next to their callers and they\ncan then become static.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "a245769f254bbbea868e2cf8dc42daa061cd276f",
      "tree": "1280ab339924584dba6aaf6e0c9e5a6f5ec0580b",
      "parents": [
        "891003abb0db6bfffd61b76ad0ed39bb7c3db8e1"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 20 10:38:36 2012 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Feb 28 17:09:42 2012 +0000"
      },
      "message": "GFS2: glock statistics gathering\n\nThe stats are divided into two sets: those relating to the\nsuper block and those relating to an individual glock. The\nsuper block stats are done on a per cpu basis in order to\ntry and reduce the overhead of gathering them. They are also\nfurther divided by glock type.\n\nIn the case of both the super block and glock statistics,\nthe same information is gathered in each case. The super\nblock statistics are used to provide default values for\nmost of the glock statistics, so that newly created glocks\nshould have, as far as possible, a sensible starting point.\n\nThe statistics are divided into three pairs of mean and\nvariance, plus two counters. The mean/variance pairs are\nsmoothed exponential estimates and the algorithm used is\none which will be very familiar to those used to calculation\nof round trip times in network code.\n\nThe three pairs of mean/variance measure the following\nthings:\n\n 1. DLM lock time (non-blocking requests)\n 2. DLM lock time (blocking requests)\n 3. Inter-request time (again to the DLM)\n\nA non-blocking request is one which will complete right\naway, whatever the state of the DLM lock in question. That\ncurrently means any requests when (a) the current state of\nthe lock is exclusive (b) the requested state is either null\nor unlocked or (c) the \"try lock\" flag is set. A blocking\nrequest covers all the other lock requests.\n\nThere are two counters. The first is there primarily to show\nhow many lock requests have been made, and thus how much data\nhas gone into the mean/variance calculations. The other counter\nis counting queueing of holders at the top layer of the glock\ncode. Hopefully that number will be a lot larger than the number\nof dlm lock requests issued.\n\nSo why gather these statistics? There are several reasons\nwe\u0027d like to get a better idea of these timings:\n\n1. To be able to better set the glock \"min hold time\"\n2. To spot performance issues more easily\n3. To improve the algorithm for selecting resource groups for\nallocation (to base it on lock wait time, rather than blindly\nusing a \"try lock\")\nDue to the smoothing action of the updates, a step change in\nsome input quantity being sampled will only fully be taken\ninto account after 8 samples (or 4 for the variance) and this\nneeds to be carefully considered when interpreting the\nresults.\n\nKnowing both the time it takes a lock request to complete and\nthe average time between lock requests for a glock means we\ncan compute the total percentage of the time for which the\nnode is able to use a glock vs. time that the rest of the\ncluster has its share. That will be very useful when setting\nthe lock min hold time.\n\nThe other point to remember is that all times are in\nnanoseconds. Great care has been taken to ensure that we\nmeasure exactly the quantities that we want, as accurately\nas possible. There are always inaccuracies in any\nmeasuring system, but I hope this is as accurate as we\ncan reasonably make it.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "a365fbf354907430e6852f0c373b4b3eeff81ba3",
      "tree": "65d5ed095e3150d6061860f5aefd150a5ab76cfd",
      "parents": [
        "9e73f571ea3afffca78c1f54128d57796e27532f"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Feb 24 15:09:14 2012 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Feb 28 09:52:39 2012 +0000"
      },
      "message": "GFS2: Read resource groups on mount\n\nThis makes mount take slightly longer, but at the same time, the first\nwrite to the filesystem will be faster too. It also means that if there\nis a problem in the resource index, then we can refuse to mount rather\nthan having to try and report that when the first write occurs.\n\nIn addition, to avoid recursive locking, we hvae to take account of\ninstances when the rindex glock may already be held when we are\ntrying to update the rbtree of resource groups.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "9e73f571ea3afffca78c1f54128d57796e27532f",
      "tree": "65210fa95c01ca3c6b44a92bea2068887e6a7fcf",
      "parents": [
        "718b97bd6b03445be53098e3c8f896aeebc304aa"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Fri Feb 17 09:15:52 2012 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Feb 28 09:48:30 2012 +0000"
      },
      "message": "GFS2: Ensure rindex is uptodate for fallocate\n\nThis patch fixes a problem whereby gfs2_grow was failing and causing GFS2\nto assert. The problem was that when GFS2\u0027s fallocate operation tried to\nacquire an \"allocation\" it made sure the rindex was up to date, and if not,\nit called gfs2_rindex_update. However, if the file being fallocated was\nthe rindex itself, it was already locked at that point. By calling\ngfs2_rindex_update at an earlier point in time, we bring rindex up to date\nand thereby avoid trying to lock it when the \"allocation\" is acquired.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "718b97bd6b03445be53098e3c8f896aeebc304aa",
      "tree": "17161766fe3ce26cb54e265324efec74fae946f3",
      "parents": [
        "4043b886b0740ded65f633fc4b7225d624c7e658"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Thu Feb 16 11:31:04 2012 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Feb 28 09:48:02 2012 +0000"
      },
      "message": "GFS2: Read in rindex if necessary during unlink\n\nThis patch fixes a problem whereby you were unable to delete\nfiles until other file system operations were done (such as\nstatfs, touch, writes, etc.) that caused the rindex to be\nread in.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "4043b886b0740ded65f633fc4b7225d624c7e658",
      "tree": "532dc280a44a051b6a93d23702f8b847b07e5ff6",
      "parents": [
        "586c6e7013c8cbb8c91aaa6568ec349b1dc2c691"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 16 15:46:21 2012 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Feb 28 09:43:07 2012 +0000"
      },
      "message": "GFS2: Fix race between lru_list and glock ref count\n\nThis patch fixes a narrow race window between the glock ref count\nhitting zero and glocks being removed from the lru_list.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "66ad863b410efb7f537719006f9ac52400c1a5c5",
      "tree": "17db44f069274b4f42805c8fabdea841e4153737",
      "parents": [
        "376d37788b56bc2800e5bd56b7a36b3544d89f97"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jan 11 12:35:05 2012 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jan 11 12:35:05 2012 +0000"
      },
      "message": "GFS2: Fix nlink setting on inode creation\n\nSince the nlink count will be 0, we need to use set_nlink rather\nthan inc_nlink in order to avoid triggering the inc_nlink warning\nwhich was added recently.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "376d37788b56bc2800e5bd56b7a36b3544d89f97",
      "tree": "ff0a261e5b6ad1dbec0cef25959700ba7b9a9ef3",
      "parents": [
        "e8ca5cc571a60339491f8c273a01093096ff8704"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Mon Jan 09 15:29:20 2012 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jan 11 09:24:48 2012 +0000"
      },
      "message": "GFS2: fail mount if journal recovery fails\n\nIf the first mounter fails to recover one of the journals\nduring mount, the mount should fail.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e8ca5cc571a60339491f8c273a01093096ff8704",
      "tree": "e5133a5600113e8c2849675ab96dce0e6521aa09",
      "parents": [
        "49528b4e479195e5db4fe51fcd5ddd97901efc16"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Mon Jan 09 14:40:06 2012 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jan 11 09:23:40 2012 +0000"
      },
      "message": "GFS2: let spectator mount do read only recovery\n\nPreviously, a spectator mount would not even attempt to do\njournal recovery for a failed node.  This meant that if all\nmounted nodes were spectators, everyone would be stuck after\na node failed, all waiting for recovery to be performed.\nThis is unnecessary since the failed node had a clean journal.\n\nInstead, allow a spectator mount to do a partial \"read only\"\nrecovery, which means it will check if the failed journal is\nclean, and if so, report a successful recovery.  If the failed\njournal is not clean, it reports that journal recovery failed.\nThis makes it work the same as a read only mount on a read only\nblock device.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "49528b4e479195e5db4fe51fcd5ddd97901efc16",
      "tree": "3e27260f25133fbaf7b8d95faa9b73016eac1b13",
      "parents": [
        "e0c2a9aa1e68455dc3439e95d85cabcaff073666"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Fri Jan 06 16:48:50 2012 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jan 11 09:23:26 2012 +0000"
      },
      "message": "GFS2: Fix a use-after-free that coverity spotted\n\nIn function gfs2_inplace_release it was trying to unlock a gfs2_holder\nstructure associated with a reservation, after said reservation was\nfreed. The problem is that the statements have the wrong order.\nThis patch corrects the order so that the reservation is freed after\nthe gfs2_holder is unlocked.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e0c2a9aa1e68455dc3439e95d85cabcaff073666",
      "tree": "22e0dea3972d74defb0219fbbcd5c9d395c0bdb3",
      "parents": [
        "e343a895a9f342f239c5e3c5ffc6c0b1707e6244"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Mon Jan 09 17:18:05 2012 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jan 11 09:23:05 2012 +0000"
      },
      "message": "GFS2: dlm based recovery coordination\n\nThis new method of managing recovery is an alternative to\nthe previous approach of using the userland gfs_controld.\n\n- use dlm slot numbers to assign journal id\u0027s\n- use dlm recovery callbacks to initiate journal recovery\n- use a dlm lock to determine the first node to mount fs\n- use a dlm lock to track journals that need recovery\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "49d41bae46f15da528ef9848fd7c9d38582aa8e9",
      "tree": "76907a9a5066642a32cb238ef8d8367fc612d064",
      "parents": [
        "7b3480f8b701170c046e1ed362946f5f0d005e13",
        "60f98d1839376d30e13f3e452dce2433fad3060e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 14:55:55 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 14:55:55 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm:\n  dlm: add recovery callbacks\n  dlm: add node slots and generation\n  dlm: move recovery barrier calls\n  dlm: convert rsb list to rb_tree\n"
    },
    {
      "commit": "eb59c505f8a5906ad2e053d14fab50eb8574fd6f",
      "tree": "c6e875adc12b481b916e847e8f80b8881a0fb02c",
      "parents": [
        "1619ed8f60959829d070d8f39cd2f8ca0e7135ce",
        "c233523b3d392e530033a7587d7970dc62a02361"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 13:10:57 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 13:10:57 2012 -0800"
      },
      "message": "Merge branch \u0027pm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm\n\n* \u0027pm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (76 commits)\n  PM / Hibernate: Implement compat_ioctl for /dev/snapshot\n  PM / Freezer: fix return value of freezable_schedule_timeout_killable()\n  PM / shmobile: Allow the A4R domain to be turned off at run time\n  PM / input / touchscreen: Make st1232 use device PM QoS constraints\n  PM / QoS: Introduce dev_pm_qos_add_ancestor_request()\n  PM / shmobile: Remove the stay_on flag from SH7372\u0027s PM domains\n  PM / shmobile: Don\u0027t include SH7372\u0027s INTCS in syscore suspend/resume\n  PM / shmobile: Add support for the sh7372 A4S power domain / sleep mode\n  PM: Drop generic_subsys_pm_ops\n  PM / Sleep: Remove forward-only callbacks from AMBA bus type\n  PM / Sleep: Remove forward-only callbacks from platform bus type\n  PM: Run the driver callback directly if the subsystem one is not there\n  PM / Sleep: Make pm_op() and pm_noirq_op() return callback pointers\n  PM/Devfreq: Add Exynos4-bus device DVFS driver for Exynos4210/4212/4412.\n  PM / Sleep: Merge internal functions in generic_ops.c\n  PM / Sleep: Simplify generic system suspend callbacks\n  PM / Hibernate: Remove deprecated hibernation snapshot ioctls\n  PM / Sleep: Fix freezer failures due to racy usermodehelper_is_disabled()\n  ARM: S3C64XX: Implement basic power domain support\n  PM / shmobile: Use common always on power domain governor\n  ...\n\nFix up trivial conflict in fs/xfs/xfs_buf.c due to removal of unused\nXBT_FORCE_SLEEP bit\n"
    },
    {
      "commit": "1619ed8f60959829d070d8f39cd2f8ca0e7135ce",
      "tree": "aa2599110827affb10e64a12e85a9d11f45854b1",
      "parents": [
        "29ad0de279002f9b6a63df5ba85328f5b633b842",
        "46cc1e5fce46e71f27e542125e045827a6bb776e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 13:07:54 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 13:07:54 2012 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw:\n  GFS2: local functions should be static\n  GFS2: We only need one ACL getting function\n  GFS2: Fix multi-block allocation\n  GFS2: decouple quota allocations from block allocations\n  GFS2: split function rgblk_search\n  GFS2: Fix up \"off by one\" in the previous patch\n  GFS2: move toward a generic multi-block allocator\n  GFS2: O_(D)SYNC support for fallocate\n  GFS2: remove vestigial al_alloced\n  GFS2: combine gfs2_alloc_block and gfs2_alloc_di\n  GFS2: Add non-try locks back to get_local_rgrp\n  GFS2: f_ra is always valid in dir readahead function\n  GFS2: Fix very unlikley memory leak in ACL xattr code\n  GFS2: More automated code analysis fixes\n  GFS2: Add readahead to sequential directory traversal\n  GFS2: Fix up REQ flags\n"
    },
    {
      "commit": "34c80b1d93e6e20ca9dea0baf583a5b5510d92d4",
      "tree": "7dcbf0a4e09464247e6992c8f44fcc872867bd3a",
      "parents": [
        "a6322de67b58a00e3a783ad9c87c2a11b2d67b47"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 08 21:32:45 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jan 06 23:19:54 2012 -0500"
      },
      "message": "vfs: switch -\u003eshow_options() to struct dentry *\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "60f98d1839376d30e13f3e452dce2433fad3060e",
      "tree": "b8b43859ad26519bd75a40920f6d1ca46f2d44a5",
      "parents": [
        "757a42719635495779462514458bbfbf12a37dac"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Nov 02 14:30:58 2011 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Jan 04 08:56:31 2012 -0600"
      },
      "message": "dlm: add recovery callbacks\n\nThese new callbacks notify the dlm user about lock recovery.\nGFS2, and possibly others, need to be aware of when the dlm\nwill be doing lock recovery for a failed lockspace member.\n\nIn the past, this coordination has been done between dlm and\nfile system daemons in userspace, which then direct their\nkernel counterparts.  These callbacks allow the same\ncoordination directly, and more simply.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "175a4eb7ea531cdbf6d574f5d5ba9aa0f5e8ed13",
      "tree": "841812b19b8a5546e472be321b32ca58528b76c3",
      "parents": [
        "030a8ba48fa6fa2a1304bab5b0f49360613c4af2"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 03:30:54 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:55:10 2012 -0500"
      },
      "message": "fs: propagate umode_t, misc bits\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1a67aafb5f72a436ca044293309fa7e6351d6a35",
      "tree": "d9e58600148de9d41b478cf815773b746647d15b",
      "parents": [
        "4acdaf27ebe2034c342f3be57ef49aed1ad885ef"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 01:52:52 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:54 2012 -0500"
      },
      "message": "switch -\u003emknod() to umode_t\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4acdaf27ebe2034c342f3be57ef49aed1ad885ef",
      "tree": "d89a876ee19cd88609a587f8aa6c464a52ee6d98",
      "parents": [
        "18bb1db3e7607e4a997d50991a6f9fa5b0f8722c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 01:42:34 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:53 2012 -0500"
      },
      "message": "switch -\u003ecreate() to umode_t\n\nvfs_create() ignores everything outside of 16bit subset of its\nmode argument; switching it to umode_t is obviously equivalent\nand it\u0027s the only caller of the method\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "18bb1db3e7607e4a997d50991a6f9fa5b0f8722c",
      "tree": "4ee4e584bc9a67f3ec14ce159d2d7d4a27e68d4a",
      "parents": [
        "8208a22bb8bd3c52ef634b4ff194f14892ab1713"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 01:41:39 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:53 2012 -0500"
      },
      "message": "switch vfs_mkdir() and -\u003emkdir() to umode_t\n\nvfs_mkdir() gets int, but immediately drops everything that might not\nfit into umode_t and that\u0027s the only caller of -\u003emkdir()...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6b520e0565422966cdf1c3759bd73df77b0f248c",
      "tree": "f63a26afa7342eb59b125271b16e30a219b59094",
      "parents": [
        "2a79f17e4a641a2f463cb512cb0ec349844a147b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Dec 12 15:51:45 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:52:40 2012 -0500"
      },
      "message": "vfs: fix the stupidity with i_dentry in inode destructors\n\nSeeing that just about every destructor got that INIT_LIST_HEAD() copied into\nit, there is no point whatsoever keeping this INIT_LIST_HEAD in inode_init_once();\nthe cost of taking it into inode_init_always() will be negligible for pipes\nand sockets and negative for everything else.  Not to mention the removal of\nboilerplate code from -\u003edestroy_inode() instances...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2a79f17e4a641a2f463cb512cb0ec349844a147b",
      "tree": "8801127310d0a3492941bb284e83393844a19685",
      "parents": [
        "8c9379e972e984d11c2b99121847ba9fa7a0c56c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Dec 09 08:06:57 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:52:40 2012 -0500"
      },
      "message": "vfs: mnt_drop_write_file()\n\nnew helper (wrapper around mnt_drop_write()) to be used in pair with\nmnt_want_write_file().\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a561be7100cd610bd2e082f3211c1dfb45835817",
      "tree": "a1016a11df967be6f289a4e8ae29597ba39df17e",
      "parents": [
        "f47ec3f28354795f000c14bf18ed967ec81a3ec3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Nov 23 11:57:51 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:52:35 2012 -0500"
      },
      "message": "switch a bunch of places to mnt_want_write_file()\n\nit\u0027s both faster (in case when file has been opened for write) and cleaner.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "46cc1e5fce46e71f27e542125e045827a6bb776e",
      "tree": "a1b4f04d4c3f5697d400cad71e12f9d29236de49",
      "parents": [
        "018a01cd27b3448a7c65272ccb1a1cbab6c2667e"
      ],
      "author": {
        "name": "H Hartley Sweeten",
        "email": "hartleys@visionengravers.com",
        "time": "Fri Sep 23 15:51:32 2011 -0700"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Dec 06 09:46:41 2011 +0000"
      },
      "message": "GFS2: local functions should be static\n\nQuiets the sparse noise:\n\nwarning: symbol \u0027gfs2_initxattrs\u0027 was not declared. Should it be static?\n\nSigned-off-by: H Hartley Sweeten \u003chsweeten@visionengravers.com\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "018a01cd27b3448a7c65272ccb1a1cbab6c2667e",
      "tree": "fa781a1cbe10a7c9c8d87f17c63d013e78d8a65e",
      "parents": [
        "6a8099ed5677ac1bb2c74b74a31fecb8282f56c2"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 23 13:31:51 2011 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 23 13:31:51 2011 +0000"
      },
      "message": "GFS2: We only need one ACL getting function\n\nThere is no need to have two versions of this function with\nslightly different arguments.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "6a8099ed5677ac1bb2c74b74a31fecb8282f56c2",
      "tree": "a6baa1fa5a8a9f140b76210fb5f8eb3fb68906c5",
      "parents": [
        "564e12b1157215171e7f3af5b70611ec7154327c"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Nov 22 12:18:51 2011 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Nov 22 12:18:51 2011 +0000"
      },
      "message": "GFS2: Fix multi-block allocation\n\nClean up gfs2_alloc_blocks so that it takes the full extent length\nrather than just the number of non-inode blocks as an argument. That\nwill only make a difference in the inode allocation case for now.\n\nAlso, this fixes the extent length handling around gfs2_alloc_extent() so\nthat multi block allocations will work again.\n\nThe rd_last_alloc block is set to the final block in the allocated\nextent (as per the update to i_goal, but referenced to a different\nstart point).\n\nThis also removes the dinode argument to rgblk_search() which is no\nlonger used.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "564e12b1157215171e7f3af5b70611ec7154327c",
      "tree": "f2a6e3394e59209f8e43a36f10f67bf1372c966c",
      "parents": [
        "b3e47ca0c2427ec72a74e36c6408784b6098f2b5"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Mon Nov 21 13:36:17 2011 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Nov 22 10:25:21 2011 +0000"
      },
      "message": "GFS2: decouple quota allocations from block allocations\n\nThis patch separates the code pertaining to allocations into two\nparts: quota-related information and block reservations.\nThis patch also moves all the block reservation structure allocations to\nfunction gfs2_inplace_reserve to simplify the code, and moves\nthe frees to function gfs2_inplace_release.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "a0acae0e886d44bd5ce6d2f173c1ace0fcf0d9f6",
      "tree": "0b763388360a5a9043986e1f2201e43df74ebc46",
      "parents": [
        "3a7cbd50f74907580eb47a8d08e1f29741b81abf"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 21 12:32:22 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 21 12:32:22 2011 -0800"
      },
      "message": "freezer: unexport refrigerator() and update try_to_freeze() slightly\n\nThere is no reason to export two functions for entering the\nrefrigerator.  Calling refrigerator() instead of try_to_freeze()\ndoesn\u0027t save anything noticeable or removes any race condition.\n\n* Rename refrigerator() to __refrigerator() and make it return bool\n  indicating whether it scheduled out for freezing.\n\n* Update try_to_freeze() to return bool and relay the return value of\n  __refrigerator() if freezing().\n\n* Convert all refrigerator() users to try_to_freeze().\n\n* Update documentation accordingly.\n\n* While at it, add might_sleep() to try_to_freeze().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Samuel Ortiz \u003csamuel@sortiz.org\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: KONISHI Ryusuke \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "b3e47ca0c2427ec72a74e36c6408784b6098f2b5",
      "tree": "88a435fa62c9b49225b2ff66b04f60fbc28a4796",
      "parents": [
        "465f0a760db4362f3353aaa95fea767e56370006"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Mon Nov 21 11:47:08 2011 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Nov 21 16:48:02 2011 +0000"
      },
      "message": "GFS2: split function rgblk_search\n\nThis patch splits function rgblk_search into a function that finds\nblocks to allocate (rgblk_search) and a function that assigns those\nblocks (gfs2_alloc_extent).\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@rehat.com\u003e\n\n"
    },
    {
      "commit": "465f0a760db4362f3353aaa95fea767e56370006",
      "tree": "36b4e12f747105902039ba1fcfe78a18b744531b",
      "parents": [
        "6e87ed0fc93ffbe2aec296e6912b1dcb19034d6c"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Nov 21 10:05:55 2011 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Nov 21 10:05:55 2011 +0000"
      },
      "message": "GFS2: Fix up \"off by one\" in the previous patch\n\nThe trace point should take extlen and not *ndata as the\nextent length.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "6e87ed0fc93ffbe2aec296e6912b1dcb19034d6c",
      "tree": "4f4ac522d34f35de3e3671996ddc35977aaa49ad",
      "parents": [
        "4442f2e03ed9646664c94e197e637b03324a6664"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Fri Nov 18 10:58:32 2011 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Nov 21 10:04:09 2011 +0000"
      },
      "message": "GFS2: move toward a generic multi-block allocator\n\nThis patch is a revision of the one I previously posted.\nI tried to integrate all the suggestions Steve gave.\nThe purpose of the patch is to change function gfs2_alloc_block\n(allocate either a dinode block or an extent of data blocks)\nto a more generic gfs2_alloc_blocks function that can\nallocate both a dinode _and_ an extent of data blocks in the\nsame call. This will ultimately help us create a multi-block\nreservation scheme to reduce file fragmentation.\n\nThis patch moves more toward a generic multi-block allocator that\ntakes a pointer to the number of data blocks to allocate, plus whether\nor not to allocate a dinode. In theory, it could be called to allocate\n(1) a single dinode block, (2) a group of one or more data blocks, or\n(3) a dinode plus several data blocks.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "4442f2e03ed9646664c94e197e637b03324a6664",
      "tree": "93f6219e9ccdc509413a773b5e815a4bcc7e0626",
      "parents": [
        "b9f417f311a7141d0ba67e5c8e535010d2712f2d"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Nov 21 10:01:25 2011 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Nov 21 10:01:25 2011 +0000"
      },
      "message": "GFS2: O_(D)SYNC support for fallocate\n\nAdd sync of metadata after fallocate for O_SYNC files to ensure that we\nmeet expectations for everything being on disk in this case.\nUnfortunately, the offset and len parameters are modified during the\ncourse of the fallocate function, so I\u0027ve had to add a couple of new\nvariables to call generic_write_sync() at the end.\n\nI know that potentially this will sync data as well within the range,\nbut I think that is a fairly harmless side-effect overall, since we\nwould not normally expect there to be any dirty data within the range in\nquestion.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\n"
    },
    {
      "commit": "b9f417f311a7141d0ba67e5c8e535010d2712f2d",
      "tree": "e9c74a8bd5958d9f4f39eb0da25e3ca16f0c17ee",
      "parents": [
        "3c5d785acfda7dffa63477951bb6864c6a49ed2e"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Nov 16 17:50:37 2011 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Nov 18 09:49:51 2011 +0000"
      },
      "message": "GFS2: remove vestigial al_alloced\n\nThis patch removes the vestigial variable al_alloced from\nthe gfs2_alloc structure. This is another baby step toward\nmulti-block reservations.\n\nMy next planned step is to decouple the quota variables\nfrom the gfs2_alloc structure so we can use a different\nmethod for allocations.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "3c5d785acfda7dffa63477951bb6864c6a49ed2e",
      "tree": "aa387498361ad753777363322a35b8feb80e5f85",
      "parents": [
        "c688b8b334d20acbc79b0383af2816ecf7365741"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Mon Nov 14 11:17:08 2011 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Nov 15 15:25:03 2011 +0000"
      },
      "message": "GFS2: combine gfs2_alloc_block and gfs2_alloc_di\n\nGFS2 functions gfs2_alloc_block and gfs2_alloc_di do basically\nthe same things, with a few exceptions. This patch combines\nthe two functions into a slightly more generic gfs2_alloc_block.\nHaving one centralized block allocation function will reduce\ncode redundancy and make it easier to implement multi-block\nreservations to reduce file fragmentation in the future.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "c688b8b334d20acbc79b0383af2816ecf7365741",
      "tree": "88d6db882149dcb05af56d8739af928360739bac",
      "parents": [
        "79c4c379c8f16a12c28ea2084db5138e33d17ebd"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Mon Nov 14 10:45:40 2011 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Nov 15 15:24:22 2011 +0000"
      },
      "message": "GFS2: Add non-try locks back to get_local_rgrp\n\nThis upstream patch had what I believe is an unintended consequence:\n\nhttp://git.kernel.org/?p\u003dlinux/kernel/git/steve/gfs2-3.0-nmw.git;a\u003dcommitdiff;h\u003dbeca42486749c1538a5ed58fe9dcc9f26d428c93\n\nThe patch changed function get_local_rgrp such that it ONLY\nused TRY locks for RGRP searches. Prior to that patch, the code\nused TRY locks during the first loop, and if that was unsuccessful,\nit used normal blocking locks on subsequent searches. This patch\nchanges it back to the old way.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "79c4c379c8f16a12c28ea2084db5138e33d17ebd",
      "tree": "f0d9648c0e4d1a087401c2e2cb7a4e5e9c80a99b",
      "parents": [
        "114b80ce2c05f91f10fffbf303080357d73c0675"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 09 13:46:06 2011 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 09 13:46:06 2011 +0000"
      },
      "message": "GFS2: f_ra is always valid in dir readahead function\n\nAs a result, we don\u0027t need to test it each time.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Bob Peterson \u003crpeterso@redhat.com\u003e\n"
    },
    {
      "commit": "114b80ce2c05f91f10fffbf303080357d73c0675",
      "tree": "3a4804a7cf7515d07baf9fbf899c07c95297f6ce",
      "parents": [
        "87654896ca619ff64f94d3881d6bd0ec7b29e25f"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 09 12:54:43 2011 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 09 12:54:43 2011 +0000"
      },
      "message": "GFS2: Fix very unlikley memory leak in ACL xattr code\n\nThis was spotted by automated code analysis. In case reading\nan ACL xattr failed (only likely to happen if there is an I/O\nerror for example, and even then only with unstuffed xattrs,\nso pretty difficult to trigger) a small amount of memory could\npotentially be leaked.\n\nThis patch adds a kfree to the error path, and also removes a\ntest which is no longer required (gfs2_ea_get_copy always\nreturns either a negative error, or a length)\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "87654896ca619ff64f94d3881d6bd0ec7b29e25f",
      "tree": "d5f19dca46c1d6aaa20a3a13acfe739eec0cc203",
      "parents": [
        "dfe4d34b39b80faff52489f950a18523da7581bf"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Nov 08 14:04:20 2011 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Nov 08 14:04:20 2011 +0000"
      },
      "message": "GFS2: More automated code analysis fixes\n\nA potentially uninitialised variable, some unreachable code,\nand the main part of this, fixing the error path in the\nunlink function.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "dfe4d34b39b80faff52489f950a18523da7581bf",
      "tree": "be478e2c4988612eef88a1669f774dd8f9f9b8af",
      "parents": [
        "20ed0535d35b74c9e4fa5777766d6e836fe3c90c"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Thu Oct 27 12:16:06 2011 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Nov 08 09:52:12 2011 +0000"
      },
      "message": "GFS2: Add readahead to sequential directory traversal\n\nThis patch adds read-ahead capability to GFS2\u0027s\ndirectory hash table management.  It greatly improves\nperformance for some directory operations.  For example:\nIn one of my file systems that has 1000 directories, each\nof which has 1000 files, time to execute a recursive\nls (time ls -fR /mnt/gfs2 \u003e /dev/null) was reduced\nfrom 2m2.814s on a stock kernel to 0m45.938s.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "20ed0535d35b74c9e4fa5777766d6e836fe3c90c",
      "tree": "9dc6ec31d998d52a5d66017ee737f108000134a7",
      "parents": [
        "1ea6b8f48918282bdca0b32a34095504ee65bab5"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Oct 31 09:52:02 2011 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Nov 08 09:51:53 2011 +0000"
      },
      "message": "GFS2: Fix up REQ flags\n\nChristoph has split up REQ_PRIO from REQ_META. That means that\nwe can drop REQ_PRIO from places where is it not needed. I\u0027m\nnot at all sure that the combination WRITE_FLUSH_FUA | REQ_PRIO\nmakes any kind of sense, anyway.\n\nIn addition, I\u0027ve added REQ_META to one place in the code where\nit was missing. REQ_PRIO has been left for read/writes triggered\nby glock acquisition and writeback only. We can adjust it again\nif required, but these are the most important points from a\nperformance perspective.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "32aaeffbd4a7457bf2f7448b33b5946ff2a960eb",
      "tree": "faf7ad871d87176423ff9ed1d1ba4d9c688fc23f",
      "parents": [
        "208bca0860406d16398145ddd950036a737c3c9d",
        "67b84999b1a8b1af5625b1eabe92146c5eb42932"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:44:47 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:44:47 2011 -0800"
      },
      "message": "Merge branch \u0027modsplit-Oct31_2011\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux\n\n* \u0027modsplit-Oct31_2011\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: (230 commits)\n  Revert \"tracing: Include module.h in define_trace.h\"\n  irq: don\u0027t put module.h into irq.h for tracking irqgen modules.\n  bluetooth: macroize two small inlines to avoid module.h\n  ip_vs.h: fix implicit use of module_get/module_put from module.h\n  nf_conntrack.h: fix up fallout from implicit moduleparam.h presence\n  include: replace linux/module.h with \"struct module\" wherever possible\n  include: convert various register fcns to macros to avoid include chaining\n  crypto.h: remove unused crypto_tfm_alg_modname() inline\n  uwb.h: fix implicit use of asm/page.h for PAGE_SIZE\n  pm_runtime.h: explicitly requires notifier.h\n  linux/dmaengine.h: fix implicit use of bitmap.h and asm/page.h\n  miscdevice.h: fix up implicit use of lists and types\n  stop_machine.h: fix implicit use of smp.h for smp_processor_id\n  of: fix implicit use of errno.h in include/linux/of.h\n  of_platform.h: delete needless include \u003clinux/module.h\u003e\n  acpi: remove module.h include from platform/aclinux.h\n  miscdevice.h: delete unnecessary inclusion of module.h\n  device_cgroup.h: delete needless include \u003clinux/module.h\u003e\n  net: sch_generic remove redundant use of \u003clinux/module.h\u003e\n  net: inet_timewait_sock doesnt need \u003clinux/module.h\u003e\n  ...\n\nFix up trivial conflicts (other header files, and  removal of the ab3550 mfd driver) in\n - drivers/media/dvb/frontends/dibx000_common.c\n - drivers/media/video/{mt9m111.c,ov6650.c}\n - drivers/mfd/ab3550-core.c\n - include/linux/dmaengine.h\n"
    },
    {
      "commit": "bfe8684869601dacfcb2cd69ef8cfd9045f62170",
      "tree": "4e213aaa766b26f43f0f9ec7998a7745239d9377",
      "parents": [
        "6d6b77f163c7eabedbba00ed2abb7d4a570bff76"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Oct 28 14:13:29 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@serles.lst.de",
        "time": "Wed Nov 02 12:53:43 2011 +0100"
      },
      "message": "filesystems: add set_nlink()\n\nReplace remaining direct i_nlink updates with a new set_nlink()\nupdater function.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nTested-by: Toshiyuki Okajima \u003ctoshi.okajima@jp.fujitsu.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "b9075fa968a0a4347aef35e235e2995c0e57dddd",
      "tree": "cf9f9716784e790d8a43339653256d9cf9178ff3",
      "parents": [
        "ae29bc92da01a2e9d278a9a58c3b307d41cc0254"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Oct 31 17:11:33 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:54 2011 -0700"
      },
      "message": "treewide: use __printf not __attribute__((format(printf,...)))\n\nStandardize the style for compiler based printf format verification.\nStandardized the location of __printf too.\n\nDone via script and a little typing.\n\n$ grep -rPl --include\u003d*.[ch] -w \"__attribute__\" * | \\\n  grep -vP \"^(tools|scripts|include/linux/compiler-gcc.h)\" | \\\n  xargs perl -n -i -e \u0027local $/; while (\u003c\u003e) { s/\\b__attribute__\\s*\\(\\s*\\(\\s*format\\s*\\(\\s*printf\\s*,\\s*(.+)\\s*,\\s*(.+)\\s*\\)\\s*\\)\\s*\\)/__printf($1, $2)/g ; print; }\u0027\n\n[akpm@linux-foundation.org: revert arch bits]\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: \"Kirill A. Shutemov\" \u003ckirill@shutemov.name\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "afeacc8c1f38b7bb93d4bc7b4ba04c2605061ef0",
      "tree": "e6eb248db3f932808ff2495a094e728d7d7f61e1",
      "parents": [
        "79bb1ee46ad1b76069108ca9b5467a3c14574744"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Thu May 26 16:00:52 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 19:30:31 2011 -0400"
      },
      "message": "fs: add export.h to files using EXPORT_SYMBOL/THIS_MODULE macros\n\nThese files were getting \u003clinux/module.h\u003e via an implicit include\npath, but we want to crush those out of existence since they cost\ntime during compiles of processing thousands of lines of headers\nfor no reason.  Give them the lightweight header that just contains\nthe EXPORT_SYMBOL infrastructure.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "f362f98e7c445643d27c610bb7a86b79727b592e",
      "tree": "399d9ebccdfbdfe9690ab1403a001d6f08e54b41",
      "parents": [
        "f793f2961170c0b49c1650e69e7825484159ce62",
        "f3c7691e8d30d88899b514675c7c86d19057b5fd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 10:49:34 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 10:49:34 2011 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/hch/vfs-queue\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/hch/vfs-queue: (21 commits)\n  leases: fix write-open/read-lease race\n  nfs: drop unnecessary locking in llseek\n  ext4: replace cut\u0027n\u0027pasted llseek code with generic_file_llseek_size\n  vfs: add generic_file_llseek_size\n  vfs: do (nearly) lockless generic_file_llseek\n  direct-io: merge direct_io_walker into __blockdev_direct_IO\n  direct-io: inline the complete submission path\n  direct-io: separate map_bh from dio\n  direct-io: use a slab cache for struct dio\n  direct-io: rearrange fields in dio/dio_submit to avoid holes\n  direct-io: fix a wrong comment\n  direct-io: separate fields only used in the submission path from struct dio\n  vfs: fix spinning prevention in prune_icache_sb\n  vfs: add a comment to inode_permission()\n  vfs: pass all mask flags check_acl and posix_acl_permission\n  vfs: add hex format for MAY_* flag values\n  vfs: indicate that the permission functions take all the MAY_* flags\n  compat: sync compat_stats with statfs.\n  vfs: add \"device\" tag to /proc/self/mountstats\n  cleanup: vfs: small comment fix for block_invalidatepage\n  ...\n\nFix up trivial conflict in fs/gfs2/file.c (llseek changes)\n"
    },
    {
      "commit": "f793f2961170c0b49c1650e69e7825484159ce62",
      "tree": "06d27973f9db1080c1460f32155ce2baf610c3d4",
      "parents": [
        "dabcbb1bae0f55378060b285062b20f6ec648c6a",
        "b99b98dc2673a123a73068f16720232d7be7e669"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 10:44:50 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 10:44:50 2011 -0700"
      },
      "message": "Merge http://sucs.org/~rohan/git/gfs2-3.0-nmw\n\n* http://sucs.org/~rohan/git/gfs2-3.0-nmw: (24 commits)\n  GFS2: Move readahead of metadata during deallocation into its own function\n  GFS2: Remove two unused variables\n  GFS2: Misc fixes\n  GFS2: rewrite fallocate code to write blocks directly\n  GFS2: speed up delete/unlink performance for large files\n  GFS2: Fix off-by-one in gfs2_blk2rgrpd\n  GFS2: Clean up -\u003epage_mkwrite\n  GFS2: Correctly set goal block after allocation\n  GFS2: Fix AIL flush issue during fsync\n  GFS2: Use cached rgrp in gfs2_rlist_add()\n  GFS2: Call do_strip() directly from recursive_scan()\n  GFS2: Remove obsolete assert\n  GFS2: Cache the most recently used resource group in the inode\n  GFS2: Make resource groups \"append only\" during life of fs\n  GFS2: Use rbtree for resource groups and clean up bitmap buffer ref count scheme\n  GFS2: Fix lseek after SEEK_DATA, SEEK_HOLE have been added\n  GFS2: Clean up gfs2_create\n  GFS2: Use -\u003edirty_inode()\n  GFS2: Fix bug trap and journaled data fsync\n  GFS2: Fix inode allocation error path\n  ...\n"
    },
    {
      "commit": "ef3d0fd27e90f67e35da516dafc1482c82939a60",
      "tree": "dea852eab2a52782867becffb11bce2577ed2b91",
      "parents": [
        "847cc6371ba820763773e993000410d6d8d23515"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Thu Sep 15 16:06:48 2011 -0700"
      },
      "committer": {
        "name": "root",
        "email": "root@serles.lst.de",
        "time": "Fri Oct 28 14:58:58 2011 +0200"
      },
      "message": "vfs: do (nearly) lockless generic_file_llseek\n\nThe i_mutex lock use of generic _file_llseek hurts.  Independent processes\naccessing the same file synchronize over a single lock, even though\nthey have no need for synchronization at all.\n\nUnder high utilization this can cause llseek to scale very poorly on larger\nsystems.\n\nThis patch does some rethinking of the llseek locking model:\n\nFirst the 64bit f_pos is not necessarily atomic without locks\non 32bit systems. This can already cause races with read() today.\nThis was discussed on linux-kernel in the past and deemed acceptable.\nThe patch does not change that.\n\nLet\u0027s look at the different seek variants:\n\nSEEK_SET: Doesn\u0027t really need any locking.\nIf there\u0027s a race one writer wins, the other loses.\n\nFor 32bit the non atomic update races against read()\nstay the same. Without a lock they can also happen\nagainst write() now.  The read() race was deemed\nacceptable in past discussions, and I think if it\u0027s\nok for read it\u0027s ok for write too.\n\n\u003d\u003e Don\u0027t need a lock.\n\nSEEK_END: This behaves like SEEK_SET plus it reads\nthe maximum size too. Reading the maximum size would have the\n32bit atomic problem. But luckily we already have a way to read\nthe maximum size without locking (i_size_read), so we\ncan just use that instead.\n\nWithout i_mutex there is no synchronization with write() anymore,\nhowever since the write() update is atomic on 64bit it just behaves\nlike another racy SEEK_SET.  On non atomic 32bit it\u0027s the same\nas SEEK_SET.\n\n\u003d\u003e Don\u0027t need a lock, but need to use i_size_read()\n\nSEEK_CUR: This has a read-modify-write race window\non the same file. One could argue that any application\ndoing unsynchronized seeks on the same file is already broken.\nBut for the sake of not adding a regression here I\u0027m\nusing the file-\u003ef_lock to synchronize this. Using this\nlock is much better than the inode mutex because it doesn\u0027t\nsynchronize between processes.\n\n\u003d\u003e So still need a lock, but can use a f_lock.\n\nThis patch implements this new scheme in generic_file_llseek.\nI dropped generic_file_llseek_unlocked and changed all callers.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "36b8d186e6cc8e32cb5227f5645a58e1bc0af190",
      "tree": "1000ad26e189e6ff2c53fb7eeff605f59c7ad94e",
      "parents": [
        "cd85b557414fe4cd44ea6608825e96612a5fe2b2",
        "c45ed235abf1b0b6666417e3c394f18717976acd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 25 09:45:31 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 25 09:45:31 2011 +0200"
      },
      "message": "Merge branch \u0027next\u0027 of git://selinuxproject.org/~jmorris/linux-security\n\n* \u0027next\u0027 of git://selinuxproject.org/~jmorris/linux-security: (95 commits)\n  TOMOYO: Fix incomplete read after seek.\n  Smack: allow to access /smack/access as normal user\n  TOMOYO: Fix unused kernel config option.\n  Smack: fix: invalid length set for the result of /smack/access\n  Smack: compilation fix\n  Smack: fix for /smack/access output, use string instead of byte\n  Smack: domain transition protections (v3)\n  Smack: Provide information for UDS getsockopt(SO_PEERCRED)\n  Smack: Clean up comments\n  Smack: Repair processing of fcntl\n  Smack: Rule list lookup performance\n  Smack: check permissions from user space (v2)\n  TOMOYO: Fix quota and garbage collector.\n  TOMOYO: Remove redundant tasklist_lock.\n  TOMOYO: Fix domain transition failure warning.\n  TOMOYO: Remove tomoyo_policy_memory_lock spinlock.\n  TOMOYO: Simplify garbage collector.\n  TOMOYO: Fix make namespacecheck warnings.\n  target: check hex2bin result\n  encrypted-keys: check hex2bin result\n  ...\n"
    }
  ],
  "next": "b99b98dc2673a123a73068f16720232d7be7e669"
}
