)]}'
{
  "log": [
    {
      "commit": "66ad863b410efb7f537719006f9ac52400c1a5c5",
      "tree": "17db44f069274b4f42805c8fabdea841e4153737",
      "parents": [
        "376d37788b56bc2800e5bd56b7a36b3544d89f97"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jan 11 12:35:05 2012 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jan 11 12:35:05 2012 +0000"
      },
      "message": "GFS2: Fix nlink setting on inode creation\n\nSince the nlink count will be 0, we need to use set_nlink rather\nthan inc_nlink in order to avoid triggering the inc_nlink warning\nwhich was added recently.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "376d37788b56bc2800e5bd56b7a36b3544d89f97",
      "tree": "ff0a261e5b6ad1dbec0cef25959700ba7b9a9ef3",
      "parents": [
        "e8ca5cc571a60339491f8c273a01093096ff8704"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Mon Jan 09 15:29:20 2012 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jan 11 09:24:48 2012 +0000"
      },
      "message": "GFS2: fail mount if journal recovery fails\n\nIf the first mounter fails to recover one of the journals\nduring mount, the mount should fail.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e8ca5cc571a60339491f8c273a01093096ff8704",
      "tree": "e5133a5600113e8c2849675ab96dce0e6521aa09",
      "parents": [
        "49528b4e479195e5db4fe51fcd5ddd97901efc16"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Mon Jan 09 14:40:06 2012 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jan 11 09:23:40 2012 +0000"
      },
      "message": "GFS2: let spectator mount do read only recovery\n\nPreviously, a spectator mount would not even attempt to do\njournal recovery for a failed node.  This meant that if all\nmounted nodes were spectators, everyone would be stuck after\na node failed, all waiting for recovery to be performed.\nThis is unnecessary since the failed node had a clean journal.\n\nInstead, allow a spectator mount to do a partial \"read only\"\nrecovery, which means it will check if the failed journal is\nclean, and if so, report a successful recovery.  If the failed\njournal is not clean, it reports that journal recovery failed.\nThis makes it work the same as a read only mount on a read only\nblock device.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "49528b4e479195e5db4fe51fcd5ddd97901efc16",
      "tree": "3e27260f25133fbaf7b8d95faa9b73016eac1b13",
      "parents": [
        "e0c2a9aa1e68455dc3439e95d85cabcaff073666"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Fri Jan 06 16:48:50 2012 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jan 11 09:23:26 2012 +0000"
      },
      "message": "GFS2: Fix a use-after-free that coverity spotted\n\nIn function gfs2_inplace_release it was trying to unlock a gfs2_holder\nstructure associated with a reservation, after said reservation was\nfreed. The problem is that the statements have the wrong order.\nThis patch corrects the order so that the reservation is freed after\nthe gfs2_holder is unlocked.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e0c2a9aa1e68455dc3439e95d85cabcaff073666",
      "tree": "22e0dea3972d74defb0219fbbcd5c9d395c0bdb3",
      "parents": [
        "e343a895a9f342f239c5e3c5ffc6c0b1707e6244"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Mon Jan 09 17:18:05 2012 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jan 11 09:23:05 2012 +0000"
      },
      "message": "GFS2: dlm based recovery coordination\n\nThis new method of managing recovery is an alternative to\nthe previous approach of using the userland gfs_controld.\n\n- use dlm slot numbers to assign journal id\u0027s\n- use dlm recovery callbacks to initiate journal recovery\n- use a dlm lock to determine the first node to mount fs\n- use a dlm lock to track journals that need recovery\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "49d41bae46f15da528ef9848fd7c9d38582aa8e9",
      "tree": "76907a9a5066642a32cb238ef8d8367fc612d064",
      "parents": [
        "7b3480f8b701170c046e1ed362946f5f0d005e13",
        "60f98d1839376d30e13f3e452dce2433fad3060e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 14:55:55 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 14:55:55 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm:\n  dlm: add recovery callbacks\n  dlm: add node slots and generation\n  dlm: move recovery barrier calls\n  dlm: convert rsb list to rb_tree\n"
    },
    {
      "commit": "eb59c505f8a5906ad2e053d14fab50eb8574fd6f",
      "tree": "c6e875adc12b481b916e847e8f80b8881a0fb02c",
      "parents": [
        "1619ed8f60959829d070d8f39cd2f8ca0e7135ce",
        "c233523b3d392e530033a7587d7970dc62a02361"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 13:10:57 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 13:10:57 2012 -0800"
      },
      "message": "Merge branch \u0027pm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm\n\n* \u0027pm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (76 commits)\n  PM / Hibernate: Implement compat_ioctl for /dev/snapshot\n  PM / Freezer: fix return value of freezable_schedule_timeout_killable()\n  PM / shmobile: Allow the A4R domain to be turned off at run time\n  PM / input / touchscreen: Make st1232 use device PM QoS constraints\n  PM / QoS: Introduce dev_pm_qos_add_ancestor_request()\n  PM / shmobile: Remove the stay_on flag from SH7372\u0027s PM domains\n  PM / shmobile: Don\u0027t include SH7372\u0027s INTCS in syscore suspend/resume\n  PM / shmobile: Add support for the sh7372 A4S power domain / sleep mode\n  PM: Drop generic_subsys_pm_ops\n  PM / Sleep: Remove forward-only callbacks from AMBA bus type\n  PM / Sleep: Remove forward-only callbacks from platform bus type\n  PM: Run the driver callback directly if the subsystem one is not there\n  PM / Sleep: Make pm_op() and pm_noirq_op() return callback pointers\n  PM/Devfreq: Add Exynos4-bus device DVFS driver for Exynos4210/4212/4412.\n  PM / Sleep: Merge internal functions in generic_ops.c\n  PM / Sleep: Simplify generic system suspend callbacks\n  PM / Hibernate: Remove deprecated hibernation snapshot ioctls\n  PM / Sleep: Fix freezer failures due to racy usermodehelper_is_disabled()\n  ARM: S3C64XX: Implement basic power domain support\n  PM / shmobile: Use common always on power domain governor\n  ...\n\nFix up trivial conflict in fs/xfs/xfs_buf.c due to removal of unused\nXBT_FORCE_SLEEP bit\n"
    },
    {
      "commit": "1619ed8f60959829d070d8f39cd2f8ca0e7135ce",
      "tree": "aa2599110827affb10e64a12e85a9d11f45854b1",
      "parents": [
        "29ad0de279002f9b6a63df5ba85328f5b633b842",
        "46cc1e5fce46e71f27e542125e045827a6bb776e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 13:07:54 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 13:07:54 2012 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw:\n  GFS2: local functions should be static\n  GFS2: We only need one ACL getting function\n  GFS2: Fix multi-block allocation\n  GFS2: decouple quota allocations from block allocations\n  GFS2: split function rgblk_search\n  GFS2: Fix up \"off by one\" in the previous patch\n  GFS2: move toward a generic multi-block allocator\n  GFS2: O_(D)SYNC support for fallocate\n  GFS2: remove vestigial al_alloced\n  GFS2: combine gfs2_alloc_block and gfs2_alloc_di\n  GFS2: Add non-try locks back to get_local_rgrp\n  GFS2: f_ra is always valid in dir readahead function\n  GFS2: Fix very unlikley memory leak in ACL xattr code\n  GFS2: More automated code analysis fixes\n  GFS2: Add readahead to sequential directory traversal\n  GFS2: Fix up REQ flags\n"
    },
    {
      "commit": "34c80b1d93e6e20ca9dea0baf583a5b5510d92d4",
      "tree": "7dcbf0a4e09464247e6992c8f44fcc872867bd3a",
      "parents": [
        "a6322de67b58a00e3a783ad9c87c2a11b2d67b47"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 08 21:32:45 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jan 06 23:19:54 2012 -0500"
      },
      "message": "vfs: switch -\u003eshow_options() to struct dentry *\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "60f98d1839376d30e13f3e452dce2433fad3060e",
      "tree": "b8b43859ad26519bd75a40920f6d1ca46f2d44a5",
      "parents": [
        "757a42719635495779462514458bbfbf12a37dac"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Nov 02 14:30:58 2011 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Jan 04 08:56:31 2012 -0600"
      },
      "message": "dlm: add recovery callbacks\n\nThese new callbacks notify the dlm user about lock recovery.\nGFS2, and possibly others, need to be aware of when the dlm\nwill be doing lock recovery for a failed lockspace member.\n\nIn the past, this coordination has been done between dlm and\nfile system daemons in userspace, which then direct their\nkernel counterparts.  These callbacks allow the same\ncoordination directly, and more simply.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "175a4eb7ea531cdbf6d574f5d5ba9aa0f5e8ed13",
      "tree": "841812b19b8a5546e472be321b32ca58528b76c3",
      "parents": [
        "030a8ba48fa6fa2a1304bab5b0f49360613c4af2"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 03:30:54 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:55:10 2012 -0500"
      },
      "message": "fs: propagate umode_t, misc bits\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1a67aafb5f72a436ca044293309fa7e6351d6a35",
      "tree": "d9e58600148de9d41b478cf815773b746647d15b",
      "parents": [
        "4acdaf27ebe2034c342f3be57ef49aed1ad885ef"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 01:52:52 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:54 2012 -0500"
      },
      "message": "switch -\u003emknod() to umode_t\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4acdaf27ebe2034c342f3be57ef49aed1ad885ef",
      "tree": "d89a876ee19cd88609a587f8aa6c464a52ee6d98",
      "parents": [
        "18bb1db3e7607e4a997d50991a6f9fa5b0f8722c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 01:42:34 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:53 2012 -0500"
      },
      "message": "switch -\u003ecreate() to umode_t\n\nvfs_create() ignores everything outside of 16bit subset of its\nmode argument; switching it to umode_t is obviously equivalent\nand it\u0027s the only caller of the method\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "18bb1db3e7607e4a997d50991a6f9fa5b0f8722c",
      "tree": "4ee4e584bc9a67f3ec14ce159d2d7d4a27e68d4a",
      "parents": [
        "8208a22bb8bd3c52ef634b4ff194f14892ab1713"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 01:41:39 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:53 2012 -0500"
      },
      "message": "switch vfs_mkdir() and -\u003emkdir() to umode_t\n\nvfs_mkdir() gets int, but immediately drops everything that might not\nfit into umode_t and that\u0027s the only caller of -\u003emkdir()...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6b520e0565422966cdf1c3759bd73df77b0f248c",
      "tree": "f63a26afa7342eb59b125271b16e30a219b59094",
      "parents": [
        "2a79f17e4a641a2f463cb512cb0ec349844a147b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Dec 12 15:51:45 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:52:40 2012 -0500"
      },
      "message": "vfs: fix the stupidity with i_dentry in inode destructors\n\nSeeing that just about every destructor got that INIT_LIST_HEAD() copied into\nit, there is no point whatsoever keeping this INIT_LIST_HEAD in inode_init_once();\nthe cost of taking it into inode_init_always() will be negligible for pipes\nand sockets and negative for everything else.  Not to mention the removal of\nboilerplate code from -\u003edestroy_inode() instances...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2a79f17e4a641a2f463cb512cb0ec349844a147b",
      "tree": "8801127310d0a3492941bb284e83393844a19685",
      "parents": [
        "8c9379e972e984d11c2b99121847ba9fa7a0c56c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Dec 09 08:06:57 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:52:40 2012 -0500"
      },
      "message": "vfs: mnt_drop_write_file()\n\nnew helper (wrapper around mnt_drop_write()) to be used in pair with\nmnt_want_write_file().\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a561be7100cd610bd2e082f3211c1dfb45835817",
      "tree": "a1016a11df967be6f289a4e8ae29597ba39df17e",
      "parents": [
        "f47ec3f28354795f000c14bf18ed967ec81a3ec3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Nov 23 11:57:51 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:52:35 2012 -0500"
      },
      "message": "switch a bunch of places to mnt_want_write_file()\n\nit\u0027s both faster (in case when file has been opened for write) and cleaner.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "46cc1e5fce46e71f27e542125e045827a6bb776e",
      "tree": "a1b4f04d4c3f5697d400cad71e12f9d29236de49",
      "parents": [
        "018a01cd27b3448a7c65272ccb1a1cbab6c2667e"
      ],
      "author": {
        "name": "H Hartley Sweeten",
        "email": "hartleys@visionengravers.com",
        "time": "Fri Sep 23 15:51:32 2011 -0700"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Dec 06 09:46:41 2011 +0000"
      },
      "message": "GFS2: local functions should be static\n\nQuiets the sparse noise:\n\nwarning: symbol \u0027gfs2_initxattrs\u0027 was not declared. Should it be static?\n\nSigned-off-by: H Hartley Sweeten \u003chsweeten@visionengravers.com\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "018a01cd27b3448a7c65272ccb1a1cbab6c2667e",
      "tree": "fa781a1cbe10a7c9c8d87f17c63d013e78d8a65e",
      "parents": [
        "6a8099ed5677ac1bb2c74b74a31fecb8282f56c2"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 23 13:31:51 2011 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 23 13:31:51 2011 +0000"
      },
      "message": "GFS2: We only need one ACL getting function\n\nThere is no need to have two versions of this function with\nslightly different arguments.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "6a8099ed5677ac1bb2c74b74a31fecb8282f56c2",
      "tree": "a6baa1fa5a8a9f140b76210fb5f8eb3fb68906c5",
      "parents": [
        "564e12b1157215171e7f3af5b70611ec7154327c"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Nov 22 12:18:51 2011 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Nov 22 12:18:51 2011 +0000"
      },
      "message": "GFS2: Fix multi-block allocation\n\nClean up gfs2_alloc_blocks so that it takes the full extent length\nrather than just the number of non-inode blocks as an argument. That\nwill only make a difference in the inode allocation case for now.\n\nAlso, this fixes the extent length handling around gfs2_alloc_extent() so\nthat multi block allocations will work again.\n\nThe rd_last_alloc block is set to the final block in the allocated\nextent (as per the update to i_goal, but referenced to a different\nstart point).\n\nThis also removes the dinode argument to rgblk_search() which is no\nlonger used.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "564e12b1157215171e7f3af5b70611ec7154327c",
      "tree": "f2a6e3394e59209f8e43a36f10f67bf1372c966c",
      "parents": [
        "b3e47ca0c2427ec72a74e36c6408784b6098f2b5"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Mon Nov 21 13:36:17 2011 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Nov 22 10:25:21 2011 +0000"
      },
      "message": "GFS2: decouple quota allocations from block allocations\n\nThis patch separates the code pertaining to allocations into two\nparts: quota-related information and block reservations.\nThis patch also moves all the block reservation structure allocations to\nfunction gfs2_inplace_reserve to simplify the code, and moves\nthe frees to function gfs2_inplace_release.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "a0acae0e886d44bd5ce6d2f173c1ace0fcf0d9f6",
      "tree": "0b763388360a5a9043986e1f2201e43df74ebc46",
      "parents": [
        "3a7cbd50f74907580eb47a8d08e1f29741b81abf"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 21 12:32:22 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 21 12:32:22 2011 -0800"
      },
      "message": "freezer: unexport refrigerator() and update try_to_freeze() slightly\n\nThere is no reason to export two functions for entering the\nrefrigerator.  Calling refrigerator() instead of try_to_freeze()\ndoesn\u0027t save anything noticeable or removes any race condition.\n\n* Rename refrigerator() to __refrigerator() and make it return bool\n  indicating whether it scheduled out for freezing.\n\n* Update try_to_freeze() to return bool and relay the return value of\n  __refrigerator() if freezing().\n\n* Convert all refrigerator() users to try_to_freeze().\n\n* Update documentation accordingly.\n\n* While at it, add might_sleep() to try_to_freeze().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Samuel Ortiz \u003csamuel@sortiz.org\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: KONISHI Ryusuke \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "b3e47ca0c2427ec72a74e36c6408784b6098f2b5",
      "tree": "88a435fa62c9b49225b2ff66b04f60fbc28a4796",
      "parents": [
        "465f0a760db4362f3353aaa95fea767e56370006"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Mon Nov 21 11:47:08 2011 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Nov 21 16:48:02 2011 +0000"
      },
      "message": "GFS2: split function rgblk_search\n\nThis patch splits function rgblk_search into a function that finds\nblocks to allocate (rgblk_search) and a function that assigns those\nblocks (gfs2_alloc_extent).\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@rehat.com\u003e\n\n"
    },
    {
      "commit": "465f0a760db4362f3353aaa95fea767e56370006",
      "tree": "36b4e12f747105902039ba1fcfe78a18b744531b",
      "parents": [
        "6e87ed0fc93ffbe2aec296e6912b1dcb19034d6c"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Nov 21 10:05:55 2011 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Nov 21 10:05:55 2011 +0000"
      },
      "message": "GFS2: Fix up \"off by one\" in the previous patch\n\nThe trace point should take extlen and not *ndata as the\nextent length.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "6e87ed0fc93ffbe2aec296e6912b1dcb19034d6c",
      "tree": "4f4ac522d34f35de3e3671996ddc35977aaa49ad",
      "parents": [
        "4442f2e03ed9646664c94e197e637b03324a6664"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Fri Nov 18 10:58:32 2011 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Nov 21 10:04:09 2011 +0000"
      },
      "message": "GFS2: move toward a generic multi-block allocator\n\nThis patch is a revision of the one I previously posted.\nI tried to integrate all the suggestions Steve gave.\nThe purpose of the patch is to change function gfs2_alloc_block\n(allocate either a dinode block or an extent of data blocks)\nto a more generic gfs2_alloc_blocks function that can\nallocate both a dinode _and_ an extent of data blocks in the\nsame call. This will ultimately help us create a multi-block\nreservation scheme to reduce file fragmentation.\n\nThis patch moves more toward a generic multi-block allocator that\ntakes a pointer to the number of data blocks to allocate, plus whether\nor not to allocate a dinode. In theory, it could be called to allocate\n(1) a single dinode block, (2) a group of one or more data blocks, or\n(3) a dinode plus several data blocks.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "4442f2e03ed9646664c94e197e637b03324a6664",
      "tree": "93f6219e9ccdc509413a773b5e815a4bcc7e0626",
      "parents": [
        "b9f417f311a7141d0ba67e5c8e535010d2712f2d"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Nov 21 10:01:25 2011 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Nov 21 10:01:25 2011 +0000"
      },
      "message": "GFS2: O_(D)SYNC support for fallocate\n\nAdd sync of metadata after fallocate for O_SYNC files to ensure that we\nmeet expectations for everything being on disk in this case.\nUnfortunately, the offset and len parameters are modified during the\ncourse of the fallocate function, so I\u0027ve had to add a couple of new\nvariables to call generic_write_sync() at the end.\n\nI know that potentially this will sync data as well within the range,\nbut I think that is a fairly harmless side-effect overall, since we\nwould not normally expect there to be any dirty data within the range in\nquestion.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\n"
    },
    {
      "commit": "b9f417f311a7141d0ba67e5c8e535010d2712f2d",
      "tree": "e9c74a8bd5958d9f4f39eb0da25e3ca16f0c17ee",
      "parents": [
        "3c5d785acfda7dffa63477951bb6864c6a49ed2e"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Nov 16 17:50:37 2011 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Nov 18 09:49:51 2011 +0000"
      },
      "message": "GFS2: remove vestigial al_alloced\n\nThis patch removes the vestigial variable al_alloced from\nthe gfs2_alloc structure. This is another baby step toward\nmulti-block reservations.\n\nMy next planned step is to decouple the quota variables\nfrom the gfs2_alloc structure so we can use a different\nmethod for allocations.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "3c5d785acfda7dffa63477951bb6864c6a49ed2e",
      "tree": "aa387498361ad753777363322a35b8feb80e5f85",
      "parents": [
        "c688b8b334d20acbc79b0383af2816ecf7365741"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Mon Nov 14 11:17:08 2011 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Nov 15 15:25:03 2011 +0000"
      },
      "message": "GFS2: combine gfs2_alloc_block and gfs2_alloc_di\n\nGFS2 functions gfs2_alloc_block and gfs2_alloc_di do basically\nthe same things, with a few exceptions. This patch combines\nthe two functions into a slightly more generic gfs2_alloc_block.\nHaving one centralized block allocation function will reduce\ncode redundancy and make it easier to implement multi-block\nreservations to reduce file fragmentation in the future.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "c688b8b334d20acbc79b0383af2816ecf7365741",
      "tree": "88d6db882149dcb05af56d8739af928360739bac",
      "parents": [
        "79c4c379c8f16a12c28ea2084db5138e33d17ebd"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Mon Nov 14 10:45:40 2011 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Nov 15 15:24:22 2011 +0000"
      },
      "message": "GFS2: Add non-try locks back to get_local_rgrp\n\nThis upstream patch had what I believe is an unintended consequence:\n\nhttp://git.kernel.org/?p\u003dlinux/kernel/git/steve/gfs2-3.0-nmw.git;a\u003dcommitdiff;h\u003dbeca42486749c1538a5ed58fe9dcc9f26d428c93\n\nThe patch changed function get_local_rgrp such that it ONLY\nused TRY locks for RGRP searches. Prior to that patch, the code\nused TRY locks during the first loop, and if that was unsuccessful,\nit used normal blocking locks on subsequent searches. This patch\nchanges it back to the old way.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "79c4c379c8f16a12c28ea2084db5138e33d17ebd",
      "tree": "f0d9648c0e4d1a087401c2e2cb7a4e5e9c80a99b",
      "parents": [
        "114b80ce2c05f91f10fffbf303080357d73c0675"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 09 13:46:06 2011 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 09 13:46:06 2011 +0000"
      },
      "message": "GFS2: f_ra is always valid in dir readahead function\n\nAs a result, we don\u0027t need to test it each time.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Bob Peterson \u003crpeterso@redhat.com\u003e\n"
    },
    {
      "commit": "114b80ce2c05f91f10fffbf303080357d73c0675",
      "tree": "3a4804a7cf7515d07baf9fbf899c07c95297f6ce",
      "parents": [
        "87654896ca619ff64f94d3881d6bd0ec7b29e25f"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 09 12:54:43 2011 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 09 12:54:43 2011 +0000"
      },
      "message": "GFS2: Fix very unlikley memory leak in ACL xattr code\n\nThis was spotted by automated code analysis. In case reading\nan ACL xattr failed (only likely to happen if there is an I/O\nerror for example, and even then only with unstuffed xattrs,\nso pretty difficult to trigger) a small amount of memory could\npotentially be leaked.\n\nThis patch adds a kfree to the error path, and also removes a\ntest which is no longer required (gfs2_ea_get_copy always\nreturns either a negative error, or a length)\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "87654896ca619ff64f94d3881d6bd0ec7b29e25f",
      "tree": "d5f19dca46c1d6aaa20a3a13acfe739eec0cc203",
      "parents": [
        "dfe4d34b39b80faff52489f950a18523da7581bf"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Nov 08 14:04:20 2011 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Nov 08 14:04:20 2011 +0000"
      },
      "message": "GFS2: More automated code analysis fixes\n\nA potentially uninitialised variable, some unreachable code,\nand the main part of this, fixing the error path in the\nunlink function.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "dfe4d34b39b80faff52489f950a18523da7581bf",
      "tree": "be478e2c4988612eef88a1669f774dd8f9f9b8af",
      "parents": [
        "20ed0535d35b74c9e4fa5777766d6e836fe3c90c"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Thu Oct 27 12:16:06 2011 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Nov 08 09:52:12 2011 +0000"
      },
      "message": "GFS2: Add readahead to sequential directory traversal\n\nThis patch adds read-ahead capability to GFS2\u0027s\ndirectory hash table management.  It greatly improves\nperformance for some directory operations.  For example:\nIn one of my file systems that has 1000 directories, each\nof which has 1000 files, time to execute a recursive\nls (time ls -fR /mnt/gfs2 \u003e /dev/null) was reduced\nfrom 2m2.814s on a stock kernel to 0m45.938s.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "20ed0535d35b74c9e4fa5777766d6e836fe3c90c",
      "tree": "9dc6ec31d998d52a5d66017ee737f108000134a7",
      "parents": [
        "1ea6b8f48918282bdca0b32a34095504ee65bab5"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Oct 31 09:52:02 2011 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Nov 08 09:51:53 2011 +0000"
      },
      "message": "GFS2: Fix up REQ flags\n\nChristoph has split up REQ_PRIO from REQ_META. That means that\nwe can drop REQ_PRIO from places where is it not needed. I\u0027m\nnot at all sure that the combination WRITE_FLUSH_FUA | REQ_PRIO\nmakes any kind of sense, anyway.\n\nIn addition, I\u0027ve added REQ_META to one place in the code where\nit was missing. REQ_PRIO has been left for read/writes triggered\nby glock acquisition and writeback only. We can adjust it again\nif required, but these are the most important points from a\nperformance perspective.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "32aaeffbd4a7457bf2f7448b33b5946ff2a960eb",
      "tree": "faf7ad871d87176423ff9ed1d1ba4d9c688fc23f",
      "parents": [
        "208bca0860406d16398145ddd950036a737c3c9d",
        "67b84999b1a8b1af5625b1eabe92146c5eb42932"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:44:47 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:44:47 2011 -0800"
      },
      "message": "Merge branch \u0027modsplit-Oct31_2011\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux\n\n* \u0027modsplit-Oct31_2011\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: (230 commits)\n  Revert \"tracing: Include module.h in define_trace.h\"\n  irq: don\u0027t put module.h into irq.h for tracking irqgen modules.\n  bluetooth: macroize two small inlines to avoid module.h\n  ip_vs.h: fix implicit use of module_get/module_put from module.h\n  nf_conntrack.h: fix up fallout from implicit moduleparam.h presence\n  include: replace linux/module.h with \"struct module\" wherever possible\n  include: convert various register fcns to macros to avoid include chaining\n  crypto.h: remove unused crypto_tfm_alg_modname() inline\n  uwb.h: fix implicit use of asm/page.h for PAGE_SIZE\n  pm_runtime.h: explicitly requires notifier.h\n  linux/dmaengine.h: fix implicit use of bitmap.h and asm/page.h\n  miscdevice.h: fix up implicit use of lists and types\n  stop_machine.h: fix implicit use of smp.h for smp_processor_id\n  of: fix implicit use of errno.h in include/linux/of.h\n  of_platform.h: delete needless include \u003clinux/module.h\u003e\n  acpi: remove module.h include from platform/aclinux.h\n  miscdevice.h: delete unnecessary inclusion of module.h\n  device_cgroup.h: delete needless include \u003clinux/module.h\u003e\n  net: sch_generic remove redundant use of \u003clinux/module.h\u003e\n  net: inet_timewait_sock doesnt need \u003clinux/module.h\u003e\n  ...\n\nFix up trivial conflicts (other header files, and  removal of the ab3550 mfd driver) in\n - drivers/media/dvb/frontends/dibx000_common.c\n - drivers/media/video/{mt9m111.c,ov6650.c}\n - drivers/mfd/ab3550-core.c\n - include/linux/dmaengine.h\n"
    },
    {
      "commit": "bfe8684869601dacfcb2cd69ef8cfd9045f62170",
      "tree": "4e213aaa766b26f43f0f9ec7998a7745239d9377",
      "parents": [
        "6d6b77f163c7eabedbba00ed2abb7d4a570bff76"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Oct 28 14:13:29 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@serles.lst.de",
        "time": "Wed Nov 02 12:53:43 2011 +0100"
      },
      "message": "filesystems: add set_nlink()\n\nReplace remaining direct i_nlink updates with a new set_nlink()\nupdater function.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nTested-by: Toshiyuki Okajima \u003ctoshi.okajima@jp.fujitsu.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "b9075fa968a0a4347aef35e235e2995c0e57dddd",
      "tree": "cf9f9716784e790d8a43339653256d9cf9178ff3",
      "parents": [
        "ae29bc92da01a2e9d278a9a58c3b307d41cc0254"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Oct 31 17:11:33 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:54 2011 -0700"
      },
      "message": "treewide: use __printf not __attribute__((format(printf,...)))\n\nStandardize the style for compiler based printf format verification.\nStandardized the location of __printf too.\n\nDone via script and a little typing.\n\n$ grep -rPl --include\u003d*.[ch] -w \"__attribute__\" * | \\\n  grep -vP \"^(tools|scripts|include/linux/compiler-gcc.h)\" | \\\n  xargs perl -n -i -e \u0027local $/; while (\u003c\u003e) { s/\\b__attribute__\\s*\\(\\s*\\(\\s*format\\s*\\(\\s*printf\\s*,\\s*(.+)\\s*,\\s*(.+)\\s*\\)\\s*\\)\\s*\\)/__printf($1, $2)/g ; print; }\u0027\n\n[akpm@linux-foundation.org: revert arch bits]\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: \"Kirill A. Shutemov\" \u003ckirill@shutemov.name\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "afeacc8c1f38b7bb93d4bc7b4ba04c2605061ef0",
      "tree": "e6eb248db3f932808ff2495a094e728d7d7f61e1",
      "parents": [
        "79bb1ee46ad1b76069108ca9b5467a3c14574744"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Thu May 26 16:00:52 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 19:30:31 2011 -0400"
      },
      "message": "fs: add export.h to files using EXPORT_SYMBOL/THIS_MODULE macros\n\nThese files were getting \u003clinux/module.h\u003e via an implicit include\npath, but we want to crush those out of existence since they cost\ntime during compiles of processing thousands of lines of headers\nfor no reason.  Give them the lightweight header that just contains\nthe EXPORT_SYMBOL infrastructure.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "f362f98e7c445643d27c610bb7a86b79727b592e",
      "tree": "399d9ebccdfbdfe9690ab1403a001d6f08e54b41",
      "parents": [
        "f793f2961170c0b49c1650e69e7825484159ce62",
        "f3c7691e8d30d88899b514675c7c86d19057b5fd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 10:49:34 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 10:49:34 2011 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/hch/vfs-queue\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/hch/vfs-queue: (21 commits)\n  leases: fix write-open/read-lease race\n  nfs: drop unnecessary locking in llseek\n  ext4: replace cut\u0027n\u0027pasted llseek code with generic_file_llseek_size\n  vfs: add generic_file_llseek_size\n  vfs: do (nearly) lockless generic_file_llseek\n  direct-io: merge direct_io_walker into __blockdev_direct_IO\n  direct-io: inline the complete submission path\n  direct-io: separate map_bh from dio\n  direct-io: use a slab cache for struct dio\n  direct-io: rearrange fields in dio/dio_submit to avoid holes\n  direct-io: fix a wrong comment\n  direct-io: separate fields only used in the submission path from struct dio\n  vfs: fix spinning prevention in prune_icache_sb\n  vfs: add a comment to inode_permission()\n  vfs: pass all mask flags check_acl and posix_acl_permission\n  vfs: add hex format for MAY_* flag values\n  vfs: indicate that the permission functions take all the MAY_* flags\n  compat: sync compat_stats with statfs.\n  vfs: add \"device\" tag to /proc/self/mountstats\n  cleanup: vfs: small comment fix for block_invalidatepage\n  ...\n\nFix up trivial conflict in fs/gfs2/file.c (llseek changes)\n"
    },
    {
      "commit": "f793f2961170c0b49c1650e69e7825484159ce62",
      "tree": "06d27973f9db1080c1460f32155ce2baf610c3d4",
      "parents": [
        "dabcbb1bae0f55378060b285062b20f6ec648c6a",
        "b99b98dc2673a123a73068f16720232d7be7e669"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 10:44:50 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 10:44:50 2011 -0700"
      },
      "message": "Merge http://sucs.org/~rohan/git/gfs2-3.0-nmw\n\n* http://sucs.org/~rohan/git/gfs2-3.0-nmw: (24 commits)\n  GFS2: Move readahead of metadata during deallocation into its own function\n  GFS2: Remove two unused variables\n  GFS2: Misc fixes\n  GFS2: rewrite fallocate code to write blocks directly\n  GFS2: speed up delete/unlink performance for large files\n  GFS2: Fix off-by-one in gfs2_blk2rgrpd\n  GFS2: Clean up -\u003epage_mkwrite\n  GFS2: Correctly set goal block after allocation\n  GFS2: Fix AIL flush issue during fsync\n  GFS2: Use cached rgrp in gfs2_rlist_add()\n  GFS2: Call do_strip() directly from recursive_scan()\n  GFS2: Remove obsolete assert\n  GFS2: Cache the most recently used resource group in the inode\n  GFS2: Make resource groups \"append only\" during life of fs\n  GFS2: Use rbtree for resource groups and clean up bitmap buffer ref count scheme\n  GFS2: Fix lseek after SEEK_DATA, SEEK_HOLE have been added\n  GFS2: Clean up gfs2_create\n  GFS2: Use -\u003edirty_inode()\n  GFS2: Fix bug trap and journaled data fsync\n  GFS2: Fix inode allocation error path\n  ...\n"
    },
    {
      "commit": "ef3d0fd27e90f67e35da516dafc1482c82939a60",
      "tree": "dea852eab2a52782867becffb11bce2577ed2b91",
      "parents": [
        "847cc6371ba820763773e993000410d6d8d23515"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Thu Sep 15 16:06:48 2011 -0700"
      },
      "committer": {
        "name": "root",
        "email": "root@serles.lst.de",
        "time": "Fri Oct 28 14:58:58 2011 +0200"
      },
      "message": "vfs: do (nearly) lockless generic_file_llseek\n\nThe i_mutex lock use of generic _file_llseek hurts.  Independent processes\naccessing the same file synchronize over a single lock, even though\nthey have no need for synchronization at all.\n\nUnder high utilization this can cause llseek to scale very poorly on larger\nsystems.\n\nThis patch does some rethinking of the llseek locking model:\n\nFirst the 64bit f_pos is not necessarily atomic without locks\non 32bit systems. This can already cause races with read() today.\nThis was discussed on linux-kernel in the past and deemed acceptable.\nThe patch does not change that.\n\nLet\u0027s look at the different seek variants:\n\nSEEK_SET: Doesn\u0027t really need any locking.\nIf there\u0027s a race one writer wins, the other loses.\n\nFor 32bit the non atomic update races against read()\nstay the same. Without a lock they can also happen\nagainst write() now.  The read() race was deemed\nacceptable in past discussions, and I think if it\u0027s\nok for read it\u0027s ok for write too.\n\n\u003d\u003e Don\u0027t need a lock.\n\nSEEK_END: This behaves like SEEK_SET plus it reads\nthe maximum size too. Reading the maximum size would have the\n32bit atomic problem. But luckily we already have a way to read\nthe maximum size without locking (i_size_read), so we\ncan just use that instead.\n\nWithout i_mutex there is no synchronization with write() anymore,\nhowever since the write() update is atomic on 64bit it just behaves\nlike another racy SEEK_SET.  On non atomic 32bit it\u0027s the same\nas SEEK_SET.\n\n\u003d\u003e Don\u0027t need a lock, but need to use i_size_read()\n\nSEEK_CUR: This has a read-modify-write race window\non the same file. One could argue that any application\ndoing unsynchronized seeks on the same file is already broken.\nBut for the sake of not adding a regression here I\u0027m\nusing the file-\u003ef_lock to synchronize this. Using this\nlock is much better than the inode mutex because it doesn\u0027t\nsynchronize between processes.\n\n\u003d\u003e So still need a lock, but can use a f_lock.\n\nThis patch implements this new scheme in generic_file_llseek.\nI dropped generic_file_llseek_unlocked and changed all callers.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "36b8d186e6cc8e32cb5227f5645a58e1bc0af190",
      "tree": "1000ad26e189e6ff2c53fb7eeff605f59c7ad94e",
      "parents": [
        "cd85b557414fe4cd44ea6608825e96612a5fe2b2",
        "c45ed235abf1b0b6666417e3c394f18717976acd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 25 09:45:31 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 25 09:45:31 2011 +0200"
      },
      "message": "Merge branch \u0027next\u0027 of git://selinuxproject.org/~jmorris/linux-security\n\n* \u0027next\u0027 of git://selinuxproject.org/~jmorris/linux-security: (95 commits)\n  TOMOYO: Fix incomplete read after seek.\n  Smack: allow to access /smack/access as normal user\n  TOMOYO: Fix unused kernel config option.\n  Smack: fix: invalid length set for the result of /smack/access\n  Smack: compilation fix\n  Smack: fix for /smack/access output, use string instead of byte\n  Smack: domain transition protections (v3)\n  Smack: Provide information for UDS getsockopt(SO_PEERCRED)\n  Smack: Clean up comments\n  Smack: Repair processing of fcntl\n  Smack: Rule list lookup performance\n  Smack: check permissions from user space (v2)\n  TOMOYO: Fix quota and garbage collector.\n  TOMOYO: Remove redundant tasklist_lock.\n  TOMOYO: Fix domain transition failure warning.\n  TOMOYO: Remove tomoyo_policy_memory_lock spinlock.\n  TOMOYO: Simplify garbage collector.\n  TOMOYO: Fix make namespacecheck warnings.\n  target: check hex2bin result\n  encrypted-keys: check hex2bin result\n  ...\n"
    },
    {
      "commit": "b99b98dc2673a123a73068f16720232d7be7e669",
      "tree": "a191b03e9c054c62777d1b3ab3cae55cbd6e5e01",
      "parents": [
        "9ae32429fe036fcfce036ec57b28fc59f3911976"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Sep 21 11:05:16 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Oct 21 12:39:54 2011 +0100"
      },
      "message": "GFS2: Move readahead of metadata during deallocation into its own function\n\nMove the recently added readahead of the indirect pointer\ntree during deallocation into its own function in order\nthat we can use it elsewhere in the future. Also this\nfixes the resetting of the \"first\" variable in the\noriginal patch.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "9ae32429fe036fcfce036ec57b28fc59f3911976",
      "tree": "a331589e14fef9f8149fc3e1f00baab7d60260fe",
      "parents": [
        "891a8e9335176b7eb9adc5e34f555ee5e1da47c6"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Sep 20 12:16:11 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Oct 21 12:39:52 2011 +0100"
      },
      "message": "GFS2: Remove two unused variables\n\nThe two variables being initialised in gfs2_inplace_reserve\nto track the file \u0026 line number of the caller are never\nused, so we might as well remove them.\n\nIf something does go wrong, then a stack trace is probably\nmore useful anyway.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "891a8e9335176b7eb9adc5e34f555ee5e1da47c6",
      "tree": "61e52cad86ab0455f310478189f21722a785c16d",
      "parents": [
        "64dd153c83743af81f20924c6343652d731eeecb"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 19 10:25:49 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Oct 21 12:39:51 2011 +0100"
      },
      "message": "GFS2: Misc fixes\n\nSome items picked up through automated code analysis. A few bits\nof unreachable code and two unchecked return values.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "64dd153c83743af81f20924c6343652d731eeecb",
      "tree": "e296566ece355c34cb10ad35ce35f43ca58fd036",
      "parents": [
        "bd5437a7d4307a35f2c7cc19cad706ec0e5d61f0"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Mon Sep 12 18:15:24 2011 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Oct 21 12:39:49 2011 +0100"
      },
      "message": "GFS2: rewrite fallocate code to write blocks directly\n\nGFS2\u0027s fallocate code currently goes through the page cache. Since it\u0027s only\nwriting to the end of the file or to holes in it, it doesn\u0027t need to, and it\nwas causing issues on low memory environments. This patch pulls in some of\nSteve\u0027s block allocation work, and uses it to simply allocate the blocks for\nthe file, and zero them out at allocation time.  It provides a slight\nperformance increase, and it dramatically simplifies the code.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "bd5437a7d4307a35f2c7cc19cad706ec0e5d61f0",
      "tree": "3014bf500f6fc1aa90989d5ae956d1c45ff478d2",
      "parents": [
        "f75bbfb4dda68c86eb33cde7e2b5c1343c6d5812"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Thu Sep 15 09:59:56 2011 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Oct 21 12:39:47 2011 +0100"
      },
      "message": "GFS2: speed up delete/unlink performance for large files\n\nThis patch improves the performance of delete/unlink\noperations in a GFS2 file system where the files are large\nby adding a layer of metadata read-ahead for indirect blocks.\nMileage will vary, but on my system, deleting an 8.6G file\ndropped from 22 seconds to about 4.5 seconds.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "f75bbfb4dda68c86eb33cde7e2b5c1343c6d5812",
      "tree": "42d5f7a3637061cddc3170aac8e57c4933007898",
      "parents": [
        "13d921e37174e3d1042deeb303537c1d935da553"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Sep 08 10:21:13 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Oct 21 12:39:46 2011 +0100"
      },
      "message": "GFS2: Fix off-by-one in gfs2_blk2rgrpd\n\nBob reported:\n\nI found an off-by-one problem with how I coded this section:\nIt should be:\n\n+ else if (blk \u003e\u003d cur-\u003erd_data0 + cur-\u003erd_data)\n\nIn fact, cur-\u003erd_data0 + cur-\u003erd_data is the start of the next\nrgrp (the next ri_addr), so without the \"\u003d\" check it can land on\nthe wrong rgrp.\n\nIn all normal cases, this won\u0027t be a problem: you\u0027re searching\nfor a block _within_ the rgrp, which will pass the test properly.\nWhere it gets into trouble is if you search the rgrps for the\nblock exactly equal to ri_addr.  I don\u0027t think anything in the\nkernel does this, but I found a place in gfs2-utils gfs2_edit\nwhere it does.  So I definitely need to fix it in libgfs2.  I\u0027d\nlike to suggest we fix it in the kernel as well for the sake of\nkeeping the functions similar.\n\nSo this patch fixes the above mentioned off by one error as well\nas removing the unused parent pointer.\n\nReported-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "13d921e37174e3d1042deeb303537c1d935da553",
      "tree": "c3d208bd4e8eaec8e0f07586f6b21f3c7cd5832b",
      "parents": [
        "ccad4e147acf2a59b463f5df3cee8b43b144ce82"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Sep 07 15:12:51 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Oct 21 12:39:44 2011 +0100"
      },
      "message": "GFS2: Clean up -\u003epage_mkwrite\n\nThis patch brings gfs2\u0027s -\u003epage_mkwrite uptodate with respect to the\nexpectations set by the VM. Also added is a check to wait if the fs\nis frozen, before we attempt to get a glock. This will only work on\nthe node which initiates the freeze, but thats ok since the transaction\nlock will still provide the expected barrier on other nodes.\n\nThe major change here is that we return a locked page now, except when\nwe don\u0027t return a page at all (error cases). This removes the race\nwhich required rechecking the page after it was returned.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "ccad4e147acf2a59b463f5df3cee8b43b144ce82",
      "tree": "413aa2eecde02b2167829d1758de941a1244c5c6",
      "parents": [
        "b5b24d7aeb9608935786369ac2d3e9f362877d55"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Sep 07 12:15:23 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Oct 21 12:39:42 2011 +0100"
      },
      "message": "GFS2: Correctly set goal block after allocation\n\nThe new goal block should be set to the end of the newly\nallocated extent, not the start of it.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b5b24d7aeb9608935786369ac2d3e9f362877d55",
      "tree": "2043123df7a6e6ca367b24cb3442ee50314cdee0",
      "parents": [
        "70b0c3656f12964a6dac104214c904c66e626058"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Sep 07 10:33:25 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Oct 21 12:39:41 2011 +0100"
      },
      "message": "GFS2: Fix AIL flush issue during fsync\n\nUnfortunately, it is not enough to just ignore locked buffers during\nthe AIL flush from fsync. We need to be able to ignore all buffers\nwhich are locked, dirty or pinned at this stage as they might have\nbeen added subsequent to the log flush earlier in the fsync function.\n\nIn addition, this means that we no longer need to rely on i_mutex to\nkeep out writes during fsync, so we can, as a side-effect, remove\nthat protection too.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nTested-By: Abhijith Das \u003cadas@redhat.com\u003e\n"
    },
    {
      "commit": "70b0c3656f12964a6dac104214c904c66e626058",
      "tree": "f58b4b67d6343d5b48c6335fb93ccbe6ed61e1c0",
      "parents": [
        "d56fa8a1c17b68274349fc852f634af99c0c4671"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Sep 02 16:08:09 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Oct 21 12:39:39 2011 +0100"
      },
      "message": "GFS2: Use cached rgrp in gfs2_rlist_add()\n\nEach block which is deallocated, requires a call to gfs2_rlist_add()\nand each of those calls was calling gfs2_blk2rgrpd() in order to\nfigure out which rgrp the block belonged in. This can be speeded up\nby making use of the rgrp cached in the inode. We also reset this\ncached rgrp in case the block has changed rgrp. This should provide\na big reduction in gfs2_blk2rgrpd() calls during deallocation.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "d56fa8a1c17b68274349fc852f634af99c0c4671",
      "tree": "e2089551b7abc12fc615eb2f169d4693093a17f4",
      "parents": [
        "534029e2fd06ac9a5a1b33b2735e3ac3242adb29"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Sep 02 12:43:41 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Oct 21 12:39:38 2011 +0100"
      },
      "message": "GFS2: Call do_strip() directly from recursive_scan()\n\nThe recursive_scan() function only ever takes a single \"bc\"\nargument, so we might as well just call do_strip() directly\nfrom resource_scan() rather than pass it in as an argument.\n\nAlso the \"data\" argument is always a struct strip_mine, so\nwe can pass that in, rather than using a void pointer.\n\nThis also moves do_strip() ahead of recursive_scan() so that\nwe don\u0027t need to add a prototype.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "534029e2fd06ac9a5a1b33b2735e3ac3242adb29",
      "tree": "601705fb117963ae27a18f4c27d7de6ac83675b5",
      "parents": [
        "54335b1fca27b84baa75b1f45985d98262003837"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Sep 01 16:36:44 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Oct 21 12:39:36 2011 +0100"
      },
      "message": "GFS2: Remove obsolete assert\n\nGiven that a resource group has been locked, there is no reason why\nwe should not be able to allocate as many blocks as are free. The\nal_requested parameter should really be considered as a minimum\nnumber of blocks to be available. Should this limit be overshot,\nthere are other mechanisms which will prevent over allocation.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "54335b1fca27b84baa75b1f45985d98262003837",
      "tree": "c6b21aff1759d86be56208e9981117e4383c3f47",
      "parents": [
        "8339ee543ece6e2dcc1bbd97d5350163c198cf00"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Sep 01 13:31:59 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Oct 21 12:39:34 2011 +0100"
      },
      "message": "GFS2: Cache the most recently used resource group in the inode\n\nThis means that after the initial allocation for any inode, the\nlast used resource group is cached in the inode for future use.\nThis drastically reduces the number of lookups of resource\ngroups in the common case, and this the contention on that\ndata structure.\n\nThe allocation algorithm is the same as previously, except that we\nalways check to see if the goal block is within the cached rgrp\nfirst before going to the rbtree to look one up.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "8339ee543ece6e2dcc1bbd97d5350163c198cf00",
      "tree": "80b3d4b990a8ab5f8b7c28945f694b01301c05c6",
      "parents": [
        "7c9ca621137cde26be05448133fc1a554345f4f8"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Aug 31 16:38:29 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Oct 21 12:39:33 2011 +0100"
      },
      "message": "GFS2: Make resource groups \"append only\" during life of fs\n\nSince we have ruled out supporting online filesystem shrink,\nit is possible to make the resource group list append only\nduring the life of a super block. This gives several benefits:\n\nFirstly, we only need to read new rindex elements as they are added\nrather than needing to reread the whole rindex file each time one\nelement is added.\n\nSecondly, the rindex glock can be held for much shorter periods of\ntime, and is completely removed from the fast path for allocations.\nThe lock is taken in shared mode only when updating the resource\ngroups when the first allocation occurs, and after a grow has\ntaken place.\n\nThirdly, this results in a reduction in code size, and everything\ngets a lot simpler to understand in this area.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "7c9ca621137cde26be05448133fc1a554345f4f8",
      "tree": "9c0779d2ca6fa8a1c6dab7ff6391bef8f444f1b3",
      "parents": [
        "9453615a1a7ef3fa910c6464a619595556cfcd63"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Aug 31 09:53:19 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Oct 21 12:39:31 2011 +0100"
      },
      "message": "GFS2: Use rbtree for resource groups and clean up bitmap buffer ref count scheme\n\nHere is an update of Bob\u0027s original rbtree patch which, in addition, also\nresolves the rather strange ref counting that was being done relating to\nthe bitmap blocks.\n\nOriginally we had a dual system for journaling resource groups. The metadata\nblocks were journaled and also the rgrp itself was added to a list. The reason\nfor adding the rgrp to the list in the journal was so that the \"repolish\nclones\" code could be run to update the free space, and potentially send any\ndiscard requests when the log was flushed. This was done by comparing the\n\"cloned\" bitmap with what had been written back on disk during the transaction\ncommit.\n\nDue to this, there was a requirement to hang on to the rgrps\u0027 bitmap buffers\nuntil the journal had been flushed. For that reason, there was a rather\ncomplicated set up in the -\u003ego_lock -\u003ego_unlock functions for rgrps involving\nboth a mutex and a spinlock (the -\u003esd_rindex_spin) to maintain a reference\ncount on the buffers.\n\nHowever, the journal maintains a reference count on the buffers anyway, since\nthey are being journaled as metadata buffers. So by moving the code which deals\nwith the post-journal accounting for bitmap blocks to the metadata journaling\ncode, we can entirely dispense with the rather strange buffer ref counting\nscheme and also the requirement to journal the rgrps.\n\nThe net result of all this is that the -\u003esd_rindex_spin is left to do exactly\none job, and that is to look after the rbtree or rgrps.\n\nThis patch is designed to be a stepping stone towards using RCU for the rbtree\nof resource groups, however the reduction in the number of uses of the\n-\u003esd_rindex_spin is likely to have benefits for multi-threaded workloads,\nanyway.\n\nThe patch retains -\u003ego_lock and -\u003ego_unlock for rgrps, however these maybe also\nbe removed in future in favour of calling the functions directly where required\nin the code. That will allow locking of resource groups without needing to\nactually read them in - something that could be useful in speeding up statfs.\n\nIn the mean time though it is valid to dereference -\u003ebi_bh only when the rgrp\nis locked. This is basically the same rule as before, modulo the references not\nbeing valid until the following journal flush.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nCc: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\n"
    },
    {
      "commit": "9453615a1a7ef3fa910c6464a619595556cfcd63",
      "tree": "40242c84367376197420ce12e50ae29e720dc5e3",
      "parents": [
        "9a63edd12ba3c18351f00d6b77a6b2f49f2b8eb6"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Aug 23 10:19:25 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Oct 21 12:39:29 2011 +0100"
      },
      "message": "GFS2: Fix lseek after SEEK_DATA, SEEK_HOLE have been added\n\nWe need to take the inode\u0027s glock whenever the inode\u0027s size\nis referenced, otherwise it might not be uptodate. Even\nthough generic_file_llseek_unlocked() doesn\u0027t implement\nSEEK_DATA, SEEK_HOLE directly, it does reference the inode\u0027s\nsize in those cases, so we need to add them to the list\nof origins which need the glock.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "9a63edd12ba3c18351f00d6b77a6b2f49f2b8eb6",
      "tree": "46aac35d5e39bd393aca9cd2654235be42859d82",
      "parents": [
        "ab9bbda0204dfd0e5342562d9979d1241b14ea5f"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Aug 18 14:35:53 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Oct 21 12:39:28 2011 +0100"
      },
      "message": "GFS2: Clean up gfs2_create\n\nIf we pass through knowledge of whether the creation is intended to be\nexclusive or not, then we can deal with that in gfs2_create_inode\nand remove one set of locking. Also this removes the loop in\ngfs2_create and simplifies the code a bit.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ab9bbda0204dfd0e5342562d9979d1241b14ea5f",
      "tree": "621e623d99fbef1432da17b6390c92d7f13224a4",
      "parents": [
        "f18185291d605ea9e442e00e2cf6c917a84d9837"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Aug 15 14:20:36 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Oct 21 12:39:26 2011 +0100"
      },
      "message": "GFS2: Use -\u003edirty_inode()\n\nThe aim of this patch is to use the newly enhanced -\u003edirty_inode()\nsuper block operation to deal with atime updates, rather than\npiggy backing that code into -\u003ewrite_inode() as is currently\ndone.\n\nThe net result is a simplification of the code in various places\nand a reduction of the number of gfs2_dinode_out() calls since\nthis is now implied by -\u003edirty_inode().\n\nSome of the mark_inode_dirty() calls have been moved under glocks\nin order to take advantage of then being able to avoid locking in\n-\u003edirty_inode() when we already have suitable locks.\n\nOne consequence is that generic_write_end() now correctly deals\nwith file size updates, so that we do not need a separate check\nfor that afterwards. This also, indirectly, means that fdatasync\nshould work correctly on GFS2 - the current code always syncs the\nmetadata whether it needs to or not.\n\nHas survived testing with postmark (with and without atime) and\nalso fsx.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "f18185291d605ea9e442e00e2cf6c917a84d9837",
      "tree": "27c3148fcce8de4d52dba528fd788e6c2059c9c8",
      "parents": [
        "40ac218f52aa5cac7dc8082f28b61c8b2b29373c"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Aug 05 10:12:47 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Oct 21 12:39:25 2011 +0100"
      },
      "message": "GFS2: Fix bug trap and journaled data fsync\n\nJournaled data requires that a complete flush of all dirty data for\nthe file is done, in order that the ail flush which comes after\nwill succeed.\n\nAlso the recently enhanced bug trap can trigger falsely in case\nan ail flush from fsync races with a page read. This updates the\nbug trap such that it will ignore buffers which are locked and\nonly trigger on dirty and/or pinned buffers when the ail flush\nis run from fsync. The original bug trap is retained when ail\nflush is run from -\u003ego_sync()\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "40ac218f52aa5cac7dc8082f28b61c8b2b29373c",
      "tree": "34e86173a2554b738f0141a1c38ffc3191d2f228",
      "parents": [
        "1d4ec642d9f00d4c531b1a4ae0613091ec1f8e9b"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Aug 02 13:17:27 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Oct 21 12:39:23 2011 +0100"
      },
      "message": "GFS2: Fix inode allocation error path\n\nIf we have got far enough through the inode allocation code\npath that an inode has already been allocated, then we must\ncall iput to dispose of it, if an error occurs during a\nlater part of the process. This will always be the final iput\nsince there will be no other references to the inode.\n\nUnlike when the inode has been unlinked, its block state will\nbe GFS2_BLKST_INODE rather than GFS2_BLKST_UNLINKED so we need\nto skip the test in -\u003eevict_inode() for this one case in order\nto ensure that it will be deallocated correctly. This patch adds\na new flag in order to ensure that this will happen correctly.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "1d4ec642d9f00d4c531b1a4ae0613091ec1f8e9b",
      "tree": "71b7c5944b21d87750802e70dcd69698f17b3e7d",
      "parents": [
        "75549186edf1515062fe2fcbfbd92bd99659afba"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Aug 02 13:13:20 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Oct 21 12:39:21 2011 +0100"
      },
      "message": "GFS2: Make atime checks more efficient\n\nWe do not need to start a transaction unless the atime\ncheck has proved positive. Also if we are going to flush\nthe complete ail list anyway, we might as well skip the\nwriteback for this specific inode\u0027s metadata, since that\nwill be done as part of the ail writeback process in an\norder offering potentially more efficient I/O.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "75549186edf1515062fe2fcbfbd92bd99659afba",
      "tree": "c3942739398fdf76b2cfaa3e5f72575f7fa8d4f8",
      "parents": [
        "2f0264d592e34cde99efbad7d616b04af138e913"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Aug 02 13:09:36 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Oct 21 12:39:20 2011 +0100"
      },
      "message": "GFS2: Fix bug-trap in ail flush code\n\nThe assert was being tested under the wrong lock, a\nlegacy of the original code. Also, if it does trigger,\nthe resulting information was not always a lot of help.\n\nThis moves the patch under the correct lock and also\nprints out more useful information in tacking down the\nsource of the problem.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "2f0264d592e34cde99efbad7d616b04af138e913",
      "tree": "c3839570b304396513c8cc296a3fc7130b6066f1",
      "parents": [
        "4c28d33803d4aeaff32b4ac502af11a9b2aed8f4"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jul 27 10:58:48 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Oct 21 12:39:18 2011 +0100"
      },
      "message": "GFS2: Split data write \u0026 wait in fsync\n\nNow that the data writing is part of fsync proper, we can split\nthe waiting part out and do it later on. This reduces the\nnumber of waits that we do during fsync on average.\n\nThere is also no need to take the i_mutex unless we are flushing\nmetadata to disk, so we can move that to within the metadata\nflushing code.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "4c28d33803d4aeaff32b4ac502af11a9b2aed8f4",
      "tree": "c7119b6755aae3e1ceceedec54e481d9ff893b00",
      "parents": [
        "fd11e153b82ad1c84ccc71ba1cfedc222465198c"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jul 26 09:17:28 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Oct 21 12:39:17 2011 +0100"
      },
      "message": "GFS2: Clean up dir hash table reading\n\nSince there is now only a single caller to gfs2_dir_read_data()\nand it has a number of constant arguments, we can factor\nthose out. Also some tests relating to the inode size were\nbeing done twice.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "65299a3b788bd274bed92f9fa3232082c9f3ea70",
      "tree": "191c0afe31c15ac4c1bab96e0a07fddb097d0de8",
      "parents": [
        "5dc06c5a70b79a323152bec7e55783e705767e63"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Aug 23 14:50:29 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Aug 23 14:50:29 2011 +0200"
      },
      "message": "block: separate priority boosting from REQ_META\n\nAdd a new REQ_PRIO to let requests preempt others in the cfq I/O schedule,\nand lave REQ_META purely for marking requests as metadata in blktrace.\n\nAll existing callers of REQ_META except for XFS are updated to also\nset REQ_PRIO for now.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "5dc06c5a70b79a323152bec7e55783e705767e63",
      "tree": "8f008edc8574ecda04ee6deb13d69b489e8250b6",
      "parents": [
        "fcb8ce5cfe30ca9ca5c9a79cdfe26d1993e65e0c"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Aug 23 14:49:55 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Aug 23 14:49:55 2011 +0200"
      },
      "message": "block: remove READ_META and WRITE_META\n\nReplace all occurnanced of the undocumented READ_META with READ | REQ_META\nand remove the unused WRITE_META define.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "5a2f3a02aea164f4f59c0c3497772090a411b462",
      "tree": "d3ebe03d4f97575290087843960baa01de3acd0a",
      "parents": [
        "1d568ab068c021672d6cd7f50f92a3695a921ffb",
        "817b54aa45db03437c6d09a7693fc6926eb8e822"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Aug 09 10:31:03 2011 +1000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Aug 09 10:31:03 2011 +1000"
      },
      "message": "Merge branch \u0027next-evm\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/zohar/ima-2.6 into next\n\nConflicts:\n\tfs/attr.c\n\nResolve conflict manually.\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "1b8e94993c4752d98c33903aa836acc15f7e6d5c",
      "tree": "b78cba208f0a193ce6ceebbc146021af4425b4e1",
      "parents": [
        "12ff47e7f5fb64c566f62e6cf6a3b291c51bd337",
        "206d440f64030b6425841bf7cb38e26a5ea0c382"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 01 13:48:31 2011 -1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 01 13:48:31 2011 -1000"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  xfs: Fix build breakage in xfs_iops.c when CONFIG_FS_POSIX_ACL is not set\n  VFS: Reorganise shrink_dcache_for_umount_subtree() after demise of dcache_lock\n  VFS: Remove dentry-\u003ed_lock locking from shrink_dcache_for_umount_subtree()\n  VFS: Remove detached-dentry counter from shrink_dcache_for_umount_subtree()\n  switch posix_acl_chmod() to umode_t\n  switch posix_acl_from_mode() to umode_t\n  switch posix_acl_equiv_mode() to umode_t *\n  switch posix_acl_create() to umode_t *\n  block: initialise bd_super in bdget()\n  vfs: avoid call to inode_lru_list_del() if possible\n  vfs: avoid taking inode_hash_lock on pipes and sockets\n  vfs: conditionally call inode_wb_list_del()\n  VFS: Fix automount for negative autofs dentries\n  Btrfs: load the key from the dir item in readdir into a fake dentry\n  devtmpfs: missing initialialization in never-hit case\n  hppfs: missing include\n"
    },
    {
      "commit": "d6952123b53cc8b334df69bba2cd0063b0d88f68",
      "tree": "b1ccaa7e3d65dbf4af093202044da65bc4deb34e",
      "parents": [
        "d3fb612076eebec6f67257db0c7a9666ac7e5892"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 23 18:56:36 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 01 02:10:06 2011 -0400"
      },
      "message": "switch posix_acl_equiv_mode() to umode_t *\n\n... so that \u0026inode-\u003ei_mode could be passed to it\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d3fb612076eebec6f67257db0c7a9666ac7e5892",
      "tree": "5265fca258a74ffa75b845998492abb9446db72c",
      "parents": [
        "782b94cdf577b4df1feb376f372dccc28e66a771"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 23 18:37:50 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 01 02:09:42 2011 -0400"
      },
      "message": "switch posix_acl_create() to umode_t *\n\nso we can pass \u0026inode-\u003ei_mode to it\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "333c066bb76f1f270ca77f16afe198e54e352c83",
      "tree": "07343bcb01b28ca48c4e364a5da7dcacc0c37439",
      "parents": [
        "75623437167d9d1ef14acaf6b3fb4ccd38fcbc84",
        "19237039919088781b4191a00bdc1284d8fea1dd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 27 09:26:22 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 27 09:26:22 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: Fix mount hang caused by certain access pattern to sysfs files\n"
    },
    {
      "commit": "60063497a95e716c9a689af3be2687d261f115b4",
      "tree": "6ce0d68db76982c53df46aee5f29f944ebf2c320",
      "parents": [
        "148817ba092f9f6edd35bad3c6c6b8e8f90fe2ed"
      ],
      "author": {
        "name": "Arun Sharma",
        "email": "asharma@fb.com",
        "time": "Tue Jul 26 16:09:06 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:47 2011 -0700"
      },
      "message": "atomic: use \u003clinux/atomic.h\u003e\n\nThis allows us to move duplicated code in \u003casm/atomic.h\u003e\n(atomic_inc_not_zero() for now) to \u003clinux/atomic.h\u003e\n\nSigned-off-by: Arun Sharma \u003casharma@fb.com\u003e\nReviewed-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "19237039919088781b4191a00bdc1284d8fea1dd",
      "tree": "2d1fb1d68caa6eb642fa6b201163619bd616b559",
      "parents": [
        "e08dc1325feaf49eec392ee52feb2974ec3f5155"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jul 26 09:15:45 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jul 26 10:18:37 2011 +0100"
      },
      "message": "GFS2: Fix mount hang caused by certain access pattern to sysfs files\n\nDepending upon the order of userspace/kernel during the\nmount process, this can result in a hang without the\n_all version of the completion.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "4e34e719e457f2e031297175410fc0bd4016a085",
      "tree": "ab969a371e0d2efc6bfbf503ca6cdfce3af3bf6c",
      "parents": [
        "edde854e8bb34a7f32fa993d721f1da0faf64165"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sat Jul 23 17:37:31 2011 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 25 14:30:23 2011 -0400"
      },
      "message": "fs: take the ACL checks to common code\n\nReplace the -\u003echeck_acl method with a -\u003eget_acl method that simply reads an\nACL from disk after having a cache miss.  This means we can replace the ACL\nchecking boilerplate code with a single implementation in namei.c.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "826cae2f2b4d726b925f43bc208a571639da4761",
      "tree": "b7f83eecf3bde8c4e455d89c7c535988b3e8bd59",
      "parents": [
        "95203befa8887997f14077d8557e67d78457ee02"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 23 03:10:32 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 25 14:27:32 2011 -0400"
      },
      "message": "kill boilerplates around posix_acl_create_masq()\n\nnew helper: posix_acl_create(\u0026acl, gfp, mode_p).  Replaces acl with\nmodified clone, on failure releases acl and replaces with NULL.\nReturns 0 or -ve on error.  All callers of posix_acl_create_masq()\nswitched.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bc26ab5f65ae41b71df86ea46df3c3833d1d8d83",
      "tree": "85bbc4e0da4fac99ccf31b3609c61e2b148a8498",
      "parents": [
        "4482a087d4c5a6ffbc385c56b4a4e2f694d9fd5d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 23 00:18:02 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 25 14:27:30 2011 -0400"
      },
      "message": "kill boilerplate around posix_acl_chmod_masq()\n\nnew helper: posix_acl_chmod(\u0026acl, gfp, mode).  Replaces acl with modified\nclone or with NULL if that has failed; returns 0 or -ve on error.  All\ncallers of posix_acl_chmod_masq() switched to that - they\u0027d been doing\nexactly the same thing.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e77819e57f0817c6dc7cadd061acd70c604cbce2",
      "tree": "f5d7aba2dfbb747a97d783b7cc6a486922c42559",
      "parents": [
        "3ca30d40a91fb9b9871e61d5dea2c1a895906a15"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 19:30:19 2011 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 25 14:23:39 2011 -0400"
      },
      "message": "vfs: move ACL cache lookup into generic code\n\nThis moves logic for checking the cached ACL values from low-level\nfilesystems into generic code.  The end result is a streamlined ACL\ncheck that doesn\u0027t need to load the inode-\u003ei_op-\u003echeck_acl pointer at\nall for the common cached case.\n\nThe filesystems also don\u0027t need to check for a non-blocking RCU walk\ncase in their acl_check() functions, because that is all handled at a\nVFS layer.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bbd9d6f7fbb0305c9a592bf05a32e87eb364a4ff",
      "tree": "12b2bb4202b05f6ae6a43c6ce830a0472043dbe5",
      "parents": [
        "8e204874db000928e37199c2db82b7eb8966cc3c",
        "5a9a43646cf709312d71eca71cef90ad802f28f9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 19:02:39 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 19:02:39 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (107 commits)\n  vfs: use ERR_CAST for err-ptr tossing in lookup_instantiate_filp\n  isofs: Remove global fs lock\n  jffs2: fix IN_DELETE_SELF on overwriting rename() killing a directory\n  fix IN_DELETE_SELF on overwriting rename() on ramfs et.al.\n  mm/truncate.c: fix build for CONFIG_BLOCK not enabled\n  fs:update the NOTE of the file_operations structure\n  Remove dead code in dget_parent()\n  AFS: Fix silly characters in a comment\n  switch d_add_ci() to d_splice_alias() in \"found negative\" case as well\n  simplify gfs2_lookup()\n  jfs_lookup(): don\u0027t bother with . or ..\n  get rid of useless dget_parent() in btrfs rename() and link()\n  get rid of useless dget_parent() in fs/btrfs/ioctl.c\n  fs: push i_mutex and filemap_write_and_wait down into -\u003efsync() handlers\n  drivers: fix up various -\u003ellseek() implementations\n  fs: handle SEEK_HOLE/SEEK_DATA properly in all fs\u0027s that define their own llseek\n  Ext4: handle SEEK_HOLE/SEEK_DATA generically\n  Btrfs: implement our own -\u003ellseek\n  fs: add SEEK_HOLE and SEEK_DATA flags\n  reiserfs: make reiserfs default to barrier\u003dflush\n  ...\n\nFix up trivial conflicts in fs/xfs/linux-2.6/xfs_super.c due to the new\nshrinker callout for the inode cache, that clashed with the xfs code to\nstart the periodic workers later.\n"
    },
    {
      "commit": "6c673ab393bc18e8bff729cd04cf384d15e72a04",
      "tree": "e1eed0667626c8b092d27500560808d834d21e8d",
      "parents": [
        "79ac5a46c5c1c17476fbf84b4d4600d6d565defd"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 17 10:22:27 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 20:48:02 2011 -0400"
      },
      "message": "simplify gfs2_lookup()\n\nd_splice_alias() will DTRT when given NULL or ERR_PTR\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "02c24a82187d5a628c68edfe71ae60dc135cd178",
      "tree": "c8dbaba4d82e2b20ed4335910a564a1f7d90fcf6",
      "parents": [
        "22735068d53c7115e384bc88dea95b17e76a6839"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Sat Jul 16 20:44:56 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 20:47:59 2011 -0400"
      },
      "message": "fs: push i_mutex and filemap_write_and_wait down into -\u003efsync() handlers\n\nBtrfs needs to be able to control how filemap_write_and_wait_range() is called\nin fsync to make it less of a painful operation, so push down taking i_mutex and\nthe calling of filemap_write_and_wait() down into the -\u003efsync() handlers.  Some\nfile systems can drop taking the i_mutex altogether it seems, like ext3 and\nocfs2.  For correctness sake I just pushed everything down in all cases to make\nsure that we keep the current behavior the same for everybody, and then each\nindividual fs maintainer can make up their mind about what to do from there.\nThanks,\n\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "562c72aa57c36b178eacc3500a0215651eca9429",
      "tree": "2c522c53ab26fc72e85e08747a08e3dca1207c87",
      "parents": [
        "11b80f459adaf91a712f95e7734a17655a36bf30"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Jun 24 14:29:45 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 20:47:47 2011 -0400"
      },
      "message": "fs: move inode_dio_wait calls into -\u003esetattr\n\nLet filesystems handle waiting for direct I/O requests themselves instead\nof doing it beforehand.  This means filesystem-specific locks to prevent\nnew dio referenes from appearing can be held.  This is important to allow\ngeneralizing i_dio_count to non-DIO_LOCKING filesystems.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "10556cb21a0d0b24d95f00ea6df16f599a3345b2",
      "tree": "3d7d8dfba807805a55c154f1850717bf3b49f343",
      "parents": [
        "2830ba7f34ebb27c4e5b8b6ef408cd6d74860890"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 20 19:28:19 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:24 2011 -0400"
      },
      "message": "-\u003epermission() sanitizing: don\u0027t pass flags to -\u003epermission()\n\nnot used by the instances anymore.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2830ba7f34ebb27c4e5b8b6ef408cd6d74860890",
      "tree": "bbcebc14bffd000f1dfcbf37e64f56d2f49581ac",
      "parents": [
        "7e40145eb111a5192e6d819f764db9d6828d1abb"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 20 19:16:29 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:22 2011 -0400"
      },
      "message": "-\u003epermission() sanitizing: don\u0027t pass flags to generic_permission()\n\nredundant; all callers get it duplicated in mask \u0026 MAY_NOT_BLOCK and none of\nthem removes that bit.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7e40145eb111a5192e6d819f764db9d6828d1abb",
      "tree": "3249952a751de12465e8d66c63328445e9242f3a",
      "parents": [
        "9c2c703929e4c41210cfa6e3f599514421bab8dc"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 20 19:12:17 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:21 2011 -0400"
      },
      "message": "-\u003epermission() sanitizing: don\u0027t pass flags to -\u003echeck_acl()\n\nnot used in the instances anymore.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9c2c703929e4c41210cfa6e3f599514421bab8dc",
      "tree": "2086738f22755ad18ba18ab2ee0f2b23d651da60",
      "parents": [
        "1fc0f78ca9f311c6277e2f1b7655bb4d43ceb311"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 20 19:06:22 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:19 2011 -0400"
      },
      "message": "-\u003epermission() sanitizing: pass MAY_NOT_BLOCK to -\u003echeck_acl()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "178ea73521d64ba41d7aa5488fb9f549c6d4507d",
      "tree": "7fb6bfb6483577752e307a5bb2e3905658d44294",
      "parents": [
        "07b8ce1ee87d291ff564c02cf878fae973317a52"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 20 11:31:30 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:16 2011 -0400"
      },
      "message": "kill check_acl callback of generic_permission()\n\nits value depends only on inode and does not change; we might as\nwell store it in -\u003ei_op-\u003echeck_acl and be done with that.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9d8f13ba3f4833219e50767b022b82cd0da930eb",
      "tree": "3ba2367380d009111ea17696162a62320c88d144",
      "parents": [
        "0f2a55d5bb2372058275b0b343d90dd5d640d045"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Mon Jun 06 15:29:25 2011 -0400"
      },
      "committer": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Mon Jul 18 12:29:38 2011 -0400"
      },
      "message": "security: new security_inode_init_security API adds function callback\n\nThis patch changes the security_inode_init_security API by adding a\nfilesystem specific callback to write security extended attributes.\nThis change is in preparation for supporting the initialization of\nmultiple LSM xattrs and the EVM xattr.  Initially the callback function\nwalks an array of xattrs, writing each xattr separately, but could be\noptimized to write multiple xattrs at once.\n\nFor existing security_inode_init_security() calls, which have not yet\nbeen converted to use the new callback function, such as those in\nreiserfs and ocfs2, this patch defines security_old_inode_init_security().\n\nSigned-off-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\n"
    },
    {
      "commit": "46fcb2ed29ff7a9ec34c4ae67b631743eb7e756f",
      "tree": "f28487201dd8fe815192b75d1b29426a7882a01b",
      "parents": [
        "9964afbb797329e4c6e5d05ebc199c39af618c5f"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Thu Jun 23 10:39:34 2011 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jul 15 09:32:52 2011 +0100"
      },
      "message": "GFS2: combine duplicated block freeing routines\n\n__gfs2_free_data and __gfs2_free_meta are almost identical, and\ncan be trivially combined.\n\n[This is as per Eric\u0027s original patch minus gfs2_free_data() which had\n no callers left and plus the conversion of the bmap.c calls to these\n functions. All in all, a nice clean up]\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "9964afbb797329e4c6e5d05ebc199c39af618c5f",
      "tree": "c0877e423f5dff8b722869bd3f21622a88889220",
      "parents": [
        "7cf8dcd3b68a760d66fbc7f0d75d3fbb8f21775d"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jun 16 14:06:55 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jul 15 09:32:35 2011 +0100"
      },
      "message": "GFS2: Add S_NOSEC support\n\nThis adds S_NOSEC support to GFS2. We set/reset the flag either when\na user calls setattr or when we have just regained the glock\nfrom another node. The flag is only set if there are no xattrs\non the inode and there is no suid bit set.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nReviewed-by: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\n"
    },
    {
      "commit": "7cf8dcd3b68a760d66fbc7f0d75d3fbb8f21775d",
      "tree": "f529dace79c044e6128e9cf283a5c1a584fed5db",
      "parents": [
        "17d539f0499fa2c0321b7c260831cca2bb36d119"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Jun 15 11:41:48 2011 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jul 15 09:32:11 2011 +0100"
      },
      "message": "GFS2: Automatically adjust glock min hold time\n\nThis patch is a performance improvement for GFS2 in a clustered\nenvironment. It makes the glock hold time self-adjusting.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "17d539f0499fa2c0321b7c260831cca2bb36d119",
      "tree": "28b960ad670a0112d45afbab120f855b8e95b146",
      "parents": [
        "5dcd07b9f39ca3e9be5bcc387d193fc0674e1c81"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jun 15 10:29:37 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jul 15 09:31:48 2011 +0100"
      },
      "message": "GFS2: Cache dir hash table in a contiguous buffer\n\nThis patch adds a cache for the hash table to the directory code\nin order to help simplify the way in which the hash table is\naccessed. This is intended to be a first step towards introducing\nsome performance improvements in the directory code.\n\nThere are two follow ups that I\u0027m hoping to see fairly shortly. One\nis to simplify the hash table reading code now that we always read the\ncomplete hash table, whether we want one entry or all of them. The\nother is to introduce readahead on the heads of the hash chains\nwhich are referred to from the table.\n\nThe hash table is a maximum of 128k in size, so it is not worth trying\nto read it in small chunks.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "380f7c65a7eb3288e4b6812acf3474a1de230707",
      "tree": "7abe4b4ce390afc6b4d2bc7cae0ec298fe2efa3c",
      "parents": [
        "3942ae5319640ced5844b75f44884e4bcb8a2f16"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 14 08:59:44 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 14 08:59:44 2011 +0100"
      },
      "message": "GFS2: Resolve inode eviction and ail list interaction bug\n\nThis patch contains a few misc fixes which resolve a recently\nreported issue. This patch has been a real team effort and has\nreceived a lot of testing.\n\nThe first issue is that the ail lock needs to be held over a few\nmore operations. The lock thats added into gfs2_releasepage() may\npossibly be a candidate for replacing with RCU at some future\npoint, but at this stage we\u0027ve gone for the obvious fix.\n\nThe second issue is that gfs2_write_inode() can end up calling\na glock recursively when called from gfs2_evict_inode() via the\nsyncing code, so it needs a guard added.\n\nThe third issue is that we either need to not truncate the metadata\npages of inodes which have zero link count, but which we cannot\ndeallocate due to them still being in use by other nodes, or we need\nto ensure that those pages have all made it through the journal and\nail lists first. This patch takes the former approach, but the\nlatter has also been tested and there is nothing to choose between\nthem performance-wise. So again, we could revise that decision\nin the future.\n\nAlso, the inode eviction process is now better documented.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nTested-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nTested-by: Abhijith Das \u003cadas@redhat.com\u003e\nReported-by: Barry J. Marson \u003cbmarson@redhat.com\u003e\nReported-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "3942ae5319640ced5844b75f44884e4bcb8a2f16",
      "tree": "cc9eee61c37d18e1887f0723d338b121561dc0b9",
      "parents": [
        "1ce533686c7d40bf900dc346a7279c17a9ee8e0e"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 11 08:53:30 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jul 12 09:15:46 2011 +0100"
      },
      "message": "GFS2: Fix race during filesystem mount\n\nThere is a potential race during filesystem mounting which has recently\nbeen reported. It occurs when the userland gfs_controld is able to\nprocess requests fast enough that it tries to use the sysfs interface\nbefore the lock module is properly initialised. This is a pretty\nunusual case as normally the lock module initialisation is very quick\ncompared with gfs_controld.\n\nThis patch adds an interruptible completion which is used to ensure that\nuserland will wait for the initialisation of the lock module to\ncomplete.\n\nThere are other potential solutions to this problem, but this is the\nquickest at this stage and has been tested both with and without\nmount.gfs2 present in the system.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nReported-by: David Booher \u003cdbooher@adams.net\u003e\n"
    },
    {
      "commit": "1ce533686c7d40bf900dc346a7279c17a9ee8e0e",
      "tree": "fceea4beb94bb819577ea410919c2b603ddef30f",
      "parents": [
        "620917de59eeb934b9f8cf35cc2d95c1ac8ed0fc"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Mon Jun 13 14:27:40 2011 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jul 12 09:15:24 2011 +0100"
      },
      "message": "GFS2: force a log flush when invalidating the rindex glock\n\nRight now, there is nothing that forces the log to get flushed when a node\ndrops its rindex glock so that another node can grow the filesystem. If the\nlog doesn\u0027t get flushed, GFS2 can corrupt the sd_log_le_rg list in the\nfollowing way.\n\nA node puts an rgd on the list in rg_lo_add(), and then the rindex glock is\ndropped so the other node can grow the filesystem. When the node reacquires the\nrindex glock, that rgd gets deleted in clear_rgrpdi() before ever being\nremoved from the list by gfs2_log_flush().\n\nThis code simply forces a log flush when the rindex glock is invalidated,\nsolving the problem.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "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"
    }
  ],
  "next": "f90e5b5b136ede1f0fd15999e95f13124d6b0dbd"
}
