)]}'
{
  "log": [
    {
      "commit": "c8a09ff8ca2235bccdaea8a52fbd5349646a8ba4",
      "tree": "a06b4fa59672fd6fa9dd884e1e0bc746adc011b6",
      "parents": [
        "1c3cb9ec07fabf0c0970adc46fd2a1f09c1186dd"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Sat Dec 04 00:02:40 2010 +1100"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Sat Dec 04 00:02:40 2010 +1100"
      },
      "message": "xfs: convert log grant heads to atomic variables\n\nConvert the log grant heads to atomic64_t types in preparation for\nconverting the accounting algorithms to atomic operations. his patch\njust converts the variables; the algorithmic changes are in a\nseparate patch for clarity.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "1c3cb9ec07fabf0c0970adc46fd2a1f09c1186dd",
      "tree": "b8b6bf968f663723b06aa68ec499e49f3cdfbad0",
      "parents": [
        "84f3c683c4d3f36d3c3ed320babd960a332ac458"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Dec 21 12:28:39 2010 +1100"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Tue Dec 21 12:28:39 2010 +1100"
      },
      "message": "xfs: convert l_tail_lsn to an atomic variable.\n\nlog-\u003el_tail_lsn is currently protected by the log grant lock. The\nlock is only needed for serialising readers against writers, so we\ndon\u0027t really need the lock if we make the l_tail_lsn variable an\natomic. Converting the l_tail_lsn variable to an atomic64_t means we\ncan start to peel back the grant lock from various operations.\n\nAlso, provide functions to safely crack an atomic LSN variable into\nit\u0027s component pieces and to recombined the components into an\natomic variable. Use them where appropriate.\n\nThis also removes the need for explicitly holding a spinlock to read\nthe l_tail_lsn on 32 bit platforms.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n\n\n"
    },
    {
      "commit": "84f3c683c4d3f36d3c3ed320babd960a332ac458",
      "tree": "5884f4e5a04a7a67c634e003bfa590fd2e643fdc",
      "parents": [
        "2ced19cbae5448b720919a494606c62095d4f4db"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri Dec 03 22:11:29 2010 +1100"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Fri Dec 03 22:11:29 2010 +1100"
      },
      "message": "xfs: convert l_last_sync_lsn to an atomic variable\n\nlog-\u003el_last_sync_lsn is updated in only one critical spot - log\nbuffer Io completion - and is protected by the grant lock here. This\nrequires the grant lock to be taken for every log buffer IO\ncompletion. Converting the l_last_sync_lsn variable to an atomic64_t\nmeans that we do not need to take the grant lock in log buffer IO\ncompletion to update it.\n\nThis also removes the need for explicitly holding a spinlock to read\nthe l_last_sync_lsn on 32 bit platforms.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "2ced19cbae5448b720919a494606c62095d4f4db",
      "tree": "e011a53041289ed4f9c8e78f6d88cd3454c9c39b",
      "parents": [
        "eb40a87500ac2f6be7eaf8ebb35610e6d0e60e9a"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Dec 21 12:09:20 2010 +1100"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Tue Dec 21 12:09:20 2010 +1100"
      },
      "message": "xfs: make AIL tail pushing independent of the grant lock\n\nThe xlog_grant_push_ail() currently takes the grant lock internally to sample\nthe tail lsn, last sync lsn and the reserve grant head. Most of the callers\nalready hold the grant lock but have to drop it before calling\nxlog_grant_push_ail(). This is a left over from when the AIL tail pushing was\ndone in line and hence xlog_grant_push_ail had to drop the grant lock. AIL push\nis now done in another thread and hence we can safely hold the grant lock over\nthe entire xlog_grant_push_ail call.\n\nPush the grant lock outside of xlog_grant_push_ail() to simplify the locking\nand synchronisation needed for tail pushing.  This will reduce traffic on the\ngrant lock by itself, but this is only one step in preparing for the complete\nremoval of the grant lock.\n\nWhile there, clean up the formatting of xlog_grant_push_ail() to match the\nrest of the XFS code.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "eb40a87500ac2f6be7eaf8ebb35610e6d0e60e9a",
      "tree": "3f04eefbbb1428faf83aae5e9e3c951ae2748aa3",
      "parents": [
        "a69ed03c24d4a336c23b7116127713d5a8c5ac4d"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Dec 21 12:09:01 2010 +1100"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Tue Dec 21 12:09:01 2010 +1100"
      },
      "message": "xfs: use wait queues directly for the log wait queues\n\nThe log grant queues are one of the few places left using sv_t\nconstructs for waiting. Given we are touching this code, we should\nconvert them to plain wait queues. While there, convert all the\nother sv_t users in the log code as well.\n\nSeeing as this removes the last users of the sv_t type, remove the\nheader file defining the wrapper and the fragments that still\nreference it.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "a69ed03c24d4a336c23b7116127713d5a8c5ac4d",
      "tree": "95c73e560b2780abc9125022032e8cc85ec518c7",
      "parents": [
        "663e496a720a3a9fc08ea70b29724e8906b34e43"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Dec 21 12:08:20 2010 +1100"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Tue Dec 21 12:08:20 2010 +1100"
      },
      "message": "xfs: combine grant heads into a single 64 bit integer\n\nPrepare for switching the grant heads to atomic variables by\ncombining the two 32 bit values that make up the grant head into a\nsingle 64 bit variable.  Provide wrapper functions to combine and\nsplit the grant heads appropriately for calculations and use them as\nnecessary.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "663e496a720a3a9fc08ea70b29724e8906b34e43",
      "tree": "76372cb50ea4be7b12fae3d531b49f3a1fb7b57c",
      "parents": [
        "3f336c6fa17c2b3d14b3dd1bd6e64e9cc97b6359"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Dec 21 12:06:05 2010 +1100"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Tue Dec 21 12:06:05 2010 +1100"
      },
      "message": "xfs: rework log grant space calculations\n\nThe log grant space calculations are repeated for both write and\nreserve grant heads. To make it simpler to convert the calculations\ntoa different algorithm, factor them so both the gratn heads use the\nsame calculation functions. Once this is done we can drop the\nwrappers that are used in only a couple of place to update both\ngrant heads at once as they don\u0027t provide any particular value.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "3f336c6fa17c2b3d14b3dd1bd6e64e9cc97b6359",
      "tree": "14bd6f82656ad71586b94b7851a7c748ce86de13",
      "parents": [
        "1054794198e39103cb986618c4c10ec2252b7089"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Dec 21 12:02:52 2010 +1100"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Tue Dec 21 12:02:52 2010 +1100"
      },
      "message": "xfs: fact out common grant head/log tail verification code\n\nFactor repeated debug code out of grant head manipulation functions into a\nseparate function. This removes ifdef DEBUG spagetti from the code and makes\nthe code easier to follow.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "1054794198e39103cb986618c4c10ec2252b7089",
      "tree": "bc1d6a3eece9385bef892c2df7d6dba6f39d3088",
      "parents": [
        "9552e7f2f3dd13a7580e488a7a3582332daad4f5"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Dec 21 12:02:25 2010 +1100"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Tue Dec 21 12:02:25 2010 +1100"
      },
      "message": "xfs: convert log grant ticket queues to list heads\n\nThe grant write and reserve queues use a roll-your-own double linked\nlist, so convert it to a standard list_head structure and convert\nall the list traversals to use list_for_each_entry(). We can also\nget rid of the XLOG_TIC_IN_Q flag as we can use the list_empty()\ncheck to tell if the ticket is in a list or not.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "9552e7f2f3dd13a7580e488a7a3582332daad4f5",
      "tree": "2568a24be0a0b933277e1bc71b849ccfffab6abf",
      "parents": [
        "e60599492990d1b52c70e9ed2f8e062fe11ca937"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon Dec 20 12:36:15 2010 +1100"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Dec 20 12:36:15 2010 +1100"
      },
      "message": "xfs: use AIL bulk delete function to implement single delete\n\nWe now have two copies of AIL delete operations that are mostly\nduplicate functionality. The single log item deletes can be\nimplemented via the bulk updates by turning xfs_trans_ail_delete()\ninto a simple wrapper. This removes all the duplicate delete\nfunctionality and associated helpers.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "e60599492990d1b52c70e9ed2f8e062fe11ca937",
      "tree": "cff4380f728123db94f432e46cc4b1028ba61073",
      "parents": [
        "3013683253ad04f67d8cfaa25be708353686b90a"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon Dec 20 12:34:26 2010 +1100"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Dec 20 12:34:26 2010 +1100"
      },
      "message": "xfs: use AIL bulk update function to implement single updates\n\nWe now have two copies of AIL insert operations that are mostly\nduplicate functionality. The single log item updates can be\nimplemented via the bulk updates by turning xfs_trans_ail_update()\ninto a simple wrapper. This removes all the duplicate insert\nfunctionality and associated helpers.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "3013683253ad04f67d8cfaa25be708353686b90a",
      "tree": "eadc35b70c0169096a7dbaf4eb9966be7630db04",
      "parents": [
        "c90821a26a8c90ad1e3116393b8a8260ab46bffb"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon Dec 20 12:03:17 2010 +1100"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Dec 20 12:03:17 2010 +1100"
      },
      "message": "xfs: remove all the inodes on a buffer from the AIL in bulk\n\nWhen inode buffer IO completes, usually all of the inodes are removed from the\nAIL. This involves processing them one at a time and taking the AIL lock once\nfor every inode. When all CPUs are processing inode IO completions, this causes\nexcessive amount sof contention on the AIL lock.\n\nInstead, change the way we process inode IO completion in the buffer\nIO done callback. Allow the inode IO done callback to walk the list\nof IO done callbacks and pull all the inodes off the buffer in one\ngo and then process them as a batch.\n\nOnce all the inodes for removal are collected, take the AIL lock\nonce and do a bulk removal operation to minimise traffic on the AIL\nlock.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "c90821a26a8c90ad1e3116393b8a8260ab46bffb",
      "tree": "1970fa2af39b277e375c059d0e5654e890c44511",
      "parents": [
        "e677d0f9548e2245ee3c2977661ca8ca165af188"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri Dec 03 17:00:52 2010 +1100"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Fri Dec 03 17:00:52 2010 +1100"
      },
      "message": "xfs: consume iodone callback items on buffers as they are processed\n\nTo allow buffer iodone callbacks to consume multiple items off the\ncallback list, first we need to convert the xfs_buf_do_callbacks()\nto consume items and always pull the next item from the head of the\nlist.\n\nThe means the item list walk is never dependent on knowing the\nnext item on the list and hence allows callbacks to remove items\nfrom the list as well. This allows callbacks to do bulk operations\nby scanning the list for identical callbacks, consuming them all\nand then processing them in bulk, negating the need for multiple\ncallbacks of that type.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "e677d0f9548e2245ee3c2977661ca8ca165af188",
      "tree": "28e20df79bcd8c5aa7458c85fd58cf7f5feb4e69",
      "parents": [
        "0e57f6a36f9be03e5abb755f524ee91c4aebe854"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri Dec 17 20:08:04 2010 +1100"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Fri Dec 17 20:08:04 2010 +1100"
      },
      "message": "xfs: reduce the number of AIL push wakeups\n\nThe xfaild often tries to rest to wait for congestion to pass of for\nIO to complete, but is regularly woken in tail-pushing situations.\nIn severe cases, the xfsaild is getting woken tens of thousands of\ntimes a second. Reduce the number needless wakeups by only waking\nthe xfsaild if the new target is larger than the old one. Further\nmake short sleeps uninterruptible as they occur when the xfsaild has\ndecided it needs to back off to allow some IO to complete and being\nwoken early is counter-productive.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "0e57f6a36f9be03e5abb755f524ee91c4aebe854",
      "tree": "4de7d393444171525ca8c6b73026493ffa8e1b12",
      "parents": [
        "eb3efa1249b6413be930bdf13d10b6238028a440"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon Dec 20 12:02:19 2010 +1100"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Dec 20 12:02:19 2010 +1100"
      },
      "message": "xfs: bulk AIL insertion during transaction commit\n\nWhen inserting items into the AIL from the transaction committed\ncallbacks, we take the AIL lock for every single item that is to be\ninserted. For a CIL checkpoint commit, this can be tens of thousands\nof individual inserts, yet almost all of the items will be inserted\nat the same point in the AIL because they have the same index.\n\nTo reduce the overhead and contention on the AIL lock for such\noperations, introduce a \"bulk insert\" operation which allows a list\nof log items with the same LSN to be inserted in a single operation\nvia a list splice. To do this, we need to pre-sort the log items\nbeing committed into a temporary list for insertion.\n\nThe complexity is that not every log item will end up with the same\nLSN, and not every item is actually inserted into the AIL. Items\nthat don\u0027t match the commit LSN will be inserted and unpinned as per\nthe current one-at-a-time method (relatively rare), while items that\nare not to be inserted will be unpinned and freed immediately. Items\nthat are to be inserted at the given commit lsn are placed in a\ntemporary array and inserted into the AIL in bulk each time the\narray fills up.\n\nAs a result of this, we trade off AIL hold time for a significant\nreduction in traffic. lock_stat output shows that the worst case\nhold time is unchanged, but contention from AIL inserts drops by an\norder of magnitude and the number of lock traversal decreases\nsignificantly.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "eb3efa1249b6413be930bdf13d10b6238028a440",
      "tree": "7b2d8b9d55d5757236ef90389bc6664784607930",
      "parents": [
        "b199c8a4ba11879df87daad496ceee41fdc6aa82"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri Dec 03 16:42:57 2010 +1100"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Fri Dec 03 16:42:57 2010 +1100"
      },
      "message": "xfs: clean up xfs_ail_delete()\n\nxfs_ail_delete() has a needlessly complex interface. It returns the log item\nthat was passed in for deletion (which the callers then assert is identical to\nthe one passed in), and callers of xfs_ail_delete() still need to invalidate\ncurrent traversal cursors.\n\nMake xfs_ail_delete() return void, move the cursor invalidation inside it, and\nclean up the callers just to use the log item pointer they passed in.\n\nWhile cleaning up, remove the messy and unnecessary \"/* ARGUSED */\" comments\naround all these functions.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "b199c8a4ba11879df87daad496ceee41fdc6aa82",
      "tree": "8652785ca70788e3cc43272be72f21123adafbe7",
      "parents": [
        "9c5f8414efd5eeed9f498d4170337a3eb126341f"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon Dec 20 11:59:49 2010 +1100"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Dec 20 11:59:49 2010 +1100"
      },
      "message": "xfs: Pull EFI/EFD handling out from under the AIL lock\n\nEFI/EFD interactions are protected from races by the AIL lock. They\nare the only type of log items that require the the AIL lock to\nserialise internal state, so they need to be separated from the AIL\nlock before we can do bulk insert operations on the AIL.\n\nTo acheive this, convert the counter of the number of extents in the\nEFI to an atomic so it can be safely manipulated by EFD processing\nwithout locks. Also, convert the EFI state flag manipulations to use\natomic bit operations so no locks are needed to record state\nchanges. Finally, use the state bits to determine when it is safe to\nfree the EFI and clean up the code to do this neatly.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "9c5f8414efd5eeed9f498d4170337a3eb126341f",
      "tree": "5801d0cbd2f37cc72e0b541231c60e281c27d874",
      "parents": [
        "821eb21d97a8b686649c08b7284d0b9f34d0e138"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon Dec 20 11:57:24 2010 +1100"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Dec 20 11:57:24 2010 +1100"
      },
      "message": "xfs: fix EFI transaction cancellation.\n\nXFS_EFI_CANCELED has not been set in the code base since\nxfs_efi_cancel() was removed back in 2006 by commit\n065d312e15902976d256ddaf396a7950ec0350a8 (\"[XFS] Remove unused\niop_abort log item operation), and even then xfs_efi_cancel() was\nnever called. I haven\u0027t tracked it back further than that (beyond\ngit history), but it indicates that the handling of EFIs in\ncancelled transactions has been broken for a long time.\n\nBasically, when we get an IOP_UNPIN(lip, 1); call from\nxfs_trans_uncommit() (i.e. remove \u003d\u003d 1), if we don\u0027t free the log\nitem descriptor we leak it. Fix the behviour to be correct and kill\nthe XFS_EFI_CANCELED flag.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "821eb21d97a8b686649c08b7284d0b9f34d0e138",
      "tree": "c1123769b0b12cd8b7a816786881ce2d147d88e5",
      "parents": [
        "430cbeb86fdcbbdabea7d4aa65307de8de425350"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Thu Dec 02 16:31:13 2010 +1100"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Thu Dec 02 16:31:13 2010 +1100"
      },
      "message": "xfs: connect up buffer reclaim priority hooks\n\nNow that the buffer reclaim infrastructure can handle different reclaim\npriorities for different types of buffers, reconnect the hooks in the\nXFS code that has been sitting dormant since it was ported to Linux. This\nshould finally give use reclaim prioritisation that is on a par with the\nfunctionality that Irix provided XFS 15 years ago.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "430cbeb86fdcbbdabea7d4aa65307de8de425350",
      "tree": "5d9e6851942ca74e0e13f9195b9c3f81c3bd7509",
      "parents": [
        "ff57ab21995a8636cfc72efeebb09cc6034d756f"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Thu Dec 02 16:30:55 2010 +1100"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Thu Dec 02 16:30:55 2010 +1100"
      },
      "message": "xfs: add a lru to the XFS buffer cache\n\nIntroduce a per-buftarg LRU for memory reclaim to operate on. This\nis the last piece we need to put in place so that we can fully\ncontrol the buffer lifecycle. This allows XFS to be responsibile for\nmaintaining the working set of buffers under memory pressure instead\nof relying on the VM reclaim not to take pages we need out from\nunderneath us.\n\nThe implementation introduces a b_lru_ref counter into the buffer.\nThis is currently set to 1 whenever the buffer is referenced and so is used to\ndetermine if the buffer should be added to the LRU or not when freed.\nEffectively it allows lazy LRU initialisation of the buffer so we do not need\nto touch the LRU list and locks in xfs_buf_find().\n\nInstead, when the buffer is being released and we drop the last\nreference to it, we check the b_lru_ref count and if it is none zero\nwe re-add the buffer reference and add the inode to the LRU. The\nb_lru_ref counter is decremented by the shrinker, and whenever the\nshrinker comes across a buffer with a zero b_lru_ref counter, if\nreleased the LRU reference on the buffer. In the absence of a lookup\nrace, this will result in the buffer being freed.\n\nThis counting mechanism is used instead of a reference flag so that\nit is simple to re-introduce buffer-type specific reclaim reference\ncounts to prioritise reclaim more effectively. We still have all\nthose hooks in the XFS code, so this will provide the infrastructure\nto re-implement that functionality.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "ff57ab21995a8636cfc72efeebb09cc6034d756f",
      "tree": "675374b134689029d70ca1e0200866cf2f906c44",
      "parents": [
        "1a427ab0c1b205d1bda8da0b77ea9d295ac23c57"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Nov 30 17:27:57 2010 +1100"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Tue Nov 30 17:27:57 2010 +1100"
      },
      "message": "xfs: convert xfsbud shrinker to a per-buftarg shrinker.\n\nBefore we introduce per-buftarg LRU lists, split the shrinker\nimplementation into per-buftarg shrinker callbacks. At the moment\nwe wake all the xfsbufds to run the delayed write queues to free\nthe dirty buffers and make their pages available for reclaim.\nHowever, with an LRU, we want to be able to free clean, unused\nbuffers as well, so we need to separate the xfsbufd from the\nshrinker callbacks.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "1a427ab0c1b205d1bda8da0b77ea9d295ac23c57",
      "tree": "dc0fffd22282d0da29da43b3ebdeed7c3f5fac1d",
      "parents": [
        "1a3e8f3da09c7082d25b512a0ffe569391e4c09a"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Thu Dec 16 17:08:41 2010 +1100"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Thu Dec 16 17:08:41 2010 +1100"
      },
      "message": "xfs: convert pag_ici_lock to a spin lock\n\nnow that we are using RCU protection for the inode cache lookups,\nthe lock is only needed on the modification side. Hence it is not\nnecessary for the lock to be a rwlock as there are no read side\nholders anymore. Convert it to a spin lock to reflect it\u0027s exclusive\nnature.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "1a3e8f3da09c7082d25b512a0ffe569391e4c09a",
      "tree": "c717ebe79e1f969f929d1fe6fb044fb59114449f",
      "parents": [
        "d95b7aaf9ab6738bef1ebcc52ab66563085e44ac"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri Dec 17 17:29:43 2010 +1100"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Fri Dec 17 17:29:43 2010 +1100"
      },
      "message": "xfs: convert inode cache lookups to use RCU locking\n\nWith delayed logging greatly increasing the sustained parallelism of inode\noperations, the inode cache locking is showing significant read vs write\ncontention when inode reclaim runs at the same time as lookups. There is\nalso a lot more write lock acquistions than there are read locks (4:1 ratio)\nso the read locking is not really buying us much in the way of parallelism.\n\nTo avoid the read vs write contention, change the cache to use RCU locking on\nthe read side. To avoid needing to RCU free every single inode, use the built\nin slab RCU freeing mechanism. This requires us to be able to detect lookups of\nfreed inodes, so enѕure that ever freed inode has an inode number of zero and\nthe XFS_IRECLAIM flag set. We already check the XFS_IRECLAIM flag in cache hit\nlookup path, but also add a check for a zero inode number as well.\n\nWe canthen convert all the read locking lockups to use RCU read side locking\nand hence remove all read side locking.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "d95b7aaf9ab6738bef1ebcc52ab66563085e44ac",
      "tree": "b949bfa2c4588a84f1acf5d84e2fd7b41eab5a2f",
      "parents": [
        "6e857567dbbfe14dd6cc3f7414671b047b1ff5c7"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Thu Dec 16 16:41:39 2010 +1100"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Thu Dec 16 16:41:39 2010 +1100"
      },
      "message": "xfs: rcu free inodes\n\nIntroduce RCU freeing of XFS inodes so that we can convert lookup\ntraversals to use rcu_read_lock() protection. This patch only\nintroduces the RCU freeing to minimise the potential conflicts with\nmainline if this is merged into mainline via a VFS patchset. It\nabuses the i_dentry list for the RCU callback structure because the\nVFS patches make this a union so it is safe to use like this and\nsimplifies and merge issues.\n\nThis patch uses basic RCU freeing rather than SLAB_DESTROY_BY_RCU.\nThe later lookup patches need the same \"found free inode\" protection\nregardless of the RCU freeing method used, so once again the RCU\nfreeing method can be dealt with apprpriately at merge time without\naffecting any other code.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "6e857567dbbfe14dd6cc3f7414671b047b1ff5c7",
      "tree": "dde314cd6a22066e4cd7f3c498f89b00984838d7",
      "parents": [
        "055388a3188f56676c21e92962fc366ac8b5cb72"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Thu Dec 23 12:02:31 2010 +1100"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Thu Dec 23 12:02:31 2010 +1100"
      },
      "message": "xfs: don\u0027t truncate prealloc from frequently accessed inodes\n\nA long standing problem for streaming writeѕ through the NFS server\nhas been that the NFS server opens and closes file descriptors on an\ninode for every write. The result of this behaviour is that the\n-\u003erelease() function is called on every close and that results in\nXFS truncating speculative preallocation beyond the EOF.  This has\nan adverse effect on file layout when multiple files are being\nwritten at the same time - they interleave their extents and can\nresult in severe fragmentation.\n\nTo avoid this problem, keep track of -\u003erelease calls made on a dirty\ninode. For most cases, an inode is only going to be opened once for\nwriting and then closed again during it\u0027s lifetime in cache. Hence\nif there are multiple -\u003erelease calls when the inode is dirty, there\nis a good chance that the inode is being accessed by the NFS server.\nHence set a flag the first time -\u003erelease is called while there are\ndelalloc blocks still outstanding on the inode.\n\nIf this flag is set when -\u003erelease is next called, then do no\ntruncate away the speculative preallocation - leave it there so that\nsubsequent writes do not need to reallocate the delalloc space. This\nwill prevent interleaving of extents of different inodes written\nconcurrently to the same AG.\n\nIf we get this wrong, it is not a big deal as we truncate\nspeculative allocation beyond EOF anyway in xfs_inactive() when the\ninode is thrown out of the cache.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "055388a3188f56676c21e92962fc366ac8b5cb72",
      "tree": "57fb9d649956f311031f574e3f6d8f54146f0f2a",
      "parents": [
        "622d81494fa32343a4b97b607619656c7a4a6d1a"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Jan 04 11:35:03 2011 +1100"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Tue Jan 04 11:35:03 2011 +1100"
      },
      "message": "xfs: dynamic speculative EOF preallocation\n\nCurrently the size of the speculative preallocation during delayed\nallocation is fixed by either the allocsize mount option of a\ndefault size. We are seeing a lot of cases where we need to\nrecommend using the allocsize mount option to prevent fragmentation\nwhen buffered writes land in the same AG.\n\nRather than using a fixed preallocation size by default (up to 64k),\nmake it dynamic by basing it on the current inode size. That way the\nEOF preallocation will increase as the file size increases.  Hence\nfor streaming writes we are much more likely to get large\npreallocations exactly when we need it to reduce fragementation.\n\nFor default settings, the size of the initial extents is determined\nby the number of parallel writers and the amount of memory in the\nmachine. For 4GB RAM and 4 concurrent 32GB file writes:\n\nEXT: FILE-OFFSET           BLOCK-RANGE          AG AG-OFFSET                 TOTAL\n   0: [0..1048575]:         1048672..2097247      0 (1048672..2097247)      1048576\n   1: [1048576..2097151]:   5242976..6291551      0 (5242976..6291551)      1048576\n   2: [2097152..4194303]:   12583008..14680159    0 (12583008..14680159)    2097152\n   3: [4194304..8388607]:   25165920..29360223    0 (25165920..29360223)    4194304\n   4: [8388608..16777215]:  58720352..67108959    0 (58720352..67108959)    8388608\n   5: [16777216..33554423]: 117440584..134217791  0 (117440584..134217791) 16777208\n   6: [33554424..50331511]: 184549056..201326143  0 (184549056..201326143) 16777088\n   7: [50331512..67108599]: 251657408..268434495  0 (251657408..268434495) 16777088\n\nand for 16 concurrent 16GB file writes:\n\n EXT: FILE-OFFSET           BLOCK-RANGE          AG AG-OFFSET                 TOTAL\n   0: [0..262143]:          2490472..2752615      0 (2490472..2752615)       262144\n   1: [262144..524287]:     6291560..6553703      0 (6291560..6553703)       262144\n   2: [524288..1048575]:    13631592..14155879    0 (13631592..14155879)     524288\n   3: [1048576..2097151]:   30408808..31457383    0 (30408808..31457383)    1048576\n   4: [2097152..4194303]:   52428904..54526055    0 (52428904..54526055)    2097152\n   5: [4194304..8388607]:   104857704..109052007  0 (104857704..109052007)  4194304\n   6: [8388608..16777215]:  209715304..218103911  0 (209715304..218103911)  8388608\n   7: [16777216..33554423]: 452984848..469762055  0 (452984848..469762055) 16777208\n\nBecause it is hard to take back specualtive preallocation, cases\nwhere there are large slow growing log files on a nearly full\nfilesystem may cause premature ENOSPC. Hence as the filesystem nears\nfull, the maximum dynamic prealloc size іs reduced according to this\ntable (based on 4k block size):\n\nfreespace       max prealloc size\n  \u003e5%             full extent (8GB)\n  4-5%             2GB (8GB \u003e\u003e 2)\n  3-4%             1GB (8GB \u003e\u003e 3)\n  2-3%           512MB (8GB \u003e\u003e 4)\n  1-2%           256MB (8GB \u003e\u003e 5)\n  \u003c1%            128MB (8GB \u003e\u003e 6)\n\nThis should reduce the amount of space held in speculative\npreallocation for such cases.\n\nThe allocsize mount option turns off the dynamic behaviour and fixes\nthe prealloc size to whatever the mount option specifies. i.e. the\nbehaviour is unchanged.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "622d81494fa32343a4b97b607619656c7a4a6d1a",
      "tree": "b8a004167d57b577c5da563474f8eb32eff83393",
      "parents": [
        "dcfcf20512cb517ac18b9433b676183fa1257911"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Thu Dec 23 11:57:37 2010 +1100"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Thu Dec 23 11:57:37 2010 +1100"
      },
      "message": "xfs: use KM_NOFS for allocations during attribute list operations\n\nWhen listing attributes, we are doiing memory allocations under the\ninode ilock using only KM_SLEEP. This allows memory allocation to\nrecurse back into the filesystem and do writeback, which may the\nilock we already hold on the current inode. THis will deadlock.\nHence use KM_NOFS for such allocations outside of transaction\ncontext to ensure that reclaim recursion does not occur.\n\nReported-by: Nick Piggin \u003cnpiggin@gmail.com\u003e\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "dcfcf20512cb517ac18b9433b676183fa1257911",
      "tree": "fd5551251e63f47dbb804e36cfd4cb3f15f5c322",
      "parents": [
        "489a150f6454e2cd93d9e0ee6d7c5a361844f62a"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Thu Dec 23 11:57:13 2010 +1100"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Thu Dec 23 11:57:13 2010 +1100"
      },
      "message": "xfs: provide a inode iolock lockdep class\n\nThe XFS iolock needs to be re-initialised to a new lock class before\nit enters reclaim to prevent lockdep false positives. Unfortunately,\nthis is not sufficient protection as inodes in the XFS_IRECLAIMABLE\nstate can be recycled and not re-initialised before being reused.\n\nWe need to re-initialise the lock state when transfering out of\nXFS_IRECLAIMABLE state to XFS_INEW, but we need to keep the same\nclass as if the inode was just allocated. Hence we need a specific\nlockdep class variable for the iolock so that both initialisations\nuse the same class.\n\nWhile there, add a specific class for inodes in the reclaim state so\nthat it is easy to tell from lockdep reports what state the inode\nwas in that generated the report.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "489a150f6454e2cd93d9e0ee6d7c5a361844f62a",
      "tree": "18deded59797caaec9f01ef5a3eb66a765bef29f",
      "parents": [
        "9f9baab38dacd11fe6095a1e59f3783a305f7020"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Dec 10 15:04:11 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Thu Dec 16 16:06:15 2010 -0600"
      },
      "message": "xfs: factor duplicate code in xfs_alloc_ag_vextent_near into a helper\n\nAdd a new xfs_alloc_find_best_extent that does a forward/backward\nsearch in the allocation btree.  That code previously was existed\ntwo times in xfs_alloc_ag_vextent_near, once for each search\ndirection.\n\nBased on an earlier patch from Dave Chinner.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "9f9baab38dacd11fe6095a1e59f3783a305f7020",
      "tree": "ea906a3a4be52648b94c8902bd35322421305b30",
      "parents": [
        "ecff71e677c6d469f525dcf31ada709d5858307c"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Dec 10 15:03:57 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Thu Dec 16 16:06:11 2010 -0600"
      },
      "message": "xfs: clean up xfs_alloc_ag_vextent_exact\n\nUse a goto label to consolidate all block not found cases, and add a\ntracepoint for them.  Also clean up a few whitespace issues.\n\nBased on an earlier patch from Dave Chinner.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "ecff71e677c6d469f525dcf31ada709d5858307c",
      "tree": "644ec23fd88da343a16e6272bd64d0d6d27ec2a6",
      "parents": [
        "aeea1b1f81800e362a3aca86d769d02e137a8fa7"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Dec 10 08:42:25 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Thu Dec 16 16:06:07 2010 -0600"
      },
      "message": "xfs: simplify xfs_map_at_offset\n\nMove the buffer locking into the callers as they need to do it\nwether they call xfs_map_at_offset or not.  Remove the b_bdev\nassignment, which is already done by get_blocks.  Remove the\nduplicate extent type asserts in xfs_convert_page just before\ncalling xfs_map_at_offset.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "aeea1b1f81800e362a3aca86d769d02e137a8fa7",
      "tree": "f010e3af9ade221ea76c368592c54a07aaa4ca82",
      "parents": [
        "2fa24f92530edaf86c3b5f662464e0d2e3b3e517"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Dec 10 08:42:24 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Thu Dec 16 16:06:03 2010 -0600"
      },
      "message": "xfs: refactor xfs_vm_writepage\n\nAfter the last patches the code for overwrites is the same as for\ndelayed and unwritten extents except that it doesn\u0027t need to call\nxfs_map_at_offset.  Take care of that fact to simplify\nxfs_vm_writepage.\n\nThe buffer loop now first checks the type of buffer and checks/sets\nthe ioend type, or continues to the next buffer if it\u0027s not\ninteresting to us.  Only after that we validate the iomap and\nperform the block mapping if needed, all in common code for the\ncases where we have to do work.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "2fa24f92530edaf86c3b5f662464e0d2e3b3e517",
      "tree": "a24ee4610706b63724cc8ae279c52a3ba4467fd9",
      "parents": [
        "ed1e7b7e484dfb64168755613d499f32a97409bd"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Dec 10 08:42:23 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Thu Dec 16 16:06:00 2010 -0600"
      },
      "message": "xfs: remove the all_bh flag from xfs_convert_page\n\nThe all_bh flag is always set when entering the page clustering\nmachinery with a regular written extent, which means the check for\nit is superflous.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "ed1e7b7e484dfb64168755613d499f32a97409bd",
      "tree": "8f7a7d3feffd6652f1acf3b868bde6157c81c8b5",
      "parents": [
        "8ff2957d581582890693affc09920108a67cb05d"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Dec 10 08:42:22 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Thu Dec 16 16:05:57 2010 -0600"
      },
      "message": "xfs: remove xfs_probe_cluster\n\nxfs_map_blocks always calls xfs_bmapi with the XFS_BMAPI_ENTIRE\nentire flag, which tells it to not cap the extent at the passed in\nsize, but just treat the size as an minimum to map.  This means\nxfs_probe_cluster is entirely useless as we\u0027ll always get the whole\nextent back anyway.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "8ff2957d581582890693affc09920108a67cb05d",
      "tree": "02e20726040eebef830731ecd61cb8a8f7844ade",
      "parents": [
        "a206c817c864583c44e2f418db8e6c7a000fbc38"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Dec 10 08:42:21 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Thu Dec 16 16:05:53 2010 -0600"
      },
      "message": "xfs: simplify xfs_map_blocks\n\nNo need to lock the extent map exclusive when performing an\noverwrite, we know the extent map must already have been loaded by\nget_blocks.  Apply the non-blocking inode semantics to all mapping\ntypes instead of just delayed allocations.  Remove the handling of\nnot yet allocated blocks for the IO_UNWRITTEN case - if an extent is\nmarked as unwritten allocated in the buffer it must already have an\nextent on disk.\n\nAdd asserts to verify all the assumptions above in debug builds.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "a206c817c864583c44e2f418db8e6c7a000fbc38",
      "tree": "71c7327482299de93b4183c23d118939e8bd30fc",
      "parents": [
        "405f80429436d38ab4e6b4c0d99861a1f00648fd"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Dec 10 08:42:20 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Thu Dec 16 16:05:51 2010 -0600"
      },
      "message": "xfs: kill xfs_iomap\n\nOpencode the xfs_iomap code in it\u0027s two callers.  The overlap of\npassed flags already was minimal and will be further reduced in the\nnext patch.\n\nAs a side effect the BMAPI_* flags for xfs_bmapi and the IO_* flags\nfor I/O end processing are merged into a single set of flags, which\nshould be a bit more descriptive of the operation we perform.\n\nAlso improve the tracing by giving each caller it\u0027s own type set of\ntracepoints.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "405f80429436d38ab4e6b4c0d99861a1f00648fd",
      "tree": "78c8023b267fb5b8ba628997c7bbfabf260eb010",
      "parents": [
        "6ac7248ec5f20cb44a063d7c7191b8e0068b5a28"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Dec 10 08:42:19 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Thu Dec 16 16:05:47 2010 -0600"
      },
      "message": "xfs: cleanup the xfs_iomap_write_* helpers\n\nRemove passing the BMAPI_* flags to these helpers, in\nxfs_iomap_write_direct the check BMAPI_DIRECT was always true, and\nin the xfs_iomap_write_delay path is was never checked at all.\nRemove the nmap return value as we never make use of it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "6ac7248ec5f20cb44a063d7c7191b8e0068b5a28",
      "tree": "26e43646609e98d52d89ae7f4eecbf994b42cf43",
      "parents": [
        "221cb2517e8fc9a1d67c7a8a9c19fc5a916b583f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Dec 10 08:42:18 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Thu Dec 16 16:05:44 2010 -0600"
      },
      "message": "xfs: a few small tweaks for overwrites in xfs_vm_writepage\n\nDon\u0027t trylock the buffer.  We are the only one ever locking it for a\nregular file address space, and trylock was only copied from the\ngeneric code which did it due to the old buffer based writeout in\njbd.  Also make sure to only write out the buffer if the iomap\nactually is valid, because we wouldn\u0027t have a proper mapping\notherwise.  In practice we will never get an invalid mapping here as\nthe page lock guarantees truncate doesn\u0027t race with us, but better\nbe safe than sorry.  Also make sure we allocate a new ioend when\ncrossing boundaries between mappings, just like we do for delalloc\nand unwritten extents.  Again this currently doesn\u0027t matter as the\nI/O end handler only cares for the boundaries for unwritten extents,\nbut this makes the code fully correct and the same as for\ndelalloc/unwritten extents.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "221cb2517e8fc9a1d67c7a8a9c19fc5a916b583f",
      "tree": "891f7a8f1063f862a8c4d76882a0606191813fca",
      "parents": [
        "85da94c6b4666582c38579ccdcd90a5d9b5697ef"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Dec 10 08:42:17 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Thu Dec 16 16:05:40 2010 -0600"
      },
      "message": "xfs: remove some dead bio handling code\n\nWe\u0027ll never have BIO_EOPNOTSUPP set after calling submit_bio as this\ncan only happen for discards, and used to happen for barriers, none\nof which is every submitted by xfs_submit_ioend_bio.  Also remove\nthe loop around bio_alloc as it will never fail due to it\u0027s mempool\nbacking.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "85da94c6b4666582c38579ccdcd90a5d9b5697ef",
      "tree": "013edf60a13fd0a551e95bf76a1284209ecd23c2",
      "parents": [
        "c9f71f5fc4390ea3a8087c00d53a799e7e0f0f8e"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Dec 10 08:42:16 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Thu Dec 16 16:05:34 2010 -0600"
      },
      "message": "xfs: improve mapping type check in xfs_vm_writepage\n\nCurrently we only refuse a \"read-only\" mapping for writing out\nunwritten and delayed buffers, and refuse any other for overwrites.\nImprove the checks to require delalloc mappings for delayed buffers,\nand unwritten extent mappings for unwritten extents.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "c9f71f5fc4390ea3a8087c00d53a799e7e0f0f8e",
      "tree": "a8d7ffe0a1fe4e547ef0672a0060ce5d2f5f66f0",
      "parents": [
        "d0450948641b2090b5d467ba638bbebd40b20b21"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Dec 01 22:06:24 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Thu Dec 16 16:05:30 2010 -0600"
      },
      "message": "xfs: untangle phase1 vs phase2 recovery helpers\n\nDispatch to a different helper for phase1 vs phase2 in\nxlog_recover_commit_trans instead of doing it in all the\nlow-level functions.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "d0450948641b2090b5d467ba638bbebd40b20b21",
      "tree": "c91ea11d5c6e95901ba5c87e02abf44c8fd2a225",
      "parents": [
        "d5689eaa0ac5588cf459ee32f86d5700dd7d6403"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Dec 01 22:06:23 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Thu Dec 16 16:05:26 2010 -0600"
      },
      "message": "xfs: refactor xlog_recover_commit_trans\n\nMerge the call to xlog_recover_reorder_trans and the loop over the\nrecovery items from xlog_recover_do_trans into xlog_recover_commit_trans,\nand keep the switch statement over the log item types as a separate helper.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "d5689eaa0ac5588cf459ee32f86d5700dd7d6403",
      "tree": "2d637bc35de7f95d10c5c1fc17f57bc7adfb1e41",
      "parents": [
        "e2714bf8d5c8e131a6df6b0ea2269433e9a03a9b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Dec 01 22:06:22 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Thu Dec 16 16:05:22 2010 -0600"
      },
      "message": "xfs: use struct list_head for the buf cancel table\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "e2714bf8d5c8e131a6df6b0ea2269433e9a03a9b",
      "tree": "2e056b611bcad732b828df1c563f2fa9cca16e11",
      "parents": [
        "576ecb8e2b725726471cc62b12c01e28d33127ba"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Dec 01 22:06:21 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Thu Dec 16 16:05:16 2010 -0600"
      },
      "message": "xfs: remove leftovers of old buffer log items in recovery code\n\nXFS used to support different types of buffer log items long time\nago.  Remove the switch statements checking the log item type in\nvarious buffer recovery helpers that were left over from those days\nand the rather useless xlog_recover_do_buffer_pass2 wrapper.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "576ecb8e2b725726471cc62b12c01e28d33127ba",
      "tree": "4bee2b310019661b147645d0a25f367580e4bca4",
      "parents": [
        "05340d4ab2ec2b6b4962c1c41c6ea8fb550f947b"
      ],
      "author": {
        "name": "Samuel Kvasnica",
        "email": "samuel.kvasnica@ims.co.at",
        "time": "Fri Nov 19 13:38:49 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Thu Dec 16 16:04:55 2010 -0600"
      },
      "message": "xfs: fix exporting with left over 64-bit inodes\n\nWe now support mounting and using filesystems with 64-bit inodes\neven when not mounted with the inode64 option (which now only\ncontrols if we allocate new inodes in that space or not).  Make sure\nwe always use large NFS file handles when exporting a filesystem\nthat may contain 64-bit inodes.  Note that this only affects newly\ngenerated file handles, any outstanding 32-bit file handle is still\naccepted.\n\n[hch: the comment and commit log are mine, the rest is from a patch\n snipplet from Samuel]\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "05340d4ab2ec2b6b4962c1c41c6ea8fb550f947b",
      "tree": "9368b1f2e39ef219898bf32a7a2673d85720740d",
      "parents": [
        "c76febef574fd86566bbdf1a73a547a439115c25"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Dec 07 10:16:41 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Thu Dec 09 17:07:02 2010 -0600"
      },
      "message": "xfs: log timestamp changes to the source inode in rename\n\nNow that we don\u0027t mark VFS inodes dirty anymore for internal\ntimestamp changes, but rely on the transaction subsystem to push\nthem out, we need to explicitly log the source inode in rename after\nupdating it\u0027s timestamps to make sure the changes actually get\nforced out by sync/fsync or an AIL push.\n\nWe already account for the fourth inode in the log reservation, as a\nrename of directories needs to update the nlink field, so just\nadding the xfs_trans_log_inode call is enough.\n\nThis fixes the xfsqa 065 regression introduced by:\n\n\t\"xfs: don\u0027t use vfs writeback for pure metadata modifications\"\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "c76febef574fd86566bbdf1a73a547a439115c25",
      "tree": "bdfb67e30f7c55f54413c2bee79049bbbefff805",
      "parents": [
        "de25c1818c44f580ff556cb9e0f7a1c687ed870b"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Nov 30 15:15:31 2010 +1100"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Wed Dec 01 07:40:20 2010 -0600"
      },
      "message": "xfs: only run xfs_error_test if error injection is active\n\nRecent tests writing lots of small files showed the flusher thread\nbeing CPU bound and taking a long time to do allocations on a debug\nkernel. perf showed this as the prime reason:\n\n             samples  pcnt function                    DSO\n             _______ _____ ___________________________ _________________\n\n           224648.00 36.8% xfs_error_test              [kernel.kallsyms]\n            86045.00 14.1% xfs_btree_check_sblock      [kernel.kallsyms]\n            39778.00  6.5% prandom32                   [kernel.kallsyms]\n            37436.00  6.1% xfs_btree_increment         [kernel.kallsyms]\n            29278.00  4.8% xfs_btree_get_rec           [kernel.kallsyms]\n            27717.00  4.5% random32                    [kernel.kallsyms]\n\nWalking btree blocks during allocation checking them requires each\nblock (a cache hit, so no I/O) call xfs_error_test(), which then\ndoes a random32() call as the first operation.  IOWs, ~50% of the\nCPU is being consumed just testing whether we need to inject an\nerror, even though error injection is not active.\n\nKill this overhead when error injection is not active by adding a\nglobal counter of active error traps and only calling into\nxfs_error_test when fault injection is active.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "de25c1818c44f580ff556cb9e0f7a1c687ed870b",
      "tree": "a8fafd9317cf4841b6004119f6e84ddbece73af3",
      "parents": [
        "309c848002052edbec650075a1eb098b17c17f35"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Nov 30 15:15:46 2010 +1100"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Wed Dec 01 07:40:20 2010 -0600"
      },
      "message": "xfs: avoid moving stale inodes in the AIL\n\nWhen an inode has been marked stale because the cluster is being\nfreed, we don\u0027t want to (re-)insert this inode into the AIL. There\nis a race condition where the cluster buffer may be unpinned before\nthe inode is inserted into the AIL during transaction committed\nprocessing. If the buffer is unpinned before the inode item has been\ncommitted and inserted, then it is possible for the buffer to be\nreleased and hence processthe stale inode callbacks before the inode\nis inserted into the AIL.\n\nIn this case, we then insert a clean, stale inode into the AIL which\nwill never get removed by an IO completion. It will, however, get\nreclaimed and that triggers an assert in xfs_inode_free()\ncomplaining about freeing an inode still in the AIL.\n\nThis race can be avoided by not moving stale inodes forward in the AIL\nduring transaction commit completion processing. This closes the\nrace condition by ensuring we never insert clean stale inodes into\nthe AIL. It is safe to do this because a dirty stale inode, by\ndefinition, must already be in the AIL.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "309c848002052edbec650075a1eb098b17c17f35",
      "tree": "7e3e38c9ebcfa539716298c0f8a0000b45cffd8e",
      "parents": [
        "90810b9e82a36c3c57c1aeb8b2918b242a130b26"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Nov 30 15:16:02 2010 +1100"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Wed Dec 01 07:40:20 2010 -0600"
      },
      "message": "xfs: delayed alloc blocks beyond EOF are valid after writeback\n\nThere is an assumption in the parts of XFS that flushing a dirty\nfile will make all the delayed allocation blocks disappear from an\ninode. That is, that after calling xfs_flush_pages() then\nip-\u003ei_delayed_blks will be zero.\n\nThis is an invalid assumption as we may have specualtive\npreallocation beyond EOF and they are recorded in\nip-\u003ei_delayed_blks. A flush of the dirty pages of an inode will not\nchange the state of these blocks beyond EOF, so a non-zero\ndeeelalloc block count after a flush is valid.\n\nThe bmap code has an invalid ASSERT() that needs to be removed, and\nthe swapext code has a bug in that while it swaps the data forks\naround, it fails to swap the i_delayed_blks counter associated with\nthe fork and hence can get the block accounting wrong.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "90810b9e82a36c3c57c1aeb8b2918b242a130b26",
      "tree": "2fdb8bd75866fc3d61cb7fe2f2cc26f0e6895641",
      "parents": [
        "c726de4409a8d3a03877b1ef4342bfe8a15f5e5e"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Nov 30 15:16:16 2010 +1100"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Wed Dec 01 07:40:20 2010 -0600"
      },
      "message": "xfs: push stale, pinned buffers on trylock failures\n\nAs reported by Nick Piggin, XFS is suffering from long pauses under\nhighly concurrent workloads when hosted on ramdisks. The problem is\nthat an inode buffer is stuck in the pinned state in memory and as a\nresult either the inode buffer or one of the inodes within the\nbuffer is stopping the tail of the log from being moved forward.\n\nThe system remains in this state until a periodic log force issued\nby xfssyncd causes the buffer to be unpinned. The main problem is\nthat these are stale buffers, and are hence held locked until the\ntransaction/checkpoint that marked them state has been committed to\ndisk. When the filesystem gets into this state, only the xfssyncd\ncan cause the async transactions to be committed to disk and hence\nunpin the inode buffer.\n\nThis problem was encountered when scaling the busy extent list, but\nonly the blocking lock interface was fixed to solve the problem.\nExtend the same fix to the buffer trylock operations - if we fail to\nlock a pinned, stale buffer, then force the log immediately so that\nwhen the next attempt to lock it comes around, it will have been\nunpinned.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "c726de4409a8d3a03877b1ef4342bfe8a15f5e5e",
      "tree": "f1212b8f61f6dcdb52206842e8436a45f878a9e9",
      "parents": [
        "e8a7e48bb248a1196484d3f8afa53bded2b24e71"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Nov 30 15:14:39 2010 +1100"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Wed Dec 01 07:40:19 2010 -0600"
      },
      "message": "xfs: fix failed write truncation handling.\n\nSince the move to the new truncate sequence we call xfs_setattr to\ntruncate down excessively instanciated blocks.  As shown by the testcase\nin kernel.org BZ #22452 that doesn\u0027t work too well.  Due to the confusion\nof the internal inode size, and the VFS inode i_size it zeroes data that\nit shouldn\u0027t.\n\nBut full blown truncate seems like overkill here.  We only instanciate\ndelayed allocations in the write path, and given that we never released\nthe iolock we can\u0027t have converted them to real allocations yet either.\n\nThe only nasty case is pre-existing preallocation which we need to skip.\nWe already do this for page discard during writeback, so make the delayed\nallocation block punching a generic function and call it from the failed\nwrite path as well as xfs_aops_discard_page. The callers are\nresponsible for ensuring that partial blocks are not truncated away,\nand that they hold the ilock.\n\nBased on a fix originally from Christoph Hellwig. This version used\nfilesystem blocks as the range unit.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "e8a7e48bb248a1196484d3f8afa53bded2b24e71",
      "tree": "207c20c169605e3d348b1f78e21c4224d16f8b8d",
      "parents": [
        "32e1572427bf964ebe038f61d9f0bf0452cbf0e8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 29 20:42:04 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 29 20:42:04 2010 -0800"
      },
      "message": "Linux 2.6.37-rc4\n"
    },
    {
      "commit": "32e1572427bf964ebe038f61d9f0bf0452cbf0e8",
      "tree": "49fdeda1f228f9802afdca20ac7a994543a4a9c8",
      "parents": [
        "bcb38ceb225f5d5b2198a2755277cd441ed1e82b",
        "f2e785ed5fb8e5fe5063ee2ba1c8f150396c53c6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 29 20:41:39 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 29 20:41:39 2010 -0800"
      },
      "message": "Merge branch \u0027merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc\n\n* \u0027merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:\n  powerpc: Use call_rcu_sched() for pagetables\n"
    },
    {
      "commit": "f2e785ed5fb8e5fe5063ee2ba1c8f150396c53c6",
      "tree": "9b9048b02250977b24b8d79a812a570c12512624",
      "parents": [
        "72083646528d4887b920deb71b37e09bc7d227bb"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Nov 26 15:38:45 2010 +0100"
      },
      "committer": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Tue Nov 30 10:42:20 2010 +1100"
      },
      "message": "powerpc: Use call_rcu_sched() for pagetables\n\nPowerPC relies on IRQ-disable to guard against RCU quiecent states,\nuse the appropriate RCU call version.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\n"
    },
    {
      "commit": "bcb38ceb225f5d5b2198a2755277cd441ed1e82b",
      "tree": "2a436b318c56d058bd8f8d24eb1ec85c7268a9ed",
      "parents": [
        "8f1b1a509658bee2397ddb9937cbfa1b71cdca17"
      ],
      "author": {
        "name": "Dave Airlie",
        "email": "airlied@redhat.com",
        "time": "Tue Nov 30 09:15:46 2010 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 29 15:18:28 2010 -0800"
      },
      "message": "Revert \"debug_locks: set oops_in_progress if we will log messages.\"\n\nThis reverts commit e0fdace10e75dac67d906213b780ff1b1a4cc360.\n\nOn-list discussion seems to suggest that the robustness fixes for printk\nmake this unnecessary and DaveM has also agreed in person at Kernel Summit\nand on list.\n\nThe main problem with this code is once we hit a lockdep splat we always\nkeep oops_in_progress set, the console layer uses oops_in_progress with KMS\nto decide when it should be showing the oops and not showing X, so it causes\nproblems around suspend/resume time when a userspace resume can cause a console\nswitch away from X, only if oops_in_progress is set (which is what we want\nif an oops actually is in progress, but not because we had a lockdep splat\n2 days prior).\n\nCc: David S Miller \u003cdavem@davemloft.net\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Dave Airlie \u003cairlied@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8f1b1a509658bee2397ddb9937cbfa1b71cdca17",
      "tree": "502902dcef6b90920aecf525ec5da67918d21fa9",
      "parents": [
        "a01af8e4a4ee1135598f157051959982418c38f8",
        "3f0d3d016d89a5efb8b926d4707eb21fa13f3d27"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 29 14:38:06 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 29 14:38:06 2010 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6:\n  tpm: Autodetect itpm devices\n"
    },
    {
      "commit": "a01af8e4a4ee1135598f157051959982418c38f8",
      "tree": "76c78a7cbd02204afbe7404880dfbf312ebd51a5",
      "parents": [
        "a9735c81a43054a7e8cb8771c8e04c01fcacde10",
        "25888e30319f8896fc656fc68643e6a078263060"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 29 14:36:33 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 29 14:36:33 2010 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (27 commits)\n  af_unix: limit recursion level\n  pch_gbe driver: The wrong of initializer entry\n  pch_gbe dreiver: chang author\n  ucc_geth: fix ucc halt problem in half duplex mode\n  inet: Fix __inet_inherit_port() to correctly increment bsockets and num_owners\n  ehea: Add some info messages and fix an issue\n  hso: fix disable_net\n  NET: wan/x25_asy, move lapb_unregister to x25_asy_close_tty\n  cxgb4vf: fix setting unicast/multicast addresses ...\n  net, ppp: Report correct error code if unit allocation failed\n  DECnet: don\u0027t leak uninitialized stack byte\n  au1000_eth: fix invalid address accessing the MAC enable register\n  dccp: fix error in updating the GAR\n  tcp: restrict net.ipv4.tcp_adv_win_scale (#20312)\n  netns: Don\u0027t leak others\u0027 openreq-s in proc\n  Net: ceph: Makefile: Remove unnessary code\n  vhost/net: fix rcu check usage\n  econet: fix CVE-2010-3848\n  econet: fix CVE-2010-3850\n  econet: disallow NULL remote addr for sendmsg(), fixes CVE-2010-3849\n  ...\n"
    },
    {
      "commit": "a9735c81a43054a7e8cb8771c8e04c01fcacde10",
      "tree": "53d0fa7f31240a95eb7a77cd555d87ce9c20472e",
      "parents": [
        "aa3fc52546b847f590d86a093afd863ff9081628",
        "0d8e2d0dad98a693bad88aea6876ac8b94ad95c6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 29 14:36:07 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 29 14:36:07 2010 -0800"
      },
      "message": "Merge branch \u0027omap-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6\n\n* \u0027omap-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6:\n  OMAP2+: PM/serial: hold console semaphore while OMAP UARTs are disabled\n  OMAP: UART: don\u0027t resume UARTs that are not enabled.\n"
    },
    {
      "commit": "3f0d3d016d89a5efb8b926d4707eb21fa13f3d27",
      "tree": "9cf5a19b80d8c935db98110f2ac822c74f9ec9b9",
      "parents": [
        "72083646528d4887b920deb71b37e09bc7d227bb"
      ],
      "author": {
        "name": "Matthew Garrett",
        "email": "mjg@redhat.com",
        "time": "Thu Oct 21 17:42:40 2010 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Nov 30 09:18:01 2010 +1100"
      },
      "message": "tpm: Autodetect itpm devices\n\nSome Lenovos have TPMs that require a quirk to function correctly. This can\nbe autodetected by checking whether the device has a _HID of INTC0102. This\nis an invalid PNPid, and as such is discarded by the pnp layer - however\nit\u0027s still present in the ACPI code, so we can pull it out that way. This\nmeans that the quirk won\u0027t be automatically applied on non-ACPI systems,\nbut without ACPI we don\u0027t have any way to identify the chip anyway so I\ndon\u0027t think that\u0027s a great concern.\n\nSigned-off-by: Matthew Garrett \u003cmjg@redhat.com\u003e\nAcked-by: Rajiv Andrade \u003csrajiv@linux.vnet.ibm.com\u003e\nTested-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\nTested-by: Andy Isaacson \u003cadi@hexapodia.org\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "aa3fc52546b847f590d86a093afd863ff9081628",
      "tree": "9d8b35a700287ae19fb3baa0e9f2c93462795d11",
      "parents": [
        "555bdaefd52c386e79f98591810ceb8bab780398",
        "5a92bc88cef279261d3f138e25850c122df67045"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 29 14:11:08 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 29 14:11:08 2010 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable: (24 commits)\n  Btrfs: don\u0027t use migrate page without CONFIG_MIGRATION\n  Btrfs: deal with DIO bios that span more than one ordered extent\n  Btrfs: setup blank root and fs_info for mount time\n  Btrfs: fix fiemap\n  Btrfs - fix race between btrfs_get_sb() and umount\n  Btrfs: update inode ctime when using links\n  Btrfs: make sure new inode size is ok in fallocate\n  Btrfs: fix typo in fallocate to make it honor actual size\n  Btrfs: avoid NULL pointer deref in try_release_extent_buffer\n  Btrfs: make btrfs_add_nondir take parent inode as an argument\n  Btrfs: hold i_mutex when calling btrfs_log_dentry_safe\n  Btrfs: use dget_parent where we can UPDATED\n  Btrfs: fix more ESTALE problems with NFS\n  Btrfs: handle NFS lookups properly\n  btrfs: make 1-bit signed fileds unsigned\n  btrfs: Show device attr correctly for symlinks\n  btrfs: Set file size correctly in file clone\n  btrfs: Check if dest_offset is block-size aligned before cloning file\n  Btrfs: handle the space_cache option properly\n  btrfs: Fix early enospc because \u0027unused\u0027 calculated with wrong sign.\n  ...\n"
    },
    {
      "commit": "555bdaefd52c386e79f98591810ceb8bab780398",
      "tree": "3a17d5adc23b6a183d9009f0072519129de3e075",
      "parents": [
        "1bfe4eefe530f97c1625982d754908f33acf308d",
        "5989f11ba11c72f98d57580b991418d9ff6a207d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 29 14:10:44 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 29 14:10:44 2010 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp:\n  EDAC: Fix typos in Documentation/edac.txt\n  EDAC, MCE: Fix edac_init_mce_inject error handling\n  EDAC: Remove deprecated kbuild goal definitions\n"
    },
    {
      "commit": "1bfe4eefe530f97c1625982d754908f33acf308d",
      "tree": "53e1692220dd88309dfd564f6f5b06ec29650669",
      "parents": [
        "72083646528d4887b920deb71b37e09bc7d227bb",
        "14870b457524e745f1a118e17873d104b1a47b70"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 29 14:10:22 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 29 14:10:22 2010 -0800"
      },
      "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: Userland expects quota limit/warn/usage in 512b blocks\n"
    },
    {
      "commit": "25888e30319f8896fc656fc68643e6a078263060",
      "tree": "ae484d38b1250da885d3939dd9a97e667fbc871d",
      "parents": [
        "50a4205333c5e545551f1f82b3004ca635407c5c"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Nov 25 04:11:39 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 29 09:45:15 2010 -0800"
      },
      "message": "af_unix: limit recursion level\n\nIts easy to eat all kernel memory and trigger NMI watchdog, using an\nexploit program that queues unix sockets on top of others.\n\nlkml ref : http://lkml.org/lkml/2010/11/25/8\n\nThis mechanism is used in applications, one choice we have is to have a\nrecursion limit.\n\nOther limits might be needed as well (if we queue other types of files),\nsince the passfd mechanism is currently limited by socket receive queue\nsizes only.\n\nAdd a recursion_level to unix socket, allowing up to 4 levels.\n\nEach time we send an unix socket through sendfd mechanism, we copy its\nrecursion level (plus one) to receiver. This recursion level is cleared\nwhen socket receive queue is emptied.\n\nReported-by: Марк Коренберг \u003csocketpair@gmail.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "50a4205333c5e545551f1f82b3004ca635407c5c",
      "tree": "d239571cba41fa5392191ed92d4795f04d40274b",
      "parents": [
        "a1dcfcb7f2d08717325157ed3c1db2362d6eb8c9"
      ],
      "author": {
        "name": "Toshiharu Okada",
        "email": "toshiharu-linux@dsn.okisemi.com",
        "time": "Mon Nov 29 06:18:07 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 29 08:51:34 2010 -0800"
      },
      "message": "pch_gbe driver: The wrong of initializer entry\n\nThe wrong of initializer entry was modified.\n\nSigned-off-by: Toshiharu Okada \u003ctoshiharu-linux@dsn.okisemi.com\u003e\nReported-by: Dr. David Alan Gilbert \u003clinux@treblig.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a1dcfcb7f2d08717325157ed3c1db2362d6eb8c9",
      "tree": "79e7a8e9d23fb3399fcdbf00acd7a109ed11b4d3",
      "parents": [
        "d830418e4085d65b3f8bad3216a37bc986ecd17d"
      ],
      "author": {
        "name": "Toshiharu Okada",
        "email": "toshiharu-linux@dsn.okisemi.com",
        "time": "Sun Nov 21 19:58:37 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 29 08:51:33 2010 -0800"
      },
      "message": "pch_gbe dreiver: chang author\n\nThis driver\u0027s AUTHOR was changed to \"Toshiharu Okada\" from \"Masayuki Ohtake\".\nI update the Kconfig, renamed \"Topcliff\" to \"EG20T\".\n\nSigned-off-by: Toshiharu Okada \u003ctoshiharu-linux@dsn.okisemi.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5a92bc88cef279261d3f138e25850c122df67045",
      "tree": "22bc186bda2d2a61343bed473c3e606b43a49a18",
      "parents": [
        "163cf09c2a0ee5cac6285f9347975bd1e97725da"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Nov 29 09:49:11 2010 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Nov 29 09:49:11 2010 -0500"
      },
      "message": "Btrfs: don\u0027t use migrate page without CONFIG_MIGRATION\n\nFixes compile error\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "d830418e4085d65b3f8bad3216a37bc986ecd17d",
      "tree": "ddb6dd429e12651e1416f477ca10d7d8dc0c77fc",
      "parents": [
        "b4ff3c90e6066bacc8a92111752fe9e4f4c45cca"
      ],
      "author": {
        "name": "Yang Li",
        "email": "leoli@freescale.com",
        "time": "Thu Nov 25 23:29:58 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 28 18:36:57 2010 -0800"
      },
      "message": "ucc_geth: fix ucc halt problem in half duplex mode\n\nIn commit 58933c64(ucc_geth: Fix the wrong the Rx/Tx FIFO size),\nthe UCC_GETH_UTFTT_INIT is set to 512 based on the recommendation\nof the QE Reference Manual.  But that will sometimes cause tx halt\nwhile working in half duplex mode.\n\nAccording to errata draft QE_GENERAL-A003(High Tx Virtual FIFO\nthreshold size can cause UCC to halt), setting UTFTT less than\n[(UTFS x (M - 8)/M) - 128] will prevent this from happening\n(M is the minimum buffer size).\n\nThe patch changes UTFTT back to 256.\n\nSigned-off-by: Li Yang \u003cleoli@freescale.com\u003e\nCc: Jean-Denis Boyer \u003cjdboyer@media5corp.com\u003e\nCc: Andreas Schmitz \u003cAndreas.Schmitz@riedel.net\u003e\nCc: Anton Vorontsov \u003cavorontsov@ru.mvista.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b4ff3c90e6066bacc8a92111752fe9e4f4c45cca",
      "tree": "b64a78c4a7950e6b43c3e882dfc6dbe3a88aa2ea",
      "parents": [
        "5c7e57f7cddb83d81d83fefa5822dfe80891130e"
      ],
      "author": {
        "name": "Nagendra Tomar",
        "email": "tomer_iisc@yahoo.com",
        "time": "Fri Nov 26 14:26:27 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 28 18:18:44 2010 -0800"
      },
      "message": "inet: Fix __inet_inherit_port() to correctly increment bsockets and num_owners\n\ninet sockets corresponding to passive connections are added to the bind hash\nusing ___inet_inherit_port(). These sockets are later removed from the bind\nhash using __inet_put_port(). These two functions are not exactly symmetrical.\n__inet_put_port() decrements hashinfo-\u003ebsockets and tb-\u003enum_owners, whereas\n___inet_inherit_port() does not increment them. This results in both of these\ngoing to -ve values.\n\nThis patch fixes this by calling inet_bind_hash() from ___inet_inherit_port(),\nwhich does the right thing.\n\n\u0027bsockets\u0027 and \u0027num_owners\u0027 were introduced by commit a9d8f9110d7e953c\n(inet: Allowing more than 64k connections and heavily optimize bind(0))\n\nSigned-off-by: Nagendra Singh Tomar \u003ctomer_iisc@yahoo.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: Evgeniy Polyakov \u003czbr@ioremap.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5c7e57f7cddb83d81d83fefa5822dfe80891130e",
      "tree": "5c1e35827ac571e08b8759ce856227631098a4de",
      "parents": [
        "8e65c0ece6f2aa732f9b755331869c67aeb1c7f6"
      ],
      "author": {
        "name": "Breno Leitao",
        "email": "breno@cafe.(none)",
        "time": "Fri Nov 26 07:26:27 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 28 18:15:22 2010 -0800"
      },
      "message": "ehea: Add some info messages and fix an issue\n\nThis patch adds some debug information about ehea not being able to\nallocate enough spaces. Also it correctly updates the amount of available\nskb.\n\nSigned-off-by: Breno Leitao \u003cleitao@linux.vnet.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "163cf09c2a0ee5cac6285f9347975bd1e97725da",
      "tree": "5a83cd42d57fcc4d92d12965b5eafdb472e89b02",
      "parents": [
        "450ba0ea06b6ed3612d27f2b7127a9de4160f285"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 28 19:56:33 2010 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Nov 28 19:56:33 2010 -0500"
      },
      "message": "Btrfs: deal with DIO bios that span more than one ordered extent\n\nThe new DIO bio splitting code has problems when the bio\nspans more than one ordered extent.  This will happen as the\ngeneric DIO code merges our get_blocks calls together into\na bigger single bio.\n\nThis fixes things by walking forward in the ordered extent\ncode finding all the overlapping ordered extents and completing them\nall at once.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "72083646528d4887b920deb71b37e09bc7d227bb",
      "tree": "84a650b474530ae2d2d72614899532757d4bb961",
      "parents": [
        "c66fb347946ebdd5b10908866ecc9fa05ee2cf3d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 28 16:27:19 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 28 16:27:19 2010 -0800"
      },
      "message": "Un-inline get_pipe_info() helper function\n\nThis avoids some include-file hell, and the function isn\u0027t really\nimportant enough to be inlined anyway.\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c66fb347946ebdd5b10908866ecc9fa05ee2cf3d",
      "tree": "1891142352d75dcf58a1e90d8dde4d4a99c6e266",
      "parents": [
        "71993e62a47dabddf10302807d6aa260455503f4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 28 14:09:57 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 28 14:09:57 2010 -0800"
      },
      "message": "Export \u0027get_pipe_info()\u0027 to other users\n\nAnd in particular, use it in \u0027pipe_fcntl()\u0027.\n\nThe other pipe functions do not need to use the \u0027careful\u0027 version, since\nthey are only ever called for things that are already known to be pipes.\n\nThe normal read/write/ioctl functions are called through the file\noperations structures, so if a file isn\u0027t a pipe, they\u0027d never get\ncalled.  But pipe_fcntl() is special, and called directly from the\ngeneric fcntl code, and needs to use the same careful function that the\nsplice code is using.\n\nCc: Jens Axboe \u003cjaxboe@fusionio.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "71993e62a47dabddf10302807d6aa260455503f4",
      "tree": "f898f046fdfeab8f329b030614d36a3d4bc490fe",
      "parents": [
        "a9e40a2493d805224f900d839b06188639b7ccd6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 28 13:56:09 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 28 13:56:09 2010 -0800"
      },
      "message": "Rename \u0027pipe_info()\u0027 to \u0027get_pipe_info()\u0027\n\n.. and change it to take the \u0027file\u0027 pointer instead of an inode, since\nthat\u0027s what all users want anyway.\n\nThe renaming is preparatory to exporting it to other users.  The old\n\u0027pipe_info()\u0027 name was too generic and is already used elsewhere, so\nbefore making the function public we need to use a more specific name.\n\nCc: Jens Axboe \u003cjaxboe@fusionio.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a9e40a2493d805224f900d839b06188639b7ccd6",
      "tree": "b33c9477a0728f6299a00a3e817aa26872019576",
      "parents": [
        "75f5d2c9bd36047364d1fb35c0720ab37df3be02",
        "ee6dcfa40a50fe12a3ae0fb4d2653c66c3ed6556"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 28 12:25:02 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 28 12:25:02 2010 -0800"
      },
      "message": "Merge branch \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  perf: Fix the software context switch counter\n  perf, x86: Fixup Kconfig deps\n  x86, perf, nmi: Disable perf if counters are not accessible\n  perf: Fix inherit vs. context rotation bug\n"
    },
    {
      "commit": "75f5d2c9bd36047364d1fb35c0720ab37df3be02",
      "tree": "20f7bfba3397366e0f4526dcdbdb20f23559d8a5",
      "parents": [
        "0f639a3c5ca63dd76ee07de9b02ebf0178ce9a17",
        "b2268830f5cf29d94b3e4a2af0b795a8f28776fe"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 28 12:24:20 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 28 12:24:20 2010 -0800"
      },
      "message": "Merge branch \u0027fwnet\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6\n\n* \u0027fwnet\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:\n  firewire: net: throttle TX queue before running out of tlabels\n  firewire: net: replace lists by counters\n  firewire: net: fix memory leaks\n  firewire: net: count stats.tx_packets and stats.tx_bytes\n"
    },
    {
      "commit": "8e65c0ece6f2aa732f9b755331869c67aeb1c7f6",
      "tree": "eb7a5c26bfc87ed661fe42b35fcfb31356915682",
      "parents": [
        "03fe5f3ef7eab88e1405baa52a7923fbf337230b"
      ],
      "author": {
        "name": "Filip Aben",
        "email": "f.aben@option.com",
        "time": "Thu Nov 25 03:40:50 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 28 11:46:44 2010 -0800"
      },
      "message": "hso: fix disable_net\n\nThe HSO driver incorrectly creates a serial device instead of a net\ndevice when disable_net is set. It shouldn\u0027t create anything for the\nnetwork interface.\n\nSigned-off-by: Filip Aben \u003cf.aben@option.com\u003e\nReported-by: Piotr Isajew \u003cpki@ex.com.pl\u003e\nReported-by: Johan Hovold \u003cjhovold@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "03fe5f3ef7eab88e1405baa52a7923fbf337230b",
      "tree": "94ca359bee9d5f4121af252310d4eb9293d45d9a",
      "parents": [
        "42eb59d3a80ff83b4cacb92dcc44b22da7d4969b"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jslaby@suse.cz",
        "time": "Wed Nov 24 13:54:54 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 28 11:43:47 2010 -0800"
      },
      "message": "NET: wan/x25_asy, move lapb_unregister to x25_asy_close_tty\n\nWe register lapb when tty is created, but unregister it only when the\ndevice is UP. So move the lapb_unregister to x25_asy_close_tty after\nthe device is down.\n\nThe old behaviour causes ldisc switching to fail each second attempt,\nbecause we noted for us that the device is unused, so we use it the\nsecond time, but labp layer still have it registered, so it fails\nobviously.\n\nSigned-off-by: Jiri Slaby \u003cjslaby@suse.cz\u003e\nReported-by: Sergey Lapin \u003cslapin@ossfans.org\u003e\nCc: Andrew Hendry \u003candrew.hendry@gmail.com\u003e\nTested-by: Sergey Lapin \u003cslapin@ossfans.org\u003e\nTested-by: Mikhail Ulyanov \u003culyanov.mikhail@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "42eb59d3a80ff83b4cacb92dcc44b22da7d4969b",
      "tree": "c053c48b34d4a9c17badc50967c9cd3b5eaee34b",
      "parents": [
        "bcc70bb3aeae7c3d035881d41055685f08a2b745"
      ],
      "author": {
        "name": "Casey Leedom",
        "email": "leedom@chelsio.com",
        "time": "Wed Nov 24 12:23:57 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 28 11:40:58 2010 -0800"
      },
      "message": "cxgb4vf: fix setting unicast/multicast addresses ...\n\nWe were truncating the number of unicast and multicast MAC addresses\nsupported.  Additionally, we were incorrectly computing the MAC Address\nhash (a \"1 \u003c\u003c N\" where we needed a \"1ULL \u003c\u003c N\").\n\nSigned-off-by: Casey Leedom \u003cleedom@chelsio.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bcc70bb3aeae7c3d035881d41055685f08a2b745",
      "tree": "d315f22c30a9356f8294669bb9c9cf31f844ff12",
      "parents": [
        "3c6f27bf33052ea6ba9d82369fb460726fb779c0"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@gmail.com",
        "time": "Tue Nov 23 11:43:44 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 28 11:33:49 2010 -0800"
      },
      "message": "net, ppp: Report correct error code if unit allocation failed\n\nAllocating unit from ird might return several error codes\nnot only -EAGAIN, so it should not be changed and returned\nprecisely. Same time unit release procedure should be invoked\nonly if device is unregistering.\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCC: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3c6f27bf33052ea6ba9d82369fb460726fb779c0",
      "tree": "0159223767a5edaaad3133df1bc4f061da0723a0",
      "parents": [
        "462ca99c2ff6caae94dde5c05b56b54f6c01602a"
      ],
      "author": {
        "name": "Dan Rosenberg",
        "email": "drosenberg@vsecurity.com",
        "time": "Tue Nov 23 11:02:13 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 28 11:32:30 2010 -0800"
      },
      "message": "DECnet: don\u0027t leak uninitialized stack byte\n\nA single uninitialized padding byte is leaked to userspace.\n\nSigned-off-by: Dan Rosenberg \u003cdrosenberg@vsecurity.com\u003e\nCC: stable \u003cstable@kernel.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "462ca99c2ff6caae94dde5c05b56b54f6c01602a",
      "tree": "5ed8d62cf6c08ff966c560cf46c227bebcc85bfd",
      "parents": [
        "0ac78870220b6e0ac74dd9292bcfa7b18718babd"
      ],
      "author": {
        "name": "Wolfgang Grandegger",
        "email": "wg@grandegger.com",
        "time": "Tue Nov 23 06:40:25 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 28 11:31:22 2010 -0800"
      },
      "message": "au1000_eth: fix invalid address accessing the MAC enable register\n\n\"aup-\u003eenable\" holds already the address pointing to the MAC enable\nregister. The bug was introduced by commit d0e7cb:\n\n\"au1000-eth: remove volatiles, switch to I/O accessors\".\n\nCC: Florian Fainelli \u003cflorian@openwrt.org\u003e\nSigned-off-by: Wolfgang Grandegger \u003cwg@denx.de\u003e\nAcked-by: Florian Fainelli \u003cflorian@openwrt.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0ac78870220b6e0ac74dd9292bcfa7b18718babd",
      "tree": "19b0359b9a805857acf9ab713afd4e485e4da692",
      "parents": [
        "a301e1703edc088592f8c5c16f9bdd34a0792776"
      ],
      "author": {
        "name": "Gerrit Renker",
        "email": "gerrit@erg.abdn.ac.uk",
        "time": "Tue Nov 23 02:36:56 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 28 11:29:27 2010 -0800"
      },
      "message": "dccp: fix error in updating the GAR\n\nThis fixes a bug in updating the Greatest Acknowledgment number Received (GAR):\nthe current implementation does not track the greatest received value -\nlower values in the range AWL..AWH (RFC 4340, 7.5.1) erase higher ones.\n\nSigned-off-by: Gerrit Renker \u003cgerrit@erg.abdn.ac.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a301e1703edc088592f8c5c16f9bdd34a0792776",
      "tree": "7a27abde4079ea65327d3550630108c1445cb6e9",
      "parents": [
        "0147fc058d11bd4009b126d09974d2c8f48fef15",
        "11cd1a8b8cad1acfc140d9acce93762a9c140b20"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 28 11:27:44 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 28 11:27:44 2010 -0800"
      },
      "message": "Merge branch \u0027vhost-net\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost\n"
    },
    {
      "commit": "0147fc058d11bd4009b126d09974d2c8f48fef15",
      "tree": "f73f0e82f7774938dd7190c6a810e0ccb2466f2b",
      "parents": [
        "8475ef9fd16cadbfc692f78e608d1941a340beb2"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Nov 22 12:54:21 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 28 10:39:45 2010 -0800"
      },
      "message": "tcp: restrict net.ipv4.tcp_adv_win_scale (#20312)\n\ntcp_win_from_space() does the following:\n\n      if (sysctl_tcp_adv_win_scale \u003c\u003d 0)\n              return space \u003e\u003e (-sysctl_tcp_adv_win_scale);\n      else\n              return space - (space \u003e\u003e sysctl_tcp_adv_win_scale);\n\n\"space\" is int.\n\nAs per C99 6.5.7 (3) shifting int for 32 or more bits is\nundefined behaviour.\n\nIndeed, if sysctl_tcp_adv_win_scale is exactly 32,\nspace \u003e\u003e 32 equals space and function returns 0.\n\nWhich means we busyloop in tcp_fixup_rcvbuf().\n\nRestrict net.ipv4.tcp_adv_win_scale to [-31, 31].\n\nFix https://bugzilla.kernel.org/show_bug.cgi?id\u003d20312\n\nSteps to reproduce:\n\n      echo 32 \u003e/proc/sys/net/ipv4/tcp_adv_win_scale\n      wget www.kernel.org\n      [softlockup]\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8475ef9fd16cadbfc692f78e608d1941a340beb2",
      "tree": "6e582cc6eed642094c87fd1075bc0d7eade41602",
      "parents": [
        "4cb6a614ba0e58cae8abdadbf73bcb4d37a3f599"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Mon Nov 22 03:26:12 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Nov 27 22:57:48 2010 -0800"
      },
      "message": "netns: Don\u0027t leak others\u0027 openreq-s in proc\n\nThe /proc/net/tcp leaks openreq sockets from other namespaces.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4cb6a614ba0e58cae8abdadbf73bcb4d37a3f599",
      "tree": "09198ec9e4bbb9c751246d38db87da970a7740aa",
      "parents": [
        "a27e13d370415add3487949c60810e36069a23a6"
      ],
      "author": {
        "name": "Tracey Dent",
        "email": "tdent48227@gmail.com",
        "time": "Sun Nov 21 15:23:50 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Nov 27 17:39:29 2010 -0800"
      },
      "message": "Net: ceph: Makefile: Remove unnessary code\n\nRemove the if and else conditional because the code is in mainline and there\nis no need in it being there.\n\nSigned-off-by: Tracey Dent \u003ctdent48227@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0f639a3c5ca63dd76ee07de9b02ebf0178ce9a17",
      "tree": "d71795e238dcf18c1db2b37023dc4252b1f5f5f3",
      "parents": [
        "19650e8580987c0ffabc2fe2cbc16b944789df8b",
        "37fa84d8e647e584bf1b71bdff0330049e34f5ef"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 27 12:42:15 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 27 12:42:15 2010 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: (30 commits)\n  ALSA: hda - Use ALC_INIT_DEFAULT for really default initialization\n  ASoC: Fix resource reclaim for osk5912\n  ASoC: tlv320aic3x - fix variable may be used uninitialized warning\n  ASoC: davinci-vcif - fix a memory leak\n  ASoC: phycore-ac97: fix resource leak\n  ASoC: imx-ssi: fix resource leak\n  ASoC: simone: fix resource leak in simone_init error path\n  ASoC: sam9g20_wm8731: fix resource leak in at91sam9g20ek_init error path\n  ASoC: snd-soc-afeb9260: remove unneeded platform_device_del in error path\n  ASoC: pcm030-audio-fabric: fix resource leak in pcm030_fabric_init error path\n  ASoC: efika-audio-fabric: fix resource leak in efika_fabric_init error path\n  ASoC: Call snd_soc_unregister_dais instead of snd_soc_unregister_dai in sh4_soc_dai_remove\n  ASoC: fix SND_PXA2XX_LIB Kconfig warning\n  ALSA: hda - Fix ALC660-VD/ALC861-VD capture/playback mixers\n  ALSA: HDA: Add an extra DAC for Realtek ALC887-VD\n  ASoC: nuc900-ac97: fix a memory leak\n  ASoC: Return proper error for omap3pandora_soc_init\n  ASoC: wm8961 - clear WM8961_MCLKDIV bit for freq \u003c\u003d 16500000\n  ASoC: wm8961 - clear WM8961_DACSLOPE bit for normal mode\n  ALSA: hda - Fix Acer 7730G support\n  ...\n"
    },
    {
      "commit": "450ba0ea06b6ed3612d27f2b7127a9de4160f285",
      "tree": "2276ddbcb65d7656416cdce69432a5858b35c413",
      "parents": [
        "975f84fee2e8a77ee5f41bfe7c5682bf29366b10"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Nov 19 14:59:15 2010 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Nov 27 13:37:51 2010 -0500"
      },
      "message": "Btrfs: setup blank root and fs_info for mount time\n\nThere is a problem with how we use sget, it searches through the list of supers\nattached to the fs_type looking for a super with the same fs_devices as what\nwe\u0027re trying to mount.  This depends on sb-\u003es_fs_info being filled, but we don\u0027t\nfill that in until we get to btrfs_fill_super, so we could hit supers on the\nfs_type super list that have a null s_fs_info.  In order to fix that we need to\ngo ahead and setup a blank root with a blank fs_info to hold fs_devices, that\nway our test will work out right and then we can set s_fs_info in\nbtrfs_set_super, and then open_ctree will simply use our pre-allocated root and\nfs_info when setting everything up.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "975f84fee2e8a77ee5f41bfe7c5682bf29366b10",
      "tree": "e7e20e775fa4c126273c28d0c7f0ee05b5bb7f5b",
      "parents": [
        "619c8c763928841b1112e1d417f88bc1d44daecb"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Nov 23 19:36:57 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Nov 27 13:37:50 2010 -0500"
      },
      "message": "Btrfs: fix fiemap\n\nThere are two big problems currently with FIEMAP\n\n1) We return extents for holes.  This isn\u0027t supposed to happen, we just don\u0027t\nreturn extents for holes and then userspace interprets the lack of an extent as\na hole.\n\n2) We sometimes don\u0027t set FIEMAP_EXTENT_LAST properly.  This is because we wait\nto see a EXTENT_FLAG_VACANCY flag on the em, but this won\u0027t happen if say we ask\nfiemap to map up to the last extent in a file, and there is nothing but holes up\nto the i_size.  To fix this we need to lookup the last extent in this file and\nsave the logical offset, so if we happen to try and map that extent we can be\nsure to set FIEMAP_EXTENT_LAST.\n\nWith this patch we now pass xfstest 225, which we never have before.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "619c8c763928841b1112e1d417f88bc1d44daecb",
      "tree": "23fc73cf043faac2cdb15a0b22e6e9e29a69797a",
      "parents": [
        "bc1cbf1f86aa2501efa9ca637c736fce6bcc4b1d"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Mon Nov 22 02:21:38 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Nov 27 13:37:44 2010 -0500"
      },
      "message": "Btrfs - fix race between btrfs_get_sb() and umount\n\nWhen mounting a btrfs file system btrfs_test_super() may attempt to\nuse sb-\u003es_fs_info, the btrfs root, of a super block that is going away\nand that has had the btrfs root set to NULL in its -\u003eput_super(). But\nif the super block is going away it cannot be an existing super block\nso we can return false in this case.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "bc1cbf1f86aa2501efa9ca637c736fce6bcc4b1d",
      "tree": "af17fcd439f67eafc534e894168b397c563e2366",
      "parents": [
        "0ed42a63f3edb144b091d9528401fce95c3c4d8d"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Nov 23 19:50:59 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Nov 27 13:00:07 2010 -0500"
      },
      "message": "Btrfs: update inode ctime when using links\n\nCurrently we fail xfstest 236 because we\u0027re not updating the inode ctime on\nlink.  This is a simple fix, and makes it so we pass 236 now.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "0ed42a63f3edb144b091d9528401fce95c3c4d8d",
      "tree": "d98573473d916eecbeb949d45f8ac9b530440080",
      "parents": [
        "55a61d1d06a3dc443d0db8aaa613365dcb83b98a"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Nov 22 18:55:39 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Nov 27 13:00:07 2010 -0500"
      },
      "message": "Btrfs: make sure new inode size is ok in fallocate\n\nWe have been failing xfstest 228 forever, because we don\u0027t check to make sure\nthe new inode size is acceptable as far as RLIMIT is concerned.  Just check to\nmake sure it\u0027s ok to create a inode with this new size and error out if not.\nWith this patch we now pass 228.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "55a61d1d06a3dc443d0db8aaa613365dcb83b98a",
      "tree": "39f59ec200674081b086f9e25393401d08848ffd",
      "parents": [
        "45f49bce99d008d6864a20324548f35936ba46fb"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Nov 22 18:50:32 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Nov 27 12:59:16 2010 -0500"
      },
      "message": "Btrfs: fix typo in fallocate to make it honor actual size\n\nThere is a typo in __btrfs_prealloc_file_range() where we set the i_size to\nactual_len/cur_offset, and then just set it to cur_offset again, and do the same\nwith btrfs_ordered_update_i_size().  This fixes it back to keeping i_size in a\nlocal variable and then updating i_size properly.  Tested this with\n\nxfs_io -F -f -c \"falloc 0 1\" -c \"pwrite 0 1\" foo\n\nstat\u0027ing foo gives us a size of 1 instead of 4096 like it was.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "19650e8580987c0ffabc2fe2cbc16b944789df8b",
      "tree": "cf0cfb390a128e3b2d47daa46f59de0a62a8ff04",
      "parents": [
        "1eb4c6362cb7d6a2f904c555c10dc45caeeefc31",
        "0b26a0bf6ff398185546432420bb772bcfdf8d94"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 27 07:30:30 2010 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 27 07:30:30 2010 +0900"
      },
      "message": "Merge branch \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:\n  NFS: Ensure we return the dirent-\u003ed_type when it is known\n  NFS: Correct the array bound calculation in nfs_readdir_add_to_array\n  NFS: Don\u0027t ignore errors from nfs_do_filldir()\n  NFS: Fix the error handling in \"uncached_readdir()\"\n  NFS: Fix a page leak in uncached_readdir()\n  NFS: Fix a page leak in nfs_do_filldir()\n  NFS: Assume eof if the server returns no readdir records\n  NFS: Buffer overflow in -\u003edecode_dirent() should not be fatal\n  Pure nfs client performance using odirect.\n  SUNRPC: Fix an infinite loop in call_refresh/call_refreshresult\n"
    },
    {
      "commit": "1eb4c6362cb7d6a2f904c555c10dc45caeeefc31",
      "tree": "c54002f0106014b25921bbf70b986d695de0a1fa",
      "parents": [
        "03187552762cba3db20d22bc7b0fe2d3642bc15b",
        "1b1d76e2df2a0aa965d6a227db7061d3fff029b1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 27 07:30:08 2010 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 27 07:30:08 2010 +0900"
      },
      "message": "Merge branch \u0027linux-next\u0027 of git://git.infradead.org/ubi-2.6\n\n* \u0027linux-next\u0027 of git://git.infradead.org/ubi-2.6:\n  UBI: release locks in check_corruption\n"
    },
    {
      "commit": "03187552762cba3db20d22bc7b0fe2d3642bc15b",
      "tree": "813ea6cbb302e08e71e2ba9ee7e71fb1ce7db9ce",
      "parents": [
        "fbe6c4047f011d76be83bc2380531cd4fb6aa0e6",
        "c0deae8c9587419ab13874b74425ce2eb2e18508"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 27 07:29:20 2010 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 27 07:29:20 2010 +0900"
      },
      "message": "Merge branch \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  posix-cpu-timers: Rcu_read_lock/unlock protect find_task_by_vpid call\n"
    },
    {
      "commit": "fbe6c4047f011d76be83bc2380531cd4fb6aa0e6",
      "tree": "c4f9bee27e330093fc2d365a2dedc84f1c524124",
      "parents": [
        "d2f30c73aba19be828c759edcd21140390cd06e4",
        "4917b284db8607e414c334317b7d15239854d39c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 27 07:28:47 2010 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 27 07:28:47 2010 +0900"
      },
      "message": "Merge branch \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  dmar, x86: Use function stubs when CONFIG_INTR_REMAP is disabled\n  x86-64: Fix and clean up AMD Fam10 MMCONF enabling\n  x86: UV: Address interrupt/IO port operation conflict\n  x86: Use online node real index in calulate_tbl_offset()\n  x86, asm: Fix binutils 2.15 build failure\n"
    },
    {
      "commit": "d2f30c73aba19be828c759edcd21140390cd06e4",
      "tree": "b9bad75b11e21680f8f9443f0143d62be23cae78",
      "parents": [
        "1b065fdff1c950d96e4c571abe873a9a8aaa6d51",
        "02a9d03772aa1ff33a26180a2da0bfb191240eda"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 27 07:28:17 2010 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 27 07:28:17 2010 +0900"
      },
      "message": "Merge branch \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  perf symbols: Remove incorrect open-coded container_of()\n  perf record: Handle restrictive permissions in /proc/{kallsyms,modules}\n  x86/kprobes: Prevent kprobes to probe on save_args()\n  irq_work: Drop cmpxchg() result\n  perf: Fix owner-list vs exit\n  x86, hw_nmi: Move backtrace_mask declaration under ARCH_HAS_NMI_WATCHDOG\n  tracing: Fix recursive user stack trace\n  perf,hw_breakpoint: Initialize hardware api earlier\n  x86: Ignore trap bits on single step exceptions\n  tracing: Force arch_local_irq_* notrace for paravirt\n  tracing: Fix module use of trace_bprintk()\n"
    },
    {
      "commit": "1b065fdff1c950d96e4c571abe873a9a8aaa6d51",
      "tree": "603d792daf79ae9a0161d97191202bf5d796dc7d",
      "parents": [
        "b76a1e4f2a2f95354f4567c8eb420fd4cb68fc26",
        "d5ad140bc1505a98c0f040937125bfcbb508078f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 27 07:27:54 2010 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 27 07:27:54 2010 +0900"
      },
      "message": "Merge branch \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: Fix idle balancing\n  sched: Fix volanomark performance regression\n"
    },
    {
      "commit": "b76a1e4f2a2f95354f4567c8eb420fd4cb68fc26",
      "tree": "3231168f2e67d8351e8b9bf4161d9df89251f5fd",
      "parents": [
        "78daa87b1d332e4ac963c793a4157533d57501c7",
        "4814a2b3c603438ed8c330c74b49aa662b1ede43"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 27 07:26:48 2010 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 27 07:26:48 2010 +0900"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git390.marist.edu/pub/scm/linux-2.6\n\n* \u0027for-linus\u0027 of git://git390.marist.edu/pub/scm/linux-2.6:\n  [S390] qdio: free indicator after reset is finished\n  [S390] nmi: fix clock comparator revalidation\n"
    }
  ],
  "next": "78daa87b1d332e4ac963c793a4157533d57501c7"
}
