)]}'
{
  "log": [
    {
      "commit": "9f572e3f96b8a2ef70dcb881e64c7b9c10057d98",
      "tree": "26accc06afbe7149d2aed6930cc50c5e865d6d28",
      "parents": [
        "901608d9045146aec6f14a7777ea4b1501c379f0"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jan 06 14:40:29 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:10 2009 -0800"
      },
      "message": "mm: remove CONFIG_OUT_OF_LINE_PFN_TO_PAGE\n\nNo architectures use CONFIG_OUT_OF_LINE_PFN_TO_PAGE - it can be removed.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@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": "901608d9045146aec6f14a7777ea4b1501c379f0",
      "tree": "0155189f48479b920855dedccba6829363376d4d",
      "parents": [
        "67d58ac47d25f7e2a105248a4aea6113131ab874"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Jan 06 14:40:29 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:09 2009 -0800"
      },
      "message": "mm: introduce get_mm_hiwater_xxx(), fix taskstats-\u003ehiwater_xxx accounting\n\nxacct_add_tsk() relies on do_exit()-\u003eupdate_hiwater_xxx() and uses\nmm-\u003ehiwater_xxx directly, this leads to 2 problems:\n\n- taskstats_user_cmd() can call fill_pid()-\u003exacct_add_tsk() at any\n  moment before the task exits, so we should check the current values of\n  rss/vm anyway.\n\n- do_exit()-\u003eupdate_hiwater_xxx() calls are racy.  An exiting thread can\n  be preempted right before mm-\u003ehiwater_xxx \u003d new_val, and another thread\n  can use A_LOT of memory and exit in between.  When the first thread\n  resumes it can be the last thread in the thread group, in that case we\n  report the wrong hiwater_xxx values which do not take A_LOT into\n  account.\n\nIntroduce get_mm_hiwater_rss() and get_mm_hiwater_vm() helpers and change\nxacct_add_tsk() to use them.  The first helper will also be used by\nrusage-\u003eru_maxrss accounting.\n\nKill do_exit()-\u003eupdate_hiwater_xxx() calls.  Unless we are going to\ndecrease rss/vm there is no point to update mm-\u003ehiwater_xxx, and nobody\ncan look at this mm_struct when exit_mmap() actually unmaps the memory.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Hugh Dickins \u003chugh@veritas.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "856bf4d717feb8c55d4e2f817b71ebb70cfbc67b",
      "tree": "f44790d9b8f42223955d1866645103ac5f9c68a3",
      "parents": [
        "38f21977663126fef53f5585e7f1653d8ebe55c4"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Jan 06 14:40:26 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:09 2009 -0800"
      },
      "message": "fs: sys_sync fix\n\ns_syncing livelock avoidance was breaking data integrity guarantee of\nsys_sync, by allowing sys_sync to skip writing or waiting for superblocks\nif there is a concurrent sys_sync happening.\n\nThis livelock avoidance is much less important now that we don\u0027t have the\nget_super_to_sync() call after every sb that we sync.  This was replaced\nby __put_super_and_need_restart.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4f5a99d64c17470a784a6c68064207d82e3e74a5",
      "tree": "2a3e0f0c3990bb8dbda2cdaa506a64180e5cbff2",
      "parents": [
        "e8ea1759138d4279869f52bfb7dca8f02f8ccfe5"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Jan 06 14:40:25 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:09 2009 -0800"
      },
      "message": "fs: remove WB_SYNC_HOLD\n\nRemove WB_SYNC_HOLD.  The primary motiviation is the design of my\nanti-starvation code for fsync.  It requires taking an inode lock over the\nsync operation, so we could run into lock ordering problems with multiple\ninodes.  It is possible to take a single global lock to solve the ordering\nproblem, but then that would prevent a future nice implementation of \"sync\nmultiple inodes\" based on lock order via inode address.\n\nSeems like a backward step to remove this, but actually it is busted\nanyway: we can\u0027t use the inode lists for data integrity wait: an inode can\nbe taken off the dirty lists but still be under writeback.  In order to\nsatisfy data integrity semantics, we should wait for it to finish\nwriteback, but if we only search the dirty lists, we\u0027ll miss it.\n\nIt would be possible to have a \"writeback\" list, for sys_sync, I suppose.\nBut why complicate things by prematurely optimise?  For unmounting, we\ncould avoid the \"livelock avoidance\" code, which would be easier, but\nagain premature IMO.\n\nFixing the existing data integrity problem will come next.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "edc315fd222497ae4f4b959a9e31ada1e68a4755",
      "tree": "aaf1a6b015368c52097ed0c362a24bf18e40897f",
      "parents": [
        "2509ef26db4699a5d9fa876e90ddfc107afcab84"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:40:11 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:07 2009 -0800"
      },
      "message": "badpage: remove vma from page_remove_rmap\n\nRemove page_remove_rmap()\u0027s vma arg, which was only for the Eeek message.\nAnd remove the BUG_ON(page_mapcount(page) \u003d\u003d 0) from CONFIG_DEBUG_VM\u0027s\npage_dup_rmap(): we\u0027re trying to be more resilient about that than BUGs.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2509ef26db4699a5d9fa876e90ddfc107afcab84",
      "tree": "09e65185142c60b5d766d8b75f3cbc8a65de6a39",
      "parents": [
        "22b31eec63e5f2e219a3ee15f456897272bc73e8"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:40:10 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:07 2009 -0800"
      },
      "message": "badpage: zap print_bad_pte on swap and file\n\nComplete zap_pte_range()\u0027s coverage of bad pagetable entries by calling\nprint_bad_pte() on a pte_file in a linear vma and on a bad swap entry.\nThat needs free_swap_and_cache() to tell it, which will also have shown\none of those \"swap_free\" errors (but with much less information).\n\nSimilar checks in fork\u0027s copy_one_pte()?  No, that would be more noisy\nthan helpful: we\u0027ll see them when parent and child exec or exit.\n\nWhere do_nonlinear_fault() calls print_bad_pte(): omit !VM_CAN_NONLINEAR\ncase, that could only be a bug in sys_remap_file_pages(), not a bad pte.\nVM_FAULT_OOM rather than VM_FAULT_SIGBUS?  Well, okay, that is consistent\nwith what happens if do_swap_page() operates a bad swap entry; but don\u0027t\nwe have patches to be more careful about killing when VM_FAULT_OOM?\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "79f4b7bf393e67bbffec807cc68caaefc72b82ee",
      "tree": "5bee7c12fe49e63e38d74afc6bbd2933906ecb9b",
      "parents": [
        "0f64415d42760379753e6088787ce3fd3e069509"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:40:05 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:07 2009 -0800"
      },
      "message": "badpage: simplify page_alloc flag check+clear\n\nSimplify the PAGE_FLAGS checking and clearing when freeing and allocating\na page: check the same flags as before when freeing, clear ALL the flags\n(unless PageReserved) when freeing, check ALL flags off when allocating.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "20137a490f397d9c01fc9fadd83a8d198bda4477",
      "tree": "38e2d904e06f576a825cca3e1eaad7da6fd55947",
      "parents": [
        "7992fde72ce06c73280a1939b7a1e903bc95ef85"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:54 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:05 2009 -0800"
      },
      "message": "swapfile: swapon randomize if nonrot\n\nSwap allocation has always started from the beginning of the swap area;\nbut if we\u0027re dealing with a solidstate swap device which can only remap\nblocks within limited zones, that would sooner wear out the first zone.\n\nTherefore sys_swapon() test whether blk_queue is non-rotational, and if so\nrandomize the cluster_next starting position for allocation.\n\nIf blk_queue is nonrot, note SWP_SOLIDSTATE for later use, and report it\nwith an \"SS\" at the right end of the kernel\u0027s \"Adding ...  swap\" message\n(so that if it\u0027s both nonrot and discardable, \"SSD\" will be shown there).\nPerhaps something should be shown in /proc/swaps (swapon -s), but we have\nto be more cautious before making any addition to that format.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nCc: Donjun Shin \u003cdjshin90@gmail.com\u003e\nCc: Tejun Heo \u003cteheo@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7992fde72ce06c73280a1939b7a1e903bc95ef85",
      "tree": "8e8ef30ec4e29b325f70c2d01d2a9def192b5c64",
      "parents": [
        "6a6ba83175c029c7820765bae44692266b29e67a"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:53 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:05 2009 -0800"
      },
      "message": "swapfile: swap allocation use discard\n\nWhen scan_swap_map() finds a free cluster of swap pages to allocate,\ndiscard the old contents of the cluster if the device supports discard.\nBut don\u0027t bother when swap is so fragmented that we allocate single pages.\n\nBe careful about racing allocations made while we\u0027re scanning for a\ncluster; and hold up allocations made while we\u0027re discarding.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nCc: Donjun Shin \u003cdjshin90@gmail.com\u003e\nCc: Tejun Heo \u003cteheo@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6a6ba83175c029c7820765bae44692266b29e67a",
      "tree": "30bfb4938c73b715eb90dd15c09777fe0bbf93e6",
      "parents": [
        "ebebbbe904634b0ca1c674457b399f68db5e05b1"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:51 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:05 2009 -0800"
      },
      "message": "swapfile: swapon use discard (trim)\n\nWhen adding swap, all the old data on swap can be forgotten: sys_swapon()\ndiscard all but the header page of the swap partition (or every extent but\nthe header of the swap file), to give a solidstate swap device the\nopportunity to optimize its wear-levelling.\n\nIf that succeeds, note SWP_DISCARDABLE for later use, and report it with a\n\"D\" at the right end of the kernel\u0027s \"Adding ...  swap\" message.  Perhaps\nsomething should be shown in /proc/swaps (swapon -s), but we have to be\nmore cautious before making any addition to that format.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nCc: Donjun Shin \u003cdjshin90@gmail.com\u003e\nCc: Tejun Heo \u003cteheo@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ebebbbe904634b0ca1c674457b399f68db5e05b1",
      "tree": "168c6c1193580e40ba1916ebaff822e15e8ee186",
      "parents": [
        "81e33971271ec8603fe696731ff9967afb99e729"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:50 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:05 2009 -0800"
      },
      "message": "swapfile: rearrange scan and swap_info\n\nBefore making functional changes, rearrange scan_swap_map() to simplify\nsubsequent diffs.  Actually, there is one functional change in there:\nleave cluster_nr negative while scanning for a new cluster - resetting it\nearly increased the likelihood that when we have difficulty finding a free\ncluster, another task may come in and try doing exactly the same - just a\nwaste of cpu.\n\nBefore making functional changes, rearrange struct swap_info_struct\nslightly: flags will be needed as an unsigned long (for wait_on_bit), next\nis a good int to pair with prio, old_block_size is uninteresting so shift\nit to the end.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "22c6f8fdb31993cf49bdd4a47b64a7002391e1c7",
      "tree": "4721575904bc220bed559efb95f04f32a1febbfe",
      "parents": [
        "73fd8748ab0b9b3ddd178bea1d7ae03372033d96"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:48 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:05 2009 -0800"
      },
      "message": "swapfile: remove SWP_ACTIVE mask\n\nRemove the SWP_ACTIVE mask: it just obscures the SWP_WRITEOK flag.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "69beeb1d3428424fbc7546f85e5cd7ac4119c09d",
      "tree": "b00c806e4ced5ace1bdf4a492c985ee4fa0605b7",
      "parents": [
        "efab81864161f8c546d4403873e7ae7831ed5b26"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jan 06 14:39:46 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:05 2009 -0800"
      },
      "message": "mm: make vread() and vwrite() declaration\n\nSparse output following warnings.\n\nmm/vmalloc.c:1436:6: warning: symbol \u0027vread\u0027 was not declared. Should it be static?\nmm/vmalloc.c:1474:6: warning: symbol \u0027vwrite\u0027 was not declared. Should it be static?\n\nHowever, it is used by /dev/kmem. fixed here.\n\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": "b962716b459505a8d83aea313fea0abe76749f42",
      "tree": "b401e882f2ee8ff5a11209057496e603c211e8fe",
      "parents": [
        "60371d971a3d01afd102f0bbf2681f32ecc31d78"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:41 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:04 2009 -0800"
      },
      "message": "mm: optimize get_scan_ratio for no swap\n\nRik suggests a simplified get_scan_ratio() for !CONFIG_SWAP.  Yes, the gcc\noptimizer gives us that, when nr_swap_pages is #defined as 0L.  Move usual\ndeclaration to swapfile.c: it never belonged in page_alloc.c.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Robin Holt \u003cholt@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "60371d971a3d01afd102f0bbf2681f32ecc31d78",
      "tree": "999cd75fbf80877f99b518e632c445ae849eeb4d",
      "parents": [
        "ac47b003d03c2a4f28aef1d505b66d24ad191c4f"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:40 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:04 2009 -0800"
      },
      "message": "mm: add add_to_swap stub\n\nIf we add a failing stub for add_to_swap(), then we can remove the #ifdef\nCONFIG_SWAP from mm/vmscan.c.\n\nThis was intended as a source cleanup, but looking more closely, it turns\nout that the !CONFIG_SWAP case was going to keep_locked for an anonymous\npage, whereas now it goes to the more suitable activate_locked, like the\nCONFIG_SWAP nr_swap_pages 0 case.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Robin Holt \u003cholt@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ac47b003d03c2a4f28aef1d505b66d24ad191c4f",
      "tree": "12c31491b756f4dc7a55a9e11b69b193743ff647",
      "parents": [
        "63d6c5ad7fc27455ce5cb4706884671fb7e0df08"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:39 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:04 2009 -0800"
      },
      "message": "mm: remove gfp_mask from add_to_swap\n\nRemove gfp_mask argument from add_to_swap(): it\u0027s misleading because its\nonly caller, shrink_page_list(), is not atomic at that point; and in due\ncourse (implementing discard) we\u0027ll sometimes want to allocate some memory\nwith GFP_NOIO (as is used in swap_writepage) when allocating swap.\n\nNo change to the gfp_mask passed down to add_to_swap_cache(): still use\n__GFP_HIGH without __GFP_WAIT (with nomemalloc and nowarn as before):\nthough it\u0027s not obvious if that\u0027s the best combination to ask for here.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Robin Holt \u003cholt@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a2c43eed8334e878702fca713b212ae2a11d84b9",
      "tree": "4eb3f9b9153df5e7a638b15a6f7c9aa924066a94",
      "parents": [
        "7b1fe59793e61f826bef053107b57b23954833bb"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:36 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:03 2009 -0800"
      },
      "message": "mm: try_to_free_swap replaces remove_exclusive_swap_page\n\nremove_exclusive_swap_page(): its problem is in living up to its name.\n\nIt doesn\u0027t matter if someone else has a reference to the page (raised\npage_count); it doesn\u0027t matter if the page is mapped into userspace\n(raised page_mapcount - though that hints it may be worth keeping the\nswap): all that matters is that there be no more references to the swap\n(and no writeback in progress).\n\nswapoff (try_to_unuse) has been removing pages from swapcache for years,\nwith no concern for page count or page mapcount, and we used to have a\ncomment in lookup_swap_cache() recognizing that: if you go for a page of\nswapcache, you\u0027ll get the right page, but it could have been removed from\nswapcache by the time you get page lock.\n\nSo, give up asking for exclusivity: get rid of\nremove_exclusive_swap_page(), and remove_exclusive_swap_page_ref() and\nremove_exclusive_swap_page_count() which were spawned for the recent LRU\nwork: replace them by the simpler try_to_free_swap() which just checks\npage_swapcount().\n\nSimilarly, remove the page_count limitation from free_swap_and_count(),\nbut assume that it\u0027s worth holding on to the swap if page is mapped and\nswap nowhere near full.  Add a vm_swap_full() test in free_swap_cache()?\nIt would be consistent, but I think we probably have enough for now.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Robin Holt \u003cholt@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7b1fe59793e61f826bef053107b57b23954833bb",
      "tree": "0ac769c48123c5d0770b0a0f88bad9e6318b83ed",
      "parents": [
        "ab967d86015a19777955370deebc8262d50fed63"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:34 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:03 2009 -0800"
      },
      "message": "mm: reuse_swap_page replaces can_share_swap_page\n\nA good place to free up old swap is where do_wp_page(), or do_swap_page(),\nis about to redirty the page: the data on disk is then stale and won\u0027t be\nread again; and if we do decide to write the page out later, using the\nprevious swap location makes an unnecessary disk seek very likely.\n\nSo give can_share_swap_page() the side-effect of delete_from_swap_cache()\nwhen it safely can.  And can_share_swap_page() was always a misleading\nname, the more so if it has a side-effect: rename it reuse_swap_page().\n\nIrrelevant cleanup nearby: remove swap_token_default_timeout definition\nfrom swap.h: it\u0027s used nowhere.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Robin Holt \u003cholt@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2da02997e08d3efe8174c7a47696e6f7cbe69ba9",
      "tree": "2e52d9346c52dda83dc8cc9626cbe302e026ad9a",
      "parents": [
        "364aeb2849789b51bf4b9af2ddd02fee7285c54e"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Jan 06 14:39:31 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:03 2009 -0800"
      },
      "message": "mm: add dirty_background_bytes and dirty_bytes sysctls\n\nThis change introduces two new sysctls to /proc/sys/vm:\ndirty_background_bytes and dirty_bytes.\n\ndirty_background_bytes is the counterpart to dirty_background_ratio and\ndirty_bytes is the counterpart to dirty_ratio.\n\nWith growing memory capacities of individual machines, it\u0027s no longer\nsufficient to specify dirty thresholds as a percentage of the amount of\ndirtyable memory over the entire system.\n\ndirty_background_bytes and dirty_bytes specify quantities of memory, in\nbytes, that represent the dirty limits for the entire system.  If either\nof these values is set, its value represents the amount of dirty memory\nthat is needed to commence either background or direct writeback.\n\nWhen a `bytes\u0027 or `ratio\u0027 file is written, its counterpart becomes a\nfunction of the written value.  For example, if dirty_bytes is written to\nbe 8096, 8K of memory is required to commence direct writeback.\ndirty_ratio is then functionally equivalent to 8K / the amount of\ndirtyable memory:\n\n\tdirtyable_memory \u003d free pages + mapped pages + file cache\n\n\tdirty_background_bytes \u003d dirty_background_ratio * dirtyable_memory\n\t\t-or-\n\tdirty_background_ratio \u003d dirty_background_bytes / dirtyable_memory\n\n\t\tAND\n\n\tdirty_bytes \u003d dirty_ratio * dirtyable_memory\n\t\t-or-\n\tdirty_ratio \u003d dirty_bytes / dirtyable_memory\n\nOnly one of dirty_background_bytes and dirty_background_ratio may be\nspecified at a time, and only one of dirty_bytes and dirty_ratio may be\nspecified.  When one sysctl is written, the other appears as 0 when read.\n\nThe `bytes\u0027 files operate on a page size granularity since dirty limits\nare compared with ZVC values, which are in page units.\n\nPrior to this change, the minimum dirty_ratio was 5 as implemented by\nget_dirty_limits() although /proc/sys/vm/dirty_ratio would show any user\nwritten value between 0 and 100.  This restriction is maintained, but\ndirty_bytes has a lower limit of only one page.\n\nAlso prior to this change, the dirty_background_ratio could not equal or\nexceed dirty_ratio.  This restriction is maintained in addition to\nrestricting dirty_background_bytes.  If either background threshold equals\nor exceeds that of the dirty threshold, it is implicitly set to half the\ndirty threshold.\n\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Andrea Righi \u003crighi.andrea@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": "364aeb2849789b51bf4b9af2ddd02fee7285c54e",
      "tree": "4a24ea43a2a76ae744571f3c7b5022aa1107599e",
      "parents": [
        "58a01a45721bf7bd3a41a86248c3cb02a6b0c501"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Jan 06 14:39:29 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:02 2009 -0800"
      },
      "message": "mm: change dirty limit type specifiers to unsigned long\n\nThe background dirty and dirty limits are better defined with type\nspecifiers of unsigned long since negative writeback thresholds are not\npossible.\n\nThese values, as returned by get_dirty_limits(), are normally compared\nwith ZVC values to determine whether writeback shall commence or be\nthrottled.  Such page counts cannot be negative, so declaring the page\nlimits as signed is unnecessary.\n\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Andrea Righi \u003crighi.andrea@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": "2afd1c928f1132b8d0099866e75ce8ad713a1180",
      "tree": "e31d1cfd0b11df74e0241fe43e4be2c72a8946ff",
      "parents": [
        "b5934c531849ff4a51ce0f290141efe564290e40"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:26 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:02 2009 -0800"
      },
      "message": "mm: make page_lock_anon_vma() static\n\npage_lock_anon_vma() and page_unlock_anon_vma() were made available to\nshow_page_path() in vmscan.c; but now that has been removed, make them\nstatic in rmap.c again, they\u0027re better kept private if possible.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nReviewed-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": "b5934c531849ff4a51ce0f290141efe564290e40",
      "tree": "0c741a5bd6178db11f1147875f59e7a1a9d1754d",
      "parents": [
        "51726b1222863852c46ca21ed0115b85d1edfd89"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:25 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:02 2009 -0800"
      },
      "message": "mm: add_active_or_unevictable into rmap\n\nlru_cache_add_active_or_unevictable() and page_add_new_anon_rmap() always\nappear together.  Save some symbol table space and some jumping around by\nremoving lru_cache_add_active_or_unevictable(), folding its code into\npage_add_new_anon_rmap(): like how we add file pages to lru just after\nadding them to page cache.\n\nRemove the nearby \"TODO: is this safe?\" comments (yes, it is safe), and\nchange page_add_new_anon_rmap()\u0027s address BUG_ON to VM_BUG_ON as\noriginally intended.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\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": "6d91add09f4bad5f4d4233b13faa392f0c4b16be",
      "tree": "26f77047b316dfc0879307fbfda84b15a199155f",
      "parents": [
        "3c1d43787b48c798f44dc32a6e6deb5ca2da3e68"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:24 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:02 2009 -0800"
      },
      "message": "mm: add Set,ClearPageSwapCache stubs\n\nIf we add NOOP stubs for SetPageSwapCache() and ClearPageSwapCache(), then\nwe can remove the #ifdef CONFIG_SWAPs from mm/migrate.c.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\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": "3c1d43787b48c798f44dc32a6e6deb5ca2da3e68",
      "tree": "587da6031de37a716839656cf4fe4245aba2afb4",
      "parents": [
        "e5991371ee0d1c0ce19e133c6f9075b49c5b4ae8"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:23 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:01 2009 -0800"
      },
      "message": "mm: remove GFP_HIGHUSER_PAGECACHE\n\nGFP_HIGHUSER_PAGECACHE is just an alias for GFP_HIGHUSER_MOVABLE, making\nthat harder to track down: remove it, and its out-of-work brothers\nGFP_NOFS_PAGECACHE and GFP_USER_PAGECACHE.\n\nSince we\u0027re making that improvement to hotremove_migrate_alloc(), I think\nwe can now also remove one of the \"o\"s from its comment.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e5991371ee0d1c0ce19e133c6f9075b49c5b4ae8",
      "tree": "3e5c9c3293c025f537ff4416660a96d33c694b5f",
      "parents": [
        "39f0dee2d8abe902617622b71f8f6f73985ec71c"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:39:22 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:01 2009 -0800"
      },
      "message": "mm: remove cgroup_mm_owner_callbacks\n\ncgroup_mm_owner_callbacks() was brought in to support the memrlimit\ncontroller, but sneaked into mainline ahead of it.  That controller has\nnow been shelved, and the mm_owner_changed() args were inadequate for it\nanyway (they needed an mm pointer instead of a task pointer).\n\nRemove the dead code, and restore mm_update_next_owner() locking to how it\nwas before: taking mmap_sem there does nothing for memcontrol.c, now the\nonly user of mm-\u003eowner.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "64cdd548ffe26849d4cd113ac640f60606063b14",
      "tree": "9a7a8af9022621d2da3648757b724fcd32b20168",
      "parents": [
        "1b0bd118862cd9fe9ac2872137a1b8107e83ff9d"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jan 06 14:39:16 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:00 2009 -0800"
      },
      "message": "mm: cleanup: remove #ifdef CONFIG_MIGRATION\n\n#ifdef in *.c file decrease source readability a bit.  removing is better.\n\nThis patch doesn\u0027t have any functional change.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1b0bd118862cd9fe9ac2872137a1b8107e83ff9d",
      "tree": "2bd59ee95762164d4e98bbafd251e3abd31c2af1",
      "parents": [
        "5594c8c813d9e907ff55da7080d42653478b73e8"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jan 06 14:39:15 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:00 2009 -0800"
      },
      "message": "mm: get rid of pagevec_release_nonlru()\n\nspeculative page references patch (commit:\ne286781d5f2e9c846e012a39653a166e9d31777d) removed last\npagevec_release_nonlru() caller.\n\nSo this function can be removed now.\n\nThis patch doesn\u0027t have any functional change.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c04fc586c1a480ba198f03ae7b6cbd7b57380b91",
      "tree": "9d6544a3b62cc01dbcbb1e315b84378b45ba86d2",
      "parents": [
        "ee53a891f47444c53318b98dac947ede963db400"
      ],
      "author": {
        "name": "Gary Hade",
        "email": "garyhade@us.ibm.com",
        "time": "Tue Jan 06 14:39:14 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:00 2009 -0800"
      },
      "message": "mm: show node to memory section relationship with symlinks in sysfs\n\nShow node to memory section relationship with symlinks in sysfs\n\nAdd /sys/devices/system/node/nodeX/memoryY symlinks for all\nthe memory sections located on nodeX.  For example:\n/sys/devices/system/node/node1/memory135 -\u003e ../../memory/memory135\nindicates that memory section 135 resides on node1.\n\nAlso revises documentation to cover this change as well as updating\nDocumentation/ABI/testing/sysfs-devices-memory to include descriptions\nof memory hotremove files \u0027phys_device\u0027, \u0027phys_index\u0027, and \u0027state\u0027\nthat were previously not described there.\n\nIn addition to it always being a good policy to provide users with\nthe maximum possible amount of physical location information for\nresources that can be hot-added and/or hot-removed, the following\nare some (but likely not all) of the user benefits provided by\nthis change.\nImmediate:\n  - Provides information needed to determine the specific node\n    on which a defective DIMM is located.  This will reduce system\n    downtime when the node or defective DIMM is swapped out.\n  - Prevents unintended onlining of a memory section that was\n    previously offlined due to a defective DIMM.  This could happen\n    during node hot-add when the user or node hot-add assist script\n    onlines _all_ offlined sections due to user or script inability\n    to identify the specific memory sections located on the hot-added\n    node.  The consequences of reintroducing the defective memory\n    could be ugly.\n  - Provides information needed to vary the amount and distribution\n    of memory on specific nodes for testing or debugging purposes.\nFuture:\n  - Will provide information needed to identify the memory\n    sections that need to be offlined prior to physical removal\n    of a specific node.\n\nSymlink creation during boot was tested on 2-node x86_64, 2-node\nppc64, and 2-node ia64 systems.  Symlink creation during physical\nmemory hot-add tested on a 2-node x86_64 system.\n\nSigned-off-by: Gary Hade \u003cgaryhade@us.ibm.com\u003e\nSigned-off-by: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "75aa199410359dc5fbcf9025ff7af98a9d20f0d5",
      "tree": "569bffa181ccba56d884ec7e826ae61384297f56",
      "parents": [
        "c7d4caeb1d68d07f77cc09fc20b7759d6d7aa3b1"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Jan 06 14:39:01 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:58:59 2009 -0800"
      },
      "message": "oom: print triggering task\u0027s cpuset and mems allowed\n\nWhen cpusets are enabled, it\u0027s necessary to print the triggering task\u0027s\nset of allowable nodes so the subsequently printed meminfo can be\ninterpreted correctly.\n\nWe also print the task\u0027s cpuset name for informational purposes.\n\n[rientjes@google.com: task lock current before dereferencing cpuset]\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.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": "1c0fe6e3bda0464728c23c8d84aa47567e8b716c",
      "tree": "64f7903ee7757b14464e8a06bf91f5c4d5a8ba56",
      "parents": [
        "5bd1455c239672081d0e7f086e899b8cbc7a9844"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Jan 06 14:38:59 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:58:58 2009 -0800"
      },
      "message": "mm: invoke oom-killer from page fault\n\nRather than have the pagefault handler kill a process directly if it gets\na VM_FAULT_OOM, have it call into the OOM killer.\n\nWith increasingly sophisticated oom behaviour (cpusets, memory cgroups,\noom killing throttling, oom priority adjustment or selective disabling,\npanic on oom, etc), it\u0027s silly to unconditionally kill the faulting\nprocess at page fault time.  Create a hook for pagefault oom path to call\ninto instead.\n\nOnly converted x86 and uml so far.\n\n[akpm@linux-foundation.org: make __out_of_memory() static]\n[akpm@linux-foundation.org: fix comment]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\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": "3340289ddf29ca75c3acfb3a6b72f234b2f74d5c",
      "tree": "d5da94eb1cb0146160fcb0e7aa161bfa5b6ac807",
      "parents": [
        "08fba69986e20c1c9e5fe2e6064d146cc4f42480"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Jan 06 14:38:54 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:58:58 2009 -0800"
      },
      "message": "mm: report the MMU pagesize in /proc/pid/smaps\n\nThe KernelPageSize entry in /proc/pid/smaps is the pagesize used by the\nkernel to back a VMA.  This matches the size used by the MMU in the\nmajority of cases.  However, one counter-example occurs on PPC64 kernels\nwhereby a kernel using 64K as a base pagesize may still use 4K pages for\nthe MMU on older processor.  To distinguish, this patch reports\nMMUPageSize as the pagesize used by the MMU in /proc/pid/smaps.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: \"KOSAKI Motohiro\" \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@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": "08fba69986e20c1c9e5fe2e6064d146cc4f42480",
      "tree": "40bd36a6778624527d91ede0eb51aa5b99aab01c",
      "parents": [
        "238c6d54830c624f34ac9cf123ac04aebfca5013"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Jan 06 14:38:53 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:58:58 2009 -0800"
      },
      "message": "mm: report the pagesize backing a VMA in /proc/pid/smaps\n\nIt is useful to verify a hugepage-aware application is using the expected\npagesizes for its memory regions. This patch creates an entry called\nKernelPageSize in /proc/pid/smaps that is the size of page used by the\nkernel to back a VMA. The entry is not called PageSize as it is possible\nthe MMU uses a different size. This extension should not break any sensible\nparser that skips lines containing unrecognised information.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: \"KOSAKI Motohiro\" \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@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": "238c6d54830c624f34ac9cf123ac04aebfca5013",
      "tree": "43b7f595013483382a3053237c45d9d2824e0295",
      "parents": [
        "8e128ce3318a147903c893de1891f6c2306f8a61",
        "a159c1ac5f33c6cf0f5aa3c9d1ccdc82c907ee46"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 19:20:59 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 19:20:59 2009 -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:\n  dm snapshot: extend exception store functions\n  dm snapshot: split out exception store implementations\n  dm snapshot: rename struct exception_store\n  dm snapshot: separate out exception store interface\n  dm mpath: move trigger_event to system workqueue\n  dm: add name and uuid to sysfs\n  dm table: rework reference counting\n  dm: support barriers on simple devices\n  dm request: extend target interface\n  dm request: add caches\n  dm ioctl: allow dm_copy_name_and_uuid to return only one field\n  dm log: ensure log bitmap fits on log device\n  dm log: move region_size validation\n  dm log: avoid reinitialising io_req on every operation\n  dm: consolidate target deregistration error handling\n  dm raid1: fix error count\n  dm log: fix dm_io_client leak on error paths\n  dm snapshot: change yield to msleep\n  dm table: drop reference at unbind\n"
    },
    {
      "commit": "ab4c1424882be9cd70b89abf2b484add355712fa",
      "tree": "8baed3606be67900df9f02e42fcdb091b78c5def",
      "parents": [
        "7d76345da6ed3927c9cbf5d3f7a7021e8bba7374"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Tue Jan 06 03:05:09 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:05:09 2009 +0000"
      },
      "message": "dm: support barriers on simple devices\n\nImplement barrier support for single device DM devices\n\nThis patch implements barrier support in DM for the common case of dm linear\njust remapping a single underlying device. In this case we can safely\npass the barrier through because there can be no reordering between\ndevices.\n\n NB. Any DM device might cease to support barriers if it gets\n     reconfigured so code must continue to allow for a possible\n     -EOPNOTSUPP on every barrier bio submitted.  - agk\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "7d76345da6ed3927c9cbf5d3f7a7021e8bba7374",
      "tree": "d0b470dd1a55dfffb27ffa012e4a5afebd133495",
      "parents": [
        "8fbf26ad5b16ad3a826ca7fe3e86700420abed1f"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Tue Jan 06 03:05:07 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:05:07 2009 +0000"
      },
      "message": "dm request: extend target interface\n\nThis patch adds the following target interfaces for request-based dm.\n\n  map_rq    : for mapping a request\n\n  rq_end_io : for finishing a request\n\n  busy      : for avoiding performance regression from bio-based dm.\n              Target can tell dm core not to map requests now, and\n              that may help requests in the block layer queue to be\n              bigger by I/O merging.\n              In bio-based dm, this behavior is done by device\n              drivers managing the block layer queue.\n              But in request-based dm, dm core has to do that\n              since dm core manages the block layer queue.\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: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "10d3bd09a3c25df114f74f7f86e1b58d070bef32",
      "tree": "a44e2fe5ccc5950b87a1d31849e5f0ac24fdcc16",
      "parents": [
        "d460c65a6a9ec9e0d284864ec3a9a2d1b73f0e43"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Tue Jan 06 03:04:58 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:04:58 2009 +0000"
      },
      "message": "dm: consolidate target deregistration error handling\n\nChange dm_unregister_target to return void and use BUG() for error\nreporting.\n\ndm_unregister_target can only fail because of programming bug in the\ntarget driver. It can\u0027t fail because of user\u0027s behavior or disk errors.\n\nThis patch changes unregister_target to return void and use BUG if\nsomeone tries to unregister non-registered target or unregister target\nthat is in use.\n\nThis patch removes code duplication (testing of error codes in all dm\ntargets) and reports bugs in just one place, in dm_unregister_target. In\nsome target drivers, these return codes were ignored, which could lead\nto a situation where bugs could be missed.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "8e128ce3318a147903c893de1891f6c2306f8a61",
      "tree": "3b45e780570e9beb9ec8e83c677f2d9fd9b458ce",
      "parents": [
        "0bbb2753584231db364b624bf8cf82551b94da7d",
        "3f874b6643e189d3d07618928ceed0013d71593e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 19:04:09 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 19:04:09 2009 -0800"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.o-hand.com/linux-mfd\n\n* \u0027for-next\u0027 of git://git.o-hand.com/linux-mfd: (30 commits)\n  mfd: Fix section mismatch in da903x\n  mfd: move drivers/i2c/chips/menelaus.c to drivers/mfd\n  mfd: move drivers/i2c/chips/tps65010.c to drivers/mfd\n  mfd: dm355evm msp430 driver\n  mfd: Add missing break from wm3850-core\n  mfd: Add WM8351 support\n  mfd: Support configurable numbers of DCDCs and ISINKs on WM8350\n  mfd: Handle missing WM8350 platform data\n  mfd: Add WM8352 support\n  mfd: Use irq_to_desc in twl4030 code\n  power_supply: Add Dialog DA9030 battery charger driver\n  mfd: Dialog DA9030 battery charger MFD driver\n  mfd: Register WM8400 codec device\n  mfd: Pass driver_data onto child devices\n  mfd: Fix twl4030-core.c build error\n  mfd: twl4030 regulator bug fixes\n  mfd: twl4030: create some regulator devices\n  mfd: twl4030: cleanup symbols and OMAP dependency\n  mfd: twl4030: simplified child creation code\n  power_supply: Add battery health reporting for WM8350\n  ...\n"
    },
    {
      "commit": "0bbb2753584231db364b624bf8cf82551b94da7d",
      "tree": "559c49330037fa4e2f5d231e06576f80dc49caaf",
      "parents": [
        "0578c3b4d44c34e499e1fd5916ed6c63635b25cf",
        "9e01892c4234070bbcf3a9f582514c8b91464375"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 19:03:39 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 19:03:39 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:\n  module: convert to stop_machine_create/destroy.\n  stop_machine: introduce stop_machine_create/destroy.\n  parisc: fix module loading failure of large kernel modules\n  module: fix module loading failure of large kernel modules for parisc\n  module: fix warning of unused function when !CONFIG_PROC_FS\n  kernel/module.c: compare symbol values when marking symbols as exported in /proc/kallsyms.\n  remove CONFIG_KMOD\n"
    },
    {
      "commit": "0578c3b4d44c34e499e1fd5916ed6c63635b25cf",
      "tree": "7bcf1e4bb08984b2f5671a48c052c26903855ba6",
      "parents": [
        "7d8a804c594b61a05c698126165b5dc417d94a0f",
        "52942b6b16c6ebb25f4dd4df0208d840ba0cbc5c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 19:03:11 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 19:03:11 2009 -0800"
      },
      "message": "Merge branch \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  swiotlb: Don\u0027t include linux/swiotlb.h twice in lib/swiotlb.c\n  intel-iommu: fix build error with INTR_REMAP\u003dy and DMAR\u003dn\n  swiotlb: add missing __init annotations\n"
    },
    {
      "commit": "8606ab6d30dbaaafff985bd462bf33c36997eae9",
      "tree": "4a31a004438370e5e51f5f042badfac850ec9ac8",
      "parents": [
        "c54febae996d36c630f09209cd9983ecfda3fcad",
        "ed42350e02bfcb333024949e9653d06916135cc5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:53:34 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:53:34 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (22 commits)\n  HID: fix error condition propagation in hid-sony driver\n  HID: fix reference count leak hidraw\n  HID: add proper support for pensketch 12x9 tablet\n  HID: don\u0027t allow DealExtreme usb-radio be handled by usb hid driver\n  HID: fix default Kconfig setting for TopSpeed driver\n  HID: driver for TopSeed Cyberlink quirky remote\n  HID: make boot protocol drivers depend on EMBEDDED\n  HID: avoid sparse warning in HID_COMPAT_LOAD_DRIVER\n  HID: hiddev cleanup -- handle all error conditions properly\n  HID: force feedback driver for GreenAsia 0x12 PID\n  HID: switch specialized drivers from \"default y\" to !EMBEDDED\n  HID: set proper dev.parent in hidraw\n  HID: add dynids facility\n  HID: use GFP_KERNEL in hid_alloc_buffers\n  HID: usbhid, use usb_endpoint_xfer_int\n  HID: move usbhid flags to usbhid.h\n  HID: add n-trig digitizer support\n  HID: add phys and name ioctls to hidraw\n  HID: struct device - replace bus_id with dev_name(), dev_set_name()\n  HID: automatically call usbhid_set_leds in usbhid driver\n  ...\n"
    },
    {
      "commit": "c54febae996d36c630f09209cd9983ecfda3fcad",
      "tree": "35b2717dcd4e4ff2206cd468b5895afb16f49c8c",
      "parents": [
        "e42e4ba07bc72c0eb7c7ab3bf9e5076db90d0f37",
        "eb8374e71f941a1b3c2ed6ea19dc809e7124dc5d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:52:54 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:52:54 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw: (27 commits)\n  GFS2: Use DEFINE_SPINLOCK\n  GFS2: Fix use-after-free bug on umount (try #2)\n  Revert \"GFS2: Fix use-after-free bug on umount\"\n  GFS2: Streamline alloc calculations for writes\n  GFS2: Send useful information with uevent messages\n  GFS2: Fix use-after-free bug on umount\n  GFS2: Remove ancient, unused code\n  GFS2: Move four functions from super.c\n  GFS2: Fix bug in gfs2_lock_fs_check_clean()\n  GFS2: Send some sensible sysfs stuff\n  GFS2: Kill two daemons with one patch\n  GFS2: Move gfs2_recoverd into recovery.c\n  GFS2: Fix \"truncate in progress\" hang\n  GFS2: Clean up \u0026 move gfs2_quotad\n  GFS2: Add more detail to debugfs glock dumps\n  GFS2: Banish struct gfs2_rgrpd_host\n  GFS2: Move rg_free from gfs2_rgrpd_host to gfs2_rgrpd\n  GFS2: Move rg_igeneration into struct gfs2_rgrpd\n  GFS2: Banish struct gfs2_dinode_host\n  GFS2: Move i_size from gfs2_dinode_host and rename it to i_disksize\n  ...\n"
    },
    {
      "commit": "15b0669072127f282896b3bef2e9df4ec5d7264f",
      "tree": "8480e09bbc7c26cd5c9ef048b734664cb6fe76be",
      "parents": [
        "c155b914651753f843445d2f860bc00137df5d52",
        "3537d54c0c39de5738bba8d19f128478b0b96a71"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:44:59 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:44:59 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (44 commits)\n  qlge: Fix sparse warnings for tx ring indexes.\n  qlge: Fix sparse warning regarding rx buffer queues.\n  qlge: Fix sparse endian warning in ql_hw_csum_setup().\n  qlge: Fix sparse endian warning for inbound packet control block flags.\n  qlge: Fix sparse warnings for byte swapping in qlge_ethool.c\n  myri10ge: print MAC and serial number on probe failure\n  pkt_sched: cls_u32: Fix locking in u32_change()\n  iucv: fix cpu hotplug\n  af_iucv: Free iucv path/socket in path_pending callback\n  af_iucv: avoid left over IUCV connections from failing connects\n  af_iucv: New error return codes for connect()\n  net/ehea: bitops work on unsigned longs\n  Revert \"net: Fix for initial link state in 2.6.28\"\n  tcp: Kill extraneous SPLICE_F_NONBLOCK checks.\n  tcp: don\u0027t mask EOF and socket errors on nonblocking splice receive\n  dccp: Integrate the TFRC library with DCCP\n  dccp: Clean up ccid.c after integration of CCID plugins\n  dccp: Lockless integration of CCID congestion-control plugins\n  qeth: get rid of extra argument after printk to dev_* conversion\n  qeth: No large send using EDDP for HiperSockets.\n  ...\n"
    },
    {
      "commit": "e9af797d757d358f60130de6ca59ee658d666561",
      "tree": "1c634c98b2c11ddfa86d1c38e35ed33eb316827c",
      "parents": [
        "10cc04f5a01041ffff068b3f9b195bfdc5290c45",
        "187d9f4ed4fc089f1f25a875fb485e27626972f9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:33:38 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:33:38 2009 -0800"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq:\n  [CPUFREQ] Fix on resume, now preserves user policy min/max.\n  [CPUFREQ] Add Celeron Core support to p4-clockmod.\n  [CPUFREQ] add to speedstep-lib additional fsb values for core processors\n  [CPUFREQ] Disable sysfs ui for p4-clockmod.\n  [CPUFREQ] p4-clockmod: reduce noise\n  [CPUFREQ] clean up speedstep-centrino and reduce cpumask_t usage\n"
    },
    {
      "commit": "10cc04f5a01041ffff068b3f9b195bfdc5290c45",
      "tree": "5c53027ce5299075759b70e1447ce811ba1afdf0",
      "parents": [
        "520c85346666d4d9a6fcaaa8450542302dc28b91",
        "9047beabb8a396f0b18de1e4a9ab920cf92054af"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:32:43 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:32:43 2009 -0800"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2: (138 commits)\n  ocfs2: Access the right buffer_head in ocfs2_merge_rec_left.\n  ocfs2: use min_t in ocfs2_quota_read()\n  ocfs2: remove unneeded lvb casts\n  ocfs2: Add xattr support checking in init_security\n  ocfs2: alloc xattr bucket in ocfs2_xattr_set_handle\n  ocfs2: calculate and reserve credits for xattr value in mknod\n  ocfs2/xattr: fix credits calculation during index create\n  ocfs2/xattr: Always updating ctime during xattr set.\n  ocfs2/xattr: Remove extend_trans call and add its credits from the beginning\n  ocfs2/dlm: Fix race during lockres mastery\n  ocfs2/dlm: Fix race in adding/removing lockres\u0027 to/from the tracking list\n  ocfs2/dlm: Hold off sending lockres drop ref message while lockres is migrating\n  ocfs2/dlm: Clean up errors in dlm_proxy_ast_handler()\n  ocfs2/dlm: Fix a race between migrate request and exit domain\n  ocfs2: One more hamming code optimization.\n  ocfs2: Another hamming code optimization.\n  ocfs2: Don\u0027t hand-code xor in ocfs2_hamming_encode().\n  ocfs2: Enable metadata checksums.\n  ocfs2: Validate superblock with checksum and ecc.\n  ocfs2: Checksum and ECC for directory blocks.\n  ...\n"
    },
    {
      "commit": "520c85346666d4d9a6fcaaa8450542302dc28b91",
      "tree": "9c9cc9e2493b606104dd8602302ae28258ebeac0",
      "parents": [
        "e8c82c2e23e3527e0c9dc195e432c16784d270fa",
        "4ae8978cf92a96257cd8998a49e781be83571d64"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:32:06 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:32:06 2009 -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:\n  inotify: fix type errors in interfaces\n  fix breakage in reiserfs_new_inode()\n  fix the treatment of jfs special inodes\n  vfs: remove duplicate code in get_fs_type()\n  add a vfs_fsync helper\n  sys_execve and sys_uselib do not call into fsnotify\n  zero i_uid/i_gid on inode allocation\n  inode-\u003ei_op is never NULL\n  ntfs: don\u0027t NULL i_op\n  isofs check for NULL -\u003ei_op in root directory is dead code\n  affs: do not zero -\u003ei_op\n  kill suid bit only for regular files\n  vfs: lseek(fd, 0, SEEK_CUR) race condition\n"
    },
    {
      "commit": "e8c82c2e23e3527e0c9dc195e432c16784d270fa",
      "tree": "943b1359ff8d6855b0b5fd37bb0ae61f01a7da0d",
      "parents": [
        "f1b11e505463fd597ab7963df26dd1f446dcceae"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Jan 06 03:05:50 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:31:12 2009 -0800"
      },
      "message": "mm lockless pagecache barrier fix\n\nAn XFS workload showed up a bug in the lockless pagecache patch. Basically it\nwould go into an \"infinite\" loop, although it would sometimes be able to break\nout of the loop! The reason is a missing compiler barrier in the \"increment\nreference count unless it was zero\" case of the lockless pagecache protocol in\nthe gang lookup functions.\n\nThis would cause the compiler to use a cached value of struct page pointer to\nretry the operation with, rather than reload it. So the page might have been\nremoved from pagecache and freed (refcount\u003d\u003d0) but the lookup would not correctly\nnotice the page is no longer in pagecache, and keep attempting to increment the\nrefcount and failing, until the page gets reallocated for something else. This\nisn\u0027t a data corruption because the condition will be detected if the page has\nbeen reallocated. However it can result in a lockup.\n\nLinus points out that ACCESS_ONCE is also required in that pointer load, even\nif it\u0027s absence is not causing a bug on our particular build. The most general\nway to solve this is just to put an rcu_dereference in radix_tree_deref_slot.\n\nAssembly of find_get_pages,\nbefore:\n.L220:\n        movq    (%rbx), %rax    #* ivtmp.1162, tmp82\n        movq    (%rax), %rdi    #, prephitmp.1149\n.L218:\n        testb   $1, %dil        #, prephitmp.1149\n        jne     .L217   #,\n        testq   %rdi, %rdi      # prephitmp.1149\n        je      .L203   #,\n        cmpq    $-1, %rdi       #, prephitmp.1149\n        je      .L217   #,\n        movl    8(%rdi), %esi   # \u003cvariable\u003e._count.counter, c\n        testl   %esi, %esi      # c\n        je      .L218   #,\n\nafter:\n.L212:\n        movq    (%rbx), %rax    #* ivtmp.1109, tmp81\n        movq    (%rax), %rdi    #, ret\n        testb   $1, %dil        #, ret\n        jne     .L211   #,\n        testq   %rdi, %rdi      # ret\n        je      .L197   #,\n        cmpq    $-1, %rdi       #, ret\n        je      .L211   #,\n        movl    8(%rdi), %esi   # \u003cvariable\u003e._count.counter, c\n        testl   %esi, %esi      # c\n        je      .L212   #,\n\n(notice the obvious infinite loop in the first example, if page-\u003ecount remains 0)\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nReviewed-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4ae8978cf92a96257cd8998a49e781be83571d64",
      "tree": "5c5e2719c17093309b4e22bfbf4deb7bd3e91ac8",
      "parents": [
        "2f1169e2dc0c70e213f79ada88a10912cc2fbe94"
      ],
      "author": {
        "name": "Michael Kerrisk",
        "email": "mtk.manpages@googlemail.com",
        "time": "Mon Jan 05 07:19:16 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 05 11:54:29 2009 -0500"
      },
      "message": "inotify: fix type errors in interfaces\n\nThe problems lie in the types used for some inotify interfaces, both at the kernel level and at the glibc level. This mail addresses the kernel problem. I will follow up with some suggestions for glibc changes.\n\nFor the sys_inotify_rm_watch() interface, the type of the \u0027wd\u0027 argument is\ncurrently \u0027u32\u0027, it should be \u0027__s32\u0027 .  That is Robert\u0027s suggestion, and\nis consistent with the other declarations of watch descriptors in the\nkernel source, in particular, the inotify_event structure in\ninclude/linux/inotify.h:\n\nstruct inotify_event {\n        __s32           wd;             /* watch descriptor */\n        __u32           mask;           /* watch mask */\n        __u32           cookie;         /* cookie to synchronize two events */\n        __u32           len;            /* length (including nulls) of name */\n        char            name[0];        /* stub for possible name */\n};\n\nThe patch makes the changes needed for inotify_rm_watch().\n\nSigned-off-by: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nCc: Robert Love \u003crlove@google.com\u003e\nCc: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\nCc: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4c728ef583b3d82266584da5cb068294c09df31e",
      "tree": "1252fa82b5a7cf60c0898c3da810228b4c34ebb3",
      "parents": [
        "6110e3abbff8b785907d4db50240e63c1be726e3"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Dec 22 21:11:15 2008 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 05 11:54:28 2009 -0500"
      },
      "message": "add a vfs_fsync helper\n\nFsync currently has a fdatawrite/fdatawait pair around the method call,\nand a mutex_lock/unlock of the inode mutex.  All callers of fsync have\nto duplicate this, but we have a few and most of them don\u0027t quite get\nit right.  This patch adds a new vfs_fsync that takes care of this.\nIt\u0027s a little more complicated as usual as -\u003efsync might get a NULL file\npointer and just a dentry from nfsd, but otherwise gets afile and we\nwant to take the mapping and file operations from it when it is there.\n\nNotes on the fsync callers:\n\n - ecryptfs wasn\u0027t calling filemap_fdatawrite / filemap_fdatawait on the\n   \tlower file\n - coda wasn\u0027t calling filemap_fdatawrite / filemap_fdatawait on the host\n\tfile, and returning 0 when -\u003efsync was missing\n - shm wasn\u0027t calling either filemap_fdatawrite / filemap_fdatawait nor\n   taking i_mutex.  Now given that shared memory doesn\u0027t have disk\n   backing not doing anything in fsync seems fine and I left it out of\n   the vfs_fsync conversion for now, but in that case we might just\n   not pass it through to the lower file at all but just call the no-op\n   simple_sync_file directly.\n\n[and now actually export vfs_fsync]\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e06c8227fd94ec181849ba206bf032be31c4295c",
      "tree": "67261cd94aa86dc6112d7de74304c2a1af5b64fb",
      "parents": [
        "754938c142ae0c28360426c43f965ddc5164b21e"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Sep 11 15:35:47 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:30 2009 -0800"
      },
      "message": "jbd2: Add buffer triggers\n\nFilesystems often to do compute intensive operation on some\nmetadata.  If this operation is repeated many times, it can be very\nexpensive.  It would be much nicer if the operation could be performed\nonce before a buffer goes to disk.\n\nThis adds triggers to jbd2 buffer heads.  Just before writing a metadata\nbuffer to the journal, jbd2 will optionally call a commit trigger associated\nwith the buffer.  If the journal is aborted, an abort trigger will be\ncalled on any dirty buffers as they are dropped from pending\ntransactions.\n\nocfs2 will use this feature.\n\nInitially I tried to come up with a more generic trigger that could be\nused for non-buffer-related events like transaction completion.  It\ndoesn\u0027t tie nicely, because the information a buffer trigger needs\n(specific to a journal_head) isn\u0027t the same as what a transaction\ntrigger needs (specific to a tranaction_t or perhaps journal_t).  So I\nimplemented a buffer set, with the understanding that\njournal/transaction wide triggers should be implemented separately.\n\nThere is only one trigger set allowed per buffer.  I can\u0027t think of any\nreason to attach more than one set.  Contrast this with a journal or\ntransaction in which multiple places may want to watch the entire\ntransaction separately.\n\nThe trigger sets are considered static allocation from the jbd2\nperspective.  ocfs2 will just have one trigger set per block type,\nsetting the same set on every bh of the same type.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "7d9056ba20ebed6e3937a2e23183f6117919cb00",
      "tree": "3aefa0f187630fdbdefcec9e726155f2678cd1ab",
      "parents": [
        "5cd9d5bb86daf632a40f90e2321ea9379e42f073"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Nov 25 15:31:32 2008 +0100"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:25 2009 -0800"
      },
      "message": "quota: Export dquot_alloc() and dquot_destroy() functions\n\nThese are default functions for creating and destroying quota structures\nand they should be used from filesystems.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "5cd9d5bb86daf632a40f90e2321ea9379e42f073",
      "tree": "dd8baa659c18e61b94c1c366b93f161611cec8bd",
      "parents": [
        "9a2f3866c825c67c3a5806799cdc93fb7517f0c4"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Nov 25 15:31:31 2008 +0100"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:25 2009 -0800"
      },
      "message": "quota: Unexport dqblk_v1.h and dqblk_v2.h\n\nUnexport header files dqblk_v[12].h since except for quota format ID they\ndon\u0027t contain information userspace should be interested in. Move ID\ndefinitions to quota.h.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "e97fcd95a4778a8caf1980c6c72fdf68185a0838",
      "tree": "795c007ed03c091c860df8b03986fbe444f51530",
      "parents": [
        "19ece546a418997226bd91552fbc41abcb05cea6"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Nov 18 17:15:24 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:24 2009 -0800"
      },
      "message": "jbd2: Add BH_JBDPrivateStart\n\nAdd this so that file systems using JBD2 can safely allocate unused b_state\nbits.\n\nIn this case, we add it so that Ocfs2 can define a single bit for tracking\nthe validation state of a buffer.\n\nAcked-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "12c77527e4138bc3b17d17b0e0c909e4fc84924f",
      "tree": "2776bbc914ebf8db7bdc2e450abf6a1504f50abe",
      "parents": [
        "3d9ea253a0e73dccaa869888ec2ceb17ea76c810"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Oct 20 17:05:00 2008 +0200"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:23 2009 -0800"
      },
      "message": "quota: Implement function for scanning active dquots\n\nOCFS2 needs to scan all active dquots once in a while and sync quota\ninformation among cluster nodes. Provide a helper function for it so\nthat it does not have to reimplement internally a list which VFS\nalready has. Moreover this function is probably going to be useful\nfor other clustered filesystems if they decide to use VFS quotas.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "3d9ea253a0e73dccaa869888ec2ceb17ea76c810",
      "tree": "0a107f919605f68335bf55176b062facebcd51c9",
      "parents": [
        "571b46e40bebb0d57130ca24c4a84dfd553adb91"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Oct 10 16:12:23 2008 +0200"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:22 2009 -0800"
      },
      "message": "quota: Add helpers to allow ocfs2 specific quota initialization, freeing and recovery\n\nOCFS2 needs to peek whether quota structure is already in memory so\nthat it can avoid expensive cluster locking in that case. Similarly\nwhen freeing dquots, it checks whether it is the last quota structure\nuser or not. Finally, it needs to get reference to dquot structure for\nspecified id and quota type when recovering quota file after crash.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "571b46e40bebb0d57130ca24c4a84dfd553adb91",
      "tree": "8597a9f4ee7c0b00a7c62abe3bb6157d5d60ea7a",
      "parents": [
        "4d59bce4f9eaf26d6d9046b56a2f1c0c7f20981d"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Oct 30 09:17:52 2008 +0100"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:22 2009 -0800"
      },
      "message": "quota: Update version number\n\nIncrease reported version number of quota support since quota core has changed\nsignificantly. Also remove __DQUOT_NUM_VERSION__ since nobody uses it.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "4d59bce4f9eaf26d6d9046b56a2f1c0c7f20981d",
      "tree": "8acb07cd2bf0ab360e6397dfa816feb009fc49af",
      "parents": [
        "db49d2df489f727096438706a5428115e84a3f0d"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Oct 02 16:48:10 2008 +0200"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:22 2009 -0800"
      },
      "message": "quota: Keep which entries were set by SETQUOTA quotactl\n\nQuota in a clustered environment needs to synchronize quota information\namong cluster nodes. This means we have to occasionally update some\ninformation in dquot from disk / network. On the other hand we have to\nbe careful not to overwrite changes administrator did via SETQUOTA.\nSo indicate in dquot-\u003edq_flags which entries have been set by SETQUOTA\nand quota format can clear these flags when it properly propagated\nthe changes.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "db49d2df489f727096438706a5428115e84a3f0d",
      "tree": "4ba9837a5371bb4a84dc27614eaeb4e4772e3eb8",
      "parents": [
        "e3d4d56b9715e40ded2a84d0d4fa7f3b6c58983c"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Oct 01 18:21:39 2008 +0200"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:21 2009 -0800"
      },
      "message": "quota: Allow negative usage of space and inodes\n\nFor clustered filesystems, it can happen that space / inode usage goes\nnegative temporarily (because some node is allocating another node\nis freeing and they are not completely in sync). So let quota code\nallow this and change qsize_t so a signed type so that we don\u0027t\nunderflow the variables.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "e3d4d56b9715e40ded2a84d0d4fa7f3b6c58983c",
      "tree": "67648a89b3c9056d77caa6ef42776cf1053c5e70",
      "parents": [
        "1ccd14b9c271c1ac6eec5c5ec5def433100e7248"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Oct 02 18:44:14 2008 +0200"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:21 2009 -0800"
      },
      "message": "quota: Convert union in mem_dqinfo to a pointer\n\nComing quota support for OCFS2 is going to need quite a bit\nof additional per-sb quota information. Moreover having fs.h\ninclude all the types needed for this structure would be a\npain in the a**. So remove the union from mem_dqinfo and add\na private pointer for filesystem\u0027s use.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "1ccd14b9c271c1ac6eec5c5ec5def433100e7248",
      "tree": "959756aa5b68c568a18697464df3f0acdd0387cf",
      "parents": [
        "cf770c137122b78470a67ebd5498947869a09197"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Sep 22 05:54:49 2008 +0200"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:21 2009 -0800"
      },
      "message": "quota: Split off quota tree handling into a separate file\n\nThere is going to be a new version of quota format having 64-bit\nquota limits and a new quota format for OCFS2. They are both\ngoing to use the same tree structure as VFSv0 quota format. So\nsplit out tree handling into a separate file and make size of\nleaf blocks, amount of space usable in each block (needed for\nchecksumming) and structures contained in them configurable\nso that the code can be shared.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "cf770c137122b78470a67ebd5498947869a09197",
      "tree": "c1f9af3927752e8aef3e0ca45facc39ae6945258",
      "parents": [
        "ca785ec66b991e9ca74dd9840fc014487ad095e1"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Sun Sep 21 23:17:53 2008 +0200"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:36:58 2009 -0800"
      },
      "message": "quota: Move quotaio_v[12].h from include/linux/ to fs/\n\nSince these include files are used only by implementation of quota formats,\nthere\u0027s no need to have them in include/linux/.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "ca785ec66b991e9ca74dd9840fc014487ad095e1",
      "tree": "271c7b36123e9c16f455ecd96352d24ecd20423c",
      "parents": [
        "dcb30695f2cac86b71417629a6fe8042b4fe2ab2"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Sep 30 17:53:37 2008 +0200"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:36:57 2009 -0800"
      },
      "message": "quota: Introduce DQUOT_QUOTA_SYS_FILE flag\n\nIf filesystem can handle quota files as system files hidden from users, we can\nskip a lot of cache invalidation, syncing, inode flags setting etc. when\nturning quotas on, off and quota_sync. Allow filesystem to indicate that it is\nhiding quota files from users by DQUOT_QUOTA_SYS_FILE flag.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "dcb30695f2cac86b71417629a6fe8042b4fe2ab2",
      "tree": "85a099a0314091fbc82bed07951c9c49a07a2ffc",
      "parents": [
        "6929f891241d3fe3af01d28503b645e63241e49a"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Aug 20 18:30:40 2008 +0200"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:36:56 2009 -0800"
      },
      "message": "quota: Remove compatibility function sb_any_quota_enabled()\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "f55abc0fb9c3189de3da829adf3220322c0da43e",
      "tree": "0db4b838b0b90f27401783e8e7e45842ec91f90a",
      "parents": [
        "e4bc7b4b7ff783779b6928d55a9308910bf180a3"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Aug 20 17:50:32 2008 +0200"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:36:56 2009 -0800"
      },
      "message": "quota: Allow to separately enable quota accounting and enforcing limits\n\nSplit DQUOT_USR_ENABLED (and DQUOT_GRP_ENABLED) into DQUOT_USR_USAGE_ENABLED\nand DQUOT_USR_LIMITS_ENABLED. This way we are able to separately enable /\ndisable whether we should:\n1) ignore quotas completely\n2) just keep uptodate information about usage\n3) actually enforce quota limits\n\nThis is going to be useful when quota is treated as filesystem metadata - we\nthen want to keep quota information uptodate all the time and just enable /\ndisable limits enforcement.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "e4bc7b4b7ff783779b6928d55a9308910bf180a3",
      "tree": "1cf54906c8686507f9cc127754210930d27a0471",
      "parents": [
        "1497d3ad487b64eeea83ac203263802755438949"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Aug 20 16:21:01 2008 +0200"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:36:56 2009 -0800"
      },
      "message": "quota: Make _SUSPENDED just a flag\n\nUpto now, DQUOT_USR_SUSPENDED behaved like a state - i.e., either quota\nwas enabled or suspended or none. Now allowed states are 0, ENABLED,\nENABLED | SUSPENDED. This will be useful later when we implement separate\nenabling of quota usage tracking and limits enforcement because we need to\nkeep track of a state which has been suspended.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "12095460f7f315f8ef67a55b2194195d325d48d7",
      "tree": "4e878139ccd29a2adeb2a9fa6fcd9c279e8ce6f4",
      "parents": [
        "74f783af95c982aef6d3a1415275650dcf511666"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Aug 20 14:45:12 2008 +0200"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:36:55 2009 -0800"
      },
      "message": "quota: Increase size of variables for limits and inode usage\n\nSo far quota was fine with quota block limits and inode limits/numbers in\na 32-bit type. Now with rapid increase in storage sizes there are coming\nrequests to be able to handle quota limits above 4TB / more that 2^32 inodes.\nSo bump up sizes of types in mem_dqblk structure to 64-bits to be able to\nhandle this. Also update inode allocation / checking functions to use qsize_t\nand make global structure keep quota limits in bytes so that things are\nconsistent.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "74f783af95c982aef6d3a1415275650dcf511666",
      "tree": "594e978641d31e05e170a56ec68f8c65b37bb649",
      "parents": [
        "9f868f16e40e9ad8e39aebff94a4be0d96520734"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Aug 19 14:51:22 2008 +0200"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:36:55 2009 -0800"
      },
      "message": "quota: Add callbacks for allocating and destroying dquot structures\n\nSome filesystems would like to keep private information together with each\ndquot. Add callbacks alloc_dquot and destroy_dquot allowing filesystem to\nallocate larger dquots from their private slab in a similar fashion we\ncurrently allocate inodes.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "e9079cce201784632aed4b1a3121ee38c1ced0b6",
      "tree": "6d99fc45afb3889e5835d713948226d7548d6750",
      "parents": [
        "fe0bdec68b77020281dc814805edfe594ae89e0f"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Oct 14 14:43:29 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 05 07:38:46 2009 +0000"
      },
      "message": "GFS2: Support for FIEMAP ioctl\n\nThis patch implements the FIEMAP ioctl for GFS2. We can use the generic\ncode (aside from a lock order issue, solved as per Ted Tso\u0027s suggestion)\nfor which I\u0027ve introduced a new variant of the generic function. We also\nhave one exception to deal with, namely stuffed files, so we do that\n\"by hand\", setting all the required flags.\n\nThis has been tested with a modified (I could only find an old version) of\nEric\u0027s test program, and appears to work correctly.\n\nThis patch does not currently support FIEMAP of xattrs, but the plan is to add\nthat feature at some future point.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Theodore Tso \u003ctytso@mit.edu\u003e\nCc: Eric Sandeen \u003csandeen@redhat.com\u003e\n"
    },
    {
      "commit": "fe0bdec68b77020281dc814805edfe594ae89e0f",
      "tree": "aeef34a49594cb0478b1104b58ba2dc933c481c5",
      "parents": [
        "099e657625e801adf82054c8050dde5aceb68452",
        "5af75d8d58d0f9f7b7c0515b35786b22892d5f12"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 04 16:32:11 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 04 16:32:11 2009 -0800"
      },
      "message": "Merge branch \u0027audit.b61\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current\n\n* \u0027audit.b61\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current:\n  audit: validate comparison operations, store them in sane form\n  clean up audit_rule_{add,del} a bit\n  make sure that filterkey of task,always rules is reported\n  audit rules ordering, part 2\n  fixing audit rule ordering mess, part 1\n  audit_update_lsm_rules() misses the audit_inode_hash[] ones\n  sanitize audit_log_capset()\n  sanitize audit_fd_pair()\n  sanitize audit_mq_open()\n  sanitize AUDIT_MQ_SENDRECV\n  sanitize audit_mq_notify()\n  sanitize audit_mq_getsetattr()\n  sanitize audit_ipc_set_perm()\n  sanitize audit_ipc_obj()\n  sanitize audit_socketcall\n  don\u0027t reallocate buffer in every audit_sockaddr()\n"
    },
    {
      "commit": "5d38a079ce3971f932bbdc0dc5b887806fabd5dc",
      "tree": "79d948098add1f6c52ecd42c151ce6b6fa1dbc5a",
      "parents": [
        "b530256d2e0f1a75fab31f9821129fff1bb49faa"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sun Jan 04 16:13:40 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jan 04 16:13:40 2009 -0800"
      },
      "message": "gro: Add page frag support\n\nThis patch allows GRO to merge page frags (skb_shinfo(skb)-\u003efrags)\nin one skb, rather than using the less efficient frag_list.\n\nIt also adds a new interface, napi_gro_frags to allow drivers\nto inject page frags directly into the stack without allocating\nan skb.  This is intended to be the GRO equivalent for LRO\u0027s\nlro_receive_frags interface.\n\nThe existing GSO interface can already handle page frags with\nor without an appended frag_list so nothing needs to be changed\nthere.\n\nThe merging itself is rather simple.  We store any new frag entries\nafter the last existing entry, without checking whether the first\nnew entry can be merged with the last existing entry.  Making this\ncheck would actually be easy but since no existing driver can\nproduce contiguous frags anyway it would just be mental masturbation.\n\nIf the total number of entries would exceed the capacity of a\nsingle skb, we simply resort to using frag_list as we do now.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "14deae41566b5cdd992c01d0069518ced5227c83",
      "tree": "d15c3dfabdc3ccf10997487c29df35fa58387e55",
      "parents": [
        "eb4dea5853046727bfbb579f0c9a8cae7369f7c6"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jan 04 16:04:39 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jan 04 16:04:39 2009 -0800"
      },
      "message": "ipv6: Fix sporadic sendmsg -EINVAL when sending to multicast groups.\n\nThanks to excellent diagnosis by Eduard Guzovsky.\n\nThe core problem is that on a network with lots of active\nmulticast traffic, the neighbour cache can fill up.  If\nwe try to allocate a new route and thus neighbour cache\nentry, the bog-standard GC attempt the neighbour layer does\nin ineffective because route entries hold a reference\nto the existing neighbour entries and GC can only liberate\nentries with no references.\n\nIPV4 already has a way to handle this, by doing a route cache\nGC in such situations (when neigh attach returns -ENOBUFS).\n\nSo simply mimick this on the ipv6 side.\n\nTested-by: Eduard Guzovsky \u003ceguzovsky@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9ea09af3bd3090e8349ca2899ca2011bd94cda85",
      "tree": "36396347bb750a6aecb0771cfebf9887aaaae492",
      "parents": [
        "c298be74492bece102f3379d14015638f1fd1fac"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Mon Dec 22 12:36:30 2008 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jan 05 08:40:14 2009 +1030"
      },
      "message": "stop_machine: introduce stop_machine_create/destroy.\n\nIntroduce stop_machine_create/destroy. With this interface subsystems\nthat need a non-failing stop_machine environment can create the\nstop_machine machine threads before actually calling stop_machine.\nWhen the threads aren\u0027t needed anymore they can be killed with\nstop_machine_destroy again.\n\nWhen stop_machine gets called and the threads aren\u0027t present they\nwill be created and destroyed automatically. This restores the old\nbehaviour of stop_machine.\n\nThis patch also converts cpu hotplug to the new interface since it\nis special: cpu_down calls __stop_machine instead of stop_machine.\nHowever the kstop threads will only be created when stop_machine\ngets called.\n\nChanging the code so that the threads would be created automatically\non __stop_machine is currently not possible: when __stop_machine gets\ncalled we hold cpu_add_remove_lock, which is the same lock that\ncreate_rt_workqueue would take. So the workqueue needs to be created\nbefore the cpu hotplug code locks cpu_add_remove_lock.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "088af9a6e05d51e7c3dc85d45d8b7a52c3ee08d7",
      "tree": "86e2dd6be7fbc17cb01a42fc11f5eef794a824df",
      "parents": [
        "d1e99d7ae4e6bbd1ebb5e81ecd3af2b8793efee0"
      ],
      "author": {
        "name": "Helge Deller",
        "email": "deller@gmx.de",
        "time": "Wed Dec 31 12:31:18 2008 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jan 05 08:40:13 2009 +1030"
      },
      "message": "module: fix module loading failure of large kernel modules for parisc\n\nWhen creating the final layout of a kernel module in memory, allow the\nmodule loader to reserve some additional memory in front of a given section.\nThis is currently only needed for the parisc port which needs to put the\nstub entries there to fulfill the 17/22bit PCREL relocations with large\nkernel modules like xfs.\n\nSigned-off-by: Helge Deller \u003cdeller@gmx.de\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e (renamed fn)\n"
    },
    {
      "commit": "099e657625e801adf82054c8050dde5aceb68452",
      "tree": "d6c28df68ab390fa237b8339c6081e4db380aa5f",
      "parents": [
        "54566b2c1594c2326a645a3551f9d989f7ba3c5e"
      ],
      "author": {
        "name": "Alessandro Zummo",
        "email": "a.zummo@towertech.it",
        "time": "Sun Jan 04 12:00:54 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 04 13:33:20 2009 -0800"
      },
      "message": "rtc: add alarm/update irq interfaces\n\nAdd standard interfaces for alarm/update irqs enabling.  Drivers are no\nmore required to implement equivalent ioctl code as rtc-dev will provide\nit.\n\nUIE emulation should now be handled correctly and will work even for those\nRTC drivers who cannot be configured to do both UIE and AIE.\n\nSigned-off-by: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nCc: Atsushi Nemoto \u003canemo@mba.ocn.ne.jp\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "54566b2c1594c2326a645a3551f9d989f7ba3c5e",
      "tree": "b373f3283fe5e197d0df29cd6b645c35adf1076c",
      "parents": [
        "e687d691cb3790d25e31c74f5941fd7c565e9df5"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sun Jan 04 12:00:53 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 04 13:33:20 2009 -0800"
      },
      "message": "fs: symlink write_begin allocation context fix\n\nWith the write_begin/write_end aops, page_symlink was broken because it\ncould no longer pass a GFP_NOFS type mask into the point where the\nallocations happened.  They are done in write_begin, which would always\nassume that the filesystem can be entered from reclaim.  This bug could\ncause filesystem deadlocks.\n\nThe funny thing with having a gfp_t mask there is that it doesn\u0027t really\nallow the caller to arbitrarily tinker with the context in which it can be\ncalled.  It couldn\u0027t ever be GFP_ATOMIC, for example, because it needs to\ntake the page lock.  The only thing any callers care about is __GFP_FS\nanyway, so turn that into a single flag.\n\nAdd a new flag for write_begin, AOP_FLAG_NOFS.  Filesystems can now act on\nthis flag in their write_begin function.  Change __grab_cache_page to\naccept a nofs argument as well, to honour that flag (while we\u0027re there,\nchange the name to grab_cache_page_write_begin which is more instructive\nand does away with random leading underscores).\n\nThis is really a more flexible way to go in the end anyway -- if a\nfilesystem happens to want any extra allocations aside from the pagecache\nones in ints write_begin function, it may now use GFP_KERNEL (rather than\nGFP_NOFS) for common case allocations (eg.  ocfs2_alloc_write_ctxt, for a\nrandom example).\n\n[kosaki.motohiro@jp.fujitsu.com: fix ubifs]\n[kosaki.motohiro@jp.fujitsu.com: fix fuse]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.28.x]\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n[ Cleaned up the calling convention: just pass in the AOP flags\n  untouched to the grab_cache_page_write_begin() function.  That\n  just simplifies everybody, and may even allow future expansion of the\n  logic.   - Linus ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c644f0e4b56f9a2fc066cd0d75a18074d130e4a3",
      "tree": "96f5954d7e72a2bf56f4165f4e7569364562f04f",
      "parents": [
        "0a30c5cefa53cbac429dcb2de906c0637b646253"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Sun Jan 04 12:00:48 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 04 13:33:20 2009 -0800"
      },
      "message": "fs: introduce bgl_lock_ptr()\n\nAs suggested by Andreas Dilger, introduce a bgl_lock_ptr() helper in\n\u003clinux/blockgroup_lock.h\u003e and add separate sb_bgl_lock() helpers to\nfilesystem specific header files to break the hidden dependency to\nstruct ext[234]_sb_info.\n\nAlso, while at it, convert the macros to static inlines to try make up\nfor all the times I broke Andrew Morton\u0027s tree.\n\nAcked-by: Andreas Dilger \u003cadilger@sun.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: \u003clinux-ext4@vger.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": "0a30c5cefa53cbac429dcb2de906c0637b646253",
      "tree": "b0babe6f5e3b320f4f168975d798180d3be7e3c7",
      "parents": [
        "2e4e27c7d082b2198b63041310609d7191185a9d"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Sun Jan 04 12:00:47 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 04 13:33:20 2009 -0800"
      },
      "message": "spi.h uses/needs device.h\n\nInclude header files as used/needed:\n\n  In file included from drivers/leds/leds-dac124s085.c:16:\n  include/linux/spi/spi.h:66: error: field \u0027dev\u0027 has incomplete type\n  include/linux/spi/spi.h: In function \u0027to_spi_device\u0027:\n  include/linux/spi/spi.h:100: warning: type defaults to \u0027int\u0027 in declaration of \u0027__mptr\u0027\n  ...\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5af75d8d58d0f9f7b7c0515b35786b22892d5f12",
      "tree": "65707c5309133a33140c39145ae91b7c1679a877",
      "parents": [
        "36c4f1b18c8a7d0adb4085e7f531860b837bb6b0"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Dec 16 05:59:26 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 04 15:14:42 2009 -0500"
      },
      "message": "audit: validate comparison operations, store them in sane form\n\nDon\u0027t store the field-\u003eop in the messy (and very inconvenient for e.g.\naudit_comparator()) form; translate to dense set of values and do full\nvalidation of userland-submitted value while we are at it.\n\n-\u003eaudit_init_rule() and -\u003eaudit_match_rule() get new values now; in-tree\ninstances updated.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e45aa212ea81d39b38ba158df344dc3a500153e5",
      "tree": "c4d55cda9e8f976d15b6b01a775a3437f932db27",
      "parents": [
        "0590b9335a1c72a3f0defcc6231287f7817e07c8"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Dec 15 01:17:50 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 04 15:14:42 2009 -0500"
      },
      "message": "audit rules ordering, part 2\n\nFix the actual rule listing; add per-type lists _not_ used for matching,\nwith all exit,... sitting on one such list.  Simplifies \"do something\nfor all rules\" logics, while we are at it...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0590b9335a1c72a3f0defcc6231287f7817e07c8",
      "tree": "289fa4668ae304f79f7484ac31b2cab0ab8894c1",
      "parents": [
        "1a9d0797b8977d413435277bf9661efbbd584693"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Dec 14 23:45:27 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 04 15:14:41 2009 -0500"
      },
      "message": "fixing audit rule ordering mess, part 1\n\nProblem: ordering between the rules on exit chain is currently lost;\nall watch and inode rules are listed after everything else _and_\nexit,never on one kind doesn\u0027t stop exit,always on another from\nbeing matched.\n\nSolution: assign priorities to rules, keep track of the current\nhighest-priority matching rule and its result (always/never).\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "57f71a0af4244d9ba3c0bce74b1d2e66e8d520bd",
      "tree": "c089a97949fc1d459e137b18739c04e9217913d1",
      "parents": [
        "157cf649a735a2f7e8dba0ed08e6e38b6c30d886"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 04 14:52:57 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 04 15:14:41 2009 -0500"
      },
      "message": "sanitize audit_log_capset()\n\n* no allocations\n* return void\n* don\u0027t duplicate checked for dummy context\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "157cf649a735a2f7e8dba0ed08e6e38b6c30d886",
      "tree": "85895367c24023d363d5ee7b5ed2fb16eaf08721",
      "parents": [
        "564f6993ffef656aebaf46cf2f1f6cb4f5c97207"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Dec 14 04:57:47 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 04 15:14:41 2009 -0500"
      },
      "message": "sanitize audit_fd_pair()\n\n* no allocations\n* return void\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "564f6993ffef656aebaf46cf2f1f6cb4f5c97207",
      "tree": "0bf1ee553ab1241338fe522ffbaed8cd48e10c99",
      "parents": [
        "c32c8af43b9adde8d6f938d8e6328c13b8de79ac"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Dec 14 04:02:26 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 04 15:14:41 2009 -0500"
      },
      "message": "sanitize audit_mq_open()\n\n* don\u0027t bother with allocations\n* don\u0027t do double copy_from_user()\n* don\u0027t duplicate parts of check for audit_dummy_context()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c32c8af43b9adde8d6f938d8e6328c13b8de79ac",
      "tree": "6377079bba7530d2aa8a688ebf9ba3e09ae085a7",
      "parents": [
        "20114f71b27cafeb7c7e41d2b0f0b68c3fbb022b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Dec 14 03:46:48 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 04 15:14:40 2009 -0500"
      },
      "message": "sanitize AUDIT_MQ_SENDRECV\n\n* logging the original value of *msg_prio in mq_timedreceive(2)\n  is insane - the argument is write-only (i.e. syscall always\n  ignores the original value and only overwrites it).\n* merge __audit_mq_timed{send,receive}\n* don\u0027t do copy_from_user() twice\n* don\u0027t mess with allocations in auditsc part\n* ... and don\u0027t bother checking !audit_enabled and !context in there -\n  we\u0027d already checked for audit_dummy_context().\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "20114f71b27cafeb7c7e41d2b0f0b68c3fbb022b",
      "tree": "fcbb481cfec8c11f103ba07dbb08819de3822d80",
      "parents": [
        "7392906ea915b9a2c14dea32b3604b4e178f82f7"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 10 07:16:12 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 04 15:14:40 2009 -0500"
      },
      "message": "sanitize audit_mq_notify()\n\n* don\u0027t copy_from_user() twice\n* don\u0027t bother with allocations\n* don\u0027t duplicate parts of audit_dummy_context()\n* make it return void\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7392906ea915b9a2c14dea32b3604b4e178f82f7",
      "tree": "1e4fbe56e3738fade213ef805ec274ea74ac6a1b",
      "parents": [
        "e816f370cbadd2afea9f1a42f232d0636137d563"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 10 06:58:59 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 04 15:14:40 2009 -0500"
      },
      "message": "sanitize audit_mq_getsetattr()\n\n* get rid of allocations\n* make it return void\n* don\u0027t duplicate parts of audit_dummy_context()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e816f370cbadd2afea9f1a42f232d0636137d563",
      "tree": "8a9fe488ced59cd9864fcbf15292641c3b95143c",
      "parents": [
        "a33e6751003c5ade603737d828b1519d980ce392"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 10 03:47:15 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 04 15:14:40 2009 -0500"
      },
      "message": "sanitize audit_ipc_set_perm()\n\n* get rid of allocations\n* make it return void\n* simplify callers\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a33e6751003c5ade603737d828b1519d980ce392",
      "tree": "aa484d033e886945aed78172dbdd4d2fd928bacf",
      "parents": [
        "f3298dc4f2277874d40cb4fc3a6e277317d6603b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 10 03:40:06 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 04 15:14:39 2009 -0500"
      },
      "message": "sanitize audit_ipc_obj()\n\n* get rid of allocations\n* make it return void\n* simplify callers\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f3298dc4f2277874d40cb4fc3a6e277317d6603b",
      "tree": "8ba8f7e7a0597965b2f6c7106718a59cc164eab1",
      "parents": [
        "4f6b434fee2402b3decdeae9d16eb648725ae426"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 10 03:16:51 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 04 15:14:39 2009 -0500"
      },
      "message": "sanitize audit_socketcall\n\n* don\u0027t bother with allocations\n* now that it can\u0027t fail, make it return void\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0931a4c6dbfab03f2bfd22a9170130f7b155d53a",
      "tree": "3b943723615a0212bf5e5b74b1fbc0689ee6cbae",
      "parents": [
        "4331bb32339a55fd88fbfb0581ed5132207bf9a2"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Mon Dec 22 12:05:27 2008 +0100"
      },
      "committer": {
        "name": "Samuel Ortiz",
        "email": "samuel@sortiz.org",
        "time": "Sun Jan 04 12:17:43 2009 +0100"
      },
      "message": "mfd: dm355evm msp430 driver\n\nBasic MFD framework for the MSP430 microcontroller firmware used\non the dm355evm board:\n\n - Provides an interface for other drivers: register read/write\n   utilities, and register declarations.\n\n - Directly exports:\n     * Many signals through the GPIO framework\n         + LEDs\n         + SW6 through gpio sysfs\n\t + NTSC/nPAL jumper through gpio sysfs\n\t + ... more could be added later, e.g. MMC signals\n     * Child devices:\n\t+ LEDs, via leds-gpio child (and default triggers)\n\t+ RTC, via rtc-dm355evm child device\n\t+ Buttons and IR control, via dm355evm_keys\n\n - Supports power-off system call.  Use the reset button to power\n   the board back up; the power supply LED will be on, but the\n   MSP430 waits to re-activate the regulators.\n\n - On probe() this:\n     * Announces firmware revision\n     * Turns off the banked LEDs\n     * Exports the resources noted above\n     * Hooks the power-off support\n     * Muxes tvp5146 -or- imager for video input\n\nUnless the new tvp514x driver (tracked for mainline) is configured,\nthis assumes that some custom imager driver handles video-in.\n\nThis completely ignores the registers reporting the output voltages\non the various power supplies.  Someone could add a hwmon interface\nif that seems useful.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Samuel Ortiz \u003csameo@openedhand.com\u003e\n"
    },
    {
      "commit": "ca23f8c1b0aa15dc69565244fc5dffa67a72dd02",
      "tree": "ef082e834c225e8138f2c0a208a37b0384d4741f",
      "parents": [
        "645524a9c6e1e42dc4fe03217befb20e2fc4d43e"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Thu Dec 18 23:12:28 2008 +0100"
      },
      "committer": {
        "name": "Samuel Ortiz",
        "email": "samuel@sortiz.org",
        "time": "Sun Jan 04 12:17:42 2009 +0100"
      },
      "message": "mfd: Add WM8351 support\n\nThe WM8351 is a WM8350 variant. As well as register default changes the\nWM8351 has fewer voltage and current regulators than the WM8350.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Samuel Ortiz \u003csameo@openedhand.com\u003e\n"
    },
    {
      "commit": "645524a9c6e1e42dc4fe03217befb20e2fc4d43e",
      "tree": "f556620d6695f7257c24cc483b3b9bdde9abfca1",
      "parents": [
        "53a0d99b1ef14f56baec06eec1e3dad031672b3a"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Thu Dec 18 23:12:16 2008 +0100"
      },
      "committer": {
        "name": "Samuel Ortiz",
        "email": "samuel@sortiz.org",
        "time": "Sun Jan 04 12:17:42 2009 +0100"
      },
      "message": "mfd: Support configurable numbers of DCDCs and ISINKs on WM8350\n\nSome WM8350 variants have fewer DCDCs and ISINKs. Identify these at\nprobe and refuse to use the absent DCDCs when running on these chips.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Samuel Ortiz \u003csameo@openedhand.com\u003e\n"
    },
    {
      "commit": "96920630624868add3f63f596523e70dbb64549a",
      "tree": "061f9889a1f0a0b6937ba0df82d8114a9123b935",
      "parents": [
        "94964f96a6b7018d68b7386cd8c0b8505d3cf69f"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Thu Dec 18 23:09:50 2008 +0100"
      },
      "committer": {
        "name": "Samuel Ortiz",
        "email": "samuel@sortiz.org",
        "time": "Sun Jan 04 12:17:42 2009 +0100"
      },
      "message": "mfd: Add WM8352 support\n\nThe WM8352 is a variant of the WM8350. Aside from the register defaults\nthere are no software visible differences to the WM8350.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Samuel Ortiz \u003csameo@openedhand.com\u003e\n"
    },
    {
      "commit": "856f6fd119411d5701d5db96e1aae1dd69923887",
      "tree": "0b3307ff6ab793814909fb051b18eeca4687e98f",
      "parents": [
        "b8380c1a661f1f853418ff2eb798f27a11cade57"
      ],
      "author": {
        "name": "Mike Rapoport",
        "email": "mike@compulab.co.il",
        "time": "Thu Dec 18 10:54:27 2008 +0100"
      },
      "committer": {
        "name": "Samuel Ortiz",
        "email": "samuel@sortiz.org",
        "time": "Sun Jan 04 12:17:41 2009 +0100"
      },
      "message": "mfd: Dialog DA9030 battery charger MFD driver\n\nThis patch amends DA903x MFD driver with definitions and methods\nneeded for battery charger driver.\n\nSigned-off-by: Mike Rapoport \u003cmike@compulab.co.il\u003e\nSigned-off-by: Samuel Ortiz \u003csameo@openedhand.com\u003e\n"
    },
    {
      "commit": "b73eac7871d002835be17d4602cced2c15c0db4b",
      "tree": "0d664f8baf38f20eb8557ad6148377a1eef21899",
      "parents": [
        "dad759ff8ba79927766e3f0159bfc5fb6de0f982"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Sun Dec 07 19:10:58 2008 +0100"
      },
      "committer": {
        "name": "Samuel Ortiz",
        "email": "samuel@sortiz.org",
        "time": "Sun Jan 04 12:17:40 2009 +0100"
      },
      "message": "mfd: twl4030 regulator bug fixes\n\nThis contains two bugfixes to the initial twl4030 regulator\nsupport patch related to USB:\n\n (a) always overwrite the old list of consumers ... else\n     the regulator handles all use the same \"usb1v5\" name;\n (b) don\u0027t set up the \"usbcp\" regulator, which turns out\n     to be managed through separate controls, usually ULPI\n     directly from the OTG controller.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Samuel Ortiz \u003csameo@openedhand.com\u003e\n"
    },
    {
      "commit": "dad759ff8ba79927766e3f0159bfc5fb6de0f982",
      "tree": "06849276db93d8893d763175b8d3acb4b2b5e2f8",
      "parents": [
        "67460a7c26271fd7a32e5d51b2c806a84ce78a62"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Mon Dec 01 00:43:58 2008 +0100"
      },
      "committer": {
        "name": "Samuel Ortiz",
        "email": "samuel@sortiz.org",
        "time": "Sun Jan 04 12:17:39 2009 +0100"
      },
      "message": "mfd: twl4030: create some regulator devices\n\nInitial code to create twl4030 voltage regulator devices, using\nthe new regulator framework.  Note that this now starts to care\nwhat name is used to declare the TWL chip:\n\n - TWL4030 is the \"old\" chip; newer ones have a bigger variety\n   of VAUX2 voltages.\n\n - TWL5030 is the core \"new\" chip; TPS65950 is its catalog version.\n\n - The TPS65930 and TPS65920 are cost-reduced catalog versions of\n   TWL5030 parts ... fewer regulators, no battery charger, etc.\n\nBoard-specific regulator configuration should be provided, listing\nwhich regulators are used and their constraints (e.g. 1.8V only).\n\nCode that could (\"should\"?) leverage the regulator stuff includes\nTWL4030 USB transceiver support and MMC glue, LCD support for the\n3430SDP and Labrador boards, and S-Video output.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Tony Lindgren \u003ctony@atomide.com\u003e\nSigned-off-by: Samuel Ortiz \u003csameo@openedhand.com\u003e\n"
    },
    {
      "commit": "67460a7c26271fd7a32e5d51b2c806a84ce78a62",
      "tree": "9da0301218f213122a402c2f671db2674db4b484",
      "parents": [
        "5725d66b9d18e630bb63e3b76bedf25fd1027265"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Mon Dec 01 00:35:33 2008 +0100"
      },
      "committer": {
        "name": "Samuel Ortiz",
        "email": "samuel@sortiz.org",
        "time": "Sun Jan 04 12:17:39 2009 +0100"
      },
      "message": "mfd: twl4030: cleanup symbols and OMAP dependency\n\nFinish removing dependency of TWL driver stack on platform-specific\nIRQ definitions ... and remove the build dependency on OMAP.\n\nThis lets the TWL4030 code be included in test builds for most\nplatforms, and will make it easier for non-OMAP folk to update\nmost of this code for new APIs etc.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Tony Lindgren \u003ctony@atomide.com\u003e\nSigned-off-by: Samuel Ortiz \u003csameo@openedhand.com\u003e\n"
    },
    {
      "commit": "4008e879e1325c29362aa2c3fa4b527273ae15a8",
      "tree": "1fe1e210e6031a6a19d42b88645f94641a23f7db",
      "parents": [
        "7e386e6e0e4f34f0545e8923e22fe4dd61ef9d48"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Sun Nov 30 22:45:14 2008 +0100"
      },
      "committer": {
        "name": "Samuel Ortiz",
        "email": "samuel@sortiz.org",
        "time": "Sun Jan 04 12:17:39 2009 +0100"
      },
      "message": "power_supply: Add battery health reporting for WM8350\n\nImplement support for reporting battery health in the WM8350 battery\ninterface. Since we are now able to report this via the classs remove\nthe diagnostics from the interrupt handler.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nAcked-by: Anton Vorontsov \u003ccbouatmailru@gmail.com\u003e\nSigned-off-by: Samuel Ortiz \u003csameo@openedhand.com\u003e\n"
    },
    {
      "commit": "7e386e6e0e4f34f0545e8923e22fe4dd61ef9d48",
      "tree": "1ee5fa55e26d0615aed1817163755a5315b86ec0",
      "parents": [
        "b797a5551979da22b0a35632198ffc8a330d9537"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Sun Nov 30 22:43:21 2008 +0100"
      },
      "committer": {
        "name": "Samuel Ortiz",
        "email": "samuel@sortiz.org",
        "time": "Sun Jan 04 12:17:39 2009 +0100"
      },
      "message": "power_supply: Add cold to the POWER_SUPPLY_HEALTH report values\n\nSome systems are able to report problems with batteries being under\ntemperature.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nAcked-by: Anton Vorontsov \u003ccbouatmailru@gmail.com\u003e\nSigned-off-by: Samuel Ortiz \u003csameo@openedhand.com\u003e\n"
    },
    {
      "commit": "b797a5551979da22b0a35632198ffc8a330d9537",
      "tree": "664747dc55889cd30a7d853e2fe5e816a2d9d6a2",
      "parents": [
        "d756f4a4446227ca9626087939a6769ca55ab036"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Nov 24 20:22:58 2008 +0100"
      },
      "committer": {
        "name": "Samuel Ortiz",
        "email": "samuel@sortiz.org",
        "time": "Sun Jan 04 12:17:39 2009 +0100"
      },
      "message": "mfd: Refactor WM8350 chip identification\n\nSince the WM8350 driver was originally written the semantics for the\nidentification registers of the chip have been clarified, allowing\nus to do an exact match on all the fields. This avoids mistakenly\nrunning on unsupported hardware.\n\nAlso change to using the datasheet names more consistently for\nlegibility and fix a printk() that should be dev_err().\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Samuel Ortiz \u003csameo@openedhand.com\u003e\n"
    },
    {
      "commit": "d756f4a4446227ca9626087939a6769ca55ab036",
      "tree": "572e6788f3aa01c74c1c8ebb139b0d8a137cdd72",
      "parents": [
        "14431aa0c5a443d13d24e6f865a8838f97dab973"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Mon Nov 24 20:20:30 2008 +0100"
      },
      "committer": {
        "name": "Samuel Ortiz",
        "email": "samuel@sortiz.org",
        "time": "Sun Jan 04 12:17:38 2009 +0100"
      },
      "message": "mfd: Switch WM8350 revision detection to a feature based model\n\nRather than check for chip revisions in the WM8350 drivers have the core\ncode set flags for relevant differences.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Samuel Ortiz \u003csameo@openedhand.com\u003e\n"
    }
  ],
  "next": "14431aa0c5a443d13d24e6f865a8838f97dab973"
}
