)]}'
{
  "log": [
    {
      "commit": "d205df9955feb9c2ae63ac1387804e225ff22605",
      "tree": "abae84cb6fc082f14072089bb0058b1bbd88c97a",
      "parents": [
        "24210071e0dd7da1a945a2a1686b93f2b2f3b410",
        "f90e5b5b136ede1f0fd15999e95f13124d6b0dbd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 07 18:44:10 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 07 18:44:10 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes:\n  GFS2: Processes waiting on inode glock that no processes are holding\n"
    },
    {
      "commit": "b7c2f036284452627d793af981877817b37d4351",
      "tree": "c96bbf7558512b27f4802994c9271ccd0f1c19f3",
      "parents": [
        "14587a2a25447813996e6fb9e48d48627cb75a5d",
        "8d2c50e3b65c8d48d51088f541c13fde46cc8133"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 13:19:00 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 13:19:00 2011 -0700"
      },
      "message": "Merge branch \u0027trivial\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6\n\n* \u0027trivial\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6:\n  gfs2: Drop __TIME__ usage\n  isdn/diva: Drop __TIME__ usage\n  atm: Drop __TIME__ usage\n  dlm: Drop __TIME__ usage\n  wan/pc300: Drop __TIME__ usage\n  parport: Drop __TIME__ usage\n  hdlcdrv: Drop __TIME__ usage\n  baycom: Drop __TIME__ usage\n  pmcraid: Drop __DATE__ usage\n  edac: Drop __DATE__ usage\n  rio: Drop __DATE__ usage\n  scsi/wd33c93: Drop __TIME__ usage\n  scsi/in2000: Drop __TIME__ usage\n  aacraid: Drop __TIME__ usage\n  media/cx231xx: Drop __TIME__ usage\n  media/radio-maxiradio: Drop __TIME__ usage\n  nozomi: Drop __TIME__ usage\n  cyclades: Drop __TIME__ usage\n"
    },
    {
      "commit": "8d2c50e3b65c8d48d51088f541c13fde46cc8133",
      "tree": "b0e073fdadba2c407b2e44579aaf5d2ae25cc526",
      "parents": [
        "3df3f2bf6104dca5cf225063436b7d6fff6793b1"
      ],
      "author": {
        "name": "Michal Marek",
        "email": "mmarek@suse.cz",
        "time": "Fri Apr 01 12:41:20 2011 +0200"
      },
      "committer": {
        "name": "Michal Marek",
        "email": "mmarek@suse.cz",
        "time": "Thu May 26 10:54:37 2011 +0200"
      },
      "message": "gfs2: Drop __TIME__ usage\n\nThe kernel already prints its build timestamp during boot, no need to\nrepeat it in random drivers and produce different object files each\ntime.\n\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: cluster-devel@redhat.com\nSigned-off-by: Michal Marek \u003cmmarek@suse.cz\u003e\n"
    },
    {
      "commit": "1495f230fa7750479c79e3656286b9183d662077",
      "tree": "e5e233bb9fe1916ccc7281e7dcc71b1572fb22c5",
      "parents": [
        "a09ed5e00084448453c8bada4dcd31e5fbfc2f21"
      ],
      "author": {
        "name": "Ying Han",
        "email": "yinghan@google.com",
        "time": "Tue May 24 17:12:27 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:26 2011 -0700"
      },
      "message": "vmscan: change shrinker API by passing shrink_control struct\n\nChange each shrinker\u0027s API by consolidating the existing parameters into\nshrink_control struct.  This will simplify any further features added w/o\ntouching each file of shrinker.\n\n[akpm@linux-foundation.org: fix build]\n[akpm@linux-foundation.org: fix warning]\n[kosaki.motohiro@jp.fujitsu.com: fix up new shrinker API]\n[akpm@linux-foundation.org: fix xfs warning]\n[akpm@linux-foundation.org: update gfs2]\nSigned-off-by: Ying Han \u003cyinghan@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f90e5b5b136ede1f0fd15999e95f13124d6b0dbd",
      "tree": "d632331ee9a282954c1d5ed6fa6160c59a1611fb",
      "parents": [
        "4a7df24ddc7097cd789a7527187826552ea0765e"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue May 24 10:44:42 2011 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed May 25 10:37:11 2011 +0100"
      },
      "message": "GFS2: Processes waiting on inode glock that no processes are holding\n\nThis patch fixes a race in the GFS2 glock state machine that may\nresult in lockups.  The symptom is that all nodes but one will\nhang, waiting for a particular glock.  All the holder records\nwill have the \"W\" (Waiting) bit set.  The other node will\ntypically have the glock stuck in Exclusive mode (EX) with no\nholder records, but the dinode will be cached.  In other words,\nan entry with \"I:\" will appear in the glock dump for that glock,\nbut nothing else.\n\nThe race has to do with the glock \"Pending Demote\" bit, which\ncan be set, then immediately reset, thus losing the fact that\nanother node needs the glock.  The sequence of events is:\n\n1. Something schedules the glock workqueue (e.g. glock request from fs)\n2. The glock workqueue gets to the point between the test of the reply pending\nbit and the spin lock:\n\n        if (test_and_clear_bit(GLF_REPLY_PENDING, \u0026gl-\u003egl_flags)) {\n                finish_xmote(gl, gl-\u003egl_reply);\n                drop_ref \u003d 1;\n        }\n        down_read(\u0026gfs2_umount_flush_sem);         \u003c---- i.e. here\n        spin_lock(\u0026gl-\u003egl_spin);\n\n3. In comes (a) the reply to our EX lock request setting GLF_REPLY_PENDING and\n            (b) the demote request which sets GLF_PENDING_DEMOTE\n\n4. The following test is executed:\n\n        if (test_and_clear_bit(GLF_PENDING_DEMOTE, \u0026gl-\u003egl_flags) \u0026\u0026\n            gl-\u003egl_state !\u003d LM_ST_UNLOCKED \u0026\u0026\n            gl-\u003egl_demote_state !\u003d LM_ST_EXCLUSIVE) {\n\nThis resets the pending demote flag, and gl-\u003egl_demote_state is not equal to\nexclusive, however because the reply from the dlm arrived after we checked for\nthe GLF_REPLY_PENDING flag, gl-\u003egl_state is still equal to unlocked, so\nalthough we reset the GLF_PENDING_DEMOTE flag, we didn\u0027t then set the\nGLF_DEMOTE flag or reinstate the GLF_PENDING_DEMOTE_FLAG.\n\nThe patch closes the timing window by only transitioning the\n\"Pending demote\" bit to the \"demote\" flag once we know the\nother conditions (not unlocked and not exclusive) are met.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "26b06a6958df0f12f1a654db8598433eb89cc024",
      "tree": "4f65fc66e5bef81d7ef16f620686a048c49c7196",
      "parents": [
        "6d3117b41295150d4ac70622055dd8f5529d86b2"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Sat May 21 19:21:07 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Sat May 21 19:21:07 2011 +0100"
      },
      "message": "GFS2: Wait properly when flushing the ail list\n\nThe ail flush code has always relied upon log flushing to prevent\nit from spinning needlessly. This fixes it to wait on the last\nI/O request submitted (we don\u0027t need to wait for all of it)\ninstead of either spinning with io_schedule or sleeping.\n\nAs a result cpu usage of gfs2_logd is much reduced with certain\nworkloads.\n\nReported-by: Abhijith Das \u003cadas@redhat.com\u003e\nTested-by: Abhijith Das \u003cadas@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "6d3117b41295150d4ac70622055dd8f5529d86b2",
      "tree": "64a74505be1099c968e1ca47c4fa6a0180cc1ee2",
      "parents": [
        "c21fd1a8c68ce3f49b00caf10337169262cfb8ad"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Sat May 21 14:05:58 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Sat May 21 14:05:58 2011 +0100"
      },
      "message": "GFS2: Wipe directory hash table metadata when deallocating a directory\n\nThe deallocation code for directories in GFS2 is largely divided into\ntwo parts. The first part deallocates any directory leaf blocks and\nmarks the directory as being a regular file when that is complete. The\nsecond stage was identical to deallocating regular files.\n\nRegular files have their data blocks in a different\naddress space to directories, and thus what would have been normal data\nblocks in a regular file (the hash table in a GFS2 directory) were\ndeallocated correctly. However, a reference to these blocks was left in the\njournal (assuming of course that some previous activity had resulted in\nthose blocks being in the journal or ail list).\n\nThis patch uses the i_depth as a test of whether the inode is an\nexhash directory (we cannot test the inode type as that has already\nbeen changed to a regular file at this stage in deallocation)\n\nThe original issue was reported by Chris Hertel as an issue he encountered\nrunning bonnie++\n\nReported-by: Christopher R. Hertel \u003ccrh@samba.org\u003e\nCc: Abhijith Das \u003cadas@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "6c1b8d94bcc1882e451d0e7a28a4a5253f4970ab",
      "tree": "1e612ce2e7b5e2164ffa49ad6518ca2834a7f9bb",
      "parents": [
        "82aff107f8c9194586f68e86412246629d05670a",
        "f2741d9898269e565c220ec295a8f5c3756c7585"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 20 13:28:45 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 20 13:28:45 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw: (32 commits)\n  GFS2: Move all locking inside the inode creation function\n  GFS2: Clean up symlink creation\n  GFS2: Clean up mkdir\n  GFS2: Use UUID field in generic superblock\n  GFS2: Rename ops_inode.c to inode.c\n  GFS2: Inode.c is empty now, remove it\n  GFS2: Move final part of inode.c into super.c\n  GFS2: Move most of the remaining inode.c into ops_inode.c\n  GFS2: Move gfs2_refresh_inode() and friends into glops.c\n  GFS2: Remove gfs2_dinode_print() function\n  GFS2: When adding a new dir entry, inc link count if it is a subdir\n  GFS2: Make gfs2_dir_del update link count when required\n  GFS2: Don\u0027t use gfs2_change_nlink in link syscall\n  GFS2: Don\u0027t use a try lock when promoting to a higher mode\n  GFS2: Double check link count under glock\n  GFS2: Improve bug trap code in -\u003ereleasepage()\n  GFS2: Fix ail list traversal\n  GFS2: make sure fallocate bytes is a multiple of blksize\n  GFS2: Add an AIL writeback tracepoint\n  GFS2: Make writeback more responsive to system conditions\n  ...\n"
    },
    {
      "commit": "f2741d9898269e565c220ec295a8f5c3756c7585",
      "tree": "36700a4cb6faee29ceae753474f0f0a9cbf899d7",
      "parents": [
        "160b4026dc3e75c0693d0123eca805e88cd200b6"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri May 13 12:11:17 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri May 13 12:11:17 2011 +0100"
      },
      "message": "GFS2: Move all locking inside the inode creation function\n\nNow that there are no longer any exceptions to the normal inode\ncreation code path, we can move the parts of the locking code\nwhich were duplicated in mkdir/mknod/create/symlink into the\ninode create function.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "160b4026dc3e75c0693d0123eca805e88cd200b6",
      "tree": "32aa1a6e23b09be65cabdbcd6be2a8fc3d50527f",
      "parents": [
        "e2d0a13bba051d7a9618b0952d91fac68175a71a"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri May 13 10:34:59 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri May 13 10:34:59 2011 +0100"
      },
      "message": "GFS2: Clean up symlink creation\n\nThis moves the symlink specific parts of inode creation\ninto the function where we initialise the rest of the\ndinode. As a result we have one less place where we need\nto look up the inode\u0027s buffer.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e2d0a13bba051d7a9618b0952d91fac68175a71a",
      "tree": "f1a28237be9b253da551bb20911ef5e7d256e7cf",
      "parents": [
        "32e471ef1057e812856739d26b4a87d929fb8aa1"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri May 13 09:55:55 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri May 13 09:55:55 2011 +0100"
      },
      "message": "GFS2: Clean up mkdir\n\nThis moves the initialisation of the directory into the inode\ncreation functions to avoid having to duplicate the lookup\nof the inode\u0027s buffer.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "32e471ef1057e812856739d26b4a87d929fb8aa1",
      "tree": "f4f0debf9505b91d284c4e93d4c5f1b5c5690991",
      "parents": [
        "2ab9cd1c63b519e37b21b504376822be983badba"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 10 15:01:59 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 10 15:01:59 2011 +0100"
      },
      "message": "GFS2: Use UUID field in generic superblock\n\nThe VFS superblock structure now has a UUID field, so we can use that\nin preference to the UUID field in the GFS2 superblock now.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "2ab9cd1c63b519e37b21b504376822be983badba",
      "tree": "6293f520ef56e77b5ad9de6d773b585643450ecf",
      "parents": [
        "64ea5402581485237d3b6e3a0cf2b364ad8bd580"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 10 13:12:49 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 10 13:12:49 2011 +0100"
      },
      "message": "GFS2: Rename ops_inode.c to inode.c\n\nThis is the final part of the ops_inode.c/inode.c reordering. We\nare left with a single file called inode.c which now contains\nall the inode operations, as expected.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "64ea5402581485237d3b6e3a0cf2b364ad8bd580",
      "tree": "3639c3de9d64ee89360ec190f3029766fc0ed9ca",
      "parents": [
        "9eed04cd99b0a497cf0da22658808a7f5b10d734"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 10 13:09:53 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 10 13:09:53 2011 +0100"
      },
      "message": "GFS2: Inode.c is empty now, remove it\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "9eed04cd99b0a497cf0da22658808a7f5b10d734",
      "tree": "42d8655ac9523ddd19bda5621de58b22a2a1de07",
      "parents": [
        "194c011fc4650d0dd1eecbc35bc26045108aca51"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon May 09 14:11:40 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon May 09 16:45:38 2011 +0100"
      },
      "message": "GFS2: Move final part of inode.c into super.c\n\nNow inode.c is empty.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "194c011fc4650d0dd1eecbc35bc26045108aca51",
      "tree": "1cb7769ab3df703336d17cc0835fc4a2132f51e6",
      "parents": [
        "d4b2cf1b0566eebfe39a6d70e9e4b5fa01ddaace"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon May 09 14:06:38 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon May 09 16:45:14 2011 +0100"
      },
      "message": "GFS2: Move most of the remaining inode.c into ops_inode.c\n\nThis is in preparation to remove inode.c and rename ops_inode.c\nto inode.c. Also most of the functions which were left in inode.c\nrelate to the creation and lookup of inodes. I\u0027m intending to work\non consolidating some of that code, and its easier when its all in\none place.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "d4b2cf1b0566eebfe39a6d70e9e4b5fa01ddaace",
      "tree": "2f682adea3ac272ea865335ee3449c056a96f088",
      "parents": [
        "94fb763b1a76a2000ad21f3119b05c90040acaf0"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon May 09 13:49:59 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon May 09 16:44:49 2011 +0100"
      },
      "message": "GFS2: Move gfs2_refresh_inode() and friends into glops.c\n\nEventually there will only be a single caller of this code, so lets\nmove it where it can be made static at some future date.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "94fb763b1a76a2000ad21f3119b05c90040acaf0",
      "tree": "72cb7fd210b8bb58e52403ba8c7fb35e93e2a5cc",
      "parents": [
        "3d6ecb7d16fd4248fce58387a982a0756ad3fcc2"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon May 09 13:36:10 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon May 09 16:44:29 2011 +0100"
      },
      "message": "GFS2: Remove gfs2_dinode_print() function\n\nThis function was intended for debugging purposes, but it is not very\nuseful. If we want to know what is on disk then all we need is a\nblock number and gfs2_edit can give us much better information about\nwhat is there. Otherwise, if we are interested in what is stored in\nthe in-core inode, it doesn\u0027t help us out there either.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "3d6ecb7d16fd4248fce58387a982a0756ad3fcc2",
      "tree": "b988b57c8a46fcfabe3738ccdb8982d67cd24c97",
      "parents": [
        "855d23ce2665c56437bd88fa6a0d45b6713bd194"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon May 09 13:30:08 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon May 09 16:43:53 2011 +0100"
      },
      "message": "GFS2: When adding a new dir entry, inc link count if it is a subdir\n\nThis adds an increment of the link count when we add a new directory\nentry, if that entry is itself a directory. This means that we no\nlonger need separate code to perform this operation.\n\nNow that both adding and removing directory entries automatically\nupdate the parent directory\u0027s link count if required, that makes\nthe code shorter and simpler than before.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "855d23ce2665c56437bd88fa6a0d45b6713bd194",
      "tree": "0678f8d0e93dfafd783bf9782f457bc7235b2128",
      "parents": [
        "2baee03fb916563d7cc597e5460e4cb938815c52"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon May 09 16:42:37 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon May 09 16:42:37 2011 +0100"
      },
      "message": "GFS2: Make gfs2_dir_del update link count when required\n\nWhen we remove an entry from a directory, we can save ourselves\nsome trouble if we know the type of the entry in question, since\nif it is itself a directory, we can update the link count of the\nparent at the same time as removing the directory entry.\n\nIn addition this patch also merges the rmdir and unlink code which\nwas almost identical anyway. This eliminates the calls to remove\nthe . and .. directory entries on each rmdir (not needed since the\ndirectory will be deallocated, anyway) which was the only thing preventing\npassing the dentry to gfs2_dir_del(). The passing of the dentry\nrather than just the name allows us to figure out the type of the entry\nwhich is being removed, and thus adjust the link count when required.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "2baee03fb916563d7cc597e5460e4cb938815c52",
      "tree": "7fb2318e11be52f956c0b2af44a62a4746d034ab",
      "parents": [
        "588da3b3be8b3225c2dd192aa782bf6c5c32eb84"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon May 09 12:08:36 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon May 09 16:35:25 2011 +0100"
      },
      "message": "GFS2: Don\u0027t use gfs2_change_nlink in link syscall\n\nThere are three users of gfs2_change_nlink which add to the link\ncount. Two of these are about to be removed in later patches, so\nthis means that there will no callers, when that happens allowing\nremoval of that function, also in a later patch.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "588da3b3be8b3225c2dd192aa782bf6c5c32eb84",
      "tree": "857beb3294af78b926e9e5d95ed2d97b0c9c909b",
      "parents": [
        "d192a8e5c6fec4fe8cdafebccc415db4074dee88"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu May 05 12:36:38 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu May 05 12:36:38 2011 +0100"
      },
      "message": "GFS2: Don\u0027t use a try lock when promoting to a higher mode\n\nPreviously we marked all locks being promoted to a higher mode\nwith the try flag to avoid any potential deadlocks issues. The\nDLM is able to detect these and report them in way that GFS2 can\ndeal with them correctly. So we can just request the required mode\nand wait for a response without needing to perform this check.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "d192a8e5c6fec4fe8cdafebccc415db4074dee88",
      "tree": "7c66540003f6aea894578f6786599bd08dcb9b7f",
      "parents": [
        "8f065d36508f283ee6cbeb05829f032d0b782a16"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu May 05 12:35:40 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu May 05 12:35:40 2011 +0100"
      },
      "message": "GFS2: Double check link count under glock\n\nTo avoid any possible races relating to the link count, we need to\nrecheck it under the inode\u0027s glock in all cases where it matters.\nAlso to ensure we never get any nasty surprises, this patch also\nensures that once the link count has hit zero it can never be\nelevated by rereading in data from disk.\n\nThe only place we cannot provide a proper solution is in rename\nin the case where we are removing a target inode and we discover\nthat the target inode has been already unlinked on another node.\nThe race window is very small, and we return EAGAIN in this case\nto indicate what has happened. The proper solution would be to move\nthe lookup parts of rename from the vfs into library calls which\nthe fs could call directly, but that is potentially a very big job\nand this fix should cover most cases for now.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "8f065d36508f283ee6cbeb05829f032d0b782a16",
      "tree": "3ebd2a660a5d13c773e16c024ce025df24a9b502",
      "parents": [
        "4f1de018215fb56940ce5793e11becd1e8cd6e44"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 03 11:49:19 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 03 11:49:19 2011 +0100"
      },
      "message": "GFS2: Improve bug trap code in -\u003ereleasepage()\n\nIf the buffer is dirty or pinned, then as well as printing a\nwarning, we should also refuse to release the page in\nquestion.\n\nCurrently this can occur if there is a race between mmap()ed\nwriters and O_DIRECT on the same file. With the addition of\n-\u003elaunder_page() in the future, we should be able to close\nthis gap.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "4f1de018215fb56940ce5793e11becd1e8cd6e44",
      "tree": "4f90d7ef5e219615eab7c45e421fa45cb2729b1e",
      "parents": [
        "6905d9e4dda6112f007e9090bca80507da158e63"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Apr 26 10:23:56 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 03 11:48:07 2011 +0100"
      },
      "message": "GFS2: Fix ail list traversal\n\nIn the recent patches to update the AIL list code, I managed to\nforget that the ail list lock got dropped, even though I\nadded a comment specifically to remind myself :(\n\nReported-by: Barry Marson \u003cbmarson@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "6905d9e4dda6112f007e9090bca80507da158e63",
      "tree": "d0a13a80a31c18ac148f678450e045196066eb06",
      "parents": [
        "c83ae9cad8776bab153a05cc466be39f14011091"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Tue Apr 26 01:13:24 2011 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 03 11:47:42 2011 +0100"
      },
      "message": "GFS2: make sure fallocate bytes is a multiple of blksize\n\nThe GFS2 fallocate code chooses a target size to for allocating chunks of\nspace.  Whenever it can\u0027t find any resource groups with enough space free, it\nhalves its target. Since this target is in bytes, eventually it will no longer\nbe a multiple of blksize.  As long as there is more space available in the\nresource group than the target, this isn\u0027t a problem, since gfs2 will use the\nactual space available, which is always a multiple of blksize.  However,\nwhen gfs couldn\u0027t fallocate a bigger chunk than the target, it was using the\nnon-blksize aligned number. This caused a BUG in later code that required\nblksize aligned offsets.  GFS2 now ensures that bytes is always a multiple of\nblksize\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "1879fd6a26571fd4e8e1f4bb3e7537bc936b1fe7",
      "tree": "5fb41fdaef01d462ff9c7ecfe688760a44e89b6a",
      "parents": [
        "3dd2ee4824b668a635d6d2bb6bc73f33708cab9f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Apr 25 14:01:36 2011 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 25 18:14:10 2011 -0700"
      },
      "message": "add hlist_bl_lock/unlock helpers\n\nNow that the whole dcache_hash_bucket crap is gone, go all the way and\nalso remove the weird locking layering violations for locking the hash\nbuckets.  Add hlist_bl_lock/unlock helpers to move the locking into the\nlist abstraction instead of requiring each caller to open code it.\nAfter all allowing for the bit locks is the whole point of these helpers\nover the plain hlist variant.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c83ae9cad8776bab153a05cc466be39f14011091",
      "tree": "b8ae7e94b03e3e6d21df24ff41d466ea552b6ccb",
      "parents": [
        "4667a0ec32867865fd4deccf834594b3ea831baf"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Apr 18 14:18:38 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 20 09:01:58 2011 +0100"
      },
      "message": "GFS2: Add an AIL writeback tracepoint\n\nAdd a tracepoint for monitoring writeback of the AIL.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "4667a0ec32867865fd4deccf834594b3ea831baf",
      "tree": "bff74fb13700e4087972fce94e45fd69dae7939b",
      "parents": [
        "f42ab0852946c1fb5103682c5897eb3da908e4b0"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Apr 18 14:18:09 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 20 09:01:37 2011 +0100"
      },
      "message": "GFS2: Make writeback more responsive to system conditions\n\nThis patch adds writeback_control to writing back the AIL\nlist. This means that we can then take advantage of the\ninformation we get in -\u003ewrite_inode() in order to set off\nsome pre-emptive writeback.\n\nIn addition, the AIL code is cleaned up a bit to make it\na bit simpler to understand.\n\nThere is still more which can usefully be done in this area,\nbut this is a good start at least.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "f42ab0852946c1fb5103682c5897eb3da908e4b0",
      "tree": "3847b23d2cac6bab422e6e001e0c6d6c66a81f1e",
      "parents": [
        "627c10b7e471b5dcfb7101d6cc74d219619c9bc4"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Apr 14 16:50:31 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 20 09:01:17 2011 +0100"
      },
      "message": "GFS2: Optimise glock lru and end of life inodes\n\nThe GLF_LRU flag introduced in the previous patch can be\nused to check if a glock is on the lru list when a new\nholder is queued and if so remove it, without having first\nto get the lru_lock.\n\nThe main purpose of this patch however is to optimise the\nglocks left over when an inode at end of life is being\nevicted. Previously such glocks were left with the GLF_LFLUSH\nflag set, so that when reclaimed, each one required a log flush.\nThis patch resets the GLF_LFLUSH flag when there is nothing\nleft to flush thus preventing later log flushes as glocks are\nreused or demoted.\n\nIn order to do this, we need to keep track of the number of\nrevokes which are outstanding, and also to clear the GLF_LFLUSH\nbit after a log commit when only revokes have been processed.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "627c10b7e471b5dcfb7101d6cc74d219619c9bc4",
      "tree": "28b485c2ce46035da616c1a20f4ac92bae96427a",
      "parents": [
        "dba898b02defa66e5fe493d58ec0293a940f9c93"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Apr 14 14:09:52 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 20 09:00:59 2011 +0100"
      },
      "message": "GFS2: Improve tracing support (adds two flags)\n\nThis adds support for two new flags. One keeps track of whether\nthe glock is on the LRU list or not. The other isn\u0027t really a\nflag as such, but an indication of whether the glock has an\nattached object or not. This indication is reported without\nany locking, which is ok since we do not dereference the object\npointer but merely report whether it is NULL or not.\n\nAlso, this fixes one place where a tracepoint was missing, which\nwas at the point we remove deallocated blocks from the journal.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "dba898b02defa66e5fe493d58ec0293a940f9c93",
      "tree": "68ef0414a4c0ba677c23dbca6ecab957e9f11c35",
      "parents": [
        "efc1a9c2a70e4e49f4cf179a7ed8064b7a406e4a"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Apr 14 09:54:02 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 20 09:00:41 2011 +0100"
      },
      "message": "GFS2: Clean up fsync()\n\nThis patch is designed to clean up GFS2\u0027s fsync\nimplementation and ensure that it really does get everything on\ndisk. Since -\u003ewrite_inode() has been updated, we can call that\nvia the vfs library function sync_inode_metadata() and the only\nremaining thing that has to be done is to ensure that we get\nany revoke records in the log after the inode has been written back.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "efc1a9c2a70e4e49f4cf179a7ed8064b7a406e4a",
      "tree": "2a80ecaa8759ff529c84fb4191dd035270f3dae9",
      "parents": [
        "29687a2ac8dfcd5363e515ea715ec226aef8c26b"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 13 13:03:34 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 20 09:00:24 2011 +0100"
      },
      "message": "GFS2: Remove unused macro\n\nThe buffer_in_io() macro has been unused for some time,\nso remove it.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "29687a2ac8dfcd5363e515ea715ec226aef8c26b",
      "tree": "a9bb35c110396c9c2a563c9442690cfb3368c8a8",
      "parents": [
        "5ac048bb7ea6e87b06504b999017cfa1f38f4092"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 30 16:33:25 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 20 08:59:48 2011 +0100"
      },
      "message": "GFS2: Alter point of entry to glock lru list for glocks with an address_space\n\nRather than allowing the glocks to be scheduled for possible\nreclaim as soon as they have exited the journal, this patch\ndelays their entry to the list until the glocks in question\nare no longer in use.\n\nThis means that we will rely on the vm for writeback of all\ndirty data and metadata from now on. When glocks are added\nto the lru list they should be freeable much faster since all\nthe I/O required to free them should have already been completed.\n\nThis should lead to much better I/O patterns under low memory\nconditions.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "5ac048bb7ea6e87b06504b999017cfa1f38f4092",
      "tree": "218a2dd0e6f6d39ead51bb32c10f801f6153c069",
      "parents": [
        "1027efaa238e1b65c07b6c2d9e270e548c2bdb07"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 30 16:25:51 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 20 08:59:25 2011 +0100"
      },
      "message": "GFS2: Use filemap_fdatawrite() to write back the AIL\n\nIn order to ensure that the mapping stats (and thus the bdi) are correctly\nupdated, this patch changes the AIL writeback to use the filemap_datawrite\nfunction. This helps prevent stalls in balance_dirty_pages() due to\nlarge amounts of dirty metadata when there is little or no dirty data\naround.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "1027efaa238e1b65c07b6c2d9e270e548c2bdb07",
      "tree": "dc02c7a8ebeb2b7c52a09b0150019f6236ca3de9",
      "parents": [
        "556bb17998a37dabf7e9e96aa545bcea899be745"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 30 16:13:25 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 20 08:55:07 2011 +0100"
      },
      "message": "GFS2: Make -\u003ewrite_inode() really write\n\nThe GFS2 -\u003ewrite_inode function should be more aggressive at writing\nback to the filesystem. This adopts the XFS system of returning\n-EAGAIN when the writeback has not been completely done. Also, we\nnow kick off in-place writeback when called with WB_SYNC_NONE,\nbut we only wait for it and flush the log when WB_SYNC_ALL is\nrequested.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "556bb17998a37dabf7e9e96aa545bcea899be745",
      "tree": "737b2de46857df04a47989b320ad5841dba29588",
      "parents": [
        "ec038c826b5c3c163ad1673390f10e869020c28c"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Mar 22 13:56:37 2011 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 20 08:54:44 2011 +0100"
      },
      "message": "GFS2: move function foreach_leaf to gfs2_dir_exhash_dealloc\n\nThe previous patches made function gfs2_dir_exhash_dealloc do nothing\nbut call function foreach_leaf.  This patch simplifies the code by\nmoving the entire function foreach_leaf into gfs2_dir_exhash_dealloc.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ec038c826b5c3c163ad1673390f10e869020c28c",
      "tree": "11d97ed7a40033e1bf113e3ca7fa28e4f22bfe0d",
      "parents": [
        "d24a7a439a329b60f8e168c03e80566519e09be2"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Mar 22 13:55:23 2011 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 20 08:54:26 2011 +0100"
      },
      "message": "GFS2: pass leaf_bh into leaf_dealloc\n\nFunction foreach_leaf used to look up the leaf block address and get\na buffer_head.  Then it would call leaf_dealloc which did the same\nlookup.  This patch combines the two operations by making foreach_leaf\npass the leaf bh to leaf_dealloc.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "d24a7a439a329b60f8e168c03e80566519e09be2",
      "tree": "a1e46fcf0cbe16e9338164da9442447a84872dc2",
      "parents": [
        "0d95326d9bd39f6eae80b91392b308c5fa8b1a0f"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Mar 22 13:54:03 2011 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 20 08:53:56 2011 +0100"
      },
      "message": "GFS2: Combine transaction from gfs2_dir_exhash_dealloc\n\nAt the end of function gfs2_dir_exhash_dealloc, it was setting the dinode\ntype to \"file\" to prevent directory corruption in case of a crash.\nIt was doing so in its own journal transaction.  This patch makes the\nchange occur when the last call is make to leaf_dealloc, since it needs\nto rewrite the directory dinode at that time anyway.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "0d95326d9bd39f6eae80b91392b308c5fa8b1a0f",
      "tree": "fcb34235afd36e192823295567f08fa05311b190",
      "parents": [
        "95c8e17f2f00f6af7474fac0e4050a79db6c3cea"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Mar 22 13:52:44 2011 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 20 08:53:35 2011 +0100"
      },
      "message": "GFS2: remove *leaf_call_t and simplify leaf_dealloc\n\nSince foreach_leaf is only called with leaf_dealloc as its only possible\ncall function, we can simplify the code by making it call leaf_dealloc\ndirectly.  This simplifies the code and eliminates the need for\nleaf_call_t, the generic call method.  This is a first small step in\nsimplifying the directory leaf deallocation code.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "95c8e17f2f00f6af7474fac0e4050a79db6c3cea",
      "tree": "5e4ee14869e6e01625620e56c43c8baeaf7b552c",
      "parents": [
        "2f666bcf757cb72549f360ef6da02f03620a48b6"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Mar 22 10:49:12 2011 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 20 08:53:12 2011 +0100"
      },
      "message": "GFS2: Dump better debug info if a bitmap inconsistency is detected\n\nOn rare occasions we encounter gfs2 problems where an\ninvalid bitmap state transition is attempted.  For example,\ntrying to \"unlink\" a free block.  In these cases, there\nis really no useful information logged to debug the problem.\nThis patch adds more debug details that should allow us to\nmore closely examine the problem and possibly solve it.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "44ad37d69b2cc421d5b5c7ad7fed16230685b092",
      "tree": "3632c63eef9e159947316f18d48054f082c0578e",
      "parents": [
        "001e8e8df4283dd4ef7a0297c012fce364c05cf1"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Thu Mar 17 16:19:58 2011 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Apr 18 15:23:50 2011 +0100"
      },
      "message": "GFS2: filesystem hang caused by incorrect lock order\n\nThis patch fixes a deadlock in GFS2 where two processes are trying\nto reclaim an unlinked dinode:\nOne holds the inode glock and calls gfs2_lookup_by_inum trying to look\nup the inode, which it can\u0027t, due to I_FREEING.  The other has set\nI_FREEING from vfs and is at the beginning of gfs2_delete_inode\nwaiting for the glock, which is held by the first.  The solution is to\nadd a new non_block parameter to the gfs2_iget function that causes it\nto return -ENOENT if the inode is being freed.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "001e8e8df4283dd4ef7a0297c012fce364c05cf1",
      "tree": "28942d4cadc3da175a352c9804dad502d2bc4336",
      "parents": [
        "0ee532062fa7ff0795b3862c2d50efe32e552f9f"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 30 14:17:51 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Apr 18 15:23:12 2011 +0100"
      },
      "message": "GFS2: Don\u0027t try to deallocate unlinked inodes when mounted ro\n\nThis adds a couple of missing tests to avoid read-only nodes\nfrom attempting to deallocate unlinked inodes.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nReported-by: Michel Andre de la Porte \u003cmadelaporte@ubi.com\u003e\n"
    },
    {
      "commit": "0ee532062fa7ff0795b3862c2d50efe32e552f9f",
      "tree": "5d8319628ea6d9d5099b7ebd669204ed0070548b",
      "parents": [
        "deab72d3797e3d4340c7ddf968234b8c3d01d7a5"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Thu Mar 17 21:54:46 2011 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Apr 18 15:22:52 2011 +0100"
      },
      "message": "GFS2: directly write blocks past i_size\n\nGFS2 was relying on the writepage code to write out the zeroed data for\nfallocate.  However, with FALLOC_FL_KEEP_SIZE set, this may be past i_size.\nIf it is, it will be ignored.  To work around this, gfs2 now calls\nwrite_dirty_buffer directly on the buffer_heads when FALLOC_FL_KEEP_SIZE\nis set, and it\u0027s writing past i_size.\n\nThis version is just a cleanup of my last version\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "deab72d3797e3d4340c7ddf968234b8c3d01d7a5",
      "tree": "f09c55adcff084fb1c616184169b1bbf55e7f7ac",
      "parents": [
        "a1b49cb7e2a7961ec3aa8b64860bf480d4ec9077"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Mar 16 16:32:39 2011 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Apr 18 15:22:35 2011 +0100"
      },
      "message": "GFS2: write_end error path fails to unlock transaction lock\n\nI did an audit of gfs2\u0027s transaction glock for bugzilla bug\n658619 and ran across this:\n\nIn function gfs2_write_end, in the unlikely event that\ngfs2_meta_inode_buffer returns an error, the code may forget\nto unlock the transaction lock because the \"failed\" label\nappears after the call to function gfs2_trans_end.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "6c5103890057b1bb781b26b7aae38d33e4c517d8",
      "tree": "e6e57961dcddcb5841acb34956e70b9dc696a880",
      "parents": [
        "3dab04e6978e358ad2307bca563fabd6c5d2c58b",
        "9d2e157d970a73b3f270b631828e03eb452d525e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block: (65 commits)\n  Documentation/iostats.txt: bit-size reference etc.\n  cfq-iosched: removing unnecessary think time checking\n  cfq-iosched: Don\u0027t clear queue stats when preempt.\n  blk-throttle: Reset group slice when limits are changed\n  blk-cgroup: Only give unaccounted_time under debug\n  cfq-iosched: Don\u0027t set active queue in preempt\n  block: fix non-atomic access to genhd inflight structures\n  block: attempt to merge with existing requests on plug flush\n  block: NULL dereference on error path in __blkdev_get()\n  cfq-iosched: Don\u0027t update group weights when on service tree\n  fs: assign sb-\u003es_bdi to default_backing_dev_info if the bdi is going away\n  block: Require subsystems to explicitly allocate bio_set integrity mempool\n  jbd2: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  jbd: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  fs: make fsync_buffers_list() plug\n  mm: make generic_writepages() use plugging\n  blk-cgroup: Add unaccounted time to timeslice_used.\n  block: fixup plugging stubs for !CONFIG_BLOCK\n  block: remove obsolete comments for blkdev_issue_zeroout.\n  blktrace: Use rq-\u003ecmd_flags directly in blk_add_trace_rq.\n  ...\n\nFix up conflicts in fs/{aio.c,super.c}\n"
    },
    {
      "commit": "2e1496707560ecf98e9b0604622c0990f94861d3",
      "tree": "d1473b70fad31a903fedc87221680678a6c6c5f6",
      "parents": [
        "e795b71799ff0b27365020c9ddaa25d0d83f99c8"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serge@hallyn.com",
        "time": "Wed Mar 23 16:43:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:47:13 2011 -0700"
      },
      "message": "userns: rename is_owner_or_cap to inode_owner_or_capable\n\nAnd give it a kernel-doc comment.\n\n[akpm@linux-foundation.org: btrfs changed in linux-next]\nSigned-off-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a44f99c7efdb88fa41128065c9a9445c19894e34",
      "tree": "9d9dc6026b2c0409eca05e360c98b8a688ccdb1e",
      "parents": [
        "b87a2d3e3147bd140da2eae584772c353d11421b",
        "22942c00a6ad6e9e93b53811a6de72c821c15d22"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 20 18:14:55 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 20 18:14:55 2011 -0700"
      },
      "message": "Merge branch \u0027trivial\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6\n\n* \u0027trivial\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6: (25 commits)\n  video: change to new flag variable\n  scsi: change to new flag variable\n  rtc: change to new flag variable\n  rapidio: change to new flag variable\n  pps: change to new flag variable\n  net: change to new flag variable\n  misc: change to new flag variable\n  message: change to new flag variable\n  memstick: change to new flag variable\n  isdn: change to new flag variable\n  ieee802154: change to new flag variable\n  ide: change to new flag variable\n  hwmon: change to new flag variable\n  dma: change to new flag variable\n  char: change to new flag variable\n  fs: change to new flag variable\n  xtensa: change to new flag variable\n  um: change to new flag variables\n  s390: change to new flag variable\n  mips: change to new flag variable\n  ...\n\nFix up trivial conflict in drivers/hwmon/Makefile\n"
    },
    {
      "commit": "0ccd234ca04b09a156f8771af316ac9de2fa7312",
      "tree": "b4b990acd2bca0c755b630e7ffe4a7bf08cd4882",
      "parents": [
        "3996eabbab5597d27d5140e1d8f9e3f1145f8b40"
      ],
      "author": {
        "name": "matt mooney",
        "email": "mfm@muteddisk.com",
        "time": "Fri Jan 14 06:12:35 2011 -0800"
      },
      "committer": {
        "name": "Michal Marek",
        "email": "mmarek@suse.cz",
        "time": "Thu Mar 17 14:02:57 2011 +0100"
      },
      "message": "fs: change to new flag variable\n\nReplace EXTRA_CFLAGS with ccflags-y. And change ntfs-objs to ntfs-y\nfor cleaner conditional inclusion.\n\nSigned-off-by: matt mooney \u003cmfm@muteddisk.com\u003e\nAcked-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: Michal Marek \u003cmmarek@suse.cz\u003e\n"
    },
    {
      "commit": "0f6e0e8448a16d8d22119ce91d8dd24b44865b51",
      "tree": "7c295c02db035fc6a0b867465911a2bc9dc6b1ef",
      "parents": [
        "0d2ecee2bdb2a19d04bc5cefac0f86e790f1aad4",
        "a002951c97ff8da49938c982a4c236bf2fafdc9f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 16 09:15:43 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 16 09:15:43 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: (33 commits)\n  AppArmor: kill unused macros in lsm.c\n  AppArmor: cleanup generated files correctly\n  KEYS: Add an iovec version of KEYCTL_INSTANTIATE\n  KEYS: Add a new keyctl op to reject a key with a specified error code\n  KEYS: Add a key type op to permit the key description to be vetted\n  KEYS: Add an RCU payload dereference macro\n  AppArmor: Cleanup make file to remove cruft and make it easier to read\n  SELinux: implement the new sb_remount LSM hook\n  LSM: Pass -o remount options to the LSM\n  SELinux: Compute SID for the newly created socket\n  SELinux: Socket retains creator role and MLS attribute\n  SELinux: Auto-generate security_is_socket_class\n  TOMOYO: Fix memory leak upon file open.\n  Revert \"selinux: simplify ioctl checking\"\n  selinux: drop unused packet flow permissions\n  selinux: Fix packet forwarding checks on postrouting\n  selinux: Fix wrong checks for selinux_policycap_netpeer\n  selinux: Fix check for xfrm selinux context algorithm\n  ima: remove unnecessary call to ima_must_measure\n  IMA: remove IMA imbalance checking\n  ...\n"
    },
    {
      "commit": "3ae2a1ce2e7b70254e5c9e465adefac9cba191d6",
      "tree": "388da81c97a92861b84b408eb12a494d859cca7a",
      "parents": [
        "26a992dbc24e34cbdd03621d1c97ce571ad74e65",
        "7e32d02613a72a39ba01638337c609a9a866c653"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 16 08:58:43 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 16 08:58:43 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw:\n  GFS2: Don\u0027t use _raw version of RCU dereference\n  GFS2: Adding missing unlock_page()\n  GFS2: Update to AIL list locking\n  GFS2: introduce AIL lock\n  GFS2: fix block allocation check for fallocate\n  GFS2: Optimize glock multiple-dequeue code\n  GFS2: Remove potential race in flock code\n  GFS2: Fix glock deallocation race\n  GFS2: quota allows exceeding hard limit\n  GFS2: deallocation performance patch\n  GFS2: panics on quotacheck update\n  GFS2: Improve cluster mmap scalability\n  GFS2: Fix glock queue trace point\n  GFS2: Post-VFS scale update for RCU path walk\n  GFS2: Use RCU for glock hash table\n"
    },
    {
      "commit": "a002951c97ff8da49938c982a4c236bf2fafdc9f",
      "tree": "d43e7885ea7376df0a47a0fc8ceca66dc5bfa357",
      "parents": [
        "521cb40b0c44418a4fd36dc633f575813d59a43d",
        "c151694b2c48d956ac8c8c59c6927f89cc29ef70"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Mar 16 09:41:17 2011 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Mar 16 09:41:17 2011 +1100"
      },
      "message": "Merge branch \u0027next\u0027 into for-linus\n"
    },
    {
      "commit": "7e32d02613a72a39ba01638337c609a9a866c653",
      "tree": "b45f3c19b4054d1790b6f5b81b8b416cde41992e",
      "parents": [
        "6c474f7bc1ef70bc05ce486e7e7e524124122de8"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Mar 15 08:32:14 2011 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Mar 15 08:58:17 2011 +0000"
      },
      "message": "GFS2: Don\u0027t use _raw version of RCU dereference\n\nAs per RCU glock patch review comments, don\u0027t use the _raw\nversion of this function here.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "6c474f7bc1ef70bc05ce486e7e7e524124122de8",
      "tree": "c052a112e8719fdc8e72cf857be3ceaf183a6ac5",
      "parents": [
        "c618e87a5fd02aaad006c12d5a80a231dfa39250"
      ],
      "author": {
        "name": "Maxim",
        "email": "maxim.patlasov@gmail.com",
        "time": "Mon Mar 14 13:19:21 2011 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 14 13:19:21 2011 +0000"
      },
      "message": "GFS2: Adding missing unlock_page()\n\ngfs2_write_begin() calls grab_cache_page_write_begin() that returns *locked*\npage. Correspondent error-handling path lacks for unlock_page() call:\n\n\u003e out:\n\u003e \tif (error \u003d\u003d 0)\n\u003e \t\treturn 0;\n\u003e\n\u003e \tpage_cache_release(page);\n\nThe whole system hangs if gfs2_unstuff_dinode() called from gfs2_write_begin()\nfailed for some reason.\n\nReported-by: Maxim \u003cmaxim.patlasov@gmail.com\u003e\nSigned-off-by: Maxim \u003cmaxim.patlasov@gmail.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "5fe0c2378884e68beb532f5890cc0e3539ac747b",
      "tree": "be25414052184e146049ea6466854366559d5528",
      "parents": [
        "c8b91accfa1059d5565443193d89572eca2f5dd6"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Sat Jan 29 18:43:25 2011 +0530"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 14 09:15:28 2011 -0400"
      },
      "message": "exportfs: Return the minimum required handle size\n\nThe exportfs encode handle function should return the minimum required\nhandle size. This helps user to find out the handle size by passing 0\nhandle size in the first step and then redoing to the call again with\nthe returned handle size value.\n\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c618e87a5fd02aaad006c12d5a80a231dfa39250",
      "tree": "3f8f1f39fb6dedf3cb72fbd71377cc0eecafc7ce",
      "parents": [
        "d6a079e82efd5fcbb1c7295f22e123c2cc748018"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 14 12:40:29 2011 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 14 12:40:29 2011 +0000"
      },
      "message": "GFS2: Update to AIL list locking\n\nThe previous patch missed a couple of places where the AIL list\nneeded locking, so this fixes up those places, plus a comment\nis corrected too.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "d6a079e82efd5fcbb1c7295f22e123c2cc748018",
      "tree": "f95f3369dfb560bfc5d282577ca1edec0487e1d7",
      "parents": [
        "e4a7b7b0c98efcdcc4c1f6eb10925dec1fbc4016"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri Mar 11 11:52:25 2011 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Mar 11 11:52:25 2011 +0000"
      },
      "message": "GFS2: introduce AIL lock\n\nThe log lock is currently used to protect the AIL lists and\nthe movements of buffers into and out of them. The lists\nare self contained and no log specific items outside the\nlists are accessed when starting or emptying the AIL lists.\n\nHence the operation of the AIL does not require the protection\nof the log lock so split them out into a new AIL specific lock\nto reduce the amount of traffic on the log lock. This will\nalso reduce the amount of serialisation that occurs when\nthe gfs2_logd pushes on the AIL to move it forward.\n\nThis reduces the impact of log pushing on sequential write\nthroughput.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e4a7b7b0c98efcdcc4c1f6eb10925dec1fbc4016",
      "tree": "72b28371e1e0397a1fb39c103d2062593e3a3a24",
      "parents": [
        "fa1bbdea300a15ec7c1186a5e53de33a5b1672f5"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Fri Mar 11 00:49:09 2011 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Mar 11 09:26:48 2011 +0000"
      },
      "message": "GFS2: fix block allocation check for fallocate\n\nGFS2 fallocate wasn\u0027t properly checking if a blocks were already allocated.\nIn write_empty_blocks(), if a page didn\u0027t have buffer_heads attached, GFS2\nwas always treating it as if there were no blocks allocated for that page.\nGFS2 now calls gfs2_block_map() to check if the blocks are allocated before\nwriting them out.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "fa1bbdea300a15ec7c1186a5e53de33a5b1672f5",
      "tree": "7b10ada8427c40494bd752817f5ad9dc7f7db35d",
      "parents": [
        "0a33443b38746f35fc4acc8a5af6c7099e03ea40"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Thu Mar 10 11:41:57 2011 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Mar 11 09:24:54 2011 +0000"
      },
      "message": "GFS2: Optimize glock multiple-dequeue code\n\nThis is a small patch that optimizes multiple glock dequeue\noperations.  It changes the unlock order to be more efficient\nand makes it easier for lock debugging tools to unravel.  It\nalso eliminates the need for the temp variable x, although\nthat would likely be optimized out.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "53fe924161ff18d24c5c1c256549e9c1b9874827",
      "tree": "4447ddc370f8138952146e54c515675cc026a2ee",
      "parents": [
        "529c5f958f9e60abaa7407986034b17d17536bf2"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 10 03:44:48 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 10 03:44:48 2011 -0500"
      },
      "message": "gfs2: fix d_revalidate oopsen on NFS exports\n\ncan\u0027t blindly check nd-\u003eflags in -\u003ed_revalidate()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4c63f5646e405b5010cc9499419060bf2e838f5b",
      "tree": "df91ba315032c8ec4aafeb3ab96fdfa7c6c656e1",
      "parents": [
        "cafb0bfca1a73efd6d8a4a6a6a716e6134b96c24",
        "69d60eb96ae8a73cf9b79cf28051caf973006011"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:58:35 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:58:35 2011 +0100"
      },
      "message": "Merge branch \u0027for-2.6.39/stack-plug\u0027 into for-2.6.39/core\n\nConflicts:\n\tblock/blk-core.c\n\tblock/blk-flush.c\n\tdrivers/md/raid1.c\n\tdrivers/md/raid10.c\n\tdrivers/md/raid5.c\n\tfs/nilfs2/btnode.c\n\tfs/nilfs2/mdt.c\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "721a9602e6607417c6bc15b18e97a2f35266c690",
      "tree": "4987991e43f35b8b3b685fea0040c5265b578996",
      "parents": [
        "cf15900e1209d5b46ec2d24643adbf561830935f"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Mar 09 11:56:30 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:52:27 2011 +0100"
      },
      "message": "block: kill off REQ_UNPLUG\n\nWith the plugging now being explicitly controlled by the\nsubmitter, callers need not pass down unplugging hints\nto the block layer. If they want to unplug, it\u0027s because they\nmanually plugged on their own - in which case, they should just\nunplug at will.\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "7eaceaccab5f40bbfda044629a6298616aeaed50",
      "tree": "33954d12f63e25a47eb6d86ef3d3d0a5e62bf752",
      "parents": [
        "73c101011926c5832e6e141682180c4debe2cf45"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:52:07 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:52:07 2011 +0100"
      },
      "message": "block: remove per-queue plugging\n\nCode has been converted over to the new explicit on-stack plugging,\nand delay users have been converted to use the new API for that.\nSo lets kill off the old plugging along with aops-\u003esync_page().\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "0a33443b38746f35fc4acc8a5af6c7099e03ea40",
      "tree": "523d8bec4c49a3b04b46fe275e1c4ef3f18fba7a",
      "parents": [
        "fc0e38dae645f65424d1fb5d2a938aab8ce48a58"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 09 11:14:32 2011 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 09 11:14:32 2011 +0000"
      },
      "message": "GFS2: Remove potential race in flock code\n\nThis patch ensures that we always wait for glock demotion when\ndropping flocks on a file in order to prevent any race\nconditions associated with further flock calls or closing\nthe file.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "fc0e38dae645f65424d1fb5d2a938aab8ce48a58",
      "tree": "8b0a89a0de01a0504a002a184a290a53545fce82",
      "parents": [
        "662e3a551b468c7338f5291d7a00389fe85885e2"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 09 10:58:04 2011 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 09 10:58:04 2011 +0000"
      },
      "message": "GFS2: Fix glock deallocation race\n\nThis patch fixes a race in deallocating glocks which was introduced\nin the RCU glock patch. We need to ensure that the glock count is\nkept correct even in the case that there is a race to add a new\nglock into the hash table. Also, to avoid having to wait for an\nRCU grace period, the glock counter can be decremented before\ncall_rcu() is called.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "662e3a551b468c7338f5291d7a00389fe85885e2",
      "tree": "4e4939e0c1f1f5ce66541982476e68f24f83221b",
      "parents": [
        "4c16c36ad62fff8485215bd803d778eb2bd0b8bd"
      ],
      "author": {
        "name": "Abhijith Das",
        "email": "adas@redhat.com",
        "time": "Tue Mar 08 10:40:42 2011 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 09 09:32:44 2011 +0000"
      },
      "message": "GFS2: quota allows exceeding hard limit\n\nImmediately after being synced to disk, cached quotas are zeroed out and a\nsubsequent access of the cached quotas results in incorrect zero values. This\nmeant that gfs2 assumed the actual usage to be the zero (or near-zero) usage\nvalues it found in the cached quotas and comparison against warn/limits never\ntriggered a quota violation.\n\nThis patch adds a new flag QDF_REFRESH that is set after a sync so that the\ncached quotas are forcefully refreshed from disk on a subsequent access on\nseeing this flag set.\n\nResolves: rhbz#675944\nSigned-off-by: Abhi Das \u003cadas@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "fe3fa43039d47ee4e22caf460b79b62a14937f79",
      "tree": "9eab8d00f1227b9fe0959f32a62d892ed35803ba",
      "parents": [
        "ee009e4a0d4555ed522a631bae9896399674f064",
        "026eb167ae77244458fa4b4b9fc171209c079ba7"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Mar 08 11:38:10 2011 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Mar 08 11:38:10 2011 +1100"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.infradead.org/users/eparis/selinux into next\n"
    },
    {
      "commit": "4c16c36ad62fff8485215bd803d778eb2bd0b8bd",
      "tree": "2cbe195639b291397060f5639abb21bcef82bc61",
      "parents": [
        "e79a46a0302a6bf8f879da43c00373b6ed1081ea"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Feb 23 16:11:33 2011 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Feb 24 12:13:48 2011 +0000"
      },
      "message": "GFS2: deallocation performance patch\n\nThis patch is a performance improvement to GFS2\u0027s dealloc code.\nRather than update the quota file and statfs file for every\nsingle block that\u0027s stripped off in unlink function do_strip,\nthis patch keeps track and updates them once for every layer\nthat\u0027s stripped.  This is done entirely inside the existing\ntransaction, so there should be no risk of corruption.\nThe other functions that deallocate blocks will be unaffected\nbecause they are using wrapper functions that do the same\nthing that they do today.\n\nI tested this code on my roth cluster by creating 200\nfiles in a directory, each of which is 100MB, then on\nfour nodes, I simultaneously deleted the files, thus competing\nfor GFS2 resources (but different files).  The commands\nI used were:\n\n[root@roth-01]# time for i in `seq 1 4 200` ; do rm /mnt/gfs2/bigdir/gfs2.$i; done\n[root@roth-02]# time for i in `seq 2 4 200` ; do rm /mnt/gfs2/bigdir/gfs2.$i; done\n[root@roth-03]# time for i in `seq 3 4 200` ; do rm /mnt/gfs2/bigdir/gfs2.$i; done\n[root@roth-05]# time for i in `seq 4 4 200` ; do rm /mnt/gfs2/bigdir/gfs2.$i; done\n\nThe performance increase was significant:\n\n             roth-01     roth-02     roth-03     roth-05\n             ---------   ---------   ---------   ---------\nold: real    0m34.027    0m25.021s   0m23.906s   0m35.646s\nnew: real    0m22.379s   0m24.362s   0m24.133s   0m18.562s\n\nTotal time spent deleting:\nold: 118.6s\nnew:  89.4\n\nFor this particular case, this showed a 25% performance increase for\nGFS2 unlinks.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "2aa15890f3c191326678f1bd68af61ec6b8753ec",
      "tree": "347f5fdcd0678b12be92f266cd2a5e7a74749403",
      "parents": [
        "78794b2cdeac37ac1fd950fc9c4454b56d88ac03"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Feb 23 13:49:47 2011 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 23 19:52:52 2011 -0800"
      },
      "message": "mm: prevent concurrent unmap_mapping_range() on the same inode\n\nMichael Leun reported that running parallel opens on a fuse filesystem\ncan trigger a \"kernel BUG at mm/truncate.c:475\"\n\nGurudas Pai reported the same bug on NFS.\n\nThe reason is, unmap_mapping_range() is not prepared for more than\none concurrent invocation per inode.  For example:\n\n  thread1: going through a big range, stops in the middle of a vma and\n     stores the restart address in vm_truncate_count.\n\n  thread2: comes in with a small (e.g. single page) unmap request on\n     the same vma, somewhere before restart_address, finds that the\n     vma was already unmapped up to the restart address and happily\n     returns without doing anything.\n\nAnother scenario would be two big unmap requests, both having to\nrestart the unmapping and each one setting vm_truncate_count to its\nown value.  This could go on forever without any of them being able to\nfinish.\n\nTruncate and hole punching already serialize with i_mutex.  Other\ncallers of unmap_mapping_range() do not, and it\u0027s difficult to get\ni_mutex protection for all callers.  In particular -\u003ed_revalidate(),\nwhich calls invalidate_inode_pages2_range() in fuse, may be called\nwith or without i_mutex.\n\nThis patch adds a new mutex to \u0027struct address_space\u0027 to prevent\nrunning multiple concurrent unmap_mapping_range() on the same mapping.\n\n[ We\u0027ll hopefully get rid of all this with the upcoming mm\n  preemptibility series by Peter Zijlstra, the \"mm: Remove i_mmap_mutex\n  lockbreak\" patch in particular.  But that is for 2.6.39 ]\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nReported-by: Michael Leun \u003clkml20101129@newton.leun.net\u003e\nReported-by: Gurudas Pai \u003cgurudas.pai@oracle.com\u003e\nTested-by: Gurudas Pai \u003cgurudas.pai@oracle.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "58a69cb47ec6991bf006a3e5d202e8571b0327a4",
      "tree": "56abdf817649c352f70bff3263f9351ed6c42062",
      "parents": [
        "7576958a9d5a4a677ad7dd40901cdbb6c1110c98"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 09:25:31 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:48:59 2011 +0100"
      },
      "message": "workqueue, freezer: unify spelling of \u0027freeze\u0027 + \u0027able\u0027 to \u0027freezable\u0027\n\nThere are two spellings in use for \u0027freeze\u0027 + \u0027able\u0027 - \u0027freezable\u0027 and\n\u0027freezeable\u0027.  The former is the more prominent one.  The latter is\nmostly used by workqueue and in a few other odd places.  Unify the\nspelling to \u0027freezable\u0027.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nAcked-by: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nAcked-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Alex Dubov \u003coakad@yahoo.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e79a46a0302a6bf8f879da43c00373b6ed1081ea",
      "tree": "a9061e1a3f1c9e8616ed08f5cff95321b6dc1b8c",
      "parents": [
        "b9c93bb7deadc7cdd00415edc6b38d67a26c1c7a"
      ],
      "author": {
        "name": "Abhijith Das",
        "email": "adas@redhat.com",
        "time": "Mon Feb 07 11:22:41 2011 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 07 20:00:44 2011 +0000"
      },
      "message": "GFS2: panics on quotacheck update\n\nHandle block allocation for forceful unstuffing of quota dinode during quota\nupdate using quotactl(). Also fix block reservation for special cases when\nquotas cross over block boundaries and update 2 blocks instead of 1.\n\nSigned-off-by: Abhi Das \u003cadas@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "b9c93bb7deadc7cdd00415edc6b38d67a26c1c7a",
      "tree": "b490fba351eefdb9ef4feeb9925fae75045fac51",
      "parents": [
        "edae38a6431276c50d4b51543c36de258722358e"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Feb 02 14:48:10 2011 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Feb 02 14:48:10 2011 +0000"
      },
      "message": "GFS2: Improve cluster mmap scalability\n\nThe mmap system call grabs a glock when an update to atime maybe\nrequired. It does this in order to ensure that the flags on the\ninode are uptodate, but since it will only mark atime for a future\nupdate, an exclusive lock is not required here (one will be taken\nlater when the actual update is performed).\n\nAlso, the lock can be skipped when the mount is marked noatime in\naddition to the original check which only looked at the noatime\nflag for the inode itself.\n\nThis should increase the scalability of the mmap call when multiple\nnodes are all mmaping the same file.\n\nReported-by: Scooter Morris \u003cscooter@cgl.ucsf.edu\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "2a7dba391e5628ad665ce84ef9a6648da541ebab",
      "tree": "ba0722bd74d2c883dbda7ff721850bab411cac04",
      "parents": [
        "821404434f3324bf23f545050ff64055a149766e"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Feb 01 11:05:39 2011 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Feb 01 11:12:29 2011 -0500"
      },
      "message": "fs/vfs/security: pass last path component to LSM on inode creation\n\nSELinux would like to implement a new labeling behavior of newly created\ninodes.  We currently label new inodes based on the parent and the creating\nprocess.  This new behavior would also take into account the name of the\nnew object when deciding the new label.  This is not the (supposed) full path,\njust the last component of the path.\n\nThis is very useful because creating /etc/shadow is different than creating\n/etc/passwd but the kernel hooks are unable to differentiate these\noperations.  We currently require that userspace realize it is doing some\ndifficult operation like that and than userspace jumps through SELinux hoops\nto get things set up correctly.  This patch does not implement new\nbehavior, that is obviously contained in a seperate SELinux patch, but it\ndoes pass the needed name down to the correct LSM hook.  If no such name\nexists it is fine to pass NULL.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "edae38a6431276c50d4b51543c36de258722358e",
      "tree": "4b6628f405c8563d08c21a71587d25135cd74147",
      "parents": [
        "75d5cfbe4b78cc26af7b042e23f61700b50bc294"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 31 09:38:12 2011 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 31 09:38:12 2011 +0000"
      },
      "message": "GFS2: Fix glock queue trace point\n\nSomehow this tracepoint landed up in the wrong place. This moves it\nto where it should be.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "75d5cfbe4b78cc26af7b042e23f61700b50bc294",
      "tree": "189346d6c6fb7e72921d7ace2871bfd8780110da",
      "parents": [
        "bc015cb84129eb1451913cfebece270bf7a39e0f"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jan 19 09:42:40 2011 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 21 09:39:24 2011 +0000"
      },
      "message": "GFS2: Post-VFS scale update for RCU path walk\n\nWe can allow a few more cases to use RCU path walking than\noriginally allowed. It should be possible to also enable\nRCU path walking when the glock is already cached. Thats\na bit more complicated though, so left for a future patch.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Nick Piggin \u003cnpiggin@gmail.com\u003e\n"
    },
    {
      "commit": "bc015cb84129eb1451913cfebece270bf7a39e0f",
      "tree": "4f116a61b802d87ae80051e9ae05d8fcb73d9ae7",
      "parents": [
        "2b1caf6ed7b888c95a1909d343799672731651a5"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jan 19 09:30:01 2011 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 21 09:39:08 2011 +0000"
      },
      "message": "GFS2: Use RCU for glock hash table\n\nThis has a number of advantages:\n\n - Reduces contention on the hash table lock\n - Makes the code smaller and simpler\n - Should speed up glock dumps when under load\n - Removes ref count changing in examine_bucket\n - No longer need hash chain lock in glock_put() in common case\n\nThere are some further changes which this enables and which\nwe may do in the future. One is to look at using SLAB_RCU,\nand another is to look at using a per-cpu counter for the\nper-sb glock counter, since that is touched twice in the\nlifetime of each glock (but only used at umount time).\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "24d9765fc18c7838ccdbb0d71fb706321d9b824c",
      "tree": "75875b69c1bb694d2ad5e1ab19f278bf7d3a8acc",
      "parents": [
        "23c3010808de86f21436eb822aacfa551bfc17e4"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jan 18 14:49:08 2011 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jan 18 14:49:08 2011 +0000"
      },
      "message": "GFS2: Fix error path in gfs2_lookup_by_inum()\n\nIn the (impossible, except if there is fs corruption) error path\nin gfs2_lookup_by_inum() if the call to gfs2_inode_refresh()\nfails, it was leaving the function by calling iput() rather\nthan iget_failed(). This would cause future lookups of the same\ninode to block forever.\n\nThis patch fixes the problem by moving the call to gfs2_inode_refresh()\ninto gfs2_inode_lookup() where iget_failed() is part of the error path\nalready. Also this cleans up some unreachable code and makes\ngfs2_set_iop() static.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "23c3010808de86f21436eb822aacfa551bfc17e4",
      "tree": "56b7176fdeb0dd453b88969dbecba7afcc39883f",
      "parents": [
        "e6f597a1425b5af64917be3448b29e2d5a585ac8"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Fri Jan 14 22:39:16 2011 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jan 18 14:28:29 2011 +0000"
      },
      "message": "GFS2: remove iopen glocks from cache on failed deletes\n\nWhen a file gets deleted on GFS2, if a node can\u0027t get an exclusive lock on the\nfile\u0027s iopen glock, it punts on actually freeing up the space, because another\nnode is using the file.  When it does this, it needs to drop the iopen glock\nfrom its cache so that the other node can get an exclusive lock on it. Now,\ngfs2_delete_inode() sets GL_NOCACHE before dropping the shared lock on the\niopen glock in preparation for grabbing it in the exclusive state.  Since the\nnode needs the glock in the exclusive state, dropping the shared lock from the\ncache doesn\u0027t slow down the case where no other nodes are using the file.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "2fe17c1075836b66678ed2a305fd09b6773883aa",
      "tree": "eb5287be8138686682eef9622872cfc7657e0664",
      "parents": [
        "64c23e86873ee410554d6d1c76b60da47025e96f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jan 14 13:07:43 2011 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 17 02:25:31 2011 -0500"
      },
      "message": "fallocate should be a file operation\n\nCurrently all filesystems except XFS implement fallocate asynchronously,\nwhile XFS forced a commit.  Both of these are suboptimal - in case of O_SYNC\nI/O we really want our allocation on disk, especially for the !KEEP_SIZE\ncase where we actually grow the file with user-visible zeroes.  On the\nother hand always commiting the transaction is a bad idea for fast-path\nuses of fallocate like for example in recent Samba versions.   Given\nthat block allocation is a data plane operation anyway change it from\nan inode operation to a file operation so that we have the file structure\navailable that lets us check for O_SYNC.\n\nThis also includes moving the code around for a few of the filesystems,\nand remove the already unnedded S_ISDIR checks given that we only wire\nup fallocate for regular files.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "64c23e86873ee410554d6d1c76b60da47025e96f",
      "tree": "b30c5ff8782ebfdec6956d7834f796731fd3a1d4",
      "parents": [
        "eb745dbccce56f1bbe3f80b95ad2a325145171c2"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jan 14 13:07:30 2011 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 17 02:25:30 2011 -0500"
      },
      "message": "make the feature checks in -\u003efallocate future proof\n\nInstead of various home grown checks that might need updates for new\nflags just check for any bit outside the mask of the features supported\nby the filesystem.  This makes the check future proof for any newly\nadded flag.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "275220f0fcff1adf28a717076e00f575edf05fda",
      "tree": "d249bccc80c64443dab211639050c4fb14332648",
      "parents": [
        "fe3c560b8a22cb28e54fe8950abef38e88d75831",
        "81c5e2ae33c4b19e53966b427e33646bf6811830"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:45:01 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:45:01 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.38/core\u0027 of git://git.kernel.dk/linux-2.6-block: (43 commits)\n  block: ensure that completion error gets properly traced\n  blktrace: add missing probe argument to block_bio_complete\n  block cfq: don\u0027t use atomic_t for cfq_group\n  block cfq: don\u0027t use atomic_t for cfq_queue\n  block: trace event block fix unassigned field\n  block: add internal hd part table references\n  block: fix accounting bug on cross partition merges\n  kref: add kref_test_and_get\n  bio-integrity: mark kintegrityd_wq highpri and CPU intensive\n  block: make kblockd_workqueue smarter\n  Revert \"sd: implement sd_check_events()\"\n  block: Clean up exit_io_context() source code.\n  Fix compile warnings due to missing removal of a \u0027ret\u0027 variable\n  fs/block: type signature of major_to_index(int) to major_to_index(unsigned)\n  block: convert !IS_ERR(p) \u0026\u0026 p to !IS_ERR_NOR_NULL(p)\n  cfq-iosched: don\u0027t check cfqg in choose_service_tree()\n  fs/splice: Pull buf-\u003eops-\u003econfirm() from splice_from_pipe actors\n  cdrom: export cdrom_check_events()\n  sd: implement sd_check_events()\n  sr: implement sr_check_events()\n  ...\n"
    },
    {
      "commit": "9ecf639a9686c9c7e3fd2cd72817ca490c658e6f",
      "tree": "bc6e56f9fbc813914285ffed9f2da72a3e7282a5",
      "parents": [
        "23a8519b55235660f6fb7d6f394a912de9d23208"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Nov 17 20:46:20 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jan 12 20:16:44 2011 -0500"
      },
      "message": "Gfs2: fail if we try to use hole punch\n\nGfs2 doesn\u0027t have the ability to punch holes yet, so make sure we return\nEOPNOTSUPP if we try to use hole punching through fallocate.  This support can\nbe added later.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "41ced6dcf3dc6b901716fda0dc8de3536da4d39b",
      "tree": "cffec5e5bde8d8a580c03cef8eea2ddb9a821d8a",
      "parents": [
        "1c929cfe6d8f2087a337a868fbf6c38d56bb4889"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Dec 18 12:06:56 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jan 12 20:02:46 2011 -0500"
      },
      "message": "switch gfs2, close races\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "57cc7215b70856dc6bae8e55b00ecd7b1d7429b1",
      "tree": "f6dedefd41e6745a9b801166b99af7d830e41ef2",
      "parents": [
        "37721e1b0cf98cb65895f234d8c500d270546529"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Jan 10 08:18:25 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 10 08:51:44 2011 -0800"
      },
      "message": "headers: kobject.h redux\n\nRemove kobject.h from files which don\u0027t need it, notably,\nsched.h and fs.h.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b4a45f5fe8078bfc10837dbd5b98735058bc4698",
      "tree": "df6f13a27610a3ec7eb4a661448cd779a8f84c79",
      "parents": [
        "01539ba2a706ab7d35fc0667dff919ade7f87d63",
        "b3e19d924b6eaf2ca7d22cba99a517c5171007b6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 08:56:33 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 08:56:33 2011 -0800"
      },
      "message": "Merge branch \u0027vfs-scale-working\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/npiggin/linux-npiggin\n\n* \u0027vfs-scale-working\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/npiggin/linux-npiggin: (57 commits)\n  fs: scale mntget/mntput\n  fs: rename vfsmount counter helpers\n  fs: implement faster dentry memcmp\n  fs: prefetch inode data in dcache lookup\n  fs: improve scalability of pseudo filesystems\n  fs: dcache per-inode inode alias locking\n  fs: dcache per-bucket dcache hash locking\n  bit_spinlock: add required includes\n  kernel: add bl_list\n  xfs: provide simple rcu-walk ACL implementation\n  btrfs: provide simple rcu-walk ACL implementation\n  ext2,3,4: provide simple rcu-walk ACL implementation\n  fs: provide simple rcu-walk generic_check_acl implementation\n  fs: provide rcu-walk aware permission i_ops\n  fs: rcu-walk aware d_revalidate method\n  fs: cache optimise dentry and inode for rcu-walk\n  fs: dcache reduce branches in lookup path\n  fs: dcache remove d_mounted\n  fs: fs_struct use seqlock\n  fs: rcu-walk for path lookup\n  ...\n"
    },
    {
      "commit": "b74c79e99389cd79b31fcc08f82c24e492e63c7e",
      "tree": "763c6b412517306670bc625e90035f2d16bb739f",
      "parents": [
        "34286d6662308d82aed891852d04c7c3a2649b16"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:58 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:29 2011 +1100"
      },
      "message": "fs: provide rcu-walk aware permission i_ops\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "34286d6662308d82aed891852d04c7c3a2649b16",
      "tree": "c4b7311404d302e7cb94df7a4690298e1059910a",
      "parents": [
        "44a7d7a878c9cbb74f236ea755b25b6b2e26a9a9"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:57 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:29 2011 +1100"
      },
      "message": "fs: rcu-walk aware d_revalidate method\n\nRequire filesystems be aware of .d_revalidate being called in rcu-walk\nmode (nd-\u003eflags \u0026 LOOKUP_RCU). For now do a simple push down, returning\n-ECHILD from all implementations.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "fb045adb99d9b7c562dc7fef834857f78249daa1",
      "tree": "1fd6a4024fffeec568abe100d730589bfdb81c38",
      "parents": [
        "5f57cbcc02cf18f6b22ef4066bb10afeb8f930ff"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:55 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:28 2011 +1100"
      },
      "message": "fs: dcache reduce branches in lookup path\n\nReduce some branches and memory accesses in dcache lookup by adding dentry\nflags to indicate common d_ops are set, rather than having to check them.\nThis saves a pointer memory access (dentry-\u003ed_op) in common path lookup\nsituations, and saves another pointer load and branch in cases where we\nhave d_op but not the particular operation.\n\nPatched with:\n\ngit grep -E \u0027[.\u003e]([[:space:]])*d_op([[:space:]])*\u003d\u0027 | xargs sed -e \u0027s/\\([^\\t ]*\\)-\u003ed_op \u003d \\(.*\\);/d_set_d_op(\\1, \\2);/\u0027 -e \u0027s/\\([^\\t ]*\\)\\.d_op \u003d \\(.*\\);/d_set_d_op(\\\u0026\\1, \\2);/\u0027 -i\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "fa0d7e3de6d6fc5004ad9dea0dd6b286af8f03e9",
      "tree": "203e0f73883e4c26b5597e36042386a1237dab35",
      "parents": [
        "77812a1ef139d84270d27faacc0630c887411013"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:49 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:26 2011 +1100"
      },
      "message": "fs: icache RCU free inodes\n\nRCU free the struct inode. This will allow:\n\n- Subsequent store-free path walking patch. The inode must be consulted for\n  permissions when walking, so an RCU inode reference is a must.\n- sb_inode_list_lock to be moved inside i_lock because sb list walkers who want\n  to take i_lock no longer need to take sb_inode_list_lock to walk the list in\n  the first place. This will simplify and optimize locking.\n- Could remove some nested trylock loops in dcache code\n- Could potentially simplify things a bit in VM land. Do not need to take the\n  page lock to follow page-\u003emapping.\n\nThe downsides of this is the performance cost of using RCU. In a simple\ncreat/unlink microbenchmark, performance drops by about 10% due to inability to\nreuse cache-hot slab objects. As iterations increase and RCU freeing starts\nkicking over, this increases to about 20%.\n\nIn cases where inode lifetimes are longer (ie. many inodes may be allocated\nduring the average life span of a single inode), a lot of this cache reuse is\nnot applicable, so the regression caused by this patch is smaller.\n\nThe cache-hot regression could largely be avoided by using SLAB_DESTROY_BY_RCU,\nhowever this adds some complexity to list walking and store-free path walking,\nso I prefer to implement this at a later date, if it is shown to be a win in\nreal situations. I haven\u0027t found a regression in any non-micro benchmark so I\ndoubt it will be a problem.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "b1e6a015a580ad145689ad1d6b4aa0e03e6c868b",
      "tree": "57a10ef164e4d2f798d9b832dbeaf973aca2ab83",
      "parents": [
        "621e155a3591962420eacdd39f6f0aa29ceb221e"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:28 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:20 2011 +1100"
      },
      "message": "fs: change d_hash for rcu-walk\n\nChange d_hash so it may be called from lock-free RCU lookups. See similar\npatch for d_compare for details.\n\nFor in-tree filesystems, this is just a mechanical change.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "fe15ce446beb3a33583af81ffe6c9d01a75314ed",
      "tree": "bc8af66b6dd2d0f21a2a3f48a19975ae2cdbae4e",
      "parents": [
        "5eef7fa905c814826f518aca2d414ca77508ce30"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:23 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:18 2011 +1100"
      },
      "message": "fs: change d_delete semantics\n\nChange d_delete from a dentry deletion notification to a dentry caching\nadvise, more like -\u003edrop_inode. Require it to be constant and idempotent,\nand not take d_lock. This is how all existing filesystems use the callback\nanyway.\n\nThis makes fine grained dentry locking of dput and dentry lru scanning\nmuch simpler.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "846f40455276617275284a4b76b89311b4aed0b9",
      "tree": "c8bd64c7e87554e79ab5f37d9c857c8efe91d4cc",
      "parents": [
        "bcd7278d8a423a255e45f4d10afe564328f1885f"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Dec 16 15:18:48 2010 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Dec 16 15:18:48 2010 +0000"
      },
      "message": "GFS2: Don\u0027t flush delete workqueue when releasing the transaction lock\n\nThere is no requirement to flush the delete workqueue before a\ngfs2 filesystem is suspended. The workqueue\u0027s work will just\nbe suspended along with the rest of the tasks on the filesystem.\n\nThe resolves a deadlock situation where the transaction lock\u0027s\ndemotion code was trying to flush the delete workqueue while at\nthe same time, the workqueue was waiting for the transaction\nlock.\n\nThe delete workqueue is flushed by gfs2_make_fs_ro() already, so\nthat umount/remount are correctly protected anyway.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "bcd7278d8a423a255e45f4d10afe564328f1885f",
      "tree": "fe577aaa2b6c042978ae2b3e2306ab8a0cadcddd",
      "parents": [
        "47a25380e37f44db7202093ca92e4af569c34f55"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Dec 07 13:58:56 2010 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Dec 07 18:55:07 2010 +0000"
      },
      "message": "GFS2: fsck.gfs2 reported statfs error after gfs2_grow\n\nWhen you do gfs2_grow it failed to take the very last\nrgrp into account when adding up the new free space due\nto an off-by-one error.  It was not reading the last\nrgrp from the rindex because of a check for \"\u003c\u003d\" that\nshould have been \"\u003c\".  Therefore, fsck.gfs2 was finding\n(and fixing) an error with the system statfs file.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\n"
    },
    {
      "commit": "47a25380e37f44db7202093ca92e4af569c34f55",
      "tree": "db3e6dba3859c5562b9a86f6d4059519fa7a1c52",
      "parents": [
        "e06dfc492870e1d380f02722cde084b724dc197b"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Nov 30 15:49:31 2010 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Nov 30 15:49:31 2010 +0000"
      },
      "message": "GFS2: Merge glock state fields into a bitfield\n\nWe can only merge the fields into a bitfield if the locking\nrules for them are the same. In this case gl_spin covers all\nof the fields (write side) but a couple of them are used\nwith GLF_LOCK as the read side lock, which should be ok\nsince we know that the field in question won\u0027t be changing\nat the time.\n\nThe gl_req setting has to be done earlier (in glock.c) in order\nto place it under gl_spin. The gl_reply setting also has to be\nbrought under gl_spin in order to comply with the new rules.\n\nThis saves 4*sizeof(unsigned int) per glock.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Bob Peterson \u003crpeterso@redhat.com\u003e\n"
    },
    {
      "commit": "e06dfc492870e1d380f02722cde084b724dc197b",
      "tree": "8fca288f44f494b64ad9eaa2d09f5b23b1633a4d",
      "parents": [
        "086d8334cf73b3bb695b82dd864a7a8b00d96b7e"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Nov 30 15:46:02 2010 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Nov 30 15:46:02 2010 +0000"
      },
      "message": "GFS2: Fix uninitialised error value in previous patch\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "086d8334cf73b3bb695b82dd864a7a8b00d96b7e",
      "tree": "acadf5458a2ccfde44049bcb7ba63e136844f875",
      "parents": [
        "0489b3f5eba735413ccedd425651cf41d6b1f7c5"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Tue Nov 23 23:52:55 2010 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Nov 30 15:41:54 2010 +0000"
      },
      "message": "GFS2: fix recursive locking during rindex truncates\n\nWhen you truncate the rindex file, you need to avoid calling gfs2_rindex_hold,\nsince you already hold it.  However, if you haven\u0027t already read in the\nresource groups, you need to do that.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "0489b3f5eba735413ccedd425651cf41d6b1f7c5",
      "tree": "08f09b54c4ec3f6f42fcfe83d435f6023e0eb386",
      "parents": [
        "0b1246e6776c79719ff4a3afd9c38fba99b99d5a"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Tue Nov 30 09:38:35 2010 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Nov 30 15:34:18 2010 +0000"
      },
      "message": "GFS2: reread rindex when necessary to grow rindex\n\nWhen GFS2 grew the filesystem, it was never rereading the rindex file during\nthe grow. This is necessary for large grows when the filesystem is almost full,\nand GFS2 needs to use some of the space allocated earlier in the grow to\ncomplete it.  Now, if GFS2 fails to reserve the necessary space and the rindex\nfile is not uptodate, it rereads it.  Also, the only difference between\ngfs2_ri_update() and gfs2_ri_update_special() was that gfs2_ri_update_special()\ndidn\u0027t clear out the existing resource groups, since you knew that it was only\ncalled when there were no resource groups.  Attempting to clear out the\nresource groups when there are none takes almost no time, and rarely happens,\nso I simply removed gfs2_ri_update_special().\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "0b1246e6776c79719ff4a3afd9c38fba99b99d5a",
      "tree": "23f029c525e33e856f3d890054309589323d7892",
      "parents": [
        "921169ca2f7c8a0a2ccda2ce33c465dfe3ae30ef"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Nov 30 15:33:04 2010 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Nov 30 15:33:04 2010 +0000"
      },
      "message": "GFS2: Remove duplicate #defines from glock.h\n\nThere are a number of duplicated #defines in glock.h\nplus one which is unused. This removes the extra\ndefinitions.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "921169ca2f7c8a0a2ccda2ce33c465dfe3ae30ef",
      "tree": "f40f00721426eb992d75493defefb8de8a71b7e1",
      "parents": [
        "802ec9b6682349d9d9c92a9e55f44324d2954f41"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Nov 29 12:50:38 2010 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Nov 30 10:31:48 2010 +0000"
      },
      "message": "GFS2: Clean up of gdlm_lock function\n\nThe DLM never returns -EAGAIN in response to dlm_lock(), and even\nif it did, the test in gdlm_lock() was wrong anyway. Once that\ntest is removed, it is possible to greatly simplify this code\nby simply using a \"normal\" error return code (0 for success).\n\nWe then no longer need the LM_OUT_ASYNC return code which can\nbe removed.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    }
  ],
  "next": "802ec9b6682349d9d9c92a9e55f44324d2954f41"
}
