)]}'
{
  "log": [
    {
      "commit": "f3a310bc4e5ce7e55e1c8e25c31e63af017f3e50",
      "tree": "0c78777bd505f44edeb9bbcc50fb3154896574aa",
      "parents": [
        "9927af740b1b9b1e769310bd0b91425e8047b803"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Thu Jan 13 15:46:00 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:34 2011 -0800"
      },
      "message": "mm: vmscan: rename lumpy_mode to reclaim_mode\n\nWith compaction being used instead of lumpy reclaim, the name lumpy_mode\nand associated variables is a bit misleading.  Rename lumpy_mode to\nreclaim_mode which is a better fit.  There is no functional change.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9927af740b1b9b1e769310bd0b91425e8047b803",
      "tree": "5195dfbe36ece987f7e3d7c04b87327a20b16ea6",
      "parents": [
        "7f0f24967b0349798803260b2e4bf347cffa1990"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Thu Jan 13 15:45:59 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:34 2011 -0800"
      },
      "message": "mm: compaction: perform a faster migration scan when migrating asynchronously\n\ntry_to_compact_pages() is initially called to only migrate pages\nasychronously and kswapd always compacts asynchronously.  Both are being\noptimistic so it is important to complete the work as quickly as possible\nto minimise stalls.\n\nThis patch alters the scanner when asynchronous to only consider\nMIGRATE_MOVABLE pageblocks as migration candidates.  This reduces stalls\nwhen allocating huge pages while not impairing allocation success rates as\na full scan will be performed if necessary after direct reclaim.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7f0f24967b0349798803260b2e4bf347cffa1990",
      "tree": "80448367dd2403f02e74f90671e1f050aea41292",
      "parents": [
        "77f1fe6b08b13a87391549c8a820ddc817b6f50e"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Thu Jan 13 15:45:58 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:34 2011 -0800"
      },
      "message": "mm: migration: cleanup migrate_pages API by matching types for offlining and sync\n\nWith the introduction of the boolean sync parameter, the API looks a\nlittle inconsistent as offlining is still an int.  Convert offlining to a\nbool for the sake of being tidy.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "77f1fe6b08b13a87391549c8a820ddc817b6f50e",
      "tree": "720865bd0994da3787b6f37d33b2ee4c26a2de6c",
      "parents": [
        "3e7d344970673c5334cf7b5bb27c8c0942b06126"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Thu Jan 13 15:45:57 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:34 2011 -0800"
      },
      "message": "mm: migration: allow migration to operate asynchronously and avoid synchronous compaction in the faster path\n\nMigration synchronously waits for writeback if the initial passes fails.\nCallers of memory compaction do not necessarily want this behaviour if the\ncaller is latency sensitive or expects that synchronous migration is not\ngoing to have a significantly better success rate.\n\nThis patch adds a sync parameter to migrate_pages() allowing the caller to\nindicate if wait_on_page_writeback() is allowed within migration or not.\nFor reclaim/compaction, try_to_compact_pages() is first called\nasynchronously, direct reclaim runs and then try_to_compact_pages() is\ncalled synchronously as there is a greater expectation that it\u0027ll succeed.\n\n[akpm@linux-foundation.org: build/merge fix]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3e7d344970673c5334cf7b5bb27c8c0942b06126",
      "tree": "832ecb4da5fd27efa5a503df5b96bfdee2a52ffd",
      "parents": [
        "ee64fc9354e515a79c7232cfde65c88ec627308b"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Thu Jan 13 15:45:56 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:33 2011 -0800"
      },
      "message": "mm: vmscan: reclaim order-0 and use compaction instead of lumpy reclaim\n\nLumpy reclaim is disruptive.  It reclaims a large number of pages and\nignores the age of the pages it reclaims.  This can incur significant\nstalls and potentially increase the number of major faults.\n\nCompaction has reached the point where it is considered reasonably stable\n(meaning it has passed a lot of testing) and is a potential candidate for\ndisplacing lumpy reclaim.  This patch introduces an alternative to lumpy\nreclaim whe compaction is available called reclaim/compaction.  The basic\noperation is very simple - instead of selecting a contiguous range of\npages to reclaim, a number of order-0 pages are reclaimed and then\ncompaction is later by either kswapd (compact_zone_order()) or direct\ncompaction (__alloc_pages_direct_compact()).\n\n[akpm@linux-foundation.org: fix build]\n[akpm@linux-foundation.org: use conventional task_struct naming]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ee64fc9354e515a79c7232cfde65c88ec627308b",
      "tree": "fb5fb6c0045ff5467ed5870d5f64806784deba2d",
      "parents": [
        "b7aba6984dc048503b69c2a885098cdd430832bf"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Thu Jan 13 15:45:55 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:33 2011 -0800"
      },
      "message": "mm: vmscan: convert lumpy_mode into a bitmask\n\nCurrently lumpy_mode is an enum and determines if lumpy reclaim is off,\nsyncronous or asyncronous.  In preparation for using compaction instead of\nlumpy reclaim, this patch converts the flags into a bitmap.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b7aba6984dc048503b69c2a885098cdd430832bf",
      "tree": "1f682189bd967feaf28c2978445c7ebe82116185",
      "parents": [
        "2d90508f638241a2e7422d884767398296ebe720"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Thu Jan 13 15:45:54 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:33 2011 -0800"
      },
      "message": "mm: compaction: add trace events for memory compaction activity\n\nIn preparation for a patches promoting the use of memory compaction over\nlumpy reclaim, this patch adds trace points for memory compaction\nactivity.  Using them, we can monitor the scanning activity of the\nmigration and free page scanners as well as the number and success rates\nof pages passed to page migration.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2d90508f638241a2e7422d884767398296ebe720",
      "tree": "5b80c4919d924ab76c02b629465cbc7820010a53",
      "parents": [
        "62c70bce8ac236514c610020bb1ae5b8bde965cb"
      ],
      "author": {
        "name": "Nikanth Karthikesan",
        "email": "knikanth@suse.de",
        "time": "Thu Jan 13 15:45:53 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:33 2011 -0800"
      },
      "message": "mm: smaps: export mlock information\n\nCurrently there is no way to find whether a process has locked its pages\nin memory or not.  And which of the memory regions are locked in memory.\n\nAdd a new field \"Locked\" to export this information via the smaps file.\n\nSigned-off-by: Nikanth Karthikesan \u003cknikanth@suse.de\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "62c70bce8ac236514c610020bb1ae5b8bde965cb",
      "tree": "24f13ae48325034f9a8c4385669adcef545b4836",
      "parents": [
        "c32b0d4b3f19c2f5d29568f8b7b72b61693f1277"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Thu Jan 13 15:45:52 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:33 2011 -0800"
      },
      "message": "mm: convert sprintf_symbol to %pS\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nCc: Jiri Kosina \u003ctrivial@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c32b0d4b3f19c2f5d29568f8b7b72b61693f1277",
      "tree": "9cbaad32db3e63396620d60d56c7895d236b8944",
      "parents": [
        "9cbb4cb21b19fff46cf1174d0ed699ef710e641c"
      ],
      "author": {
        "name": "Hai Shan",
        "email": "haishan.bai@gmail.com",
        "time": "Thu Jan 13 15:45:51 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:32 2011 -0800"
      },
      "message": "fs/mpage.c: consolidate code\n\nMerge mpage_end_io_read() and mpage_end_io_write() into mpage_end_io() to\neliminate code duplication.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Hai Shan \u003cshan.hai@windriver.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9cbb4cb21b19fff46cf1174d0ed699ef710e641c",
      "tree": "56480b1f4082d6158f077378db36c99d6d3ff209",
      "parents": [
        "f0bc0a60b13f209df16062f94e9fb4b90dc08708"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Thu Jan 13 15:45:51 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:32 2011 -0800"
      },
      "message": "mm: find_get_pages_contig fixlet\n\nTesting -\u003emapping and -\u003eindex without a ref is not stable as the page\nmay have been reused at this point.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nReviewed-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f0bc0a60b13f209df16062f94e9fb4b90dc08708",
      "tree": "c876603d2cb17a3e2ed159ca5e08e4665cc09fe2",
      "parents": [
        "c3f0da631539b3b8e17f6dda567af9958d49d14f"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu Jan 13 15:45:50 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:32 2011 -0800"
      },
      "message": "vmscan: factor out kswapd sleeping logic from kswapd()\n\nCurrently, kswapd() has deep nesting and is slightly hard to read.  Clean\nthis up.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c3f0da631539b3b8e17f6dda567af9958d49d14f",
      "tree": "b9bc0060ac0fa99d0dc9e6caadb0abf0172249ef",
      "parents": [
        "c691b9d983d7015d54057034f4cd9b6d8affd976"
      ],
      "author": {
        "name": "Bob Liu",
        "email": "lliubbo@gmail.com",
        "time": "Thu Jan 13 15:45:49 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:32 2011 -0800"
      },
      "message": "mm/page-writeback.c: fix __set_page_dirty_no_writeback() return value\n\n__set_page_dirty_no_writeback() should return true if it actually\ntransitioned the page from a clean to dirty state although it seems nobody\nuses its return value at present.\n\nSigned-off-by: Bob Liu \u003clliubbo@gmail.com\u003e\nAcked-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c691b9d983d7015d54057034f4cd9b6d8affd976",
      "tree": "f87bd8ba07deacb2bcab5fe93684a04f0f7d34c2",
      "parents": [
        "b9543dac5bbc4aef0a598965b6b34f6259ab9a9b"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Thu Jan 13 15:45:48 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:32 2011 -0800"
      },
      "message": "sync_inode_metadata: fix comment\n\nUse correct function name, remove incorrect apostrophe\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b9543dac5bbc4aef0a598965b6b34f6259ab9a9b",
      "tree": "255244e6bb9340d4b8ce1fa6b4d2ed4adece4b15",
      "parents": [
        "aa373cf550994623efb5d49a4d8775bafd10bbc1"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Jan 13 15:45:48 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:32 2011 -0800"
      },
      "message": "writeback: avoid livelocking WB_SYNC_ALL writeback\n\nWhen wb_writeback() is called in WB_SYNC_ALL mode, work-\u003enr_to_write is\nusually set to LONG_MAX.  The logic in wb_writeback() then calls\n__writeback_inodes_sb() with nr_to_write \u003d\u003d MAX_WRITEBACK_PAGES and we\neasily end up with non-positive nr_to_write after the function returns, if\nthe inode has more than MAX_WRITEBACK_PAGES dirty pages at the moment.\n\nWhen nr_to_write is \u003c\u003d 0 wb_writeback() decides we need another round of\nwriteback but this is wrong in some cases!  For example when a single\nlarge file is continuously dirtied, we would never finish syncing it\nbecause each pass would be able to write MAX_WRITEBACK_PAGES and inode\ndirty timestamp never gets updated (as inode is never completely clean).\nThus __writeback_inodes_sb() would write the redirtied inode again and\nagain.\n\nFix the issue by setting nr_to_write to LONG_MAX in WB_SYNC_ALL mode.  We\ndo not need nr_to_write in WB_SYNC_ALL mode anyway since\nwrite_cache_pages() does livelock avoidance using page tagging in\nWB_SYNC_ALL mode.\n\nThis makes wb_writeback() call __writeback_inodes_sb() only once on\nWB_SYNC_ALL.  The latter function won\u0027t livelock because it works on\n\n- a finite set of files by doing queue_io() once at the beginning\n- a finite set of pages by PAGECACHE_TAG_TOWRITE page tagging\n\nAfter this patch, program from http://lkml.org/lkml/2010/10/24/154 is no\nlonger able to stall sync forever.\n\n[fengguang.wu@intel.com: fix locking comment]\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Jan Engelhardt \u003cjengelh@medozas.de\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "aa373cf550994623efb5d49a4d8775bafd10bbc1",
      "tree": "64b14d1f5491f436a8b3ea5c32edecde5c255285",
      "parents": [
        "71927e84e0aebfbe5a91565c3b207af25a4e9162"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Jan 13 15:45:47 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:32 2011 -0800"
      },
      "message": "writeback: stop background/kupdate works from livelocking other works\n\nBackground writeback is easily livelockable in a loop in wb_writeback() by\na process continuously re-dirtying pages (or continuously appending to a\nfile).  This is in fact intended as the target of background writeback is\nto write dirty pages it can find as long as we are over\ndirty_background_threshold.\n\nBut the above behavior gets inconvenient at times because no other work\nqueued in the flusher thread\u0027s queue gets processed.  In particular, since\ne.g.  sync(1) relies on flusher thread to do all the IO for it, sync(1)\ncan hang forever waiting for flusher thread to do the work.\n\nGenerally, when a flusher thread has some work queued, someone submitted\nthe work to achieve a goal more specific than what background writeback\ndoes.  Moreover by working on the specific work, we also reduce amount of\ndirty pages which is exactly the target of background writeout.  So it\nmakes sense to give specific work a priority over a generic page cleaning.\n\nThus we interrupt background writeback if there is some other work to do.\nWe return to the background writeback after completing all the queued\nwork.\n\nThis may delay the writeback of expired inodes for a while, however the\nexpired inodes will eventually be flushed to disk as long as the other\nworks won\u0027t livelock.\n\n[fengguang.wu@intel.com: update comment]\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Jan Engelhardt \u003cjengelh@medozas.de\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "71927e84e0aebfbe5a91565c3b207af25a4e9162",
      "tree": "8271f6d2008405bd392893ab0f7a4bd25653dc90",
      "parents": [
        "6585027a5e8cb490e3a761b2f3f3c3acf722aff2"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Thu Jan 13 15:45:46 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:32 2011 -0800"
      },
      "message": "writeback: trace wakeup event for background writeback\n\nThis tracks when balance_dirty_pages() tries to wakeup the flusher thread\nfor background writeback (if it was not started already).\n\nSuggested-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Jan Engelhardt \u003cjengelh@medozas.de\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6585027a5e8cb490e3a761b2f3f3c3acf722aff2",
      "tree": "ac856c00c148d590d6b7632cc11bc23be6a9ccc2",
      "parents": [
        "b44129b30652c8771db2265939bb8b463724043d"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Jan 13 15:45:44 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:32 2011 -0800"
      },
      "message": "writeback: integrated background writeback work\n\nCheck whether background writeback is needed after finishing each work.\n\nWhen bdi flusher thread finishes doing some work check whether any kind of\nbackground writeback needs to be done (either because\ndirty_background_ratio is exceeded or because we need to start flushing\nold inodes).  If so, just do background write back.\n\nThis way, bdi_start_background_writeback() just needs to wake up the\nflusher thread.  It will do background writeback as soon as there is no\nother work.\n\nThis is a preparatory patch for the next patch which stops background\nwriteback as soon as there is other work to do.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Jan Engelhardt \u003cjengelh@medozas.de\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b44129b30652c8771db2265939bb8b463724043d",
      "tree": "d5b669ff4faea020b03e894706f49d5d1ae56907",
      "parents": [
        "88f5acf88ae6a9778f6d25d0d5d7ec2d57764a97"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Thu Jan 13 15:45:43 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:31 2011 -0800"
      },
      "message": "mm: vmstat: use a single setter function and callback for adjusting percpu thresholds\n\nreduce_pgdat_percpu_threshold() and restore_pgdat_percpu_threshold() exist\nto adjust the per-cpu vmstat thresholds while kswapd is awake to avoid\nerrors due to counter drift.  The functions duplicate some code so this\npatch replaces them with a single set_pgdat_percpu_threshold() that takes\na callback function to calculate the desired threshold as a parameter.\n\n[akpm@linux-foundation.org: readability tweak]\n[kosaki.motohiro@jp.fujitsu.com: set_pgdat_percpu_threshold(): don\u0027t use for_each_online_cpu]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "88f5acf88ae6a9778f6d25d0d5d7ec2d57764a97",
      "tree": "6f39beef8cf918eb2ca9f64ae1bcd1ea79ca487a",
      "parents": [
        "43bb40c9e3aa51a3b038c9df2c9afb4d4685614d"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Thu Jan 13 15:45:41 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:31 2011 -0800"
      },
      "message": "mm: page allocator: adjust the per-cpu counter threshold when memory is low\n\nCommit aa45484 (\"calculate a better estimate of NR_FREE_PAGES when memory\nis low\") noted that watermarks were based on the vmstat NR_FREE_PAGES.  To\navoid synchronization overhead, these counters are maintained on a per-cpu\nbasis and drained both periodically and when a threshold is above a\nthreshold.  On large CPU systems, the difference between the estimate and\nreal value of NR_FREE_PAGES can be very high.  The system can get into a\ncase where pages are allocated far below the min watermark potentially\ncausing livelock issues.  The commit solved the problem by taking a better\nreading of NR_FREE_PAGES when memory was low.\n\nUnfortately, as reported by Shaohua Li this accurate reading can consume a\nlarge amount of CPU time on systems with many sockets due to cache line\nbouncing.  This patch takes a different approach.  For large machines\nwhere counter drift might be unsafe and while kswapd is awake, the per-cpu\nthresholds for the target pgdat are reduced to limit the level of drift to\nwhat should be a safe level.  This incurs a performance penalty in heavy\nmemory pressure by a factor that depends on the workload and the machine\nbut the machine should function correctly without accidentally exhausting\nall memory on a node.  There is an additional cost when kswapd wakes and\nsleeps but the event is not expected to be frequent - in Shaohua\u0027s test\ncase, there was one recorded sleep and wake event at least.\n\nTo ensure that kswapd wakes up, a safe version of zone_watermark_ok() is\nintroduced that takes a more accurate reading of NR_FREE_PAGES when called\nfrom wakeup_kswapd, when deciding whether it is really safe to go back to\nsleep in sleeping_prematurely() and when deciding if a zone is really\nbalanced or not in balance_pgdat().  We are still using an expensive\nfunction but limiting how often it is called.\n\nWhen the test case is reproduced, the time spent in the watermark\nfunctions is reduced.  The following report is on the percentage of time\nspent cumulatively spent in the functions zone_nr_free_pages(),\nzone_watermark_ok(), __zone_watermark_ok(), zone_watermark_ok_safe(),\nzone_page_state_snapshot(), zone_page_state().\n\nvanilla                      11.6615%\ndisable-threshold            0.2584%\n\nDavid said:\n\n: We had to pull aa454840 \"mm: page allocator: calculate a better estimate\n: of NR_FREE_PAGES when memory is low and kswapd is awake\" from 2.6.36\n: internally because tests showed that it would cause the machine to stall\n: as the result of heavy kswapd activity.  I merged it back with this fix as\n: it is pending in the -mm tree and it solves the issue we were seeing, so I\n: definitely think this should be pushed to -stable (and I would seriously\n: consider it for 2.6.37 inclusion even at this late date).\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReported-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux.com\u003e\nTested-by: Nicolas Bareil \u003cnico@chdir.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.37.1, 2.6.36.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "43bb40c9e3aa51a3b038c9df2c9afb4d4685614d",
      "tree": "3b7d37ef585d4a94d7d56f62f02418b0b0d056c1",
      "parents": [
        "5dfbd1d734ef5415bc47b034df7433ba21e40e7b"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Thu Jan 13 15:45:40 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:31 2011 -0800"
      },
      "message": "sched: remove long deprecated CLONE_STOPPED flag\n\nThis warning was added in commit bdff746a3915 (\"clone: prepare to recycle\nCLONE_STOPPED\") three years ago.  2.6.26 came and went.  As far as I know,\nno-one is actually using CLONE_STOPPED.\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5dfbd1d734ef5415bc47b034df7433ba21e40e7b",
      "tree": "3fbe7a9997f20e6c7db040a2fc1da68b93c10302",
      "parents": [
        "6c9ae009b298753a3baf71298d676a68b5a10c8f"
      ],
      "author": {
        "name": "Claudio Scordino",
        "email": "claudio@evidence.eu.com",
        "time": "Thu Jan 13 15:45:39 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:31 2011 -0800"
      },
      "message": "atmel_serial: fix RTS high after initialization in RS485 mode\n\nWhen working in RS485 mode, the atmel_serial driver keeps RTS high after\nthe initialization of the serial port.  It goes low only after the first\ncharacter has been sent.\n\n[akpm@linux-foundation.org: simplify code]\nSigned-off-by: Claudio Scordino \u003cclaudio@evidence.eu.com\u003e\nSigned-off-by: Arkadiusz Bubala \u003carkadiusz.bubala@gmail.com\u003e\nTested-by: Arkadiusz Bubala \u003carkadiusz.bubala@gmail.com\u003e\nCc: Nicolas Ferre \u003cnicolas.ferre@atmel.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6c9ae009b298753a3baf71298d676a68b5a10c8f",
      "tree": "95a7e4ca54fe8e96c95cedd4e8d6450659015212",
      "parents": [
        "558bbb2fc75fd9676e07e347c021865e326c56db"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Jan 13 15:45:38 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:31 2011 -0800"
      },
      "message": "irq: use per_cpu kstat_irqs\n\nUse modern per_cpu API to increment {soft|hard}irq counters, and use\nper_cpu allocation for (struct irq_desc)-\u003ekstats_irq instead of an array.\n\nThis gives better SMP/NUMA locality and saves few instructions per irq.\n\nWith small nr_cpuids values (8 for example), kstats_irq was a small array\n(less than L1_CACHE_BYTES), potentially source of false sharing.\n\nIn the !CONFIG_SPARSE_IRQ case, remove the huge, NUMA/cache unfriendly\nkstat_irqs_all[NR_IRQS][NR_CPUS] array.\n\nNote: we still populate kstats_irq for all possible irqs in\nearly_irq_init().  We probably could use on-demand allocations.  (Code\nincluded in alloc_descs()).  Problem is not all IRQS are used with a prior\nalloc_descs() call.\n\nkstat_irqs_this_cpu() is not used anymore, remove it.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "558bbb2fc75fd9676e07e347c021865e326c56db",
      "tree": "9f7542241b525cee30e7ee7a7ca1f67b88cfe688",
      "parents": [
        "f6bcfd94c0a97c11ce9197ade93a08bc8af6e057"
      ],
      "author": {
        "name": "Bruce Chang",
        "email": "BruceChang@via.com.tw",
        "time": "Thu Jan 13 15:45:37 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:31 2011 -0800"
      },
      "message": "MAINTAINERS: update entries affecting VIA Technologies\n\nSince the original maintainer-Joseph Chan (josephchan@via.com.tw) doesn\u0027t\nhandle the Linux driver for VIA now, I would like to request to update the\nmaintainer for the SD/MMC CARD CONTROLLER DRIVER and VIA\nUNICHROME(PRO)/CHROME9 FRAMEBUFFER DRIVER before we find a better one.\n\nSigned-off-by: Bruce Chang \u003cbrucechang@via.com.tw\u003e\nSigned-off-by: Florian Tobias Schandinat \u003cFlorianSchandinat@gmx.de\u003e\nCc: Joseph Chan \u003cJosephChan@via.com.tw\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Harald Welte \u003cHaraldWelte@viatech.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f6bcfd94c0a97c11ce9197ade93a08bc8af6e057",
      "tree": "83d867565b4f2a7627b3288f9e000eaf2b217be9",
      "parents": [
        "509e4aef44eb10e4aef1f81c3c3ff1214671503b",
        "9d09e663d5502c46f2d9481c04c1087e1c2da698"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:30:47 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:30:47 2011 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm: (32 commits)\n  dm: raid456 basic support\n  dm: per target unplug callback support\n  dm: introduce target callbacks and congestion callback\n  dm mpath: delay activate_path retry on SCSI_DH_RETRY\n  dm: remove superfluous irq disablement in dm_request_fn\n  dm log: use PTR_ERR value instead of ENOMEM\n  dm snapshot: avoid storing private suspended state\n  dm snapshot: persistent make metadata_wq multithreaded\n  dm: use non reentrant workqueues if equivalent\n  dm: convert workqueues to alloc_ordered\n  dm stripe: switch from local workqueue to system_wq\n  dm: dont use flush_scheduled_work\n  dm snapshot: remove unused dm_snapshot queued_bios_work\n  dm ioctl: suppress needless warning messages\n  dm crypt: add loop aes iv generator\n  dm crypt: add multi key capability\n  dm crypt: add post iv call to iv generator\n  dm crypt: use io thread for reads only if mempool exhausted\n  dm crypt: scale to multiple cpus\n  dm crypt: simplify compatible table output\n  ...\n"
    },
    {
      "commit": "509e4aef44eb10e4aef1f81c3c3ff1214671503b",
      "tree": "b90daecbc3d05787b0dd141e524b67d8579a6dfd",
      "parents": [
        "375b6f5a40a3d8373561a3dbeed440a845e6d379",
        "bf2cb0dab8c97f00a71875d9b13dbac17a2f47ca"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:30:20 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:30:20 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://neil.brown.name/md\n\n* \u0027for-linus\u0027 of git://neil.brown.name/md:\n  md: Fix removal of extra drives when converting RAID6 to RAID5\n  md: range check slot number when manually adding a spare.\n  md/raid5: handle manually-added spares in start_reshape.\n  md: fix sync_completed reporting for very large drives (\u003e2TB)\n  md: allow suspend_lo and suspend_hi to decrease as well as increase.\n  md: Don\u0027t let implementation detail of curr_resync leak out through sysfs.\n  md: separate meta and data devs\n  md-new-param-to_sync_page_io\n  md-new-param-to-calc_dev_sboffset\n  md: Be more careful about clearing flags bit in -\u003erecovery\n  md: md_stop_writes requires mddev_lock.\n  md/raid5: use sysfs_notify_dirent_safe to avoid NULL pointer\n  md: Ensure no IO request to get md device before it is properly initialised.\n  md: Fix single printks with multiple KERN_\u003clevel\u003es\n  md: fix regression resulting in delays in clearing bits in a bitmap\n  md: fix regression with re-adding devices to arrays with no metadata\n"
    },
    {
      "commit": "375b6f5a40a3d8373561a3dbeed440a845e6d379",
      "tree": "7fe903bdfd0f67436c648394b0bcbdda55379689",
      "parents": [
        "d8a3515e2a9523f8ed56d1f4537d16338bda2bc2",
        "09579770dcb8769f4f61046dcd01cc758cfa6d91"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:29:53 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:29:53 2011 -0800"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6\n\n* \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:\n  [IA64] fix build error - arch/ia64/kernel/perfmon.c\n"
    },
    {
      "commit": "d8a3515e2a9523f8ed56d1f4537d16338bda2bc2",
      "tree": "d51bd1b4f0b3c13bedde97ba79e014882be634a9",
      "parents": [
        "6254b32b5791e47ba1c679d023f26985fa34755a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:26:46 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:26:46 2011 -0800"
      },
      "message": "Revert \"gpiolib: annotate gpio-intialization with __must_check\"\n\nThis reverts commit 0fdae42d361bbb431ca0ab0efed5126a94821177, which\nwasn\u0027t really supposed to go in, and causes lots of annoying warnings.\n\nQuoth Andrew:\n  \"Complete brainfart - I meant to drop that patch ages ago.\"\n\nQuoth Greg:\n  \"Ick, yeah, that patch isn\u0027t ok to go in as-is, all of the callers\n   need to be fixed up first, which is what I thought we had agreed on...\"\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nAcked-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6254b32b5791e47ba1c679d023f26985fa34755a",
      "tree": "121faecbf6c17732ee620fd68009e3e24205340e",
      "parents": [
        "2a86cb7c2b1e9eb98b36d0a3cf4444d8851968b1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:19:38 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:19:38 2011 -0800"
      },
      "message": "ecryptfs: fix broken build\n\nStephen Rothwell reports that the vfs merge broke the build of ecryptfs.\nThe breakage comes from commit 66cb76666d69 (\"sanitize ecryptfs\n-\u003emount()\") which was obviously not even build tested. Tssk, tssk, Al.\n\nThis is the minimal build fixup for the situation, although I don\u0027t have\na filesystem to actually test it with.\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "09579770dcb8769f4f61046dcd01cc758cfa6d91",
      "tree": "bd486d1775bcbfd627f2c31f24a2c58e3cd4e8da",
      "parents": [
        "581548db3b3c0f6e25b500329eb02e3c72e7acbe"
      ],
      "author": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Thu Jan 13 14:49:56 2011 -0800"
      },
      "committer": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Thu Jan 13 14:49:56 2011 -0800"
      },
      "message": "[IA64] fix build error - arch/ia64/kernel/perfmon.c\n\narch/ia64/kernel/perfmon.c:621: error: duplicate \u0027static\u0027\n\nIntroduced by commit c74a1cbb3cac348f276fabc381758f5b0b4713b2\n\n    pass default dentry_operations to mount_pseudo()\n\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\n"
    },
    {
      "commit": "bf2cb0dab8c97f00a71875d9b13dbac17a2f47ca",
      "tree": "68587eaff5c7cb85628c1f68aecb19f2a18c8f6e",
      "parents": [
        "ba1b41b6b4e30cb66ae2775faadea05cae3ce61c"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:34 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:34 2011 +1100"
      },
      "message": "md: Fix removal of extra drives when converting RAID6 to RAID5\n\nWhen a RAID6 is converted to a RAID5, the extra drive should\nbe discarded.  However it isn\u0027t due to a typo in a comparison.\n\nThis bug was introduced in commit e93f68a1fc6 in 2.6.35-rc4\nand is suitable for any -stable since than.\n\nAs the extra drive is not removed, the \u0027degraded\u0027 counter is wrong and\nso the RAID5 will not respond correctly to a subsequent failure.\n\nCc: stable@kernel.org\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "ba1b41b6b4e30cb66ae2775faadea05cae3ce61c",
      "tree": "02da80f72095418dd1a08661f59c24607029a8e7",
      "parents": [
        "1a940fcee31ec6c18c2f24dbdad31d54e4c35048"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:34 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:34 2011 +1100"
      },
      "message": "md: range check slot number when manually adding a spare.\n\nWhen adding a spare to an active array, we should check the slot\nnumber, but allow it to be larger than raid_disks if a reshape\nis being prepared.\n\nApply the same test when adding a device to an\narray-under-construction.  It already had most of the test in place,\nbut not quite all.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "1a940fcee31ec6c18c2f24dbdad31d54e4c35048",
      "tree": "73de19d505bb0483462eb1445a86a848e5506478",
      "parents": [
        "13ae864bc86ff65547ffe7e966b6433a0d0edb8a"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:34 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:34 2011 +1100"
      },
      "message": "md/raid5: handle manually-added spares in start_reshape.\n\nIt is possible to manually add spares to specific slots before\nstarting a reshape.\nraid5_start_reshape should recognised this possibility and include\nit in the accounting.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "13ae864bc86ff65547ffe7e966b6433a0d0edb8a",
      "tree": "6e5ca3a6736b75fa0db8415c1e3a2506af6ab9cc",
      "parents": [
        "23ddff3792f61193695114c68d6ebd57e974c4f8"
      ],
      "author": {
        "name": "Rémi Rérolle",
        "email": "rrerolle@lacie.com",
        "time": "Fri Jan 14 09:14:34 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:34 2011 +1100"
      },
      "message": "md: fix sync_completed reporting for very large drives (\u003e2TB)\n\nThe values exported in the sync_completed file are unsigned long, which\noverflows with very large drives, resulting in wrong values reported.\n\nSince sync_completed uses sectors as unit, we\u0027ll start getting wrong\nvalues with components larger than 2TB.\n\nThis patch simply replaces the use of unsigned long by unsigned long long.\n\nSigned-off-by: Rémi Rérolle \u003crrerolle@lacie.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "23ddff3792f61193695114c68d6ebd57e974c4f8",
      "tree": "5b16efbc900648c8ef402a41cb308759a2706c61",
      "parents": [
        "75d3da43cb74d2e5fb87816dbfecb839cd97c7f4"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:34 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:34 2011 +1100"
      },
      "message": "md: allow suspend_lo and suspend_hi to decrease as well as increase.\n\nThe sysfs attributes \u0027suspend_lo\u0027 and \u0027suspend_hi\u0027 describe a region\nto which read/writes are suspended so that the under lying data can be\nmanipulated without user-space noticing.\nCurrently the window they describe can only move forwards along the\ndevice.  However this is an unnecessary restriction which will cause\nproblems with planned developments.\nSo relax this restriction and allow these endpoints to move\narbitrarily.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "75d3da43cb74d2e5fb87816dbfecb839cd97c7f4",
      "tree": "27074aceb801ada315329591f32c938b36150ed9",
      "parents": [
        "a6ff7e089c7fca813c956ccbed824087e89a3a49"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:34 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:34 2011 +1100"
      },
      "message": "md: Don\u0027t let implementation detail of curr_resync leak out through sysfs.\n\nmddev-\u003ecurr_resync has artificial values of \u00271\u0027 and \u00272\u0027 which are used\nby the code which ensures only one resync is happening at a time on\nany given device.\n\nThese values are internal and should never be exposed to user-space\n(except when translated appropriately as in the \u0027pending\u0027 status in\n/proc/mdstat).\n\nUnfortunately they are as -\u003ecurr_resync is assigned to\n-\u003ecurr_resync_completed and that value is directly visible through\nsysfs.\n\nSo change the assignments to -\u003ecurr_resync_completed to get the same\nvalued from elsewhere in a form that doesn\u0027t have the magic \u00271\u0027 or \u00272\u0027\nvalues.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "a6ff7e089c7fca813c956ccbed824087e89a3a49",
      "tree": "6537f72a2431c30601736676e9b1f89a7f1fe52e",
      "parents": [
        "ccebd4c4159462c96397ae9af9c667bb394d7b70"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Fri Jan 14 09:14:34 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:34 2011 +1100"
      },
      "message": "md: separate meta and data devs\n\nAllow the metadata to be on a separate device from the\ndata.\n\nThis doesn\u0027t mean the data and metadata will by on separate\nphysical devices - it simply gives device-mapper and userspace\ntools more flexibility.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "ccebd4c4159462c96397ae9af9c667bb394d7b70",
      "tree": "04554f0e7607d906c6b09f31a995fca0dd40c5b5",
      "parents": [
        "57b2caa394393f8870ed41bdcc38a7542593018f"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Fri Jan 14 09:14:33 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:33 2011 +1100"
      },
      "message": "md-new-param-to_sync_page_io\n\nAdd new parameter to \u0027sync_page_io\u0027.\n\nThe new parameter allows us to distinguish between metadata and data\noperations.  This becomes important later when we add the ability to\nuse separate devices for data and metadata.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\n"
    },
    {
      "commit": "57b2caa394393f8870ed41bdcc38a7542593018f",
      "tree": "22579497603304e9694986a4cac2cd360c993fa9",
      "parents": [
        "7ebc0be7fff4146e87b4078f054977b72998abd3"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Fri Jan 14 09:14:33 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:33 2011 +1100"
      },
      "message": "md-new-param-to-calc_dev_sboffset\n\nWhen we allow for separate devices for data and metadata\nin a later patch, we will need to be able to calculate\nthe superblock offset based on more than the bdev.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\n"
    },
    {
      "commit": "7ebc0be7fff4146e87b4078f054977b72998abd3",
      "tree": "f5b5b40674ec4e221e77eb1f9e4f36138f75df3c",
      "parents": [
        "defad61a5b16352d3e22a04d4c930a5b5a7fd1f0"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:33 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:33 2011 +1100"
      },
      "message": "md: Be more careful about clearing flags bit in -\u003erecovery\n\nSetting -\u003erecovery to 0 is generally not a good idea as it could clear\nbits that shouldn\u0027t be cleared.  In particular, MD_RECOVERY_FROZEN\nshould only be cleared on explicit request from user-space.\n\nSo when we need to clear things, just clear the bits that need\nclearing.\n\nAs there are a few different places which reap a resync process - and\nsome do an incomplte job - factor out the code for doing the from\nmd_check_recovery and call that function instead of open coding part\nof it.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nReported-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\n"
    },
    {
      "commit": "defad61a5b16352d3e22a04d4c930a5b5a7fd1f0",
      "tree": "c353bd036c12011d0eee7f7924c230888fd34b0a",
      "parents": [
        "43c73ca43b3e03bb228ff9350b6b44d0e560f262"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:33 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:33 2011 +1100"
      },
      "message": "md: md_stop_writes requires mddev_lock.\n\nAs md_stop_writes manipulates the sync_thread and calls md_update_sb,\nit need to be called with mddev_lock held.\n\nIn all internal cases it is, but the symbol is exported for dm-raid to\ncall and in that case the lock won\u0027t be help.\nDo make an exported version which takes the lock, and an internal\nversion which does not.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "43c73ca43b3e03bb228ff9350b6b44d0e560f262",
      "tree": "2a6fcff1e62c53ba0a95295cf02ae785b1efb501",
      "parents": [
        "0ca69886a8273ac1350143d562280bfcbe4760dc"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Fri Jan 14 09:14:33 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:33 2011 +1100"
      },
      "message": "md/raid5: use sysfs_notify_dirent_safe to avoid NULL pointer\n\nWith the module parameter \u0027start_dirty_degraded\u0027 set,\nraid5_spare_active() previously called sysfs_notify_dirent() with a NULL\nargument (rdev-\u003esysfs_state) when a rebuild finished.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\n"
    },
    {
      "commit": "0ca69886a8273ac1350143d562280bfcbe4760dc",
      "tree": "98acbe1e5682e4455bf7d2e7a9413b5a3fd43b2a",
      "parents": [
        "067032bc628598606056412594042564fcf09e22"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:33 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:33 2011 +1100"
      },
      "message": "md: Ensure no IO request to get md device before it is properly initialised.\n\nWhen an md device is in the process of coming on line it is possible\nfor an IO request (typically a partition table probe) to get through\nbefore the array is fully initialised, which can cause unexpected\nbehaviour (e.g. a crash).\n\nSo explicitly record when the array is ready for IO and don\u0027t allow IO\nthrough until then.\n\nThere is no possibility for a similar problem when the array is going\noff-line as there must only be one \u0027open\u0027 at that time, and it is busy\noff-lining the array and so cannot send IO requests.  So no memory\nbarrier is needed in md_stop()\n\nThis has been a bug since commit 409c57f3801 in 2.6.30 which\nintroduced md_make_request.  Before then, each personality would\nregister its own make_request_fn when it was ready.\nThis is suitable for any stable kernel from 2.6.30.y onwards.\n\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nReported-by:  \"Hawrylewicz Czarnowski, Przemyslaw\" \u003cprzemyslaw.hawrylewicz.czarnowski@intel.com\u003e\n"
    },
    {
      "commit": "067032bc628598606056412594042564fcf09e22",
      "tree": "5e64b6446c2156631cc66f34330ba7b134a451bf",
      "parents": [
        "6c9879101442b08581e8a0e3ae6b7f643a78fd63"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Fri Jan 14 09:14:33 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:14:33 2011 +1100"
      },
      "message": "md: Fix single printks with multiple KERN_\u003clevel\u003es\n\nNoticed-by: Russell King \u003clinux@arm.linux.org.uk\u003e\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "6c9879101442b08581e8a0e3ae6b7f643a78fd63",
      "tree": "bfe780d4e09896988fe367aa329a94daf55163c9",
      "parents": [
        "bf572541ab44240163eaa2d486b06f306a31d45a"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:13:53 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Fri Jan 14 09:13:53 2011 +1100"
      },
      "message": "md: fix regression resulting in delays in clearing bits in a bitmap\n\ncommit 589a594be1fb (2.6.37-rc4) fixed a problem were md_thread would\nsometimes call the -\u003erun function at a bad time.\n\nIf an error is detected during array start up after the md_thread has\nbeen started, the md_thread is killed.  This resulted in the -\u003erun\nfunction being called once.  However the array may not be in a state\nthat it is safe to call -\u003erun.\n\nHowever the fix imposed meant that  -\u003erun was not called on a timeout.\nThis means that when an array goes idle, bitmap bits do not get\ncleared promptly.  While the array is busy the bits will still be\ncleared when appropriate so this is not very serious.  There is no\nrisk to data.\n\nChange the test so that we only avoid calling -\u003erun when the thread\nis being stopped.  This more explicitly addresses the problem situation.\n\nThis is suitable for 2.6.37-stable and any -stable kernel to which\n589a594be1fb was applied.\n\nCc: stable@kernel.org\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "2a86cb7c2b1e9eb98b36d0a3cf4444d8851968b1",
      "tree": "9555558356509c8b938a768457f70dafe3bfa3b7",
      "parents": [
        "8a0eebf66e3b1deae036553ba641a9c2bdbae678",
        "c975ffadd144e8e99e83e8f80ee94efce4f170b5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 12:06:58 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 12:06:58 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/egtvedt/avr32-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/egtvedt/avr32-2.6:\n  avr32: update default configuration files for Atmel boards\n  avr32: Convert to clocksource_register_hz\n  avr32: make architecture sys_clone prototype match asm-generic prototype\n  avr32: use syscall prototypes from asm-generic instead of arch\n  avr32: disable kprobes for all default configurations\n  avr32: boards: setup: use IS_ERR() instead of NULL check\n"
    },
    {
      "commit": "8a0eebf66e3b1deae036553ba641a9c2bdbae678",
      "tree": "642d4367dd30a55f78244891479cc08f2983eb7e",
      "parents": [
        "581548db3b3c0f6e25b500329eb02e3c72e7acbe"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 13 14:15:50 2011 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 12:06:29 2011 -0800"
      },
      "message": "NFS: Fix NFSv3 exclusive open semantics\n\nCommit c0204fd2b8fe047b18b67e07e1bf2a03691240cd (NFS: Clean up\nnfs4_proc_create()) broke NFSv3 exclusive open by removing the code\nthat passes the O_EXCL flag down to nfs3_proc_create(). This patch\nreverts that offending hunk from the original commit.\n\nReported-by: Nick Bowler \u003cnbowler@elliptictech.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@kernel.org    [2.6.37]\nTested-by: Nick Bowler \u003cnbowler@elliptictech.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9d09e663d5502c46f2d9481c04c1087e1c2da698",
      "tree": "993f10eb7100a6ce8c00c0cff7951d7ffea9488e",
      "parents": [
        "99d03c141b40914b67d63c9d23b8da4386422ed7"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jan 13 20:00:02 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 20:00:02 2011 +0000"
      },
      "message": "dm: raid456 basic support\n\nThis patch is the skeleton for the DM target that will be\nthe bridge from DM to MD (initially RAID456 and later RAID1).  It\nprovides a way to use device-mapper interfaces to the MD RAID456\ndrivers.\n\nAs with all device-mapper targets, the nominal public interfaces are the\nconstructor (CTR) tables and the status outputs (both STATUSTYPE_INFO\nand STATUSTYPE_TABLE).  The CTR table looks like the following:\n\n1: \u003cs\u003e \u003cl\u003e raid \\\n2:\t\u003craid_type\u003e \u003c#raid_params\u003e \u003craid_params\u003e \\\n3:\t\u003c#raid_devs\u003e \u003cmeta_dev1\u003e \u003cdev1\u003e .. \u003cmeta_devN\u003e \u003cdevN\u003e\n\nLine 1 contains the standard first three arguments to any device-mapper\ntarget - the start, length, and target type fields.  The target type in\nthis case is \"raid\".\n\nLine 2 contains the arguments that define the particular raid\ntype/personality/level, the required arguments for that raid type, and\nany optional arguments.  Possible raid types include: raid4, raid5_la,\nraid5_ls, raid5_rs, raid6_zr, raid6_nr, and raid6_nc.  (again, raid1 is\nplanned for the future.)  The list of required and optional parameters\nis the same for all the current raid types.  The required parameters are\npositional, while the optional parameters are given as key/value pairs.\nThe possible parameters are as follows:\n \u003cchunk_size\u003e\t\tChunk size in sectors.\n [[no]sync]\t\tForce/Prevent RAID initialization\n [rebuild \u003cidx\u003e]\tRebuild the drive indicated by the index\n [daemon_sleep \u003cms\u003e]\tTime between bitmap daemon work to clear bits\n [min_recovery_rate \u003ckB/sec/disk\u003e]\tThrottle RAID initialization\n [max_recovery_rate \u003ckB/sec/disk\u003e]\tThrottle RAID initialization\n [max_write_behind \u003cvalue\u003e]\t\tSee \u0027-write-behind\u003d\u0027 (man mdadm)\n [stripe_cache \u003csectors\u003e]\t\tStripe cache size for higher RAIDs\n\nLine 3 contains the list of devices that compose the array in\nmetadata/data device pairs.  If the metadata is stored separately, a \u0027-\u0027\nis given for the metadata device position.  If a drive has failed or is\nmissing at creation time, a \u0027-\u0027 can be given for both the metadata and\ndata drives for a given position.\n\nExamples:\n# RAID4 - 4 data drives, 1 parity\n# No metadata devices specified to hold superblock/bitmap info\n# Chunk size of 1MiB\n# (Lines separated for easy reading)\n0 1960893648 raid \\\n\traid4 1 2048 \\\n\t5 - 8:17 - 8:33 - 8:49 - 8:65 - 8:81\n\n# RAID4 - 4 data drives, 1 parity (no metadata devices)\n# Chunk size of 1MiB, force RAID initialization,\n#\tmin recovery rate at 20 kiB/sec/disk\n0 1960893648 raid \\\n        raid4 4 2048 min_recovery_rate 20 sync\\\n        5 - 8:17 - 8:33 - 8:49 - 8:65 - 8:81\n\nPerforming a \u0027dmsetup table\u0027 should display the CTR table used to\nconstruct the mapping (with possible reordering of optional\nparameters).\n\nPerforming a \u0027dmsetup status\u0027 will yield information on the state and\nhealth of the array.  The output is as follows:\n1: \u003cs\u003e \u003cl\u003e raid \\\n2:\t\u003craid_type\u003e \u003c#devices\u003e \u003c1 health char for each dev\u003e \u003cresync_ratio\u003e\n\nLine 1 is standard DM output.  Line 2 is best shown by example:\n\t0 1960893648 raid raid4 5 AAAAA 2/490221568\nHere we can see the RAID type is raid4, there are 5 devices - all of\nwhich are \u0027A\u0027live, and the array is 2/490221568 complete with recovery.\n\nCc: linux-raid@vger.kernel.org\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "99d03c141b40914b67d63c9d23b8da4386422ed7",
      "tree": "d9c2d4da01f749325fac949d96e35aedea05cfc4",
      "parents": [
        "9d357b0787bb3c91835d5e658c3bda178f9ca419"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jan 13 20:00:02 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 20:00:02 2011 +0000"
      },
      "message": "dm: per target unplug callback support\n\nAdd per-target unplug callback support.\n\nCc: linux-raid@vger.kernel.org\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "9d357b0787bb3c91835d5e658c3bda178f9ca419",
      "tree": "48f2c3adc8ae06918ef0523f073291990407fa28",
      "parents": [
        "4e2d19e46b507018c6ed15f6c081d8f887ae229c"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Jan 13 20:00:01 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 20:00:01 2011 +0000"
      },
      "message": "dm: introduce target callbacks and congestion callback\n\nDM currently implements congestion checking by checking on congestion\nin each component device.  For raid456 we need to also check if the\nstripe cache is congested.\n\nAdd per-target congestion checker callback support.\n\nExtending the target_callbacks structure with additional callback\nfunctions allows for establishing multiple callbacks per-target (a\ncallback is also needed for unplug).\n\nCc: linux-raid@vger.kernel.org\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "4e2d19e46b507018c6ed15f6c081d8f887ae229c",
      "tree": "c4004056ca62763c87e5dae1c19d7e22877ec571",
      "parents": [
        "052189a2ec956810feefb6a681416c5e6a207646"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Thu Jan 13 20:00:01 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 20:00:01 2011 +0000"
      },
      "message": "dm mpath: delay activate_path retry on SCSI_DH_RETRY\n\nThis patch adds a user-configurable \u0027pg_init_delay_msecs\u0027 feature.  Use\nthis feature to specify the number of milliseconds to delay before\nretrying scsi_dh_activate, when SCSI_DH_RETRY is returned.\n\nSCSI Device Handlers return SCSI_DH_IMM_RETRY if we could retry\nactivation immediately and SCSI_DH_RETRY in cases where it is better to\nretry after some delay.\n\nCurrently we immediately retry scsi_dh_activate irrespective of\nSCSI_DH_IMM_RETRY and SCSI_DH_RETRY.\n\nThe \u0027pg_init_delay_msecs\u0027 feature may be provided during table create or\nload, e.g.:\n    dmsetup create --table \"0 20971520 multipath 3 queue_if_no_path \\\n\tpg_init_delay_msecs 2500 ...\" mpatha\n\nThe default for \u0027pg_init_delay_msecs\u0027 is 2000 milliseconds.\nMaximum configurable delay is 60000 milliseconds.  Specifying a\n\u0027pg_init_delay_msecs\u0027 of 0 will cause immediate retry.\n\nSigned-off-by: Nikanth Karthikesan \u003cknikanth@suse.de\u003e\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nAcked-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "052189a2ec956810feefb6a681416c5e6a207646",
      "tree": "52a1fbec2878788c6a2f6565999b97331493bc4c",
      "parents": [
        "dbc883f1570d992ba926a8c9e22140ba473c6cc1"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Thu Jan 13 20:00:00 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 20:00:00 2011 +0000"
      },
      "message": "dm: remove superfluous irq disablement in dm_request_fn\n\nThis patch changes spin_lock_irq() to spin_lock() in dm_request_fn().\nThis patch is just a clean-up and no functional change.\n\nThe spin_lock_irq() was leftover from the early request-based dm code,\nwhere map_request() used to enable interrupts.\nSince current map_request() never enables interrupts, we can change it\nto spin_lock() to match the prior spin_unlock().\n\nAuditing through the dm and block-layer code called from\nmap_request(), I confirmed all functions save/restore interrupt\nstatus, so no function returning with interrupts enabled.\nAlso I haven\u0027t observed any problem on my test environment which\nuses scsi and lpfc driver after heavy I/O testing with occasional\npath down/up.\n\nAdded BUG_ON() to detect breakage in future.\n\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "dbc883f1570d992ba926a8c9e22140ba473c6cc1",
      "tree": "1a6bfde475cbbe2a978a13b9e2f2a8fec959d7fe",
      "parents": [
        "b83b2f295aec418c7501c05df4dfd168a79d165a"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Thu Jan 13 20:00:00 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 20:00:00 2011 +0000"
      },
      "message": "dm log: use PTR_ERR value instead of ENOMEM\n\nIt\u0027s nicer to return the PTR_ERR() value instead of just returning\n-ENOMEM.  In the current code the PTR_ERR() value is always equal to\n-ENOMEM so this doesn\u0027t actually affect anything, but still...\n\nIn addition, dm_dirty_log_create() doesn\u0027t check for a specific -ENOMEM\nreturn.  So this change is safe relative to potential for a non -ENOMEM\nreturn in the future.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nAcked-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "b83b2f295aec418c7501c05df4dfd168a79d165a",
      "tree": "55249c09281930055439c449f55f156784d0bb68",
      "parents": [
        "239c8dd533e74de4a7f3c85c4f9f430eb08867c1"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Thu Jan 13 19:59:59 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:59 2011 +0000"
      },
      "message": "dm snapshot: avoid storing private suspended state\n\nUse dm_suspended() rather than having each snapshot target maintain a\nprivate \u0027suspended\u0027 flag in struct dm_snapshot.\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "239c8dd533e74de4a7f3c85c4f9f430eb08867c1",
      "tree": "0dfb9e39aad0f2ab09a4f278a6e7f1b46bf64307",
      "parents": [
        "9c4376de98719d2768dd919553843de34bb094a6"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jan 13 19:59:59 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:59 2011 +0000"
      },
      "message": "dm snapshot: persistent make metadata_wq multithreaded\n\nmetadata_wq serves on-stack work items from chunk_io().  Even if\nmultiple chunk_io() are simultaneously in progress, each is\nindependent and queued only once, so multithreaded workqueue can be\nsafely used.\n\nSwitch metadata_wq to multithread and flush the work item instead of\nthe workqueue in chunk_io().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "9c4376de98719d2768dd919553843de34bb094a6",
      "tree": "c20b10e9018bb51803c535a38a04ee8b12b6d98a",
      "parents": [
        "4d4d66ab5322fa9b0f51842a76139387a40e1ce9"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jan 13 19:59:58 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:58 2011 +0000"
      },
      "message": "dm: use non reentrant workqueues if equivalent\n\nkmirrord_wq, kcopyd_work and md-\u003ewq are created per dm instance and\nserve only a single work item from the dm instance, so non-reentrant\nworkqueues would provide the same ordering guarantees as ordered ones\nwhile allowing CPU affinity and use of the workqueues for other\npurposes.  Switch them to non-reentrant workqueues.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "4d4d66ab5322fa9b0f51842a76139387a40e1ce9",
      "tree": "37485e2fa56c38044c496ac5632e8304c5cc25db",
      "parents": [
        "f521f074abe7b3990f5df65482cdc3d851b80665"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jan 13 19:59:57 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:57 2011 +0000"
      },
      "message": "dm: convert workqueues to alloc_ordered\n\nConvert all create[_singlethread]_work() users to the new\nalloc[_ordered]_workqueue().  This conversion is mechanical and\ndoesn\u0027t introduce any behavior change.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "f521f074abe7b3990f5df65482cdc3d851b80665",
      "tree": "b2d7693a14ce9bd8138790a9916074103cd4f957",
      "parents": [
        "d5ffa387e24646cb1cb55d80fd0f182a00e0edb7"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jan 13 19:59:57 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:57 2011 +0000"
      },
      "message": "dm stripe: switch from local workqueue to system_wq\n\nkstriped only serves sc-\u003ekstriped_ws which runs dm_table_event().\nThis doesn\u0027t need to be executed from an ordered workqueue w/ rescuer.\nDrop kstriped and use the system_wq instead.  While at it, rename\nkstriped_ws to trigger_event so that it\u0027s consistent with other dm\nmodules.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "d5ffa387e24646cb1cb55d80fd0f182a00e0edb7",
      "tree": "87f253780f49fc1e438a89fa45ae7313ace6cb3f",
      "parents": [
        "fecec20e55ec117a09857ac1a455e2e6e2f17df4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jan 13 19:59:56 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:56 2011 +0000"
      },
      "message": "dm: dont use flush_scheduled_work\n\nflush_scheduled_work() is being deprecated.  Flush the used work\ndirectly instead.  In all dm targets, the only work which uses\nsystem_wq is -\u003etrigger_event.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "fecec20e55ec117a09857ac1a455e2e6e2f17df4",
      "tree": "60974cfaa003679e04321ae19d9216a1da66691e",
      "parents": [
        "810b492375f4aed5ce222982054adc0394a4bd33"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jan 13 19:59:56 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:56 2011 +0000"
      },
      "message": "dm snapshot: remove unused dm_snapshot queued_bios_work\n\ndm_snapshot-\u003equeued_bios_work isn\u0027t used.  Remove -\u003equeued_bios[_work]\nfrom dm_snapshot structure, the flush_queued_bios work function and\nksnapd workqueue.\n\nThe DM snapshot changes that were going to use the ksnapd workqueue were\neither superseded (fix for origin write races) or never completed\n(deallocation of invalid snapshot\u0027s memory via workqueue).\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "810b492375f4aed5ce222982054adc0394a4bd33",
      "tree": "f67808075083d82a9719af4c657100d5d6d5547b",
      "parents": [
        "34745785937a2003c144c0d4802fa637470d87af"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Thu Jan 13 19:59:55 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:55 2011 +0000"
      },
      "message": "dm ioctl: suppress needless warning messages\n\nThe device-mapper should not send warning messages to syslog\nif a device is not found. This can be done by userspace\naccording to the returned dm-ioctl error code.\n\nSo move these messages to debug level and use rate limiting\nto not flood syslog.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "34745785937a2003c144c0d4802fa637470d87af",
      "tree": "580d8654326deb17f9c26b3b04c598727d8d94d9",
      "parents": [
        "d1f9642381847e2b94caa34c3533211cf36ffcf4"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Thu Jan 13 19:59:55 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:55 2011 +0000"
      },
      "message": "dm crypt: add loop aes iv generator\n\nThis patch adds a compatible implementation of the block\nchaining mode used by the Loop-AES block device encryption\nsystem (http://loop-aes.sourceforge.net/) designed\nby Jari Ruusu.\n\nIt operates on full 512 byte sectors and uses CBC\nwith an IV derived from the sector number, the data and\noptionally extra IV seed.\n\nThis means that after CBC decryption the first block of sector\nmust be tweaked according to decrypted data.\n\nLoop-AES can use three encryption schemes:\n version 1: is plain aes-cbc mode (already compatible)\n version 2: uses 64 multikey scheme with own IV generator\n version 3: the same as version 2 with additional IV seed\n            (it uses 65 keys, last key is used as IV seed)\n\nThe IV generator is here named lmk (Loop-AES multikey)\nand for the cipher specification looks like: aes:64-cbc-lmk\n\nVersion 2 and 3 is recognised according to length\nof provided multi-key string (which is just hexa encoded\n\"raw key\" used in original Loop-AES ioctl).\n\nConfiguration of the device and decoding key string will\nbe done in userspace (cryptsetup).\n(Loop-AES stores keys in gpg encrypted file, raw keys are\noutput of simple hashing of lines in this file).\n\nBased on an implementation by Max Vozeler:\n  http://article.gmane.org/gmane.linux.kernel.cryptoapi/3752/\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCC: Max Vozeler \u003cmax@hinterhof.net\u003e\n"
    },
    {
      "commit": "d1f9642381847e2b94caa34c3533211cf36ffcf4",
      "tree": "32ae1cc4b0946247384fe1a31e257658f734b3f7",
      "parents": [
        "2dc5327d3acb3340ab6fa3981401b076b78a51f4"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Thu Jan 13 19:59:54 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:54 2011 +0000"
      },
      "message": "dm crypt: add multi key capability\n\nThis patch adds generic multikey handling to be used\nin following patch for Loop-AES mode compatibility.\n\nThis patch extends mapping table to optional keycount and\nimplements generic multi-key capability.\n\nWith more keys defined the \u003ckey\u003e string is divided into\nseveral \u003ckeycount\u003e sections and these are used for tfms.\n\nThe tfm is used according to sector offset\n(sector 0-\u003etfm[0], sector 1-\u003etfm[1], sector N-\u003etfm[N modulo keycount])\n(only power of two values supported for keycount here).\n\nBecause of tfms per-cpu allocation, this mode can be take\na lot of memory on large smp systems.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Max Vozeler \u003cmax@hinterhof.net\u003e\n"
    },
    {
      "commit": "2dc5327d3acb3340ab6fa3981401b076b78a51f4",
      "tree": "32297319cd947ea8ab867ec97042983382959db8",
      "parents": [
        "20c82538e4f5ede51bc2b4795bc6e5cae772796d"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Thu Jan 13 19:59:54 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:54 2011 +0000"
      },
      "message": "dm crypt: add post iv call to iv generator\n\nIV (initialisation vector) can in principle depend not only\non sector but also on plaintext data (or other attributes).\n\nChange IV generator interface to work directly with dmreq\nstructure to allow such dependence in generator.\n\nAlso add post() function which is called after the crypto\noperation.\n\nThis allows tricky modification of decrypted data or IV\ninternals.\n\nIn asynchronous mode the post() can be called after\nctx-\u003esector count was increased so it is needed\nto add iv_sector copy directly to dmreq structure.\n(N.B. dmreq always include only one sector in scatterlists)\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "20c82538e4f5ede51bc2b4795bc6e5cae772796d",
      "tree": "a70248a06b21bf249382d6f6beac4b8681bf8f35",
      "parents": [
        "c029772125594e31eb1a5ad9e0913724ed9891f2"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Thu Jan 13 19:59:53 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:53 2011 +0000"
      },
      "message": "dm crypt: use io thread for reads only if mempool exhausted\n\nIf there is enough memory, code can directly submit bio\ninstead queing this operation in separate thread.\n\nTry to alloc bio clone with GFP_NOWAIT and only if it\nfails use separate queue (map function cannot block here).\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "c029772125594e31eb1a5ad9e0913724ed9891f2",
      "tree": "f97dc6534b0d3af9447002fe7d08ff25dfffed92",
      "parents": [
        "7dbcd137414f3877737802438926d6dba7906a9a"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Thu Jan 13 19:59:53 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:53 2011 +0000"
      },
      "message": "dm crypt: scale to multiple cpus\n\nCurrently dm-crypt does all the encryption work for a single dm-crypt\nmapping in a single workqueue. This does not scale well when multiple\nCPUs are submitting IO at a high rate. The single CPU running the single\nthread cannot keep up with the encryption and encrypted IO performance\ntanks.\n\nThis patch changes the crypto workqueue to be per CPU. This means\nthat as long as the IO submitter (or the interrupt target CPUs\nfor reads) runs on different CPUs the encryption work will be also\nparallel.\n\nTo avoid a bottleneck on the IO worker I also changed those to be\nper-CPU threads.\n\nThere is still some shared data, so I suspect some bouncing\ncache lines. But I haven\u0027t done a detailed study on that yet.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "7dbcd137414f3877737802438926d6dba7906a9a",
      "tree": "cb1062484dfbfab08c66d39129c63aab29ef0c30",
      "parents": [
        "86a54a4802df10d23ccd655e2083e812fe990243"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Thu Jan 13 19:59:52 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:52 2011 +0000"
      },
      "message": "dm crypt: simplify compatible table output\n\nRename cc-\u003ecipher_mode to cc-\u003ecipher_string and store the whole of the cipher\ninformation so it can easily be printed when processing the DM_DEV_STATUS ioctl.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "86a54a4802df10d23ccd655e2083e812fe990243",
      "tree": "168ccb5f1824e16fb55ac64e2d4754775aeaa958",
      "parents": [
        "085ae0651b2791f3a430ddb76da92925b9952e13"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Thu Jan 13 19:59:52 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:52 2011 +0000"
      },
      "message": "dm log userspace: add version number to comms\n\nThis patch adds a \u0027version\u0027 field to the \u0027dm_ulog_request\u0027\nstructure.\n\nThe \u0027version\u0027 field is taken from a portion of the unused\n\u0027padding\u0027 field in the \u0027dm_ulog_request\u0027 structure.  This\nwas done to avoid changing the size of the structure and\npossibly disrupting backwards compatibility.\n\nThe version number will help notify user-space daemons\nwhen a change has been made to the kernel/userspace\nlog API.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "085ae0651b2791f3a430ddb76da92925b9952e13",
      "tree": "8d15e4fed61628e285f7c22956f77319e5e839d5",
      "parents": [
        "909cc4fb48dd9870f6ebe4bd32cfbe37c102df62"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Thu Jan 13 19:59:51 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:51 2011 +0000"
      },
      "message": "dm log userspace: group clear and mark requests\n\nAllow the device-mapper log\u0027s \u0027mark\u0027 and \u0027clear\u0027 requests to be\ngrouped and processed in a batch.  This can significantly reduce the\namount of traffic going between the kernel and userspace (where the\nprocessing daemon resides).\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "909cc4fb48dd9870f6ebe4bd32cfbe37c102df62",
      "tree": "c88ef5cc536d49871a6b176d2742048c659bbdc8",
      "parents": [
        "8d35d3e37eed884ba15229a146df846f399909b4"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Thu Jan 13 19:59:50 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:50 2011 +0000"
      },
      "message": "dm log userspace: split flush queue\n\nSplit the \u0027flush_list\u0027, which contained a mix of both \u0027mark\u0027 and \u0027clear\u0027\nrequests, into two distinct lists (\u0027mark_list\u0027 and \u0027clear_list\u0027).\n\nThe device mapper log implementations (used by various DM targets) are\nallowed to cache \u0027mark\u0027 and \u0027clear\u0027 requests until a \u0027flush\u0027 is\nreceived.  Until now, these cached requests were kept in the same list.\nThey will now be put into distinct lists to facilitate group processing\nof these requests (in the next patch).\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "8d35d3e37eed884ba15229a146df846f399909b4",
      "tree": "795c77c941229f413750e99242f1b2199bebe7a1",
      "parents": [
        "4a038677df4da84e42fd68b5ab2dfa4d82baa444"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Jan 13 19:59:50 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:50 2011 +0000"
      },
      "message": "dm kcopyd: delay unplugging\n\nMake kcopyd merge more I/O requests by using device unplugging.\n\nWithout this patch, each I/O request is dispatched separately to the device.\nIf the device supports tagged queuing, there are many small requests sent\nto the device. To improve performance, this patch will batch as many requests\nas possible, allowing the queue to merge consecutive requests, and send them\nto the device at once.\n\nIn my tests (15k SCSI disk), this patch improves sequential write throughput:\n\n  Sequential write throughput (chunksize of 4k, 32k, 512k)\n  unpatched: 15.2, 18.5, 17.5 MB/s\n  patched:   14.4, 22.6, 23.0 MB/s\n\nIn most common uses (snapshot or two-way mirror), kcopyd is only used for\ntwo devices, one for reading and the other for writing, thus this optimization\nis implemented only for two devices. The optimization may be extended to n-way\nmirrors with some code complexity increase.\n\nWe keep track of two block devices to unplug (one for read and the\nother for write) and unplug them when exiting \"do_work\" thread.  If\nthere are more devices used (in theory it could happen, in practice it\nis rare), we unplug immediately.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "4a038677df4da84e42fd68b5ab2dfa4d82baa444",
      "tree": "83ba491f4af4cf736b44088ad23eab45dcf92277",
      "parents": [
        "69a8cfcda21017364df1c21b720daf304b5598a6"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Thu Jan 13 19:59:49 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:49 2011 +0000"
      },
      "message": "dm log userspace: trap all failed log construction errors\n\nWhen constructing a mirror log, it is possible for the initial request\nto fail for other reasons besides -ESRCH.  These must be handled too.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "69a8cfcda21017364df1c21b720daf304b5598a6",
      "tree": "c727770359b9295154194f0d8459ba7be3898b94",
      "parents": [
        "4a1aeb98297e17f4e0a8cdda919e63bf528b2e5d"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Thu Jan 13 19:59:49 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:49 2011 +0000"
      },
      "message": "dm crypt: set key size early\n\nSimplify key size verification (hexadecimal string) and\nset key size early in constructor.\n\n(Patch required by later changes.)\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "4a1aeb98297e17f4e0a8cdda919e63bf528b2e5d",
      "tree": "4709346914cbdab86200c59241262d0ea2cbd204",
      "parents": [
        "5fc2ffeabb9ee0fc0e71ff16b49f34f0ed3d05b4"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Thu Jan 13 19:59:48 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:48 2011 +0000"
      },
      "message": "dm: remove dm_mutex after bkl conversion\n\nThis patch replaces dm_mutex with _minor_lock in dm_blk_close()\nand then removes it.\n\nDuring the BKL conversion, commit 6e9624b8caec290d28b4c6d9ec75749df6372b87\n(block: push down BKL into .open and .release) pushed lock_kernel()\ndown into dm_blk_open/close calls.\nCommit 2a48fc0ab24241755dc93bfd4f01d68efab47f5a\n(block: autoconvert trivial BKL users to private mutex) converted it to a\nlocal mutex, but _minor_lock is sufficient.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "5fc2ffeabb9ee0fc0e71ff16b49f34f0ed3d05b4",
      "tree": "338c273e43209ebf5de5aef13186ce0666e7e06f",
      "parents": [
        "84c89557a302e18414a011cc52b1abd034860743"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Thu Jan 13 19:59:48 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:48 2011 +0000"
      },
      "message": "dm raid1: support discard\n\nEnable discard support in the DM mirror target.\nAlso change an existing use of \u0027bvec\u0027 to \u0027addr\u0027 in the union.\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "84c89557a302e18414a011cc52b1abd034860743",
      "tree": "6b6ca2c400b7a6e09da46b051c177317316f0b93",
      "parents": [
        "d9bf0b508ddfe19883b982b29a03c02ccbf53806"
      ],
      "author": {
        "name": "Peter Jones",
        "email": "pjones@redhat.com",
        "time": "Thu Jan 13 19:59:47 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:47 2011 +0000"
      },
      "message": "dm ioctl: allow rename to fill empty uuid\n\nAllow the uuid of a mapped device to be set after device creation.\nPreviously the uuid (which is optional) could only be set by\nDM_DEV_CREATE.  If no uuid was supplied it could not be set later.\n\nSometimes it\u0027s necessary to create the device before the uuid is known,\nand in such cases the uuid must be filled in after the creation.\n\nThis patch extends DM_DEV_RENAME to accept a uuid accompanied by\na new flag DM_UUID_FLAG.  This can only be done once and if no\nuuid was previously supplied.  It cannot be used to change an\nexisting uuid.\n\nDM_VERSION_MINOR is also bumped to 19 to indicate this interface\nextension is available.\n\nSigned-off-by: Peter Jones \u003cpjones@redhat.com\u003e\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "d9bf0b508ddfe19883b982b29a03c02ccbf53806",
      "tree": "815334dee3eabcf0cc35cd23928cc456c0212d2d",
      "parents": [
        "09c9d4c9b6a2b5909ae3c6265e4cd3820b636863"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Jan 13 19:59:47 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:47 2011 +0000"
      },
      "message": "dm io: remove BIO_RW_SYNCIO flag from kcopyd\n\nRemove the REQ_SYNC flag to improve write throughput when writing\nto the origin with a snapshot on the same device (using the CFQ I/O\nscheduler).\n\nSequential write throughput (chunksize of 4k, 32k, 512k)\n  unpatched:  8.5,  8.6,  9.3 MB/s\n  patched:   15.2, 18.5, 17.5 MB/s\n\nSnapshot exception reallocations are triggered by writes that are\nusually async, so mark the associated dm_io_request as async as well.\nThis helps when using the CFQ I/O scheduler because it has separate\nqueues for sync and async I/O.  Async is optimized for throughput; sync\nfor latency.  With this change we\u0027re consciously favoring throughput over\nlatency.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "09c9d4c9b6a2b5909ae3c6265e4cd3820b636863",
      "tree": "340925bf6af03a51f13f165cf68263be247c9d25",
      "parents": [
        "c217649bf2d60ac119afd71d938278cffd55962b"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Thu Jan 13 19:59:46 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:59:46 2011 +0000"
      },
      "message": "dm mpath: disable blk_abort_queue\n\nRevert commit 224cb3e981f1b2f9f93dbd49eaef505d17d894c2\n  dm: Call blk_abort_queue on failed paths\n\nMultipath began to use blk_abort_queue() to allow for\nlower latency path deactivation.  This was found to\ncause list corruption:\n\n   the cmd gets blk_abort_queued/timedout run on it and the scsi eh\n   somehow is able to complete and run scsi_queue_insert while\n   scsi_request_fn is still trying to process the request.\n\n   https://www.redhat.com/archives/dm-devel/2010-November/msg00085.html\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Mike Anderson \u003candmike@linux.vnet.ibm.com\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "c217649bf2d60ac119afd71d938278cffd55962b",
      "tree": "5addf2130d59f9fab614d852ac8fe7724ef78c9f",
      "parents": [
        "581548db3b3c0f6e25b500329eb02e3c72e7acbe"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Thu Jan 13 19:53:46 2011 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Jan 13 19:53:46 2011 +0000"
      },
      "message": "dm: dont take i_mutex to change device size\n\nNo longer needlessly hold md-\u003ebdev-\u003ebd_inode-\u003ei_mutex when changing the\nsize of a DM device.  This additional locking is unnecessary because\ni_size_write() is already protected by the existing critical section in\ndm_swap_table().  DM already has a reference on md-\u003ebdev so the\nassociated bd_inode may be changed without lifetime concerns.\n\nA negative side-effect of having held md-\u003ebdev-\u003ebd_inode-\u003ei_mutex was\nthat a concurrent DM device resize and flush (via fsync) would deadlock.\nDropping md-\u003ebdev-\u003ebd_inode-\u003ei_mutex eliminates this potential for\ndeadlock.  The following reproducer no longer deadlocks:\n  https://www.redhat.com/archives/dm-devel/2009-July/msg00284.html\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "c975ffadd144e8e99e83e8f80ee94efce4f170b5",
      "tree": "6a8b96f93e4cc5466f9f7e26090bb75c226e6ee2",
      "parents": [
        "1e2de47cddc70ae973cf468e2f2954b4ae80f4e3"
      ],
      "author": {
        "name": "Hans-Christian Egtvedt",
        "email": "hans-christian.egtvedt@atmel.com",
        "time": "Thu Jan 13 12:18:32 2011 +0100"
      },
      "committer": {
        "name": "Hans-Christian Egtvedt",
        "email": "hans-christian.egtvedt@atmel.com",
        "time": "Thu Jan 13 20:41:15 2011 +0100"
      },
      "message": "avr32: update default configuration files for Atmel boards\n\nThis patch adjusts some values to make the default configuration for Atmel\nboards more similar, and adds missing values to enable required functions. Also\nremove defined symbols for functions not in use.\n\nSigned-off-by: Hans-Christian Egtvedt \u003chans-christian.egtvedt@atmel.com\u003e\n"
    },
    {
      "commit": "1e2de47cddc70ae973cf468e2f2954b4ae80f4e3",
      "tree": "94449ebcdcf1328fe09fc7901abb799c34f72c5a",
      "parents": [
        "992a88b62ca327f10d82dbad71a8c061d4229888"
      ],
      "author": {
        "name": "John Stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Mon Nov 01 13:12:27 2010 -0700"
      },
      "committer": {
        "name": "Hans-Christian Egtvedt",
        "email": "hans-christian.egtvedt@atmel.com",
        "time": "Thu Jan 13 20:41:11 2011 +0100"
      },
      "message": "avr32: Convert to clocksource_register_hz\n\nThis converts the avr32 clocksource to use clocksource_register_hz.\n\nThis is untested, so any assistance in testing would be appreciated!\n\nCC: Hans-Christian Egtvedt \u003chans-christian.egtvedt@atmel.com\u003e\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\n"
    },
    {
      "commit": "992a88b62ca327f10d82dbad71a8c061d4229888",
      "tree": "6056226e8480f5ed766d7364fb1c6762c7b5eaca",
      "parents": [
        "664cb7142ced8b827e92e1851d1ed2cae922f225"
      ],
      "author": {
        "name": "Hans-Christian Egtvedt",
        "email": "hans-christian.egtvedt@atmel.com",
        "time": "Thu Dec 09 09:02:06 2010 +0100"
      },
      "committer": {
        "name": "Hans-Christian Egtvedt",
        "email": "hans-christian.egtvedt@atmel.com",
        "time": "Thu Jan 13 20:41:06 2011 +0100"
      },
      "message": "avr32: make architecture sys_clone prototype match asm-generic prototype\n\nThis patch will fix the arguments to the architecture sys_clone() function to\nmatch the asm-generic/syscalls.h prototype. In the same go remove the\narchitecture specific prototype for the same function.\n\nThe sys_clone() function is only called from assembly, hence the argument types\nwere not having any affect.\n\nSigned-off-by: Hans-Christian Egtvedt \u003chans-christian.egtvedt@atmel.com\u003e\n"
    },
    {
      "commit": "664cb7142ced8b827e92e1851d1ed2cae922f225",
      "tree": "decbf6235cc3d21e316d529e4ac5870fdbb214e4",
      "parents": [
        "12be8e71bf17d403b8f7866a3581ef34b77ea16f"
      ],
      "author": {
        "name": "Hans-Christian Egtvedt",
        "email": "hans-christian.egtvedt@atmel.com",
        "time": "Thu Dec 09 00:19:33 2010 +0100"
      },
      "committer": {
        "name": "Hans-Christian Egtvedt",
        "email": "hans-christian.egtvedt@atmel.com",
        "time": "Thu Jan 13 20:41:01 2011 +0100"
      },
      "message": "avr32: use syscall prototypes from asm-generic instead of arch\n\nThis patch removes the redundant syscalls prototypes in the architecture\nspecific syscalls.h header file. These were identical with the ones in\nasm-generic/syscalls.h.\n\nSigned-off-by: Hans-Christian Egtvedt \u003chans-christian.egtvedt@atmel.com\u003e\nReported-by: Peter Huewe \u003cPeterHuewe@gmx.de\u003e\nReported-by: Sven Schnelle \u003csvens@stackframe.org\u003e\nCc: stable \u003cstable@kernel.org\u003e\n"
    },
    {
      "commit": "12be8e71bf17d403b8f7866a3581ef34b77ea16f",
      "tree": "4b98231705bb46d21fac60751ca3e2392663d154",
      "parents": [
        "36b471e047a77eaf3ec8e693bd9d8291c4dfd864"
      ],
      "author": {
        "name": "Hans-Christian Egtvedt",
        "email": "hans-christian.egtvedt@atmel.com",
        "time": "Thu Dec 09 08:54:55 2010 +0100"
      },
      "committer": {
        "name": "Hans-Christian Egtvedt",
        "email": "hans-christian.egtvedt@atmel.com",
        "time": "Thu Jan 13 20:40:57 2011 +0100"
      },
      "message": "avr32: disable kprobes for all default configurations\n\nThis patch will disable kprobes for all the default AVR32 board configurations.\nThis works around a regression in kprobes which seems to be related to AVR32 is\nnow lacking the struct kprobe_ctlblk.\n\nSigned-off-by: Hans-Christian Egtvedt \u003chans-christian.egtvedt@atmel.com\u003e\n"
    },
    {
      "commit": "36b471e047a77eaf3ec8e693bd9d8291c4dfd864",
      "tree": "eaedd7ca560587611a34c0ff05503d2a129e956b",
      "parents": [
        "3c0eee3fe6a3a1c745379547c7e7c904aa64f6d5"
      ],
      "author": {
        "name": "Vasiliy Kulikov",
        "email": "segoon@openwall.com",
        "time": "Fri Nov 26 20:06:12 2010 +0300"
      },
      "committer": {
        "name": "Hans-Christian Egtvedt",
        "email": "hans-christian.egtvedt@atmel.com",
        "time": "Thu Jan 13 20:40:53 2011 +0100"
      },
      "message": "avr32: boards: setup: use IS_ERR() instead of NULL check\n\nclk_get() returns ERR_PTR() on error, not NULL.\n\nSigned-off-by: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nAcked-by: Hans-Christian Egtvedt \u003chans-christian.egtvedt@atmel.com\u003e\n"
    },
    {
      "commit": "581548db3b3c0f6e25b500329eb02e3c72e7acbe",
      "tree": "09b5633ee5432d2c8f1d56b8d7abb7a2f41337d0",
      "parents": [
        "03a4491f5d6835028dbbcf36990599c5c9f6ff55",
        "dff0092bcdb7b21ba2e862fed7c92e79dfb26806"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 11:02:55 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 11:02:55 2011 -0800"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6\n\n* \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:\n  [IA64] Fix format warning in arch/ia64/kernel/acpi.c\n"
    },
    {
      "commit": "03a4491f5d6835028dbbcf36990599c5c9f6ff55",
      "tree": "e2abb2baa5b71dcf1eb3786f339afbae5d27d7e4",
      "parents": [
        "7b0cb1bdac9e941141e3790785955ed933d476f3",
        "1427130425c1239d977e8891c3a8923f53a6e352"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 11:02:05 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 11:02:05 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:\n  firewire: ohci: fix compilation on arches without PAGE_KERNEL_RO\n"
    },
    {
      "commit": "7b0cb1bdac9e941141e3790785955ed933d476f3",
      "tree": "8652bdbe540f5552696b3b8827189eda4b2e01e4",
      "parents": [
        "275220f0fcff1adf28a717076e00f575edf05fda",
        "e6e1ee936d61d697735d17517678a626b7701ce4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:50:24 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:50:24 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38/drivers\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.38/drivers\u0027 of git://git.kernel.dk/linux-2.6-block:\n  cciss: reinstate proper FIFO order of command queue list\n  floppy: replace NO_GEOM macro with a function\n"
    },
    {
      "commit": "275220f0fcff1adf28a717076e00f575edf05fda",
      "tree": "d249bccc80c64443dab211639050c4fb14332648",
      "parents": [
        "fe3c560b8a22cb28e54fe8950abef38e88d75831",
        "81c5e2ae33c4b19e53966b427e33646bf6811830"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:45:01 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:45:01 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.38/core\u0027 of git://git.kernel.dk/linux-2.6-block: (43 commits)\n  block: ensure that completion error gets properly traced\n  blktrace: add missing probe argument to block_bio_complete\n  block cfq: don\u0027t use atomic_t for cfq_group\n  block cfq: don\u0027t use atomic_t for cfq_queue\n  block: trace event block fix unassigned field\n  block: add internal hd part table references\n  block: fix accounting bug on cross partition merges\n  kref: add kref_test_and_get\n  bio-integrity: mark kintegrityd_wq highpri and CPU intensive\n  block: make kblockd_workqueue smarter\n  Revert \"sd: implement sd_check_events()\"\n  block: Clean up exit_io_context() source code.\n  Fix compile warnings due to missing removal of a \u0027ret\u0027 variable\n  fs/block: type signature of major_to_index(int) to major_to_index(unsigned)\n  block: convert !IS_ERR(p) \u0026\u0026 p to !IS_ERR_NOR_NULL(p)\n  cfq-iosched: don\u0027t check cfqg in choose_service_tree()\n  fs/splice: Pull buf-\u003eops-\u003econfirm() from splice_from_pipe actors\n  cdrom: export cdrom_check_events()\n  sd: implement sd_check_events()\n  sr: implement sr_check_events()\n  ...\n"
    },
    {
      "commit": "fe3c560b8a22cb28e54fe8950abef38e88d75831",
      "tree": "88db8742152559e1840832970066816e72a9009b",
      "parents": [
        "d20056032e20061db6583f517a4d3ea4492a94f1",
        "dad92924ea4c9167e64a2835ec9310c73570b10b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:40:57 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:40:57 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus/i2c-2638\u0027 of git://git.fluff.org/bjdooks/linux\n\n* \u0027for-linus/i2c-2638\u0027 of git://git.fluff.org/bjdooks/linux:\n  i2c-bfin-twi: move setup to the earlier subsys initcall\n  i2c-bfin-twi: handle faulty slave devices better\n  i2c-mv64xxx: send repeated START between messages in xfer\n  i2c-nomadik: fix regression on adapter name\n  i2c-omap: Set latency requirements only once for several messages\n  i2c-eg20t: add driver for Intel EG20T\n  i2c-ocores: add some device tree documentation\n  i2c-ocores: Use devres for resource allocation\n  i2c-ocores: Adapt for device tree\n  i2c-iop3xx: add iomem annotation\n"
    },
    {
      "commit": "d20056032e20061db6583f517a4d3ea4492a94f1",
      "tree": "2cedbf4c8a427a987bdd6799eecfc441816bf9d0",
      "parents": [
        "86f6f9b64a730844f1438cbedfacd6fb0170a7f7",
        "ceb50f33d478ca42baf72257381a923c797b418b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:40:00 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:40:00 2011 -0800"
      },
      "message": "Merge branch \u0027rmobile-latest\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6\n\n* \u0027rmobile-latest\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6:\n  ARM: mach-shmobile: Kill off unused !gpio_is_valid() case\n  ARM: mach-shmobile: sh7372 Enable SDIO IRQs for Mackerel\n  ARM: mach-shmobile: sh7377 Enable SDIO IRQs\n  ARM: mach-shmobile: sh7367 Enable SDIO IRQs\n  ARM: mach-shmobile: sh7372 Enable SDIO IRQs\n  ARM: mach-shmobile: mackerel: Add touchscreen ST1232 support\n  ARM: mach-shmobile: ap4eb: SCIF port for earlyprintk when using zboot\n  ARM: mach-shmobile: mackerel: SCIF port for earlyprintk when using zboot\n  ARM: mach-shmobile: mackerel: Add support get_cd in CN23\n"
    },
    {
      "commit": "86f6f9b64a730844f1438cbedfacd6fb0170a7f7",
      "tree": "cd80f8610b444ae3bd2ebfc136c2c3299a52bd9b",
      "parents": [
        "d33a6291c1c577ff2272edab7416a0f7308e1cef",
        "8b6f08eaef16dfcfebc32fa9a017bf70336ad9ec"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:39:38 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:39:38 2011 -0800"
      },
      "message": "Merge branch \u0027sh-latest\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6\n\n* \u0027sh-latest\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (31 commits)\n  sh: Add support for AP-SH4AD-0A board.\n  sh: Add support for AP-SH4A-3A board.\n  sh: Add a new mach type for alpha project boards.\n  serial: sh-sci: build fixes.\n  sh: sh7372 SH4AL-DSP probe support\n  sh: sh7366 Enable SDIO IRQs\n  sh: sh7343 Enable SDIO IRQs\n  sh: mach-ecovec24: enable runtime PM for SDHI\n  sh: sh7723 / ap325rxa enable SDIO IRQs\n  sh: sh7722 Enable SDIO IRQs\n  sh: sh7724 Enable SDIO IRQs\n  sh: Fix up legacy PTEA space attribute mapping.\n  sh: Stub out legacy PCC pgprot encoding for X2 TLBs.\n  sh: constify prefetch pointers.\n  sh: Add a machvec callback for early memblock reservations.\n  sh: update sh7757lcr_defconfig\n  sh: add PVR probing for SH7757 3rd cut\n  sh: Use device_initcall() instead of __initcall()\n  sh: intc - convert board specific landisk code\n  sh: Move init_landisk_IRQ to header file\n  ...\n"
    },
    {
      "commit": "d33a6291c1c577ff2272edab7416a0f7308e1cef",
      "tree": "9efd2f6f2fbb0586af72531110acdf9e769285ab",
      "parents": [
        "66dc918d42eaaa9afe42a47d07526765162017a9",
        "f00117a78341e330eecebdfe74cce345ed068802"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:39:14 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:39:14 2011 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-2.6: (29 commits)\n  video: move SH_MIPI_DSI/SH_LCD_MIPI_DSI to the top of menu\n  fbdev: Implement simple blanking in pseudocolor modes for vt8500lcdfb\n  video: imx: Update the manufacturer\u0027s name\n  nuc900fb: don\u0027t treat NULL clk as an error\n  s3c2410fb: don\u0027t treat NULL clk as an error\n  video: tidy up modedb formatting.\n  video: matroxfb: Correct video option in comments and kernel config help.\n  fbdev: sh_mobile_hdmi: simplify pointer handling\n  fbdev: sh_mobile_hdmi: framebuffer notifiers have to be registered\n  fbdev: sh_mobile_hdmi: add command line option to use the preferred EDID mode\n  OMAP: DSS2: Introduce omap_channel as an omap_dss_device parameter, add new overlay manager.\n  OMAP: DSS2: Use dss_features to handle DISPC bits removed on OMAP4\n  OMAP: DSS2: LCD2 Channel Changes for DISPC\n  OMAP: DSS2: Change remaining DISPC functions for new omap_channel argument\n  OMAP: DSS2: Introduce omap_channel argument to DISPC functions used by interface drivers\n  OMAP: DSS2: Represent DISPC register defines with channel as parameter\n  OMAP: DSS2: Add dss_features for omap4 and overlay manager related features\n  OMAP: DSS2: Clean up DISPC color mode validation checks\n  OMAP: DSS2: Add back authors of panel-generic.c based drivers\n  OMAP: DSS2: remove generic DPI panel driver duplicated panel drivers\n  ...\n"
    },
    {
      "commit": "66dc918d42eaaa9afe42a47d07526765162017a9",
      "tree": "947411841773dfb076f1aa78bc5be868bc4281a6",
      "parents": [
        "b2034d474b7e1e8578bd5c2977024b51693269d9",
        "6db9a0f326d3144d790d9479309df480a8f562e4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:32:54 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:32:54 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: (348 commits)\n  ALSA: hda - Fix NULL-derefence with a single mic in STAC auto-mic detection\n  ALSA: hda - Add missing NID 0x19 fixup for Sony VAIO\n  ALSA: hda - Fix ALC275 enable hardware EQ for SONY VAIO\n  ALSA: oxygen: fix Xonar DG input\n  ALSA: hda - Fix EAPD on Lenovo NB ALC269 to low\n  ALSA: hda - Fix missing EAPD for Acer 4930G\n  ALSA: hda: Disable 4/6 channels on some NVIDIA GPUs.\n  ALSA: hda - Add static_hdmi_pcm option to HDMI codec parser\n  ALSA: hda - Don\u0027t refer ELD when unplugged\n  ASoC: tpa6130a2: Fix compiler warning\n  ASoC: tlv320dac33: Add DAPM selection for LOM invert\n  ASoC: DMIC codec: Adding a generic DMIC codec\n  ALSA: snd-usb-us122l: Fix missing NULL checks\n  ALSA: snd-usb-us122l: Fix MIDI output\n  ASoC: soc-cache: Fix invalid memory access during snd_soc_lzo_cache_sync()\n  ASoC: Fix section mismatch in wm8995.c\n  ALSA: oxygen: add S/PDIF source selection for Claro cards\n  ALSA: oxygen: fix CD/MIDI for X-Meridian (2G)\n  ASoC: fix migor audio build\n  ALSA: include delay.h for msleep in Xonar DG support\n  ...\n"
    },
    {
      "commit": "b2034d474b7e1e8578bd5c2977024b51693269d9",
      "tree": "e43969bf7c2ba89884c2580f56978826f1014520",
      "parents": [
        "27d189c02ba25851973c8582e419c0bded9f7e5b",
        "924241575a85249b9d410e38f5b2fcad9035e45c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:27:28 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:27:28 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (41 commits)\n  fs: add documentation on fallocate hole punching\n  Gfs2: fail if we try to use hole punch\n  Btrfs: fail if we try to use hole punch\n  Ext4: fail if we try to use hole punch\n  Ocfs2: handle hole punching via fallocate properly\n  XFS: handle hole punching via fallocate properly\n  fs: add hole punching to fallocate\n  vfs: pass struct file to do_truncate on O_TRUNC opens (try #2)\n  fix signedness mess in rw_verify_area() on 64bit architectures\n  fs: fix kernel-doc for dcache::prepend_path\n  fs: fix kernel-doc for dcache::d_validate\n  sanitize ecryptfs -\u003emount()\n  switch afs\n  move internal-only parts of ncpfs headers to fs/ncpfs\n  switch ncpfs\n  switch 9p\n  pass default dentry_operations to mount_pseudo()\n  switch hostfs\n  switch affs\n  switch configfs\n  ...\n"
    },
    {
      "commit": "27d189c02ba25851973c8582e419c0bded9f7e5b",
      "tree": "be142d664bc4e3cec7ab2878a243343f46e897ee",
      "parents": [
        "a1703154200c390ab03c10224c586e815d3e31e8",
        "55db8387a5e8d07407f0b7c6b2526417a2bc6243"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:25:58 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:25:58 2011 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (46 commits)\n  hwrng: via_rng - Fix memory scribbling on some CPUs\n  crypto: padlock - Move padlock.h into include/crypto\n  hwrng: via_rng - Fix asm constraints\n  crypto: n2 - use __devexit not __exit in n2_unregister_algs\n  crypto: mark crypto workqueues CPU_INTENSIVE\n  crypto: mv_cesa - dont return PTR_ERR() of wrong pointer\n  crypto: ripemd - Set module author and update email address\n  crypto: omap-sham - backlog handling fix\n  crypto: gf128mul - Remove experimental tag\n  crypto: af_alg - fix af_alg memory_allocated data type\n  crypto: aesni-intel - Fixed build with binutils 2.16\n  crypto: af_alg - Make sure sk_security is initialized on accept()ed sockets\n  net: Add missing lockdep class names for af_alg\n  include: Install linux/if_alg.h for user-space crypto API\n  crypto: omap-aes - checkpatch --file warning fixes\n  crypto: omap-aes - initialize aes module once per request\n  crypto: omap-aes - unnecessary code removed\n  crypto: omap-aes - error handling implementation improved\n  crypto: omap-aes - redundant locking is removed\n  crypto: omap-aes - DMA initialization fixes for OMAP off mode\n  ...\n"
    },
    {
      "commit": "a1703154200c390ab03c10224c586e815d3e31e8",
      "tree": "df90865eed3cfdf7af8664b5453a90e09d17480a",
      "parents": [
        "67b5ad9a63caa2ce56ddd2b22b802dae00d72c13",
        "766fc43973b16f9becb6b7402b3e052dbb84adee"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:25:24 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:25:24 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:\n  rbd: fix cleanup when trying to mount inexistent image\n  net/ceph: make ceph_msgr_wq non-reentrant\n  ceph: fsc-\u003e*_wq\u0027s aren\u0027t used in memory reclaim path\n  ceph: Always free allocated memory in osdmap_decode()\n  ceph: Makefile: Remove unnessary code\n  ceph: associate requests with opening sessions\n  ceph: drop redundant r_mds field\n  ceph: implement DIRLAYOUTHASH feature to get dir layout from MDS\n  ceph: add dir_layout to inode\n"
    },
    {
      "commit": "67b5ad9a63caa2ce56ddd2b22b802dae00d72c13",
      "tree": "f2ba8bda2e62efedf6009ab74e9e65a097f6e24d",
      "parents": [
        "174a86dff2f3c72ef55d994b1e7faa7099d3f844",
        "88cce427626070f7d7eb33994e3ff7b4db3292c5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:24:52 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:24:52 2011 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog:\n  watchdog: Add MCF548x watchdog driver.\n  watchdog: add driver for the Atheros AR71XX/AR724X/AR913X SoCs\n  watchdog: Add TCO support for nVidia chipsets\n  watchdog: Add support for sp5100 chipset TCO\n  watchdog: f71808e_wdt: add F71862FG, F71869 to Kconfig\n  watchdog: iTCO_wdt: TCO Watchdog patch for Intel DH89xxCC PCH\n  watchdog: iTCO_wdt: TCO Watchdog patch for Intel NM10 DeviceIDs\n  watchdog: ks8695_wdt: include mach/hardware.h instead of mach/timex.h.\n  watchdog: Propagate Book E WDT period changes to all cores\n  watchdog: add CONFIG_WATCHDOG_NOWAYOUT support to PowerPC Book-E watchdog driver\n  watchdog: alim7101_wdt: fix compiler warning on alim7101_pci_tbl\n  watchdog: alim1535_wdt: fix compiler warning on ali_pci_tbl\n  watchdog: Fix reboot on W83627ehf chipset.\n  watchdog: Add watchdog support for W83627DHG chip\n  watchdog: f71808e_wdt: Add Fintek F71869 watchdog\n  watchdog: add f71862fg support\n  watchdog: clean-up f71808e_wdt.c\n"
    },
    {
      "commit": "174a86dff2f3c72ef55d994b1e7faa7099d3f844",
      "tree": "0129019c0bf7117b81afd28fc05d3a882088f385",
      "parents": [
        "1896a1346a80b2dac1f63a338f1e2ee0b6484646",
        "06f3d9fb4a7d3528121446e94ee37b95bba4d106"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:24:29 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:24:29 2011 -0800"
      },
      "message": "Merge branch \u0027hwmon-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging\n\n* \u0027hwmon-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:\n  hwmon: (dme1737) Minor cleanups\n  hwmon: (dme1737) Add support for in7 for SCH5127\n  hwmon: (emc1403) Add EMC1423 support\n  hwmon: (w83627hf) Document W83627THF voltage pin mapping\n  hwmon: (w83793) Drop useless mutex\n  hwmon: (fschmd) Drop useless mutex\n  hwmon: (w83781d) Use pr_fmt and pr_\u003clevel\u003e\n  hwmon: (pc87427) Use pr_fmt and pr_\u003clevel\u003e\n  hwmon: (pc87360) Use pr_fmt and pr_\u003clevel\u003e\n  hwmon: (lm78) Use pr_fmt and pr_\u003clevel\u003e\n  hwmon: (it87) Use pr_fmt and pr_\u003clevel\u003e\n  hwmon: Schedule the removal of the old intrusion detection interfaces\n  hwmon: (w83793) Implement the standard intrusion detection interface\n  hwmon: (w83792d) Implement the standard intrusion detection interface\n  hwmon: (adm9240) Implement the standard intrusion detection interface\n  hwmon: (via686a) Initialize fan_div values\n  hwmon: (w83795) Silent false warning from gcc\n  hwmon: (ads7828) Update email contact details\n"
    },
    {
      "commit": "1896a1346a80b2dac1f63a338f1e2ee0b6484646",
      "tree": "825b59dd33886398f541488d2b5eb65cbd353bdb",
      "parents": [
        "e691d24e9c5007486bef59c589c2a2d784e0c30b",
        "fa63bd4aa53aecc38956cbdd50f8ff9ed0d6d5ba"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:24:07 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:24:07 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lrg/voltage-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lrg/voltage-2.6: (45 commits)\n  regulator: missing index in PTR_ERR() in isl6271a_probe()\n  regulator: Assign return value of mc13xxx_reg_rmw to ret\n  regulator: Add initial per-regulator debugfs support\n  regulator: Make regulator_has_full_constraints a bool\n  regulator: Clean up logging a bit\n  regulator: Optimise out noop voltage changes\n  regulator: Add API to re-apply voltage to hardware\n  regulator: Staticise non-exported functions in mc13892\n  regulator: Only notify voltage changes when they succeed\n  regulator: Provide a selector based set_voltage_sel() operation\n  regulator: Factor out voltage set operation into a separate function\n  regulator: Convert WM8994 to use get_voltage_sel()\n  regulator: Convert WM835x to use get_voltage_sel()\n  regulator: Allow modular build of mc13xxx-core\n  regulator: support PMIC mc13892\n  make mc13783 regulator code generic\n  Change the register name definitions for mc13783\n  mach-ux500: Updated and connected ab8500 regulator board configuration\n  regulators: Removed macros for initialization of ab8500 regulators\n  regulators: Added verbose debug messages to ab8500 regulators\n  ...\n"
    }
  ],
  "next": "e691d24e9c5007486bef59c589c2a2d784e0c30b"
}
