)]}'
{
  "log": [
    {
      "commit": "a4689d2bd3b00dcf5c4320f06e0ab88810fbff9c",
      "tree": "295bcdb0fdbe5a4cda80eb886694efd45e276699",
      "parents": [
        "d132a538d258f8f52fd0cd8b5017755f4e915386"
      ],
      "author": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Tue May 31 17:08:14 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Jun 04 08:03:46 2011 -0400"
      },
      "message": "btrfs: use btrfs_ino to access inode number\n\ncommit 4cb5300bc (\"Btrfs: add mount -o auto_defrag\") accesses inode\nnumber directly while it should use the helper with the new inode\nnumber allocator.\n\nSigned-off-by: David Sterba \u003cdsterba@suse.cz\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "d132a538d258f8f52fd0cd8b5017755f4e915386",
      "tree": "bf3a5e67c8eff57425dd656778b40c5aaf858f80",
      "parents": [
        "5f3f302a6f4cb74906c05fad1d03fc5e95c7e5af"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue May 31 19:33:33 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Jun 04 08:03:45 2011 -0400"
      },
      "message": "Btrfs: don\u0027t save the inode cache if we are deleting this root\n\nWith xfstest 254 I can panic the box every time with the inode number caching\nstuff on.  This is because we clean the inodes out when we delete the subvolume,\nbut then we write out the inode cache which adds an inode to the subvolume inode\ntree, and then when it gets evicted again the root gets added back on the dead\nroots list and is deleted again, so we have a double free.  To stop this from\nhappening just return 0 if refs is 0 (and we\u0027re not the tree root since tree\nroot always has refs of 0).  With this fix 254 no longer panics.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nTested-by: David Sterba \u003cdsterba@suse.cz\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "5f3f302a6f4cb74906c05fad1d03fc5e95c7e5af",
      "tree": "224a59dcd31fbbe2b23ac85d3d4906bbf7327b78",
      "parents": [
        "ca456ae280c0646e1e571c3b9a3834c55e90adfe"
      ],
      "author": {
        "name": "Arne Jansen",
        "email": "sensille@gmx.net",
        "time": "Mon May 30 08:36:16 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Jun 04 08:03:44 2011 -0400"
      },
      "message": "btrfs: false BUG_ON when degraded\n\nIn degraded mode the struct btrfs_device of missing devs don\u0027t have\ndevice-\u003ename set. A kstrdup of NULL correctly returns NULL. Don\u0027t\nBUG in this case.\n\nSigned-off-by: Arne Jansen \u003csensille@gmx.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "ca456ae280c0646e1e571c3b9a3834c55e90adfe",
      "tree": "945f70453e07c59739c02808f69598f637d35dfa",
      "parents": [
        "211f96c24f117fcc6e9e2431e40d92f4de22625e"
      ],
      "author": {
        "name": "liubo",
        "email": "liubo2009@cn.fujitsu.com",
        "time": "Wed Jun 01 09:42:49 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Jun 04 08:03:44 2011 -0400"
      },
      "message": "Btrfs: don\u0027t save the inode cache in non-FS roots\n\nThis adds extra checks to make sure the inode map we are caching really\nbelongs to a FS root instead of a special relocation tree.  It\nprevents crashes during balancing operations.\n\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "211f96c24f117fcc6e9e2431e40d92f4de22625e",
      "tree": "9f73c5419e905066653660ec33f8d5efeaa3a148",
      "parents": [
        "17aca1c987cff89dc4279371857035da902c8854"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jun 03 01:26:53 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Jun 04 08:03:43 2011 -0400"
      },
      "message": "Btrfs: make sure we don\u0027t overflow the free space cache crc page\n\nThe free space cache uses only one page for crcs right now,\nwhich means we can\u0027t have a cache file bigger than the\ncrcs we can fit in the first page.  This adds a check to\nenforce that restriction.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "17aca1c987cff89dc4279371857035da902c8854",
      "tree": "f63df32137d07ec9876f46542884b68a83e0a48c",
      "parents": [
        "1bc8779349d6278e2713a1ff94418c2a6746a791"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jun 03 01:13:45 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Jun 04 08:03:43 2011 -0400"
      },
      "message": "Btrfs: fix uninit variable in the delayed inode code\n\nThe nitems counter needs to start at zero\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "1bc8779349d6278e2713a1ff94418c2a6746a791",
      "tree": "2caf24db7d669825538c15efe17473159da57593",
      "parents": [
        "ff5714cca971848963b87d6b477c16ca8abbaa54"
      ],
      "author": {
        "name": "Arne Jansen",
        "email": "sensille@gmx.net",
        "time": "Sat May 28 21:57:55 2011 +0200"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Jun 04 08:03:17 2011 -0400"
      },
      "message": "btrfs: scrub: don\u0027t reuse bios and pages\n\nThe current scrub implementation reuses bios and pages as often as possible,\nallocating them only on start and releasing them when finished. This leads\nto more problems with the block layer than it\u0027s worth. The elevator gets\nconfused when there are more pages added to the bio than bi_size suggests.\nThis patch completely rips out the reuse of bios and pages and allocates\nthem freshly for each submit.\n\nSigned-off-by: Arne Jansen \u003csensille@gmx.net\u003e\nSigned-off-by: Chris Maosn \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "ff5714cca971848963b87d6b477c16ca8abbaa54",
      "tree": "17ee34b9b5e00804df4059503f82f6f1d94383a9",
      "parents": [
        "174ba50915b08dcfd07c8b5fb795b46a165fa09a",
        "d90c732122a1f6d0efe388a8a204f67f144b2eb3"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat May 28 07:00:39 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat May 28 07:00:39 2011 -0400"
      },
      "message": "Merge branch \u0027for-chris\u0027 of\ngit://git.kernel.org/pub/scm/linux/kernel/git/josef/btrfs-work into for-linus\n\nConflicts:\n\tfs/btrfs/disk-io.c\n\tfs/btrfs/extent-tree.c\n\tfs/btrfs/free-space-cache.c\n\tfs/btrfs/inode.c\n\tfs/btrfs/transaction.c\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "174ba50915b08dcfd07c8b5fb795b46a165fa09a",
      "tree": "94bc84b6e8bea05775373f90bd8eb7aa254a943f",
      "parents": [
        "a47d6b70e280401d553e7cac6f5750870de1ad21"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri May 27 10:03:58 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri May 27 10:03:58 2011 -0400"
      },
      "message": "Btrfs: use the device_list_mutex during write_dev_supers\n\nwrite_dev_supers was changed to use RCU to protect the list of\ndevices, but it was then sleeping while it actually wrote the supers.\nThis fixes it to just use the mutex, since we really don\u0027t any\nconcurrency in write_dev_supers anyway.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "a47d6b70e280401d553e7cac6f5750870de1ad21",
      "tree": "2874064c08ecc65cdfda9b2a9fd9895eb73a011e",
      "parents": [
        "00d01bc17cc2807292303961519d9c005794eb1d"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu May 26 06:38:30 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu May 26 17:53:04 2011 -0400"
      },
      "message": "Btrfs: setup free ino caching in a more asynchronous way\n\nFor a filesystem that has lots of files in it, the first time we mount\nit with free ino caching support, it can take quite a long time to\nsetup the caching before we can create new files.\n\nHere we fill the cache with [highest_ino, BTRFS_LAST_FREE_OBJECTID]\nbefore we start the caching thread to search through the extent tree.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "00d01bc17cc2807292303961519d9c005794eb1d",
      "tree": "47816d90951550c55d9ec1fff51c365056986aa1",
      "parents": [
        "c309df07868baa8b05d2a70637096465746fdbb5"
      ],
      "author": {
        "name": "Arne Jansen",
        "email": "sensille@gmx.net",
        "time": "Wed May 25 12:22:50 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu May 26 17:52:52 2011 -0400"
      },
      "message": "btrfs scrub: don\u0027t coalesce pages that are logically discontiguous\n\nscrub_page collects several pages into one bio as long as they are physically\ncontiguous. As we only save one logical address for the whole bio, don\u0027t\ncollect pages that are physically contiguous but logically discontiguous.\n\nSigned-off-by: Arne Jansen \u003csensille@gmx.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "c309df07868baa8b05d2a70637096465746fdbb5",
      "tree": "7c1749127d16aa07a1f3a296097f5f314b2a6a42",
      "parents": [
        "4cb5300bc839b8a943eb19c9f27f25470e22d0ca"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu May 26 17:43:59 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu May 26 17:52:44 2011 -0400"
      },
      "message": "Btrfs: return -ENOMEM in clear_extent_bit\n\nThe btrfs releasepage function depends on ENOMEM coming\nback when it is called atomic.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "4cb5300bc839b8a943eb19c9f27f25470e22d0ca",
      "tree": "ac0f2fb481c7aa6af08a624d276fa6d580c94c9b",
      "parents": [
        "d6c0cb379c5198487e4ac124728cbb2346d63b1f"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue May 24 15:35:30 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu May 26 17:52:15 2011 -0400"
      },
      "message": "Btrfs: add mount -o auto_defrag\n\nThis will detect small random writes into files and\nqueue the up for an auto defrag process.  It isn\u0027t well suited to\ndatabase workloads yet, but works for smaller files such as rpm, sqlite\nor bdb databases.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "d6c0cb379c5198487e4ac124728cbb2346d63b1f",
      "tree": "167a97ac58c7a2fbf7c4e94b6abbfe1e03af014a",
      "parents": [
        "8e531cdfeb75269c6c5aae33651cca39707848da",
        "1f78160ce1b1b8e657e2248118c4d91f881763f0"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon May 23 14:37:47 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon May 23 14:37:47 2011 -0400"
      },
      "message": "Merge branch \u0027cleanups_and_fixes\u0027 into inode_numbers\n\nConflicts:\n\tfs/btrfs/tree-log.c\n\tfs/btrfs/volumes.c\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "1f78160ce1b1b8e657e2248118c4d91f881763f0",
      "tree": "98c5496a9ab3e77e4cd682c0487f4c0127198396",
      "parents": [
        "46224705656633466ca7dc71d81b3c0abc76cae4"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Wed Apr 20 10:09:16 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon May 23 13:24:43 2011 -0400"
      },
      "message": "Btrfs: using rcu lock in the reader side of devices list\n\nfs_devices-\u003edevices is only updated on remove and add device paths, so we can\nuse rcu to protect it in the reader side\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "46224705656633466ca7dc71d81b3c0abc76cae4",
      "tree": "2cdc8c8cc82c2262edb8d89a27e5539359e61c40",
      "parents": [
        "0c1daee085cff1395d1eba4ad6faff7810a594d8"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Wed Apr 20 10:08:47 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon May 23 13:24:43 2011 -0400"
      },
      "message": "Btrfs: drop unnecessary device lock\n\nDrop device_list_mutex for the reader side  on clone_fs_devices and\nbtrfs_rm_device pathes since the fs_info-\u003evolume_mutex can ensure the device\nlist is not updated\n\nbtrfs_close_extra_devices is the initialized path, we can not add or remove\ndevice at this time, so we can simply drop the mutex safely, like other\ninitialized function does(add_missing_dev, __find_device, __btrfs_open_devices\n...).\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "0c1daee085cff1395d1eba4ad6faff7810a594d8",
      "tree": "a7c86b2b7aaed74e8a4daebc3f1d8da6875c1e1b",
      "parents": [
        "c9513edb0079f97749c2ac00c887a22c4ba44792"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Wed Apr 20 10:08:16 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon May 23 13:24:43 2011 -0400"
      },
      "message": "Btrfs: fix the race between remove dev and alloc chunk\n\nOn remove device path, it updates device-\u003edev_alloc_list but does not hold\nchunk lock\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "c9513edb0079f97749c2ac00c887a22c4ba44792",
      "tree": "6b34bd7cdf5dcd882e61bf4912ae10b4de3b87dd",
      "parents": [
        "4f6c9328c6c0d8558907f16579a9d47815abef80"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Wed Apr 20 10:07:30 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon May 23 13:24:42 2011 -0400"
      },
      "message": "Btrfs: fix the race between reading and updating devices\n\nOn btrfs_congested_fn and __unplug_io_fn paths, we should hold\ndevice_list_mutex to avoid remove/add device path to\nupdate fs_devices-\u003edevices\n\nOn __btrfs_close_devices and btrfs_prepare_sprout paths, the devices in\nfs_devices-\u003edevices or fs_devices-\u003edevices is updated, so we should hold\nthe mutex to avoid the reader side to reach them\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "4f6c9328c6c0d8558907f16579a9d47815abef80",
      "tree": "d65bf3702ec48b30894dbebfc36ed3869f6abb28",
      "parents": [
        "c7f895a2b2d1a002810d52e7b6653c9dc2fd0b0b"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Wed Apr 20 10:06:40 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon May 23 13:24:42 2011 -0400"
      },
      "message": "Btrfs: fix bh leak on __btrfs_open_devices path\n\n\u0027bh\u0027 is forgot to release if no error is detected\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "c7f895a2b2d1a002810d52e7b6653c9dc2fd0b0b",
      "tree": "1b2a05c2efe1f169983bff7a497d812aa86c3000",
      "parents": [
        "8233767a227ac5843f1023b88c7272a7b5058f5f"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Wed Apr 20 06:45:49 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon May 23 13:24:41 2011 -0400"
      },
      "message": "Btrfs: fix unsafe usage of merge_state\n\nmerge_state can free the current state if it can be merged with the next node,\nbut in set_extent_bit(), after merge_state, we still use the current extent to\nget the next node and cache it into cached_state\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "8233767a227ac5843f1023b88c7272a7b5058f5f",
      "tree": "e37bb379b90d9754035021ad042de1970a5106fc",
      "parents": [
        "b083916638eee513be501f53b42a4be0b9851db0"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@cn.fujitsu.com",
        "time": "Wed Apr 20 06:44:57 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon May 23 13:24:41 2011 -0400"
      },
      "message": "Btrfs: allocate extent state and check the result properly\n\nIt doesn\u0027t allocate extent_state and check the result properly:\n- in set_extent_bit, it doesn\u0027t allocate extent_state if the path is not\n  allowed wait\n\n- in clear_extent_bit, it doesn\u0027t check the result after atomic-ly allocate,\n  we trigger BUG_ON() if it\u0027s fail\n\n- if allocate fail, we trigger BUG_ON instead of returning -ENOMEM since\n  the return value of clear_extent_bit() is ignored by many callers\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "b083916638eee513be501f53b42a4be0b9851db0",
      "tree": "b62c38c87d368ca1e5cc5be067094ba82e6bf8a0",
      "parents": [
        "37daa4f968e9470ae9f30e246a5781717c598271"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Sat May 14 07:10:51 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon May 23 13:24:41 2011 -0400"
      },
      "message": "fs/btrfs: Add missing btrfs_free_path\n\nBtrfs_alloc_path should be matched with btrfs_free_path in error-handling code.\n\nA simplified version of the semantic match that finds this problem is as\nfollows: (http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@r exists@\nlocal idexpression struct btrfs_path * x;\nexpression ra,rb;\nposition p1,p2;\n@@\n\nx \u003d btrfs_alloc_path@p1(...)\n...  when !\u003d btrfs_free_path(x,...)\n     when !\u003d if (...) { ... btrfs_free_path(x,...) ...}\n     when !\u003d x \u003d ra\nif(...) { ... when !\u003d x \u003d rb\n     when forall\n     when !\u003d btrfs_free_path(x,...)\n \\(return \u003c+...x...+\u003e; \\| return@p2...; \\) }\n\n@script:python@\np1 \u003c\u003c r.p1;\np2 \u003c\u003c r.p2;\n@@\n\ncocci.print_main(\"alloc\",p1)\ncocci.print_secs(\"return\",p2)\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "37daa4f968e9470ae9f30e246a5781717c598271",
      "tree": "a9b7366069150ab3f8e5bc85c475c6194c5fabdf",
      "parents": [
        "c00e9493f1412621c8665a707d63e32b0768f572"
      ],
      "author": {
        "name": "Tsutomu Itoh",
        "email": "t-itoh@jp.fujitsu.com",
        "time": "Thu Apr 28 09:18:21 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon May 23 13:24:40 2011 -0400"
      },
      "message": "Btrfs: check return value of btrfs_inc_extent_ref()\n\nIf return value of btrfs_inc_extent_ref() is not 0, BUG() is called.\n\nSigned-off-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "c00e9493f1412621c8665a707d63e32b0768f572",
      "tree": "60e7b26ea4e6ff0b3270edc2abecdbacc4b211dc",
      "parents": [
        "1cd307990d6e2b4965620e339a92e0d7ae853e13"
      ],
      "author": {
        "name": "Tsutomu Itoh",
        "email": "t-itoh@jp.fujitsu.com",
        "time": "Thu Apr 28 09:10:23 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon May 23 13:24:40 2011 -0400"
      },
      "message": "Btrfs: return error to caller if read_one_inode() fails\n\nWhen read_one_inode() fails, error code is returned to caller instead\nof BUG_ON().\n\nSigned-off-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "1cd307990d6e2b4965620e339a92e0d7ae853e13",
      "tree": "cd3cc9c06e2c7bbbeda4d38bbcc00d44bfd98a02",
      "parents": [
        "65a246c5ffe3b487a001de025816326939e63362"
      ],
      "author": {
        "name": "Tsutomu Itoh",
        "email": "t-itoh@jp.fujitsu.com",
        "time": "Thu May 19 05:19:08 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon May 23 13:24:39 2011 -0400"
      },
      "message": "Btrfs: BUG_ON is deleted from the caller of btrfs_truncate_item \u0026 btrfs_extend_item\n\nCurrently, btrfs_truncate_item and btrfs_extend_item returns only 0.\nSo, the check by BUG_ON in the caller is unnecessary.\n\nSigned-off-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "65a246c5ffe3b487a001de025816326939e63362",
      "tree": "52da5b08a584ac3178f8bd35a5e7333f5a3908e1",
      "parents": [
        "b0b802d7e34b0b4a78f911c3a8aad88aa91fd7ab"
      ],
      "author": {
        "name": "Tsutomu Itoh",
        "email": "t-itoh@jp.fujitsu.com",
        "time": "Thu May 19 04:37:44 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon May 23 13:24:39 2011 -0400"
      },
      "message": "Btrfs: return error code to caller when btrfs_del_item fails\n\nThe error code is returned instead of calling BUG_ON when\nbtrfs_del_item returns the error.\n\nSigned-off-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "b0b802d7e34b0b4a78f911c3a8aad88aa91fd7ab",
      "tree": "a921d73b19363e2f29c20265716f8f281fc3f87c",
      "parents": [
        "27160b6b5a1744b6eaa8416e2b901ec937b1eee0"
      ],
      "author": {
        "name": "Tsutomu Itoh",
        "email": "t-itoh@jp.fujitsu.com",
        "time": "Thu May 19 07:03:42 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon May 23 13:24:39 2011 -0400"
      },
      "message": "Btrfs: return error code to caller when btrfs_previous_item fails\n\nThe error code is returned instead of calling BUG_ON when\nbtrfs_previous_item returns the error.\n\nSigned-off-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "27160b6b5a1744b6eaa8416e2b901ec937b1eee0",
      "tree": "8747e5eef1cbab1e2402717627bfd9ab855cc5ae",
      "parents": [
        "9694b3fcbb0f5dd498fdf53c82f22fcc37989152"
      ],
      "author": {
        "name": "Sergei Trofimovich",
        "email": "slyfox@gentoo.org",
        "time": "Fri May 20 20:20:32 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon May 23 13:24:32 2011 -0400"
      },
      "message": "btrfs: fix typo \u0027testeing\u0027 -\u003e \u0027testing\u0027\n\nSigned-off-by: Sergei Trofimovich \u003cslyfox@gentoo.org\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "9694b3fcbb0f5dd498fdf53c82f22fcc37989152",
      "tree": "8bb8c1f095c1ac5fcca7a32c3695cd8a2f530bda",
      "parents": [
        "c4f675cd40d955d539180506c09515c90169b15b"
      ],
      "author": {
        "name": "Sergei Trofimovich",
        "email": "slyfox@gentoo.org",
        "time": "Fri May 20 20:20:31 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon May 23 13:24:25 2011 -0400"
      },
      "message": "btrfs: typo: \u0027btrfS\u0027 -\u003e \u0027btrfs\u0027\n\nSigned-off-by: Sergei Trofimovich \u003cslyfox@gentoo.org\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "c4f675cd40d955d539180506c09515c90169b15b",
      "tree": "b0960803583fdc03e87255facf3155affa781a9a",
      "parents": [
        "0f3b708c11914b684d17fed975eed19db902a8de"
      ],
      "author": {
        "name": "Sergei Trofimovich",
        "email": "slyfox@gentoo.org",
        "time": "Fri May 20 20:20:30 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon May 23 13:24:14 2011 -0400"
      },
      "message": "btrfs: don\u0027t spin in shrink_delalloc if there is nothing to free\n\nObserved as a large delay when --mixed filesystem is filled up.\nTest example:\n1. create tiny --mixed FS:\n   $ dd if\u003d/dev/zero of\u003d2G.img seek\u003d$((2048 * 1024 * 1024 - 1)) count\u003d1 bs\u003d1\n   $ mkfs.btrfs --mixed 2G.img\n   $ mount -oloop 2G.img /mnt/ut/\n2. Try to fill it up:\n   $ dd if\u003d/dev/urandom of\u003d10M.file bs\u003d10240 count\u003d1024\n   $ seq 1 256 | while read file_no; do echo $file_no; time cp 10M.file ${file_no}.copy; done\n\nUp to \u0027200.copy\u0027 it goes fast, but when disk fills-up each -ENOSPC\nmessage takes 3 seconds to pop-up _every_ ENOSPC (and in usermode linux\nit\u0027s even more: 30-60 seconds!). (Maybe, time depends on kernel\u0027s timer resolution).\n\nNo IO, no CPU load, just rescheduling. Some debugging revealed busy spinning\nin shrink_delalloc.\n\nSigned-off-by: Sergei Trofimovich \u003cslyfox@gentoo.org\u003e\nReviewed-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "0f3b708c11914b684d17fed975eed19db902a8de",
      "tree": "ba16473bb26f864a3ffd0ac5eb1101ff230ecda1",
      "parents": [
        "e2156867159ae7b3bc38ef1c26ea0ee30a895ef8"
      ],
      "author": {
        "name": "Jamey Sharp",
        "email": "jamey@minilop.net",
        "time": "Thu May 05 19:03:46 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon May 23 13:05:39 2011 -0400"
      },
      "message": "btrfs: Delete unused version.sh script.\n\nIn 2008, commit b4f6c45dfbf84f47c21f73f6370ad1292b0627fd dropped the use\nof fs/btrfs/version.sh, but left the script behind. Kill it.\n\nCommit by Jamey Sharp and Josh Triplett.\n\nSigned-off-by: Jamey Sharp \u003cjamey@minilop.net\u003e\nSigned-off-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "e2156867159ae7b3bc38ef1c26ea0ee30a895ef8",
      "tree": "d949884cdaf5ebeb8d9ba14ec0284c9ece437164",
      "parents": [
        "0956c798ef8dbe0fc215870eb68bd2d8e789f86a"
      ],
      "author": {
        "name": "Hugo Mills",
        "email": "hugo@carfax.org.uk",
        "time": "Sat May 14 17:43:41 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon May 23 13:05:39 2011 -0400"
      },
      "message": "btrfs: Ensure the tree search ioctl returns the right number of records\n\nBtrfs\u0027s tree search ioctl has a field to indicate that no more than a\ngiven number of records should be returned. The ioctl doesn\u0027t honour\nthis, as the tested value is not incremented until the end of the\ncopy_to_sk function. This patch removes an unnecessary local variable,\nand updates the num_found counter as each key is found in the tree.\n\nSigned-off-by: Hugo Mills \u003chugo@carfax.org.uk\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "0956c798ef8dbe0fc215870eb68bd2d8e789f86a",
      "tree": "8a6ec5a28fa685d30f44e344814a2c5a4262985c",
      "parents": [
        "61c4f2c81c61f73549928dfd9f3e8f26aa36a8cf"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed May 18 00:11:22 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon May 23 13:05:39 2011 -0400"
      },
      "message": "BTRFS: Remove unused node_lock\n\n240f62c8756 replaced the node_lock with rcu_read_lock, but forgot\nto remove the actual lock in the data structure. Remove it here.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "d90c732122a1f6d0efe388a8a204f67f144b2eb3",
      "tree": "4961605906cf3c8f50ae24fd1d4109eeb5e19e1a",
      "parents": [
        "207dde8289d9b005b665cb9d8d2bb9464256101d"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue May 17 09:50:54 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon May 23 13:03:17 2011 -0400"
      },
      "message": "Btrfs: leave spinning on lookup and map the leaf\n\nOn lookup we only want to read the inode item, so leave the path spinning.  Also\nwe\u0027re just wholesale reading the leaf off, so map the leaf so we don\u0027t do a\nbunch of kmap/kunmaps.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "207dde8289d9b005b665cb9d8d2bb9464256101d",
      "tree": "bbe7e61bdf6221468360c31ba293d50197745acb",
      "parents": [
        "cca1c81f43e26ab60c0d1090fb90992358d69bdf"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri May 13 14:49:23 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon May 23 13:03:16 2011 -0400"
      },
      "message": "Btrfs: check for duplicate entries in the free space cache\n\nIf there are duplicate entries in the free space cache, discard the entire cache\nand load it the old fashioned way.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "cca1c81f43e26ab60c0d1090fb90992358d69bdf",
      "tree": "8c445c012b9b0184eed9b7f52b35c0d0b85b0e0b",
      "parents": [
        "026fd317828500524cdc7e5ff9e8e7923abb2868"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri May 13 11:07:12 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon May 23 13:03:15 2011 -0400"
      },
      "message": "Btrfs: don\u0027t try to allocate from a block group that doesn\u0027t have enough space\n\nIf we have a very large filesystem, we can spend a lot of time in\nfind_free_extent just trying to allocate from empty block groups.  So instead\ncheck to see if the block group even has enough space for the allocation, and if\nnot go on to the next block group.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "026fd317828500524cdc7e5ff9e8e7923abb2868",
      "tree": "d303bffbd895c307f49286cd90186cf58223dde2",
      "parents": [
        "589d8ade83f07c0f11c8191c0ca309f34d7a2c14"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri May 13 10:32:11 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon May 23 13:03:14 2011 -0400"
      },
      "message": "Btrfs: don\u0027t always do readahead\n\nOur readahead is sort of sloppy, and really isn\u0027t always needed.  For example if\nls is doing a stating ls (which is the default) it\u0027s going to stat in non-disk\norder, so if say you have a directory with a stupid amount of files, readahead\nis going to do nothing but waste time in the case of doing the stat.  Taking the\nunconditional readahead out made my test go from 57 minutes to 36 minutes.  This\nmeans that everywhere we do loop through the tree we want to make sure we do set\npath-\u003ereada properly, so I went through and found all of the places where we\nloop through the path and set reada to 1.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "589d8ade83f07c0f11c8191c0ca309f34d7a2c14",
      "tree": "e1e628bd721ae6fd34e1454f8124ecb9a2b3464f",
      "parents": [
        "d82a6f1d7e8b61ed5996334d0db66651bb43641d"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed May 11 17:30:53 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon May 23 13:03:13 2011 -0400"
      },
      "message": "Btrfs: try not to sleep as much when doing slow caching\n\nWhen the fs is super full and we unmount the fs, we could get stuck in this\nthing where unmount is waiting for the caching kthread to make progress and the\ncaching kthread keeps scheduling because we\u0027re in the middle of a commit.  So\ninstead just let the caching kthread keep going and only yeild if\nneed_resched().  This makes my horrible umount case go from taking up to 10\nminutes to taking less than 20 seconds.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "d82a6f1d7e8b61ed5996334d0db66651bb43641d",
      "tree": "5738ec75f7679bdc1b97aecbc5cad3464cc65541",
      "parents": [
        "7e2355ba1a11649f0b212a29fdb9f47476f1248e"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed May 11 15:26:06 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon May 23 13:03:12 2011 -0400"
      },
      "message": "Btrfs: kill BTRFS_I(inode)-\u003eblock_group\n\nOriginally this was going to be used as a way to give hints to the allocator,\nbut frankly we can get much better hints elsewhere and it\u0027s not even used at all\nfor anything usefull.  In addition to be completely useless, when we initialize\nan inode we try and find a freeish block group to set as the inodes block group,\nand with a completely full 40gb fs this takes _forever_, so I imagine with say\n1tb fs this is just unbearable.  So just axe the thing altoghether, we don\u0027t\nneed it and it saves us 8 bytes in the inode and saves us 500 microseconds per\ninode lookup in my testcase.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "7e2355ba1a11649f0b212a29fdb9f47476f1248e",
      "tree": "94960a4d30595f9806dc66dcc36ae10756936f7c",
      "parents": [
        "cb25c2ea6a79702ab7895b873c6c43e0d3bc3c72"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed May 11 12:25:37 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon May 23 13:03:11 2011 -0400"
      },
      "message": "Btrfs: don\u0027t look at the extent buffer level 3 times in a row\n\nWe have a bit of debugging in btrfs_search_slot to make sure the level of the\ncow block is the same as the original block we were cow\u0027ing.  I don\u0027t think I\u0027ve\never seen this tripped, so kill it.  This saves us 2 kmap\u0027s per level in our\nsearch.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "cb25c2ea6a79702ab7895b873c6c43e0d3bc3c72",
      "tree": "08d112b38a1e017b563035b78861288dbf0d2fd6",
      "parents": [
        "af60bed24eb0e3b6d93eaa6bb395a5721e6c09a8"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed May 11 12:17:34 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon May 23 13:03:10 2011 -0400"
      },
      "message": "Btrfs: map the node block when looking for readahead targets\n\nIf we have particularly full nodes, we could call btrfs_node_blockptr up to 32\ntimes, which is 32 pairs of kmap/kunmap, which _sucks_.  So go ahead and map the\nextent buffer while we look for readahead targets.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "af60bed24eb0e3b6d93eaa6bb395a5721e6c09a8",
      "tree": "499aaa2a1ca372816885752fcd1769e3e9a0487a",
      "parents": [
        "fcb80c2affd63237cff5b34cba5756be7c976a5a"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed May 04 11:11:17 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon May 23 13:03:09 2011 -0400"
      },
      "message": "Btrfs: set range_start to the right start in count_range_bits\n\nIn count_range_bits we are adjusting total_bytes based on the range we are\nsearching for, but we don\u0027t adjust the range start according to the range we are\nsearching for, which makes for weird results.  For example, if the range\n\n[0-8192]\n\nis set DELALLOC, but I search for 4096-8192, I will get back 4096 for the number\nof bytes found, but the range_start will be 0, which makes it look like the\nrange is [0-4096].  So instead set range_start \u003d max(cur_start, state-\u003estart).\nThis makes everything come out right.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "fcb80c2affd63237cff5b34cba5756be7c976a5a",
      "tree": "49c37dce49ebd9a1ada939d1fd2cfa57bba6f500",
      "parents": [
        "a4abeea41adfa3c143c289045f4625dfaeba2212"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue May 03 10:40:22 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon May 23 13:03:08 2011 -0400"
      },
      "message": "Btrfs: fix how we do space reservation for truncate\n\nThe ceph guys keep running into problems where we have space reserved in our\norphan block rsv when freeing it up.  This is because they tend to do snapshots\nalot, so their truncates tend to use a bunch of space, so when we go to do\nthings like update the inode we have to steal reservation space in order to make\nthe reservation happen.  This happens because truncate can use as much space as\nit freaking feels like, but we still have to hold space for removing the orphan\nitem and updating the inode, which will definitely always happen.  So in order\nto fix this we need to split all of the reservation stuf up.  So with this patch\nwe have\n\n1) The orphan block reserve which only holds the space for deleting our orphan\nitem when everything is over.\n\n2) The truncate block reserve which gets allocated and used specifically for the\nspace that the truncate will use on a per truncate basis.\n\n3) The transaction will always have 1 item\u0027s worth of data reserved so we can\nupdate the inode normally.\n\nHopefully this will make the ceph problem go away.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "a4abeea41adfa3c143c289045f4625dfaeba2212",
      "tree": "792e2a398d8ba77447ba3f9f2c4266a1ce2f611c",
      "parents": [
        "2a1eb4614d984d5cd4c928784e9afcf5c07f93be"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Apr 11 17:25:13 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon May 23 13:00:57 2011 -0400"
      },
      "message": "Btrfs: kill trans_mutex\n\nWe use trans_mutex for lots of things, here\u0027s a basic list\n\n1) To serialize trans_handles joining the currently running transaction\n2) To make sure that no new trans handles are started while we are committing\n3) To protect the dead_roots list and the transaction lists\n\nReally the serializing trans_handles joining is not too hard, and can really get\nbogged down in acquiring a reference to the transaction.  So replace the\ntrans_mutex with a trans_lock spinlock and use it to do the following\n\n1) Protect fs_info-\u003erunning_transaction.  All trans handles have to do is check\nthis, and then take a reference of the transaction and keep on going.\n2) Protect the fs_info-\u003etrans_list.  This doesn\u0027t get used too much, basically\nit just holds the current transactions, which will usually just be the currently\ncommitting transaction and the currently running transaction at most.\n3) Protect the dead roots list.  This is only ever processed by splicing the\nlist so this is relatively simple.\n4) Protect the fs_info-\u003ereloc_ctl stuff.  This is very lightweight and was using\nthe trans_mutex before, so this is a pretty straightforward change.\n5) Protect fs_info-\u003eno_trans_join.  Because we don\u0027t hold the trans_lock over\nthe entirety of the commit we need to have a way to block new people from\ncreating a new transaction while we\u0027re doing our work.  So we set no_trans_join\nand in join_transaction we test to see if that is set, and if it is we do a\nwait_on_commit.\n6) Make the transaction use count atomic so we don\u0027t need to take locks to\nmodify it when we\u0027re dropping references.\n7) Add a commit_lock to the transaction to make sure multiple people trying to\ncommit the same transaction don\u0027t race and commit at the same time.\n8) Make open_ioctl_trans an atomic so we don\u0027t have to take any locks for ioctl\ntrans.\n\nI have tested this with xfstests, but obviously it is a pretty hairy change so\nlots of testing is greatly appreciated.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "2a1eb4614d984d5cd4c928784e9afcf5c07f93be",
      "tree": "892b123c194e490a2dc0bc5b45f641ac921e9d26",
      "parents": [
        "7a7eaa40a39bde4eefc91aadeb1ce3dc4e6a1252"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Apr 13 15:15:59 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon May 23 13:00:57 2011 -0400"
      },
      "message": "Btrfs: if we\u0027ve already started a trans handle, use that one\n\nWe currently track trans handles in current-\u003ejournal_info, but we don\u0027t actually\nuse it.  This patch fixes it.  This will cover the case where we have multiple\npeople starting transactions down the call chain.  This keeps us from having to\nallocate a new handle and all of that, we just increase the use count of the\ncurrent handle, save the old block_rsv, and return.  I tested this with xfstests\nand it worked out fine.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "7a7eaa40a39bde4eefc91aadeb1ce3dc4e6a1252",
      "tree": "eea3dea572a73168b70efa9fba2e9800457571d7",
      "parents": [
        "74b2107543da4ed9607ec484f63c42362dc9fca6"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Apr 13 12:54:33 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon May 23 13:00:56 2011 -0400"
      },
      "message": "Btrfs: take away the num_items argument from btrfs_join_transaction\n\nI keep forgetting that btrfs_join_transaction() just ignores the num_items\nargument, which leads me to sending pointless patches and looking stupid :).  So\njust kill the num_items argument from btrfs_join_transaction and\nbtrfs_start_ioctl_transaction, since neither of them use it.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "74b2107543da4ed9607ec484f63c42362dc9fca6",
      "tree": "c4bdfa4b995ae4281dbdf9d1f489009941a51e5b",
      "parents": [
        "61c4f2c81c61f73549928dfd9f3e8f26aa36a8cf"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Apr 13 12:02:53 2011 -0400"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon May 23 13:00:56 2011 -0400"
      },
      "message": "Btrfs: make sure to use the delalloc reserve when filling delalloc\n\nIn the prealloc filling code and compressed code we don\u0027t set trans-\u003eblock_rsv\nto the delalloc block reserve properly, which is going to make us use metadata\nfrom the wrong pool, this patch fixes that.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "8e531cdfeb75269c6c5aae33651cca39707848da",
      "tree": "34b6ef5c59c2983eca7744ef419d33d3302124ef",
      "parents": [
        "712673339a0d085358fd1cd3a6477cc7979bb69f"
      ],
      "author": {
        "name": "liubo",
        "email": "liubo2009@cn.fujitsu.com",
        "time": "Fri May 06 10:36:09 2011 +0800"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon May 23 10:13:16 2011 -0400"
      },
      "message": "Btrfs: do not flush csum items of unchanged file data during treelog\n\nThe current code relogs the entire inode every time during fsync log,\nand it is much better suited to small files rather than large ones.\n\nDuring my performance test, the fsync performace of large files sucks,\nand we can ascribe this to the tremendous amount of csum infos of the\nlarge ones, cause we have to flush all of these csum infos into log trees\neven when there are only _one_ change in the whole file data.  Apparently,\nto optimize fsync, we need to create a filter to skip the unnecessary csum\nones, that is, the corresponding file data remains unchanged before this fsync.\n\nHere I have some test results to show, I use sysbench to do \"random write + fsync\".\n\n\u003d\u003d\u003d\nsysbench --test\u003dfileio --num-threads\u003d1 --file-num\u003d2 --file-block-size\u003d4K --file-total-size\u003d8G --file-test-mode\u003drndwr --file-io-mode\u003dsync --file-extra-flags\u003d  [prepare, run]\n\u003d\u003d\u003d\n\nSysbench args:\n  - Number of threads: 1\n  - Extra file open flags: 0\n  - 2 files, 4Gb each\n  - Block size 4Kb\n  - Number of random requests for random IO: 10000\n  - Read/Write ratio for combined random IO test: 1.50\n  - Periodic FSYNC enabled, calling fsync() each 100 requests.\n  - Calling fsync() at the end of test, Enabled.\n  - Using synchronous I/O mode\n  - Doing random write test\n\nSysbench results:\n\u003d\u003d\u003d\n   Operations performed:  0 Read, 10000 Write, 200 Other \u003d 10200 Total\n   Read 0b  Written 39.062Mb  Total transferred 39.062Mb\n\u003d\u003d\u003d\na) without patch:  (*SPEED* : 451.01Kb/sec)\n   112.75 Requests/sec executed\n\nb) with patch:     (*SPEED* : 4.7533Mb/sec)\n   1216.84 Requests/sec executed\n\nPS: I\u0027ve made a _sub transid_ stuff patch, but it does not perform as effectively as this patch,\nand I\u0027m wanderring where the problem is and trying to improve it more.\n\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "712673339a0d085358fd1cd3a6477cc7979bb69f",
      "tree": "b2e268685e3cbba19a4adb2a47d853e4e461fcfc",
      "parents": [
        "aa2dfb372a2a647beedac163ce6f8b0fcbefac29",
        "8628764e1a5e1998a42b9713e9edea7753653d01"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon May 23 06:30:52 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon May 23 06:30:52 2011 -0400"
      },
      "message": "Merge branch \u0027for-chris\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arne/btrfs-unstable-arne into inode_numbers\n\nConflicts:\n\tfs/btrfs/Makefile\n\tfs/btrfs/ctree.h\n\tfs/btrfs/volumes.h\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "aa2dfb372a2a647beedac163ce6f8b0fcbefac29",
      "tree": "ff64f4d4921df2f0fbe5b356dc9b2384c7957dc1",
      "parents": [
        "945d8962ceee6bb273365d0bdf42f763225b290f",
        "73c5de0051533cbdf2bb656586c3eb21a475aa7d"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun May 22 12:36:34 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun May 22 12:36:34 2011 -0400"
      },
      "message": "Merge branch \u0027allocator\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arne/btrfs-unstable-arne into inode_numbers\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "945d8962ceee6bb273365d0bdf42f763225b290f",
      "tree": "43f5617022c7c947c3c63664e49eb9575ab82f2f",
      "parents": [
        "0d0ca30f180906224be6279788f2b202cfd959d8",
        "4ea028859bbdad34b84c9951fbb832ae10c6a96c"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun May 22 12:33:42 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun May 22 12:33:42 2011 -0400"
      },
      "message": "Merge branch \u0027cleanups\u0027 of git://repo.or.cz/linux-2.6/btrfs-unstable into inode_numbers\n\nConflicts:\n\tfs/btrfs/extent-tree.c\n\tfs/btrfs/free-space-cache.c\n\tfs/btrfs/inode.c\n\tfs/btrfs/tree-log.c\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "0d0ca30f180906224be6279788f2b202cfd959d8",
      "tree": "a0e35c968410f3f08f2a215ed5b4d6449d8bd11f",
      "parents": [
        "dcc6d073225b6b732a52477c91bd4edc9b4d5502"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun May 22 07:11:22 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun May 22 07:11:22 2011 -0400"
      },
      "message": "Btrfs: update the delayed inode code to use the btrfs_ino helper.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "dcc6d073225b6b732a52477c91bd4edc9b4d5502",
      "tree": "71da6844bb03c940c87c01a2a1f8c2e11cf85238",
      "parents": [
        "0965537308ac3b267ea16e731bd73870a51c53b8",
        "16cdcec736cd214350cdb591bf1091f8beedefa0"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun May 22 07:07:01 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun May 22 07:07:01 2011 -0400"
      },
      "message": "Merge branch \u0027delayed_inode\u0027 into inode_numbers\n\nConflicts:\n\tfs/btrfs/inode.c\n\tfs/btrfs/ioctl.c\n\tfs/btrfs/transaction.c\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "16cdcec736cd214350cdb591bf1091f8beedefa0",
      "tree": "5598d4561660c4d7a1d4de8b3703d6dd3cc7f9e7",
      "parents": [
        "61c4f2c81c61f73549928dfd9f3e8f26aa36a8cf"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Fri Apr 22 18:12:22 2011 +0800"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat May 21 09:30:56 2011 -0400"
      },
      "message": "btrfs: implement delayed inode items operation\n\nChangelog V5 -\u003e V6:\n- Fix oom when the memory load is high, by storing the delayed nodes into the\n  root\u0027s radix tree, and letting btrfs inodes go.\n\nChangelog V4 -\u003e V5:\n- Fix the race on adding the delayed node to the inode, which is spotted by\n  Chris Mason.\n- Merge Chris Mason\u0027s incremental patch into this patch.\n- Fix deadlock between readdir() and memory fault, which is reported by\n  Itaru Kitayama.\n\nChangelog V3 -\u003e V4:\n- Fix nested lock, which is reported by Itaru Kitayama, by updating space cache\n  inode in time.\n\nChangelog V2 -\u003e V3:\n- Fix the race between the delayed worker and the task which does delayed items\n  balance, which is reported by Tsutomu Itoh.\n- Modify the patch address David Sterba\u0027s comment.\n- Fix the bug of the cpu recursion spinlock, reported by Chris Mason\n\nChangelog V1 -\u003e V2:\n- break up the global rb-tree, use a list to manage the delayed nodes,\n  which is created for every directory and file, and used to manage the\n  delayed directory name index items and the delayed inode item.\n- introduce a worker to deal with the delayed nodes.\n\nCompare with Ext3/4, the performance of file creation and deletion on btrfs\nis very poor. the reason is that btrfs must do a lot of b+ tree insertions,\nsuch as inode item, directory name item, directory name index and so on.\n\nIf we can do some delayed b+ tree insertion or deletion, we can improve the\nperformance, so we made this patch which implemented delayed directory name\nindex insertion/deletion and delayed inode update.\n\nImplementation:\n- introduce a delayed root object into the filesystem, that use two lists to\n  manage the delayed nodes which are created for every file/directory.\n  One is used to manage all the delayed nodes that have delayed items. And the\n  other is used to manage the delayed nodes which is waiting to be dealt with\n  by the work thread.\n- Every delayed node has two rb-tree, one is used to manage the directory name\n  index which is going to be inserted into b+ tree, and the other is used to\n  manage the directory name index which is going to be deleted from b+ tree.\n- introduce a worker to deal with the delayed operation. This worker is used\n  to deal with the works of the delayed directory name index items insertion\n  and deletion and the delayed inode update.\n  When the delayed items is beyond the lower limit, we create works for some\n  delayed nodes and insert them into the work queue of the worker, and then\n  go back.\n  When the delayed items is beyond the upper bound, we create works for all\n  the delayed nodes that haven\u0027t been dealt with, and insert them into the work\n  queue of the worker, and then wait for that the untreated items is below some\n  threshold value.\n- When we want to insert a directory name index into b+ tree, we just add the\n  information into the delayed inserting rb-tree.\n  And then we check the number of the delayed items and do delayed items\n  balance. (The balance policy is above.)\n- When we want to delete a directory name index from the b+ tree, we search it\n  in the inserting rb-tree at first. If we look it up, just drop it. If not,\n  add the key of it into the delayed deleting rb-tree.\n  Similar to the delayed inserting rb-tree, we also check the number of the\n  delayed items and do delayed items balance.\n  (The same to inserting manipulation)\n- When we want to update the metadata of some inode, we cached the data of the\n  inode into the delayed node. the worker will flush it into the b+ tree after\n  dealing with the delayed insertion and deletion.\n- We will move the delayed node to the tail of the list after we access the\n  delayed node, By this way, we can cache more delayed items and merge more\n  inode updates.\n- If we want to commit transaction, we will deal with all the delayed node.\n- the delayed node will be freed when we free the btrfs inode.\n- Before we log the inode items, we commit all the directory name index items\n  and the delayed inode update.\n\nI did a quick test by the benchmark tool[1] and found we can improve the\nperformance of file creation by ~15%, and file deletion by ~20%.\n\nBefore applying this patch:\nCreate files:\n        Total files: 50000\n        Total time: 1.096108\n        Average time: 0.000022\nDelete files:\n        Total files: 50000\n        Total time: 1.510403\n        Average time: 0.000030\n\nAfter applying this patch:\nCreate files:\n        Total files: 50000\n        Total time: 0.932899\n        Average time: 0.000019\nDelete files:\n        Total files: 50000\n        Total time: 1.215732\n        Average time: 0.000024\n\n[1] http://marc.info/?l\u003dlinux-btrfs\u0026m\u003d128212635122920\u0026q\u003dp3\n\nMany thanks for Kitayama-san\u0027s help!\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nReviewed-by: David Sterba \u003cdave@jikos.cz\u003e\nTested-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\nTested-by: Itaru Kitayama \u003ckitayama@cl.bb4u.ne.jp\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "0965537308ac3b267ea16e731bd73870a51c53b8",
      "tree": "7b52288b7272b2391f736dd82a313cbbaad68570",
      "parents": [
        "61c4f2c81c61f73549928dfd9f3e8f26aa36a8cf",
        "82d5902d9c681be37ffa9d70482907f9f0b7ec1f"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat May 21 09:27:38 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat May 21 09:27:38 2011 -0400"
      },
      "message": "Merge branch \u0027ino-alloc\u0027 of git://repo.or.cz/linux-btrfs-devel into inode_numbers\n\nConflicts:\n\tfs/btrfs/free-space-cache.c\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "61c4f2c81c61f73549928dfd9f3e8f26aa36a8cf",
      "tree": "dd32d0c38697805787c7da077f01b8ad847b8b51",
      "parents": [
        "3f80fbff5f1ef8a842bbe5343bbc9ddad883f25c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 18 21:06:34 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 18 21:06:34 2011 -0700"
      },
      "message": "Linux 2.6.39\n"
    },
    {
      "commit": "3f80fbff5f1ef8a842bbe5343bbc9ddad883f25c",
      "tree": "259f5be0f203b5c7e97837a1957f461abcfef5d0",
      "parents": [
        "fce519588acfac249e8fdc1f5016c73d617de315",
        "24307aa1e707b31613be92deaba7990e16bc1aec"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 18 16:50:28 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 18 16:50:28 2011 -0700"
      },
      "message": "Merge branch \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2\n\n* \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2:\n  configfs: Fix race between configfs_readdir() and configfs_d_iput()\n  configfs: Don\u0027t try to d_delete() negative dentries.\n  ocfs2/dlm: Target node death during resource migration leads to thread spin\n  ocfs2: Skip mount recovery for hard-ro mounts\n  ocfs2/cluster: Heartbeat mismatch message improved\n  ocfs2/cluster: Increase the live threshold for global heartbeat\n  ocfs2/dlm: Use negotiated o2dlm protocol version\n  ocfs2: skip existing hole when removing the last extent_rec in punching-hole codes.\n  ocfs2: Initialize data_ac (might be used uninitialized)\n"
    },
    {
      "commit": "fce519588acfac249e8fdc1f5016c73d617de315",
      "tree": "bea37c564c552cf69344c3bab7156308df7de662",
      "parents": [
        "7103dbed8e462f2a065381d23fde086cbd5b9891",
        "b1608d69cb804e414d0887140ba08a9398e4e638"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 18 13:25:57 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 18 13:25:57 2011 -0700"
      },
      "message": "Merge branch \u0027devicetree/merge\u0027 of git://git.secretlab.ca/git/linux-2.6\n\n* \u0027devicetree/merge\u0027 of git://git.secretlab.ca/git/linux-2.6:\n  drivercore: revert addition of of_match to struct device\n  of: fix race when matching drivers\n"
    },
    {
      "commit": "7103dbed8e462f2a065381d23fde086cbd5b9891",
      "tree": "5ac7ca3994c08a9dd3368daa0df205aee1a3c063",
      "parents": [
        "a2b9c1f6208126e6df6c02428c501f8853685812",
        "a5602a3273774c720aaf165ff670e5b85e5910a5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 18 13:21:43 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 18 13:21:43 2011 -0700"
      },
      "message": "Merge branch \u0027upstream\u0027 of git://git.linux-mips.org/pub/scm/upstream-linus\n\n* \u0027upstream\u0027 of git://git.linux-mips.org/pub/scm/upstream-linus:\n  MIPS: Kludge IP27 build for 2.6.39.\n  MIPS: AR7: Fix GPIO register size for Titan variant.\n  MIPS: Fix duplicate invocation of notify_die.\n  MIPS: RB532: Fix iomap resource size miscalculation.\n"
    },
    {
      "commit": "b1608d69cb804e414d0887140ba08a9398e4e638",
      "tree": "8999cd827e7fb4138ff83f7829d8fdcf44ee653d",
      "parents": [
        "01294d82622d6d9d64bde8e4530c7e2c6dbb6ee6"
      ],
      "author": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Wed May 18 11:19:24 2011 -0600"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Wed May 18 12:32:23 2011 -0600"
      },
      "message": "drivercore: revert addition of of_match to struct device\n\nCommit b826291c, \"drivercore/dt: add a match table pointer to struct\ndevice\" added an of_match pointer to struct device to cache the\nof_match_table entry discovered at driver match time.  This was unsafe\nbecause matching is not an atomic operation with probing a driver.  If\ntwo or more drivers are attempted to be matched to a driver at the\nsame time, then the cached matching entry pointer could get\noverwritten.\n\nThis patch reverts the of_match cache pointer and reworks all users to\ncall of_match_device() directly instead.\n\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "01294d82622d6d9d64bde8e4530c7e2c6dbb6ee6",
      "tree": "98707dfac7c9533dbfef30c4ff05c0dfdabc17a6",
      "parents": [
        "2e9521fd656f05a716b5294a7dbebd37ced05e43"
      ],
      "author": {
        "name": "Milton Miller",
        "email": "miltonm@bga.com",
        "time": "Wed May 18 10:27:39 2011 -0500"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Wed May 18 10:19:36 2011 -0600"
      },
      "message": "of: fix race when matching drivers\n\nIf two drivers are probing devices at the same time, both will write\ntheir match table result to the dev-\u003eof_match cache at the same time.\n\nOnly write the result if the device matches.\n\nIn a thread titled \"SBus devices sometimes detected, sometimes not\",\nMeelis reported his SBus hme was not detected about 50% of the time.\nFrom the debug suggested by Grant it was obvious another driver matched\nsome devices between the call to match the hme and the hme discovery\nfailling.\n\nReported-by: Meelis Roos \u003cmroos@linux.ee\u003e\nSigned-off-by: Milton Miller \u003cmiltonm@bga.com\u003e\n[grant.likely: modified to only call of_match_device() once]\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "a2b9c1f6208126e6df6c02428c501f8853685812",
      "tree": "e36762d385bb490914a72485c4da4431e4b937d3",
      "parents": [
        "2e9521fd656f05a716b5294a7dbebd37ced05e43",
        "3ec717b7ca4ee1d75d77e4f6286430d8f01d1dbd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 18 06:49:02 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 18 06:49:02 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block:\n  block: don\u0027t delay blk_run_queue_async\n  scsi: remove performance regression due to async queue run\n  blk-throttle: Use task_subsys_state() to determine a task\u0027s blkio_cgroup\n  block: rescan partitions on invalidated devices on -ENOMEDIA too\n  cdrom: always check_disk_change() on open\n  block: unexport DISK_EVENT_MEDIA_CHANGE for legacy/fringe drivers\n"
    },
    {
      "commit": "a5602a3273774c720aaf165ff670e5b85e5910a5",
      "tree": "32c8379704fde515bc3c7967c00f3a0f4f534264",
      "parents": [
        "3e9957b4866f3767f19bf0e543b322ad7906c564"
      ],
      "author": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Wed May 18 13:14:36 2011 +0100"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Wed May 18 14:18:27 2011 +0100"
      },
      "message": "MIPS: Kludge IP27 build for 2.6.39.\n\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "3e9957b4866f3767f19bf0e543b322ad7906c564",
      "tree": "d0d7cde936ef0e211b1a452b8455cdee6f42f4b2",
      "parents": [
        "10423c91ffc8e59d4f99d401f7beb3115cdc117a"
      ],
      "author": {
        "name": "Florian Fainelli",
        "email": "florian@openwrt.org",
        "time": "Fri May 13 17:41:21 2011 +0200"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Wed May 18 14:18:27 2011 +0100"
      },
      "message": "MIPS: AR7: Fix GPIO register size for Titan variant.\n\nThe \u0027size\u0027 variable contains the correct register size for both AR7\nand Titan, but we never used it to ioremap the correct register size.\nThis problem only shows up on Titan.\n\n[ralf@linux-mips.org: Fixed the fix.  The original patch as in patchwork\nrecognizes the problem correctly then fails to fix it ...]\n\nReported-by: Alexander Clouter \u003calex@digriz.org.uk\u003e\nSigned-off-by: Florian Fainelli \u003cflorian@openwrt.org\u003e\nPatchwork: https://patchwork.linux-mips.org/patch/2380/\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "10423c91ffc8e59d4f99d401f7beb3115cdc117a",
      "tree": "26a8908353bcdfd9f6a6289800751fe6d21f2f76",
      "parents": [
        "3436830af53c38b7674097c00b02b7a4064476f2"
      ],
      "author": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Fri May 13 10:33:28 2011 +0100"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Wed May 18 14:18:26 2011 +0100"
      },
      "message": "MIPS: Fix duplicate invocation of notify_die.\n\nInitial patch by Yury Polyanskiy \u003cypolyans@princeton.edu\u003e.\n\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nPatchwork: https://patchwork.linux-mips.org/patch/2373/\n"
    },
    {
      "commit": "3436830af53c38b7674097c00b02b7a4064476f2",
      "tree": "40ba93076ddb56dcd24fe7eac2caa80758d00327",
      "parents": [
        "c1d10d18c542278b7fbc413c289d3cb6219da6b3"
      ],
      "author": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Thu May 12 13:55:48 2011 +0100"
      },
      "committer": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Wed May 18 14:18:26 2011 +0100"
      },
      "message": "MIPS: RB532: Fix iomap resource size miscalculation.\n\nThis is the MIPS portion of Joe Perches \u003cjoe@perches.com\u003e\u0027s\nhttps://patchwork.linux-mips.org/patch/2172/ which seems to have been\nlost in time and space.\n\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\n"
    },
    {
      "commit": "24307aa1e707b31613be92deaba7990e16bc1aec",
      "tree": "6699c969a7f56c2b7949bf16af54320caee0687e",
      "parents": [
        "df7f99670a4c76f269ae57ce91876b309417a316"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Wed May 18 04:08:16 2011 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Wed May 18 04:08:16 2011 -0700"
      },
      "message": "configfs: Fix race between configfs_readdir() and configfs_d_iput()\n\nconfigfs_readdir() will use the existing inode numbers of inodes in the\ndcache, but it makes them up for attribute files that aren\u0027t currently\ninstantiated.  There is a race where a closing attribute file can be\ntearing down at the same time as configfs_readdir() is trying to get its\ninode number.\n\nWe want to get the inode number of open attribute files, because they\nshould match while instantiated.  We can\u0027t lock down the transition\nwhere dentry-\u003ed_inode is set to NULL, so we just check for NULL there.\nWe can, however, ensure that an inode we find isn\u0027t iput() in\nconfigfs_d_iput() until after we\u0027ve accessed it.\n\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "df7f99670a4c76f269ae57ce91876b309417a316",
      "tree": "5af5b63ab22089f32f1f464035df061bc2955e8e",
      "parents": [
        "df016c665b10ae80d8db67ec8103b50c5c234e5c"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Tue Feb 22 01:09:49 2011 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Wed May 18 03:30:58 2011 -0700"
      },
      "message": "configfs: Don\u0027t try to d_delete() negative dentries.\n\nWhen configfs is faking mkdir() on its subsystem or default group\nobjects, it starts by adding a negative dentry.  It then tries to\ninstantiate the group.  If that should fail, it must clean up after\nitself.\n\nI was using d_delete() here, but configfs_attach_group() promises to\nreturn an empty dentry on error.  d_delete() explodes with the entry\ndentry.  Let\u0027s try d_drop() instead.  The unhashing is what we want for\nour dentry.\n\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "3ec717b7ca4ee1d75d77e4f6286430d8f01d1dbd",
      "tree": "fcf1db152baea6270dd6c4dbdf6ff8dd15ad440f",
      "parents": [
        "9937a5e2f32892db0dbeefc2b3bc74b3ae3ea9c7"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Wed May 18 11:22:43 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed May 18 12:24:03 2011 +0200"
      },
      "message": "block: don\u0027t delay blk_run_queue_async\n\nLet\u0027s check a scenario:\n1. blk_delay_queue(q, SCSI_QUEUE_DELAY);\n2. blk_run_queue_async();\nthe second one will became a noop, because q-\u003edelay_work already has\nWORK_STRUCT_PENDING_BIT set, so the delayed work will still run after\nSCSI_QUEUE_DELAY. But blk_run_queue_async actually hopes the delayed\nwork runs immediately.\n\nFix this by doing a cancel on potentially pending delayed work\nbefore queuing an immediate run of the workqueue.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "2e9521fd656f05a716b5294a7dbebd37ced05e43",
      "tree": "aea92c8a1a21774a569a047ba3bb60e8c04c740d",
      "parents": [
        "39dcfa552c3fd4179f470e0b1f716db6241e95d1",
        "dca6b6d18fa4428c4539e45f7a43040e388ab99e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 18 03:16:38 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 18 03:16:38 2011 -0700"
      },
      "message": "Merge branch \u0027v4l_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6\n\n* \u0027v4l_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6:\n  [media] V4L: soc-camera: regression fix: calculate .sizeimage in soc_camera.c\n  [media] v4l2-subdev: fix broken subdev control enumeration\n  [media] Fix cx88 remote control input\n  [media] v4l: Release module if subdev registration fails\n"
    },
    {
      "commit": "39dcfa552c3fd4179f470e0b1f716db6241e95d1",
      "tree": "16eb0514faae29bc3adead91571e28a32fc85489",
      "parents": [
        "7f12b72bd8532cbbfb147470f0d902260cea36ce",
        "14fb57dccb6e1defe9f89a66f548fcb24c374c1d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 18 03:14:34 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 18 03:14:34 2011 -0700"
      },
      "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  x86, AMD: Fix ARAT feature setting again\n  Revert \"x86, AMD: Fix APIC timer erratum 400 affecting K8 Rev.A-E processors\"\n  x86, apic: Fix spurious error interrupts triggering on all non-boot APs\n  x86, mce, AMD: Fix leaving freed data in a list\n  x86: Fix UV BAU for non-consecutive nasids\n  x86, UV: Fix NMI handler for UV platforms\n"
    },
    {
      "commit": "7f12b72bd8532cbbfb147470f0d902260cea36ce",
      "tree": "c62e7f0597faebd0e04acd34b3e6038629d849af",
      "parents": [
        "8864f5ee12d03afe269edeeae440744f53ea4af1",
        "52004ea7ca4c52a219362f973bfd1eb86ff668ce"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 18 03:13:46 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 18 03:13:46 2011 -0700"
      },
      "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 evlist: Fix per thread mmap setup\n  perf tools: Honour the cpu list parameter when also monitoring a thread list\n  kprobes, x86: Disable irqs during optimized callback\n"
    },
    {
      "commit": "8864f5ee12d03afe269edeeae440744f53ea4af1",
      "tree": "0e1cc41695c6a25f3a56e43951f9c07e00c7a579",
      "parents": [
        "f12a20fc9bfba4218ecbc4e40c8e08dc2a85dc99",
        "11379b5e33950048ad66825da7f462b0d0da9d73"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 18 03:13:11 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 18 03:13:11 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:\n  cifs: fix cifsConvertToUCS() for the mapchars case\n  cifs: add fallback in is_path_accessible for old servers\n"
    },
    {
      "commit": "f12a20fc9bfba4218ecbc4e40c8e08dc2a85dc99",
      "tree": "da399a0a02522d38b56d38616ac4b268e0a58f92",
      "parents": [
        "b2db21997f43907f54500edaf063253ca2a186f9"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue May 17 15:44:12 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 18 02:55:24 2011 -0700"
      },
      "message": "procfs: add stub for proc_mkdir_mode()\n\nProvide a stub for proc_mkdir_mode() when CONFIG_PROC_FS is not\nenabled, just like the stub for proc_mkdir().\n\nFixes this linux-next build error:\n\n  drivers/net/wireless/airo.c:4504: error: implicit declaration of function \u0027proc_mkdir_mode\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: \"John W. Linville\" \u003clinville@tuxdriver.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b2db21997f43907f54500edaf063253ca2a186f9",
      "tree": "c98cabccfd71dea17520553fd534335a3d1c0a82",
      "parents": [
        "d6c438b6cd733834a3cec55af8577a8fc3548016"
      ],
      "author": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Tue May 17 15:44:11 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 18 02:55:23 2011 -0700"
      },
      "message": "um: fix abort\n\nos_dump_core() uses abort() to terminate UML in case of an fatal error.\n\nglibc\u0027s abort() calls raise(SIGABRT) which makes use of tgkill().\ntgkill() has no effect within UML\u0027s kernel threads because they are not\npthreads.  As fallback abort() executes an invalid instruction to\nterminate the process.  Therefore UML gets killed by SIGSEGV and leaves a\nugly log entry in the host\u0027s kernel ring buffer.\n\nTo get rid of this we use our own abort routine.\n\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d6c438b6cd733834a3cec55af8577a8fc3548016",
      "tree": "95c7719415aecf9f2a09b1e885d23ba54eb9b5b8",
      "parents": [
        "d5f33d45e4c0e306e8d16b4573891a65d9ad544f"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue May 17 15:44:10 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 18 02:55:23 2011 -0700"
      },
      "message": "memcg: fix zone congestion\n\nZONE_CONGESTED should be a state of global memory reclaim.  If not, a busy\nmemcg sets this and give unnecessary throttoling in wait_iff_congested()\nagainst memory recalim in other contexts.  This makes system performance\nbad.\n\nI\u0027ll think about \"memcg is congested!\" flag is required or not, later.\nBut this fix is required first.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nAcked-by: Ying Han \u003cyinghan@google.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Johannes Weiner \u003cjweiner@redhat.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d5f33d45e4c0e306e8d16b4573891a65d9ad544f",
      "tree": "16fc1c38ced6780b185887cdc5753fe2fa3110b0",
      "parents": [
        "0bf2461fdd9008290cf429e50e4f362dafab4249"
      ],
      "author": {
        "name": "Axel Lin",
        "email": "axel.lin@gmail.com",
        "time": "Tue May 17 15:44:09 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 18 02:55:22 2011 -0700"
      },
      "message": "drivers/leds/leds-lm3530.c: add MODULE_DEVICE_TABLE\n\nAdding the necessary MODULE_DEVICE_TABLE() information allows the driver\nto be automatically loaded by udev.\n\nSigned-off-by: Axel Lin \u003caxel.lin@gmail.com\u003e\nCc: Shreshtha Kumar SAHU \u003cshreshthakumar.sahu@stericsson.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0bf2461fdd9008290cf429e50e4f362dafab4249",
      "tree": "03e3ef8e7c55c86e428cbe9cb72af3b95c77035b",
      "parents": [
        "a085963a2757b9ab0a7ec1cf4a14aa85935c1e2a"
      ],
      "author": {
        "name": "Alexandre Bounine",
        "email": "alexandre.bounine@idt.com",
        "time": "Tue May 17 15:44:08 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 18 02:55:22 2011 -0700"
      },
      "message": "rapidio: fix default routing initialization\n\nFix switch initialization to ensure that all switches have default routing\ndisabled.  This guarantees that no unexpected RapidIO packets arrive to\nthe default port set by reset and there is no default routing destination\nuntil it is properly configured by software.\n\nThis update also unifies handling of unmapped destinations by tsi57x, IDT\nGen1 and IDT Gen2 switches.\n\nSigned-off-by: Alexandre Bounine \u003calexandre.bounine@idt.com\u003e\nCc: Kumar Gala \u003cgalak@kernel.crashing.org\u003e\nCc: Matt Porter \u003cmporter@kernel.crashing.org\u003e\nCc: Li Yang \u003cleoli@freescale.com\u003e\nCc: Thomas Moll \u003cthomas.moll@sysgo.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.37+]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "11379b5e33950048ad66825da7f462b0d0da9d73",
      "tree": "97b6089e15c4ce3daadc7633776dca952e883e6b",
      "parents": [
        "221d1d797202984cb874e3ed9f1388593d34ee22"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue May 17 15:28:21 2011 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue May 17 20:54:04 2011 +0000"
      },
      "message": "cifs: fix cifsConvertToUCS() for the mapchars case\n\nAs Metze pointed out, commit 84cdf74e broke mapchars option:\n\n    Commit \"cifs: fix unaligned accesses in cifsConvertToUCS\"\n    (84cdf74e8096a10dd6acbb870dd404b92f07a756) does multiple steps\n    in just one commit (moving the function and changing it without\n    testing).\n\n    put_unaligned_le16(temp, \u0026target[j]); is never called for any\n    codepoint the goes via the \u0027default\u0027 switch statement. As a result\n    we put just zero (or maybe uninitialized) bytes into the target\n    buffer.\n\nHis proposed patch looks correct, but doesn\u0027t apply to the current head\nof the tree. This patch should also fix it.\n\nCc: \u003cstable@kernel.org\u003e # .38.x: 581ade4: cifs: clean up various nits in unicode routines (try #2)\nReported-by: Stefan Metzmacher \u003cmetze@samba.org\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "221d1d797202984cb874e3ed9f1388593d34ee22",
      "tree": "e86b9b3b4b54806b769de8777add5b52e73cf00f",
      "parents": [
        "c1d10d18c542278b7fbc413c289d3cb6219da6b3"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue May 17 06:40:30 2011 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue May 17 18:51:14 2011 +0000"
      },
      "message": "cifs: add fallback in is_path_accessible for old servers\n\nThe is_path_accessible check uses a QPathInfo call, which isn\u0027t\nsupported by ancient win9x era servers. Fall back to an older\nSMBQueryInfo call if it fails with the magic error codes.\n\nCc: stable@kernel.org\nReported-and-Tested-by: Sandro Bonazzola \u003csandro.bonazzola@gmail.com\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "a085963a2757b9ab0a7ec1cf4a14aa85935c1e2a",
      "tree": "65ba9b826cf1b2311534e10b944175a83467d654",
      "parents": [
        "c1d10d18c542278b7fbc413c289d3cb6219da6b3",
        "07f4beb0b5bbfaf36a64aa00d59e670ec578a95a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 17 08:02:04 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 17 08:02:04 2011 -0700"
      },
      "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  tick: Clear broadcast active bit when switching to oneshot\n  rtc: mc13xxx: Don\u0027t call rtc_device_register while holding lock\n  rtc: rp5c01: Initialize drvdata before registering device\n  rtc: pcap: Initialize drvdata before registering device\n  rtc: msm6242: Initialize drvdata before registering device\n  rtc: max8998: Initialize drvdata before registering device\n  rtc: max8925: Initialize drvdata before registering device\n  rtc: m41t80: Initialize clientdata before registering device\n  rtc: ds1286: Initialize drvdata before registering device\n  rtc: ep93xx: Initialize drvdata before registering device\n  rtc: davinci: Initialize drvdata before registering device\n  rtc: mxc: Initialize drvdata before registering device\n  clocksource: Install completely before selecting\n"
    },
    {
      "commit": "14fb57dccb6e1defe9f89a66f548fcb24c374c1d",
      "tree": "57126dba7f5ff7b1652c5598f7632986227eab39",
      "parents": [
        "328935e6348c6a7cb34798a68c326f4b8372e68a"
      ],
      "author": {
        "name": "Borislav Petkov",
        "email": "borislav.petkov@amd.com",
        "time": "Tue May 17 14:55:19 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 17 15:28:34 2011 +0200"
      },
      "message": "x86, AMD: Fix ARAT feature setting again\n\nTrying to enable the local APIC timer on early K8 revisions\nuncovers a number of other issues with it, in conjunction with\nthe C1E enter path on AMD. Fixing those causes much more churn\nand troubles than the benefit of using that timer brings so\ndon\u0027t enable it on K8 at all, falling back to the original\nfunctionality the kernel had wrt to that.\n\nReported-and-bisected-by: Nick Bowler \u003cnbowler@elliptictech.com\u003e\nCc: Boris Ostrovsky \u003cBoris.Ostrovsky@amd.com\u003e\nCc: Andreas Herrmann \u003candreas.herrmann3@amd.com\u003e\nCc: Greg Kroah-Hartman \u003cgreg@kroah.com\u003e\nCc: Hans Rosenfeld \u003chans.rosenfeld@amd.com\u003e\nCc: Nick Bowler \u003cnbowler@elliptictech.com\u003e\nCc: Joerg-Volker-Peetz \u003cjvpeetz@web.de\u003e\nSigned-off-by: Borislav Petkov \u003cborislav.petkov@amd.com\u003e\nLink: http://lkml.kernel.org/r/1305636919-31165-3-git-send-email-bp@amd64.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "328935e6348c6a7cb34798a68c326f4b8372e68a",
      "tree": "d6fb0459d00e0cf8567a1e223aff69b58f3171cc",
      "parents": [
        "e503f9e4b092e2349a9477a333543de8f3c7f5d9"
      ],
      "author": {
        "name": "Borislav Petkov",
        "email": "borislav.petkov@amd.com",
        "time": "Tue May 17 14:55:18 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 17 15:28:33 2011 +0200"
      },
      "message": "Revert \"x86, AMD: Fix APIC timer erratum 400 affecting K8 Rev.A-E processors\"\n\nThis reverts commit e20a2d205c05cef6b5783df339a7d54adeb50962, as it crashes\ncertain boxes with specific AMD CPU models.\n\nMoving the lower endpoint of the Erratum 400 check to accomodate\nearlier K8 revisions (A-E) opens a can of worms which is simply\nnot worth to fix properly by tweaking the errata checking\nframework:\n\n* missing IntPenging MSR on revisions \u003c CG cause #GP:\n\nhttp://marc.info/?l\u003dlinux-kernel\u0026m\u003d130541471818831\n\n* makes earlier revisions use the LAPIC timer instead of the C1E\nidle routine which switches to HPET, thus not waking up in\ndeeper C-states:\n\nhttp://lkml.org/lkml/2011/4/24/20\n\nTherefore, leave the original boundary starting with K8-revF.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9937a5e2f32892db0dbeefc2b3bc74b3ae3ea9c7",
      "tree": "0448e96b503deb71dd8a1228da94a9fc22a57d48",
      "parents": [
        "70087dc38cc77ca8f46059564c00338777734762"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue May 17 11:04:44 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue May 17 11:04:44 2011 +0200"
      },
      "message": "scsi: remove performance regression due to async queue run\n\nCommit c21e6beb removed our queue request_fn re-enter\nprotection, and defaulted to always running the queues from\nkblockd to be safe. This was a known potential slow down,\nbut should be safe.\n\nUnfortunately this is causing big performance regressions for\nsome, so we need to improve this logic. Looking into the details\nof the re-enter, the real issue is on requeue of requests.\n\nRequeue of requests upon seeing a BUSY condition from the device\nends up re-running the queue, causing traces like this:\n\nscsi_request_fn()\n        scsi_dispatch_cmd()\n                scsi_queue_insert()\n                        __scsi_queue_insert()\n                                scsi_run_queue()\n\t\t\t\t\tscsi_request_fn()\n\t\t\t\t\t\t...\n\npotentially causing the issue we want to avoid. So special\ncase the requeue re-run of the queue, but improve it to offload\nthe entire run of local queue and starved queue from a single\nworkqueue callback. This is a lot better than potentially\nkicking off a workqueue run for each device seen.\n\nThis also fixes the issue of the local device going into recursion,\nsince the above mentioned commit never moved that queue run out\nof line.\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "c1d10d18c542278b7fbc413c289d3cb6219da6b3",
      "tree": "867b60d92db4fd9ac99bda532c7290fe564d0821",
      "parents": [
        "477de0de446210eb5c87e2a54c9ba4c8844fb98b",
        "6f404e441d169afc90929ef5e451ec9779c1f11a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 16 18:38:08 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 16 18:38:08 2011 -0700"
      },
      "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:\n  net: Change netdev_fix_features messages loglevel\n  vmxnet3: Fix inconsistent LRO state after initialization\n  sfc: Fix oops in register dump after mapping change\n  IPVS: fix netns if reading ip_vs_* procfs entries\n  bridge: fix forwarding of IPv6\n"
    },
    {
      "commit": "477de0de446210eb5c87e2a54c9ba4c8844fb98b",
      "tree": "399098973886cd595d33b375cefd022b9461c88c",
      "parents": [
        "b5e6ab589d570ac79cc939517fab05c87a23c262",
        "86f315bbb2374f1f077500ad131dd9b71856e697"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 16 18:36:47 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 16 18:36:47 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc:\n  Revert \"mmc: fix a race between card-detect rescan and clock-gate work instances\"\n"
    },
    {
      "commit": "b5e6ab589d570ac79cc939517fab05c87a23c262",
      "tree": "db9014f2b0897c9f3ada5b4077995e679aa36fbb",
      "parents": [
        "93d2175d3d31f11ba04fcfa0e9a496a1b4bc8b34"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Mon May 16 13:16:54 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 16 18:34:30 2011 -0700"
      },
      "message": "mm: fix kernel-doc warning in page_alloc.c\n\nFix new kernel-doc warning in mm/page_alloc.c:\n\n  Warning(mm/page_alloc.c:2370): No description found for parameter \u0027nid\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "93d2175d3d31f11ba04fcfa0e9a496a1b4bc8b34",
      "tree": "3bb4635b432268db72967b237d6b3f33d427ef9f",
      "parents": [
        "df8d06ade6eed9077f658ac8696fc1cb5c081220"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Fri May 13 18:06:17 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 16 18:33:35 2011 -0700"
      },
      "message": "PCI: Clear bridge resource flags if requested size is 0\n\nDuring pci remove/rescan testing found:\n\n  pci 0000:c0:03.0: PCI bridge to [bus c4-c9]\n  pci 0000:c0:03.0:   bridge window [io  0x1000-0x0fff]\n  pci 0000:c0:03.0:   bridge window [mem 0xf0000000-0xf00fffff]\n  pci 0000:c0:03.0:   bridge window [mem 0xfc180000000-0xfc197ffffff 64bit pref]\n  pci 0000:c0:03.0: device not available (can\u0027t reserve [io  0x1000-0x0fff])\n  pci 0000:c0:03.0: Error enabling bridge (-22), continuing\n  pci 0000:c0:03.0: enabling bus mastering\n  pci 0000:c0:03.0: setting latency timer to 64\n  pcieport 0000:c0:03.0: device not available (can\u0027t reserve [io  0x1000-0x0fff])\n  pcieport: probe of 0000:c0:03.0 failed with error -22\n\nThis bug was caused by commit c8adf9a3e873 (\"PCI: pre-allocate\nadditional resources to devices only after successful allocation of\nessential resources.\")\n\nAfter that commit, pci_hotplug_io_size is changed to additional_io_size\nfrom minium size.  So it will not go through resource_size(res) !\u003d 0\npath, and will not be reset.\n\nThe root cause is: pci_bridge_check_ranges will set RESOURCE_IO flag for\npci bridge, and later if children do not need IO resource.  those bridge\nresources will not need to be allocated.  but flags is still there.\nthat will confuse the the pci_enable_bridges later.\n\nrelated code:\n\n   static void assign_requested_resources_sorted(struct resource_list *head,\n                                    struct resource_list_x *fail_head)\n   {\n           struct resource *res;\n           struct resource_list *list;\n           int idx;\n\n           for (list \u003d head-\u003enext; list; list \u003d list-\u003enext) {\n                   res \u003d list-\u003eres;\n                   idx \u003d res - \u0026list-\u003edev-\u003eresource[0];\n                   if (resource_size(res) \u0026\u0026 pci_assign_resource(list-\u003edev, idx)) {\n   ...\n                           reset_resource(res);\n                   }\n           }\n   }\n\nAt last, We have to clear the flags in pbus_size_mem/io when requested\nsize \u003d\u003d 0 and !add_head.  becasue this case it will not go through\nadjust_resources_sorted().\n\nJust make size1 \u003d size0 when !add_head. it will make flags get cleared.\n\nAt the same time when requested size \u003d\u003d 0, add_size !\u003d 0, will still\nhave in head and add_list.  because we do not clear the flags for it.\n\nAfter this, we will get right result:\n\n  pci 0000:c0:03.0: PCI bridge to [bus c4-c9]\n  pci 0000:c0:03.0:   bridge window [io  disabled]\n  pci 0000:c0:03.0:   bridge window [mem 0xf0000000-0xf00fffff]\n  pci 0000:c0:03.0:   bridge window [mem 0xfc180000000-0xfc197ffffff 64bit pref]\n  pci 0000:c0:03.0: enabling bus mastering\n  pci 0000:c0:03.0: setting latency timer to 64\n  pcieport 0000:c0:03.0: setting latency timer to 64\n  pcieport 0000:c0:03.0: irq 160 for MSI/MSI-X\n  pcieport 0000:c0:03.0: Signaling PME through PCIe PME interrupt\n  pci 0000:c4:00.0: Signaling PME through PCIe PME interrupt\n  pcie_pme 0000:c0:03.0:pcie01: service driver pcie_pme loaded\n  aer 0000:c0:03.0:pcie02: service driver aer loaded\n  pciehp 0000:c0:03.0:pcie04: Hotplug Controller:\n\nv3: more simple fix. also fix one typo in pbus_size_mem\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nReviewed-by: Ram Pai \u003clinuxram@us.ibm.com\u003e\nCc: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nCc: Bjorn Helgaas \u003cbhelgaas@google.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "07f4beb0b5bbfaf36a64aa00d59e670ec578a95a",
      "tree": "13c0fbeb4586cd0a9c7cd8258575c39e0481ca7a",
      "parents": [
        "557d97d57446f55d2c4a66593794ea31ffd0a74d"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon May 16 11:07:48 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon May 16 23:35:41 2011 +0200"
      },
      "message": "tick: Clear broadcast active bit when switching to oneshot\n\nThe first cpu which switches from periodic to oneshot mode switches\nalso the broadcast device into oneshot mode. The broadcast device\nserves as a backup for per cpu timers which stop in deeper\nC-states. To avoid starvation of the cpus which might be in idle and\ndepend on broadcast mode it marks the other cpus as broadcast active\nand sets the brodcast expiry value of those cpus to the next tick.\n\nThe oneshot mode broadcast bit for the other cpus is sticky and gets\nonly cleared when those cpus exit idle. If a cpu was not idle while\nthe bit got set in consequence the bit prevents that the broadcast\ndevice is armed on behalf of that cpu when it enters idle for the\nfirst time after it switched to oneshot mode.\n\nIn most cases that goes unnoticed as one of the other cpus has usually\na timer pending which keeps the broadcast device armed with a short\ntimeout. Now if the only cpu which has a short timer active has the\nbit set then the broadcast device will not be armed on behalf of that\ncpu and will fire way after the expected timer expiry. In the case of\nChristians bug report it took ~145 seconds which is about half of the\nwrap around time of HPET (the limit for that device) due to the fact\nthat all other cpus had no timers armed which expired before the 145\nseconds timeframe.\n\nThe solution is simply to clear the broadcast active bit\nunconditionally when a cpu switches to oneshot mode after the first\ncpu switched the broadcast device over. It\u0027s not idle at that point\notherwise it would not be executing that code.\n\n[ I fundamentally hate that broadcast crap. Why the heck thought some\n  folks that when going into deep idle it\u0027s a brilliant concept to\n  switch off the last device which brings the cpu back from that\n  state? ]\n\nThanks to Christian for providing all the valuable debug information!\n\nReported-and-tested-by: Christian Hoffmann \u003cemail@christianhoffmann.info\u003e\nCc: John Stultz \u003cjohnstul@us.ibm.com\u003e\nLink: http://lkml.kernel.org/r/%3Calpine.LFD.2.02.1105161105170.3078%40ionos%3E\nCc: stable@kernel.org\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "6f404e441d169afc90929ef5e451ec9779c1f11a",
      "tree": "d8ad18c3501f8fdbfc01a6470ddd765711ee1760",
      "parents": [
        "ebde6f8acba92abfc203585198a54f47e83e2cd0"
      ],
      "author": {
        "name": "Michał Mirosław",
        "email": "mirq-linux@rere.qmqm.pl",
        "time": "Mon May 16 15:14:21 2011 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 16 15:14:21 2011 -0400"
      },
      "message": "net: Change netdev_fix_features messages loglevel\n\nThose reduced to DEBUG can possibly be triggered by unprivileged processes\nand are nothing exceptional. Illegal checksum combinations can only be\ncaused by driver bug, so promote those messages to WARN.\n\nSince GSO without SG will now only cause DEBUG message from\nnetdev_fix_features(), remove the workaround from register_netdevice().\n\nSigned-off-by: Michał Mirosław \u003cmirq-linux@rere.qmqm.pl\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ebde6f8acba92abfc203585198a54f47e83e2cd0",
      "tree": "34f683de875ae1f9244e73d3d8a6c7b83f26be3f",
      "parents": [
        "867955f5682f7157fdafe8670804b9f8ea077bc7"
      ],
      "author": {
        "name": "Thomas Jarosch",
        "email": "thomas.jarosch@intra2net.com",
        "time": "Mon May 16 06:28:15 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 16 15:05:23 2011 -0400"
      },
      "message": "vmxnet3: Fix inconsistent LRO state after initialization\n\nDuring initialization of vmxnet3, the state of LRO\ngets out of sync with netdev-\u003efeatures.\n\nThis leads to very poor TCP performance in a IP forwarding\nsetup and is hitting many VMware users.\n\nSimplified call sequence:\n1. vmxnet3_declare_features() initializes \"adapter-\u003elro\" to true.\n\n2. The kernel automatically disables LRO if IP forwarding is enabled,\nso vmxnet3_set_flags() gets called. This also updates netdev-\u003efeatures.\n\n3. Now vmxnet3_setup_driver_shared() is called. \"adapter-\u003elro\" is still\nset to true and LRO gets enabled again, even though\nnetdev-\u003efeatures shows it\u0027s disabled.\n\nFix it by updating \"adapter-\u003elro\", too.\n\nThe private vmxnet3 adapter flags are scheduled for removal\nin net-next, see commit a0d2730c9571aeba793cb5d3009094ee1d8fda35\n\"net: vmxnet3: convert to hw_features\".\n\nPatch applies to 2.6.37 / 2.6.38 and 2.6.39-rc6.\n\nPlease CC: comments.\n\nSigned-off-by: Thomas Jarosch \u003cthomas.jarosch@intra2net.com\u003e\nAcked-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "867955f5682f7157fdafe8670804b9f8ea077bc7",
      "tree": "90d853ca6e38fd1512bf97addd14bf176b49332b",
      "parents": [
        "0e3d32c3a85c82df781ca93b956af336e915ac00"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "bhutchings@solarflare.com",
        "time": "Mon May 16 06:13:49 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon May 16 15:05:23 2011 -0400"
      },
      "message": "sfc: Fix oops in register dump after mapping change\n\nCommit 747df2258b1b9a2e25929ef496262c339c380009 (\u0027sfc: Always map MCDI\nshared memory as uncacheable\u0027) introduced a separate mapping for the\nMCDI shared memory (MC_TREG_SMEM).  This means we can no longer easily\ninclude it in the register dump.  Since it is not particularly useful\nin debugging, substitute a recognisable dummy value.\n\nSigned-off-by: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "df8d06ade6eed9077f658ac8696fc1cb5c081220",
      "tree": "328b61dfeec3b4a720759a2c1cab5305255b5768",
      "parents": [
        "7c21738efd0b5e8c2a9ac2440e7ffbf432d6f239",
        "5fd2a84ab3c8b87176e25db1d98c5cc34043a669"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 16 08:55:49 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 16 08:55:49 2011 -0700"
      },
      "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  OMAP3: set the core dpll clk rate in its set_rate function\n  omap: iommu: Return IRQ_HANDLED in fault handler when no fault occured\n"
    },
    {
      "commit": "7c21738efd0b5e8c2a9ac2440e7ffbf432d6f239",
      "tree": "d65f02ae98b229604e04df9984632272686cef9a",
      "parents": [
        "eed631e0d741d1a1067cfc6d709fdf2363126f9c",
        "752d2635ebb12b6122ba05775f7d1ccfef14b275"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 16 08:47:31 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 16 08:47:31 2011 -0700"
      },
      "message": "Merge branch \u0027drm-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6\n\n* \u0027drm-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:\n  drm: Take lock around probes for drm_fb_helper_hotplug_event\n  drm/i915: Revert i915.semaphore\u003d1 default from 47ae63e0\n  vga_switcheroo: don\u0027t toggle-switch devices\n  drm/radeon/kms: add some evergreen/ni safe regs\n  drm/radeon/kms: fix extended lvds info parsing\n  drm/radeon/kms: fix tiling reg on fusion\n"
    },
    {
      "commit": "86f315bbb2374f1f077500ad131dd9b71856e697",
      "tree": "d1e70a9bfaa1665bef1b085f6f8ce4a0498e90d2",
      "parents": [
        "eed631e0d741d1a1067cfc6d709fdf2363126f9c"
      ],
      "author": {
        "name": "Chris Ball",
        "email": "cjb@laptop.org",
        "time": "Mon May 16 11:32:26 2011 -0400"
      },
      "committer": {
        "name": "Chris Ball",
        "email": "cjb@laptop.org",
        "time": "Mon May 16 11:32:26 2011 -0400"
      },
      "message": "Revert \"mmc: fix a race between card-detect rescan and clock-gate work instances\"\n\nThis reverts commit 26fc8775b51484d8c0a671198639c6d5ae60533e, which has\nbeen reported to cause boot/resume-time crashes for some users:\n\nhttps://bbs.archlinux.org/viewtopic.php?id\u003d118751.\n\nSigned-off-by: Chris Ball \u003ccjb@laptop.org\u003e\nCc: \u003cstable@kernel.org\u003e\n"
    },
    {
      "commit": "70087dc38cc77ca8f46059564c00338777734762",
      "tree": "2ffd5885a12acb44d90d3c3c1a578387bad94a32",
      "parents": [
        "02e352287a40bd456eb78df705bf888bc3161d3f"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Mon May 16 15:24:08 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Mon May 16 15:24:08 2011 +0200"
      },
      "message": "blk-throttle: Use task_subsys_state() to determine a task\u0027s blkio_cgroup\n\nCurrentlly we first map the task to cgroup and then cgroup to\nblkio_cgroup. There is a more direct way to get to blkio_cgroup\nfrom task using task_subsys_state(). Use that.\n\nThe real reason for the fix is that it also avoids a race in generic\ncgroup code. During remount/umount rebind_subsystems() is called and\nit can do following with and rcu protection.\n\ncgrp-\u003esubsys[i] \u003d NULL;\n\nThat means if somebody got hold of cgroup under rcu and then it tried\nto do cgroup-\u003esubsys[] to get to blkio_cgroup, it would get NULL which\nis wrong. I was running into this race condition with ltp running on a\nupstream derived kernel and that lead to crash.\n\nSo ideally we should also fix cgroup generic code to wait for rcu\ngrace period before setting pointer to NULL. Li Zefan is not very keen\non introducing synchronize_wait() as he thinks it will slow\ndown moun/remount/umount operations.\n\nSo for the time being atleast fix the kernel crash by taking a more\ndirect route to blkio_cgroup.\n\nOne tester had reported a crash while running LTP on a derived kernel\nand with this fix crash is no more seen while the test has been\nrunning for over 6 days.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "e503f9e4b092e2349a9477a333543de8f3c7f5d9",
      "tree": "adfae63a1d704f667abe176413db191c732d05f0",
      "parents": [
        "d9a5ac9ef306eb5cc874f285185a15c303c50009"
      ],
      "author": {
        "name": "Youquan Song",
        "email": "youquan.song@intel.com",
        "time": "Fri Apr 22 00:22:43 2011 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 16 13:48:25 2011 +0200"
      },
      "message": "x86, apic: Fix spurious error interrupts triggering on all non-boot APs\n\nThis patch fixes a bug reported by a customer, who found\nthat many unreasonable error interrupts reported on all\nnon-boot CPUs (APs) during the system boot stage.\n\nAccording to Chapter 10 of Intel Software Developer Manual\nVolume 3A, Local APIC may signal an illegal vector error when\nan LVT entry is set as an illegal vector value (0~15) under\nFIXED delivery mode (bits 8-11 is 0), regardless of whether\nthe mask bit is set or an interrupt actually happen. These\nerrors are seen as error interrupts.\n\nThe initial value of thermal LVT entries on all APs always reads\n0x10000 because APs are woken up by BSP issuing INIT-SIPI-SIPI\nsequence to them and LVT registers are reset to 0s except for\nthe mask bits which are set to 1s when APs receive INIT IPI.\n\nWhen the BIOS takes over the thermal throttling interrupt,\nthe LVT thermal deliver mode should be SMI and it is required\nfrom the kernel to keep AP\u0027s LVT thermal monitoring register\nprogrammed as such as well.\n\nThis issue happens when BIOS does not take over thermal throttling\ninterrupt, AP\u0027s LVT thermal monitor register will be restored to\n0x10000 which means vector 0 and fixed deliver mode, so all APs will\nsignal illegal vector error interrupts.\n\nThis patch check if interrupt delivery mode is not fixed mode before\nrestoring AP\u0027s LVT thermal monitor register.\n\nSigned-off-by: Youquan Song \u003cyouquan.song@intel.com\u003e\nAcked-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nAcked-by: Yong Wang \u003cyong.y.wang@intel.com\u003e\nCc: hpa@linux.intel.com\nCc: joe@perches.com\nCc: jbaron@redhat.com\nCc: trenn@suse.de\nCc: kent.liu@intel.com\nCc: chaohong.guo@intel.com\nCc: \u003cstable@kernel.org\u003e # As far back as possible\nLink: http://lkml.kernel.org/r/1303402963-17738-1-git-send-email-youquan.song@intel.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "752d2635ebb12b6122ba05775f7d1ccfef14b275",
      "tree": "787f76b453e15a03e7db938eaace598dc36273eb",
      "parents": [
        "8eea1be174a1ea4b86323167bbadc8a6abdca613"
      ],
      "author": {
        "name": "Chris Wilson",
        "email": "chris@chris-wilson.co.uk",
        "time": "Fri Apr 22 11:03:57 2011 +0100"
      },
      "committer": {
        "name": "Dave Airlie",
        "email": "airlied@redhat.com",
        "time": "Mon May 16 12:01:43 2011 +1000"
      },
      "message": "drm: Take lock around probes for drm_fb_helper_hotplug_event\n\nWe need to hold the dev-\u003emode_config.mutex whilst detecting the output\nstatus. But we also need to drop it for the call into\ndrm_fb_helper_single_fb_probe(), which indirectly acquires the lock when\nattaching the fbcon.\n\nFailure to do so exposes a race with normal output probing. Detected by\nadding some warnings that the mutex is held to the backend detect routines:\n\n[   17.772456] WARNING: at drivers/gpu/drm/i915/intel_crt.c:471 intel_crt_detect+0x3e/0x373 [i915]()\n[   17.772458] Hardware name: Latitude E6400\n[   17.772460] Modules linked in: ....\n[   17.772582] Pid: 11, comm: kworker/0:1 Tainted: G        W 2.6.38.4-custom.2 #8\n[   17.772584] Call Trace:\n[   17.772591]  [\u003cffffffff81046af5\u003e] ? warn_slowpath_common+0x78/0x8c\n[   17.772603]  [\u003cffffffffa03f3e5c\u003e] ? intel_crt_detect+0x3e/0x373 [i915]\n[   17.772612]  [\u003cffffffffa0355d49\u003e] ?  drm_helper_probe_single_connector_modes+0xbf/0x2af [drm_kms_helper]\n[   17.772619]  [\u003cffffffffa03534d5\u003e] ?  drm_fb_helper_probe_connector_modes+0x39/0x4d [drm_kms_helper]\n[   17.772625]  [\u003cffffffffa0354760\u003e] ?  drm_fb_helper_hotplug_event+0xa5/0xc3 [drm_kms_helper]\n[   17.772633]  [\u003cffffffffa035577f\u003e] ? output_poll_execute+0x146/0x17c [drm_kms_helper]\n[   17.772638]  [\u003cffffffff81193c01\u003e] ? cfq_init_queue+0x247/0x345\n[   17.772644]  [\u003cffffffffa0355639\u003e] ? output_poll_execute+0x0/0x17c [drm_kms_helper]\n[   17.772648]  [\u003cffffffff8105b540\u003e] ? process_one_work+0x193/0x28e\n[   17.772652]  [\u003cffffffff8105c6bc\u003e] ? worker_thread+0xef/0x172\n[   17.772655]  [\u003cffffffff8105c5cd\u003e] ? worker_thread+0x0/0x172\n[   17.772658]  [\u003cffffffff8105c5cd\u003e] ? worker_thread+0x0/0x172\n[   17.772663]  [\u003cffffffff8105f767\u003e] ? kthread+0x7a/0x82\n[   17.772668]  [\u003cffffffff8100a724\u003e] ? kernel_thread_helper+0x4/0x10\n[   17.772671]  [\u003cffffffff8105f6ed\u003e] ? kthread+0x0/0x82\n[   17.772674]  [\u003cffffffff8100a720\u003e] ? kernel_thread_helper+0x0/0x10\n\nReported-by:  Frederik Himpe \u003cfhimpe@telenet.be\u003e\nReferences: https://bugs.freedesktop.org/show_bug.cgi?id\u003d36394\nSigned-off-by: Chris Wilson \u003cchris@chris-wilson.co.uk\u003e\nSigned-off-by: Dave Airlie \u003cairlied@redhat.com\u003e\n"
    },
    {
      "commit": "8eea1be174a1ea4b86323167bbadc8a6abdca613",
      "tree": "3d1c9a591c7b905b73dc33d272bfc9f239d1d75e",
      "parents": [
        "a67b8887ced9d54cab7759bdb19deafed37481eb"
      ],
      "author": {
        "name": "Andy Lutomirski",
        "email": "luto@mit.edu",
        "time": "Fri May 13 12:14:54 2011 -0400"
      },
      "committer": {
        "name": "Dave Airlie",
        "email": "airlied@redhat.com",
        "time": "Mon May 16 09:15:37 2011 +1000"
      },
      "message": "drm/i915: Revert i915.semaphore\u003d1 default from 47ae63e0\n\nMy Q67 / i7-2600 box has rev09 Sandy Bridge graphics.  It hangs\ninstantly when GNOME loads and it hangs so hard the reset button\ndoesn\u0027t work.  Setting i915.semaphore\u003d0 fixes it.\n\nSemaphores were disabled in a1656b9090f7008d2941c314f5a64724bea2ae37\nin 2.6.38 and were re-enabled by\n\ncommit 47ae63e0c2e5fdb582d471dc906eb29be94c732f\nMerge: c59a333 467cffb\nAuthor: Chris Wilson \u003cchris@chris-wilson.co.uk\u003e\nDate:   Mon Mar 7 12:32:44 2011 +0000\n\n    Merge branch \u0027drm-intel-fixes\u0027 into drm-intel-next\n\n    Apply the trivial conflicting regression fixes, but keep GPU semaphores\n    enabled.\n\n    Conflicts:\n        drivers/gpu/drm/i915/i915_drv.h\n        drivers/gpu/drm/i915/i915_gem_execbuffer.c\n\n(It\u0027s worth noting that the offending change is i915_drv.c,\n which is not a conflict.)\n\nSigned-off-by: Andy Lutomirski \u003cluto@mit.edu\u003e\nAcked-by: Keith Packard \u003ckeithp@keithp.com\u003e\nSigned-off-by: Dave Airlie \u003cairlied@redhat.com\u003e\n"
    },
    {
      "commit": "a67b8887ced9d54cab7759bdb19deafed37481eb",
      "tree": "87ad4a1f9f2b5fd48d820949c827fea7264fa885",
      "parents": [
        "3a8ab79eae4500e6ac618a92a90cee63d6e804a8"
      ],
      "author": {
        "name": "Florian Mickler",
        "email": "florian@mickler.org",
        "time": "Sun May 15 16:32:50 2011 +0200"
      },
      "committer": {
        "name": "Dave Airlie",
        "email": "airlied@redhat.com",
        "time": "Mon May 16 08:57:04 2011 +1000"
      },
      "message": "vga_switcheroo: don\u0027t toggle-switch devices\n\nIf the requested device is already active, ignore the request.\n\nThis restores the original behaviour of the interface. The change was\nprobably an unintended side effect of\n\ncommit 66b37c6777c4 vga_switcheroo: split switching into two stages\n\nwhich did not take into account to duplicate the !active check in the split-off\nstage2.\n\nFix this by factoring that check out of stage1 into the debugfs_write routine.\n\nReferences: https://bugzilla.kernel.org/show_bug.cgi?id\u003d34252\nReported-by: Igor Murzov \u003ce-mail@date.by\u003e\nTested-by: Igor Murzov \u003ce-mail@date.by\u003e\nSigned-off-by: Florian Mickler \u003cflorian@mickler.org\u003e\nSigned-off-by: Dave Airlie \u003cairlied@redhat.com\u003e\n"
    }
  ],
  "next": "0e3d32c3a85c82df781ca93b956af336e915ac00"
}
