)]}'
{
  "log": [
    {
      "commit": "43918f2bf4806675943416d539d9d5e4d585ebff",
      "tree": "1de2ea08eed647b181b7f008f95e4bc4ec34c343",
      "parents": [
        "90bc8d8b1a38f1ab131a2399a202e1889db95de8"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:00 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:58 2009 -0700"
      },
      "message": "signals: remove \u0027handler\u0027 parameter to tracehook functions\n\nContainer-init must behave like global-init to processes within the\ncontainer and hence it must be immune to unhandled fatal signals from\nwithin the container (i.e SIG_DFL signals that terminate the process).\n\nBut the same container-init must behave like a normal process to processes\nin ancestor namespaces and so if it receives the same fatal signal from a\nprocess in ancestor namespace, the signal must be processed.\n\nImplementing these semantics requires that send_signal() determine pid\nnamespace of the sender but since signals can originate from workqueues/\ninterrupt-handlers, determining pid namespace of sender may not always be\npossible or safe.\n\nThis patchset implements the design/simplified semantics suggested by\nOleg Nesterov.  The simplified semantics for container-init are:\n\n\t- container-init must never be terminated by a signal from a\n\t  descendant process.\n\n\t- container-init must never be immune to SIGKILL from an ancestor\n\t  namespace (so a process in parent namespace must always be able\n\t  to terminate a descendant container).\n\n\t- container-init may be immune to unhandled fatal signals (like\n\t  SIGUSR1) even if they are from ancestor namespace. SIGKILL/SIGSTOP\n\t  are the only reliable signals to a container-init from ancestor\n\t  namespace.\n\nThis patch:\n\nBased on an earlier patch submitted by Oleg Nesterov and comments from\nRoland McGrath (http://lkml.org/lkml/2008/11/19/258).\n\nThe handler parameter is currently unused in the tracehook functions.\nBesides, the tracehook functions are called with siglock held, so the\nfunctions can check the handler if they later need to.\n\nRemoving the parameter simiplifies changes to sig_ignored() in a follow-on\npatch.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a1bc5a4eee990a1f290735c8694d0aebdad095fa",
      "tree": "f3e5849823444136df9c7f91f7217e1894235682",
      "parents": [
        "7f81b1ae18416b457e4d5ff23f0bd598e8a42224"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Thu Apr 02 16:57:54 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:57 2009 -0700"
      },
      "message": "cpusets: replace zone allowed functions with node allowed\n\nThe cpuset_zone_allowed() variants are actually only a function of the\nzone\u0027s node.\n\nCc: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bd1a8ab73edd449fecda633449cc277b856ad4f5",
      "tree": "66095c2a59f8706138e89190ec6c1d9cfaab6916",
      "parents": [
        "0b4217b3fdddc4a58939720d3ed809537577d48b"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:50 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:56 2009 -0700"
      },
      "message": "cgroups: add \u0027data\u0027 field to struct cgroup_scanner\n\nWe need to pass some data to test_task() or process_task() in some cases.\nWill be used later.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a3b2d692690aef228e493b1beaafe5364cab3237",
      "tree": "d3ad99c5370462861a1b918b4136e7bd7ad78e52",
      "parents": [
        "3c776e64660028236313f0e54f3a9945764422df"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:45 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:56 2009 -0700"
      },
      "message": "cgroups: use css id in swap cgroup for saving memory v5\n\nTry to use CSS ID for records in swap_cgroup.  By this, on 64bit machine,\nsize of swap_cgroup goes down to 2 bytes from 8bytes.\n\nThis means, when 2GB of swap is equipped, (assume the page size is 4096bytes)\n\n\tFrom size of swap_cgroup \u003d 2G/4k * 8 \u003d 4Mbytes.\n\tTo   size of swap_cgroup \u003d 2G/4k * 2 \u003d 1Mbytes.\n\nReduction is large.  Of course, there are trade-offs.  This CSS ID will\nadd overhead to swap-in/swap-out/swap-free.\n\nBut in general,\n  - swap is a resource which the user tend to avoid use.\n  - If swap is never used, swap_cgroup area is not used.\n  - Reading traditional manuals, size of swap should be proportional to\n    size of memory. Memory size of machine is increasing now.\n\nI think reducing size of swap_cgroup makes sense.\n\nNote:\n  - ID-\u003eCSS lookup routine has no locks, it\u0027s under RCU-Read-Side.\n  - memcg can be obsolete at rmdir() but not freed while refcnt from\n    swap_cgroup is available.\n\nChangelog v4-\u003ev5:\n - reworked on to memcg-charge-swapcache-to-proper-memcg.patch\nChanglog -\u003ev4:\n - fixed not configured case.\n - deleted unnecessary comments.\n - fixed NULL pointer bug.\n - fixed message in dmesg.\n\n[nishimura@mxp.nes.nec.co.jp: css_tryget can be called twice in !PageCgroupUsed case]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3918b96e03b2b8dd05889320623f6870e81d35ec",
      "tree": "b00b009a4e7b2a2605e592c5faf262c6006f74f5",
      "parents": [
        "c137b5ece4b111e46981aae7da77315b9909809f"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:41 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:56 2009 -0700"
      },
      "message": "memcg: remove mem_cgroup_reclaim_imbalance() remnants\n\ncommit 4f98a2fee8acdb4ac84545df98cccecfd130f8db (vmscan: split LRU lists\ninto anon \u0026 file sets) removed mem_cgroup_reclaim_imbalance(), but there\nare some leftovers in memcontrol.h.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: 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": "c137b5ece4b111e46981aae7da77315b9909809f",
      "tree": "99677d3ae0f9016e83f257743ff04d5886a6e998",
      "parents": [
        "e222432bfa7dcf6ec008622a978c9f284ed5e3a9"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:40 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:55 2009 -0700"
      },
      "message": "memcg: remove mem_cgroup_calc_mapped_ratio()\n\nCurrently, mem_cgroup_calc_mapped_ratio() is unused at all.  it can be\nremoved and KAMEZAWA-san suggested it.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e222432bfa7dcf6ec008622a978c9f284ed5e3a9",
      "tree": "b006f569cb66523a5644ad0ef1669b051ccda907",
      "parents": [
        "0b7f569e45bb6be142d87017030669a6a7d327a1"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Thu Apr 02 16:57:39 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:55 2009 -0700"
      },
      "message": "memcg: show memcg information during OOM\n\nAdd RSS and swap to OOM output from memcg\n\nDisplay memcg values like failcnt, usage and limit when an OOM occurs due\nto memcg.\n\nThanks to Johannes Weiner, Li Zefan, David Rientjes, Kamezawa Hiroyuki,\nDaisuke Nishimura and KOSAKI Motohiro for review.\n\nSample output\n-------------\n\nTask in /a/x killed as a result of limit of /a\nmemory: usage 1048576kB, limit 1048576kB, failcnt 4183\nmemory+swap: usage 1400964kB, limit 9007199254740991kB, failcnt 0\n\n[akpm@linux-foundation.org: compilation fix]\n[akpm@linux-foundation.org: fix kerneldoc and whitespace]\n[akpm@linux-foundation.org: add printk facility level]\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0b7f569e45bb6be142d87017030669a6a7d327a1",
      "tree": "8df7877b95c093ebf4cb4e1006cea16f75fc79b7",
      "parents": [
        "81d39c20f5ee2437d71709beb82597e2a38efbbc"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:38 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:55 2009 -0700"
      },
      "message": "memcg: fix OOM killer under memcg\n\nThis patch tries to fix OOM Killer problems caused by hierarchy.\nNow, memcg itself has OOM KILL function (in oom_kill.c) and tries to\nkill a task in memcg.\n\nBut, when hierarchy is used, it\u0027s broken and correct task cannot\nbe killed. For example, in following cgroup\n\n\t/groupA/\thierarchy\u003d1, limit\u003d1G,\n\t\t01\tnolimit\n\t\t02\tnolimit\nAll tasks\u0027 memory usage under /groupA, /groupA/01, groupA/02 is limited to\ngroupA\u0027s 1Gbytes but OOM Killer just kills tasks in groupA.\n\nThis patch provides makes the bad process be selected from all tasks\nunder hierarchy. BTW, currently, oom_jiffies is updated against groupA\nin above case. oom_jiffies of tree should be updated.\n\nTo see how oom_jiffies is used, please check mem_cgroup_oom_called()\ncallers.\n\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: const fix]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "099fca3225b39f7a3ed853036038054172b55581",
      "tree": "c7a8863f9ca8a5c745297e9ee43b63494b6022d1",
      "parents": [
        "b6719ec1ad54e47e40633b19703f2c1254708842"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:29 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:54 2009 -0700"
      },
      "message": "cgroups: show correct file mode\n\nWe have some read-only files and write-only files, but currently they are\nall set to 0644, which is counter-intuitive and cause trouble for some\ncgroup tools like libcgroup.\n\nThis patch adds \u0027mode\u0027 to struct cftype to allow cgroup subsys to set it\u0027s\nown files\u0027 file mode, and for the most cases cft-\u003emode can be default to 0\nand cgroup will figure out proper mode.\n\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: 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": "ec64f51545fffbc4cb968f0cea56341a4b07e85a",
      "tree": "575d890a6759d81f3324fa2a22ca6ab14a41eefc",
      "parents": [
        "38460b48d06440de46b34cb778bd6c4855030754"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:26 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:54 2009 -0700"
      },
      "message": "cgroup: fix frequent -EBUSY at rmdir\n\nIn following situation, with memory subsystem,\n\n\t/groupA use_hierarchy\u003d\u003d1\n\t\t/01 some tasks\n\t\t/02 some tasks\n\t\t/03 some tasks\n\t\t/04 empty\n\nWhen tasks under 01/02/03 hit limit on /groupA, hierarchical reclaim\nis triggered and the kernel walks tree under groupA. In this case,\nrmdir /groupA/04 fails with -EBUSY frequently because of temporal\nrefcnt from the kernel.\n\nIn general. cgroup can be rmdir\u0027d if there are no children groups and\nno tasks. Frequent fails of rmdir() is not useful to users.\n(And the reason for -EBUSY is unknown to users.....in most cases)\n\nThis patch tries to modify above behavior, by\n\t- retries if css_refcnt is got by someone.\n\t- add \"return value\" to pre_destroy() and allows subsystem to\n\t  say \"we\u0027re really busy!\"\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "38460b48d06440de46b34cb778bd6c4855030754",
      "tree": "8f3362a446b5b03879f715c3f7279e70842bcca9",
      "parents": [
        "313e924c0852943e67335fad9d2608701f0dfe8e"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:53 2009 -0700"
      },
      "message": "cgroup: CSS ID support\n\nPatch for Per-CSS(Cgroup Subsys State) ID and private hierarchy code.\n\nThis patch attaches unique ID to each css and provides following.\n\n - css_lookup(subsys, id)\n   returns pointer to struct cgroup_subysys_state of id.\n - css_get_next(subsys, id, rootid, depth, foundid)\n   returns the next css under \"root\" by scanning\n\nWhen cgroup_subsys-\u003euse_id is set, an id for css is maintained.\n\nThe cgroup framework only parepares\n\t- css_id of root css for subsys\n\t- id is automatically attached at creation of css.\n\t- id is *not* freed automatically. Because the cgroup framework\n\t  don\u0027t know lifetime of cgroup_subsys_state.\n\t  free_css_id() function is provided. This must be called by subsys.\n\nThere are several reasons to develop this.\n\t- Saving space .... For example, memcg\u0027s swap_cgroup is array of\n\t  pointers to cgroup. But it is not necessary to be very fast.\n\t  By replacing pointers(8bytes per ent) to ID (2byes per ent), we can\n\t  reduce much amount of memory usage.\n\n\t- Scanning without lock.\n\t  CSS_ID provides \"scan id under this ROOT\" function. By this, scanning\n\t  css under root can be written without locks.\n\t  ex)\n\t  do {\n\t\trcu_read_lock();\n\t\tnext \u003d cgroup_get_next(subsys, id, root, \u0026found);\n\t\t/* check sanity of next here */\n\t\tcss_tryget();\n\t\trcu_read_unlock();\n\t\tid \u003d found + 1\n\t } while(...)\n\nCharacteristics:\n\t- Each css has unique ID under subsys.\n\t- Lifetime of ID is controlled by subsys.\n\t- css ID contains \"ID\" and \"Depth in hierarchy\" and stack of hierarchy\n\t- Allowed ID is 1-65535, ID 0 is UNUSED ID.\n\nDesign Choices:\n\t- scan-by-ID v.s. scan-by-tree-walk.\n\t  As /proc\u0027s pid scan does, scan-by-ID is robust when scanning is done\n\t  by following kind of routine.\n\t  scan -\u003e rest a while(release a lock) -\u003e conitunue from interrupted\n\t  memcg\u0027s hierarchical reclaim does this.\n\n\t- When subsys-\u003euse_id is set, # of css in the system is limited to\n\t  65535.\n\n[bharata@linux.vnet.ibm.com: remove rcu_read_lock() from css_get_next()]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Bharata B Rao \u003cbharata@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": "313e924c0852943e67335fad9d2608701f0dfe8e",
      "tree": "fa4c3f65a7ed6edea52ae78b012138ebab1420c3",
      "parents": [
        "d20a390a0ee2bf2f692c539c6ce1c829e1080bb5"
      ],
      "author": {
        "name": "Grzegorz Nosek",
        "email": "root@localdomain.pl",
        "time": "Thu Apr 02 16:57:23 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:53 2009 -0700"
      },
      "message": "cgroups: relax ns_can_attach checks to allow attaching to grandchild cgroups\n\nThe ns_proxy cgroup allows moving processes to child cgroups only one\nlevel deep at a time.  This commit relaxes this restriction and makes it\npossible to attach tasks directly to grandchild cgroups, e.g.:\n\n($pid is in the root cgroup)\necho $pid \u003e /cgroup/CG1/CG2/tasks\n\nPreviously this operation would fail with -EPERM and would have to be\nperformed as two steps:\necho $pid \u003e /cgroup/CG1/tasks\necho $pid \u003e /cgroup/CG1/CG2/tasks\n\nAlso, the target cgroup no longer needs to be empty to move a task there.\n\nSigned-off-by: Grzegorz Nosek \u003croot@localdomain.pl\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d20a390a0ee2bf2f692c539c6ce1c829e1080bb5",
      "tree": "50fc49556959daf7da2f7194e8f5d02b2e52e3d8",
      "parents": [
        "45dad7bd9d9b65a30d6e790b111f6f2d8f746d22"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Apr 02 16:57:22 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:53 2009 -0700"
      },
      "message": "cgroups: fix cgroup.h comments\n\nFix the style of some multi-line comments in cgroup.h to match\nDocumentation/CodingStyle\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "039fd8ce6258e01ec29f1637f9bf1868dd877c55",
      "tree": "dcc90b006655eecad1d0cd82850feef2398976fa",
      "parents": [
        "b277c884f7856ce0791b1e72079023a86767981b"
      ],
      "author": {
        "name": "Cyrus Massoumi",
        "email": "cyrusm@gmx.net",
        "time": "Thu Apr 02 16:57:12 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:52 2009 -0700"
      },
      "message": "ext3: remove the BKL in ext3/ioctl.c\n\nReformat ext3/ioctl.c to make it look more like ext4/ioctl.c and remove\nthe BKL around ext3_ioctl().\n\nSigned-off-by: Cyrus Massoumi \u003ccyrusm@gmx.net\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nAcked-by: Jan Kara \u003cjack@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bfb9bcdbda9a61bca469bf899a589918c60c4c18",
      "tree": "40b28178c9d969c94e2039b27ac213cab5de0e79",
      "parents": [
        "8a0cecffeb52363a57257bbbbd58f4c4537a75bb"
      ],
      "author": {
        "name": "Michael Buesch",
        "email": "mb@bu3sch.de",
        "time": "Thu Apr 02 16:57:07 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:51 2009 -0700"
      },
      "message": "spi-gpio: allow operation without CS signal\n\nChange spi-gpio so that it is possible to drive SPI communications over\nGPIO without the need for a chipselect signal.\n\nThis is useful in very small setups where there\u0027s only one slave device\non the bus.\n\nThis patch does not affect existing setups.\n\nI use this for a tiny communication channel between an embedded device and\na microcontroller.  There are not enough GPIOs available for chipselect\nand it\u0027s not needed anyway in this case.\n\nSigned-off-by: Michael Buesch \u003cmb@bu3sch.de\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "96615841e170f0108832e64a90d51b469573a472",
      "tree": "a815741cf06b44ac98ee3ac65ca8a546970c1a70",
      "parents": [
        "c1c490e017b66b31f6559db9cbb51a3ce00cf639"
      ],
      "author": {
        "name": "Mike Rapoport",
        "email": "mike@compulab.co.il",
        "time": "Thu Apr 02 16:57:01 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:51 2009 -0700"
      },
      "message": "rtc-v3020: add ability to access v3020 chip with GPIOs\n\nThe v3020 RTC can be connected to GPIOs as well as to memory-like\ninterface.  Add ability to use GPIO bit-bang for v3020 read-write access.\n\n[akpm@linux-foundation.org: fix off-by-one in error path]\nSigned-off-by: Mike Rapoport \u003cmike@compulab.co.il\u003e\nAcked-by: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6f2c55b843836d26528c56a0968689accaedbc67",
      "tree": "17501e29d4b6ef3eb85da9a5d6ad3df7f19ec6a2",
      "parents": [
        "14dd1ff0f9e75dd4ae2f1ff8e48becb76d14f4ab"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Apr 02 16:56:59 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:51 2009 -0700"
      },
      "message": "Simplify copy_thread()\n\nFirst argument unused since 2.3.11.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: \u003clinux-arch@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": "14dd1ff0f9e75dd4ae2f1ff8e48becb76d14f4ab",
      "tree": "a9e208f0c35c8e24ed0edb8a1bc5ca9a4dc9b585",
      "parents": [
        "7274ec8bd71e99018642f474528ea7de4bb3ae25"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Thu Apr 02 16:56:58 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:50 2009 -0700"
      },
      "message": "memory_accessor: implement the new memory_accessor interfaces for SPI EEPROMs\n\n- Define new setup() hook to export the accessor\n - Implement accessor methods\n\nMoves some error checking out of the sysfs interface code into the layer\nbelow it, which is now shared by both sysfs and memory access code.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Kevin Hilman \u003ckhilman@deeprootsystems.com\u003e\nCc: Jean Delvare \u003ckhali@linux-fr.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7274ec8bd71e99018642f474528ea7de4bb3ae25",
      "tree": "3c2e719f696292afa0717f7111d174bdfc073f27",
      "parents": [
        "06c421ee0d5af95c8c6749ca0ba620cd5010707f"
      ],
      "author": {
        "name": "Kevin Hilman",
        "email": "khilman@deeprootsystems.com",
        "time": "Thu Apr 02 16:56:57 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:50 2009 -0700"
      },
      "message": "memory_accessor: implement the new memory_accessor interface for I2C EEPROM\n\nIn the case of at24, the platform code registers a \u0027setup\u0027 callback with\nthe at24_platform_data.  When the at24 driver detects an EEPROM, it fills\nout the read and write functions of the memory_accessor and calls the\nsetup callback passing the memory_accessor struct.  The platform code can\nthen use the read/write functions in the memory_accessor struct for\nreading and writing the EEPROM.\n\nSigned-off-by: Kevin Hilman \u003ckhilman@deeprootsystems.com\u003e\nCc: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: Jean Delvare \u003ckhali@linux-fr.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "06c421ee0d5af95c8c6749ca0ba620cd5010707f",
      "tree": "e4b2cd412d7dd3081f8aaee88d77b1ab72b33b15",
      "parents": [
        "bf6aede712334d7338d5c47a5ee5ba3883c82a61"
      ],
      "author": {
        "name": "Kevin Hilman",
        "email": "khilman@deeprootsystems.com",
        "time": "Thu Apr 02 16:56:56 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:50 2009 -0700"
      },
      "message": "memory_accessor: new interface for reading/writing persistent memory\n\nAdd an interface by which other kernel code can read/write persistent\nmemory such as I2C or SPI EEPROMs, or devices which provide NVRAM.  Use\ncases include storage of board-specific configuration data like Ethernet\naddresses and sensor calibrations.\n\nOriginal idea, review and improvement suggestions by David Brownell.\n\nAcked-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Kevin Hilman \u003ckhilman@deeprootsystems.com\u003e\nCc: Jean Delvare \u003ckhali@linux-fr.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bf6aede712334d7338d5c47a5ee5ba3883c82a61",
      "tree": "153483c5ef1de41f8dd3d233ba46117d0676c303",
      "parents": [
        "e4c2ff1cf2d7fc65d0fc6f88bc98338e0212ad52"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Thu Apr 02 16:56:54 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:50 2009 -0700"
      },
      "message": "workqueue: add to_delayed_work() helper function\n\nIt is a fairly common operation to have a pointer to a work and to need a\npointer to the delayed work it is contained in.  In particular, all\ndelayed works which want to rearm themselves will have to do that.  So it\nwould seem fair to offer a helper function for this operation.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9a896c9a48ac6704c0ce8ee081b836644d0afe40",
      "tree": "681a5453326641cef362a53fb8e031af55ebc87d",
      "parents": [
        "8e2c3795c78d5c4e2e1f14ce751e9d08decbe9d3"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "Lee.Schermerhorn@hp.com",
        "time": "Thu Apr 02 16:56:45 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:49 2009 -0700"
      },
      "message": "mm: define a UNIQUE value for AS_UNEVICTABLE flag\n\nA new \"address_space flag\"--AS_MM_ALL_LOCKS--was defined to use the next\navailable AS flag while the Unevictable LRU was under development.  The\nUnevictable LRU was using the same flag and \"no one\" noticed.  Current\nmainline, since 2.6.28, has same value for two symbolic flag names.\n\nSo, define a unique flag value for AS_UNEVICTABLE--up close to the other\nflags, [at the cost of an additional #ifdef] so we\u0027ll notice next time.\nNote that #ifdef is not actually required, if we don\u0027t mind having the\nunused flag value defined.\n\nReplace #defines with an enum.\n\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.28.x, 2.6.29.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8e2c3795c78d5c4e2e1f14ce751e9d08decbe9d3",
      "tree": "15a86d7823b298636d812d953b0f607b53fda92b",
      "parents": [
        "c90bfeb80f00c765a57f17442fea1a57756b9034"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Thu Apr 02 16:56:44 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:49 2009 -0700"
      },
      "message": "add fiemap.h to header-y\n\nInclude fiemap.h in header-y; it defines the interface for the\nFS_IOC_FIEMAP file mapping ioctl.\n\nSigned-off-by: Eric Sandeen \u003csandeen@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": "33e5d76979cf01e3834814fe0aea569d1d602c1a",
      "tree": "58a03e5da59db203245da10db144a4f6f61a83ba",
      "parents": [
        "5482415a5ecc0cd791a5d885cc3db8281401078f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Apr 02 16:56:32 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:48 2009 -0700"
      },
      "message": "nommu: fix a number of issues with the per-MM VMA patch\n\nFix a number of issues with the per-MM VMA patch:\n\n (1) Make mmap_pages_allocated an atomic_long_t, just in case this is used on\n     a NOMMU system with more than 2G pages.  Makes no difference on a 32-bit\n     system.\n\n (2) Report vma-\u003evm_pgoff * PAGE_SIZE as a 64-bit value, not a 32-bit value,\n     lest it overflow.\n\n (3) Move the allocation of the vm_area_struct slab back for fork.c.\n\n (4) Use KMEM_CACHE() for both vm_area_struct and vm_region slabs.\n\n (5) Use BUG_ON() rather than if () BUG().\n\n (6) Make the default validate_nommu_regions() a static inline rather than a\n     #define.\n\n (7) Make free_page_series()\u0027s objection to pages with a refcount !\u003d 1 more\n     informative.\n\n (8) Adjust the __put_nommu_region() banner comment to indicate that the\n     semaphore must be held for writing.\n\n (9) Limit the number of warnings about munmaps of non-mmapped regions.\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ee3b4290aec03022cfb67c9adba9f1b3215245f0",
      "tree": "37130f5de4d5ccd2be4902dc3dec9ec6a371c2ed",
      "parents": [
        "833bb3046b6cb320e775ea2160ddca87d53260d5"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Thu Apr 02 16:56:30 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:48 2009 -0700"
      },
      "message": "generic debug pagealloc: build fix\n\nThis fixes a build failure with generic debug pagealloc:\n\n  mm/debug-pagealloc.c: In function \u0027set_page_poison\u0027:\n  mm/debug-pagealloc.c:8: error: \u0027struct page\u0027 has no member named \u0027debug_flags\u0027\n  mm/debug-pagealloc.c: In function \u0027clear_page_poison\u0027:\n  mm/debug-pagealloc.c:13: error: \u0027struct page\u0027 has no member named \u0027debug_flags\u0027\n  mm/debug-pagealloc.c: In function \u0027page_poison\u0027:\n  mm/debug-pagealloc.c:18: error: \u0027struct page\u0027 has no member named \u0027debug_flags\u0027\n  mm/debug-pagealloc.c: At top level:\n  mm/debug-pagealloc.c:120: error: redefinition of \u0027kernel_map_pages\u0027\n  include/linux/mm.h:1278: error: previous definition of \u0027kernel_map_pages\u0027 was here\n  mm/debug-pagealloc.c: In function \u0027kernel_map_pages\u0027:\n  mm/debug-pagealloc.c:122: error: \u0027debug_pagealloc_enabled\u0027 undeclared (first use in this function)\n\nby fixing\n\n - debug_flags should be in struct page\n - define DEBUG_PAGEALLOC config option for all architectures\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nReported-by: Alexander Beregalov \u003ca.beregalov@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": "4fe70410d9a219dabb47328effccae7e7f2a6e26",
      "tree": "7f36d6cd27333fa28447f06ce37a6fecceb42955",
      "parents": [
        "395d73413c5656c6d7706ae91dcb441f9b7e3074",
        "cc85906110e26fe8537c3bdbc08a74ae8110030b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 10:58:42 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 10:58:42 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027for-linus\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (58 commits)\n  SUNRPC: Ensure IPV6_V6ONLY is set on the socket before binding to a port\n  NSM: Fix unaligned accesses in nsm_init_private()\n  NFS: Simplify logic to compare socket addresses in client.c\n  NFS: Start PF_INET6 callback listener only if IPv6 support is available\n  lockd: Start PF_INET6 listener only if IPv6 support is available\n  SUNRPC: Remove CONFIG_SUNRPC_REGISTER_V4\n  SUNRPC: rpcb_register() should handle errors silently\n  SUNRPC: Simplify kernel RPC service registration\n  SUNRPC: Simplify svc_unregister()\n  SUNRPC: Allow callers to pass rpcb_v4_register a NULL address\n  SUNRPC: rpcbind actually interprets r_owner string\n  SUNRPC: Clean up address type casts in rpcb_v4_register()\n  SUNRPC: Don\u0027t return EPROTONOSUPPORT in svc_register()\u0027s helpers\n  SUNRPC: Use IPv4 loopback for registering AF_INET6 kernel RPC services\n  SUNRPC: Set IPV6ONLY flag on PF_INET6 RPC listener sockets\n  NFS: Revert creation of IPv6 listeners for lockd and NFSv4 callbacks\n  SUNRPC: Remove @family argument from svc_create() and svc_create_pooled()\n  SUNRPC: Change svc_create_xprt() to take a @family argument\n  SUNRPC: svc_setup_socket() gets protocol family from socket\n  SUNRPC: Pass a family argument to svc_register()\n  ...\n"
    },
    {
      "commit": "395d73413c5656c6d7706ae91dcb441f9b7e3074",
      "tree": "7fadabe996f70d7918583fa2312d4fad19397fcb",
      "parents": [
        "c226fd659fa7b6a7b038df5ae6856a68514bacde",
        "06705bff9114531a997a7d0c2520bea0f2927410"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 10:57:49 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 10:57:49 2009 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (33 commits)\n  ext4: Regularize mount options\n  ext4: fix locking typo in mballoc which could cause soft lockup hangs\n  ext4: fix typo which causes a memory leak on error path\n  jbd2: Update locking coments\n  ext4: Rename pa_linear to pa_type\n  ext4: add checks of block references for non-extent inodes\n  ext4: Check for an valid i_mode when reading the inode from disk\n  ext4: Use WRITE_SYNC for commits which are caused by fsync()\n  ext4: Add auto_da_alloc mount option\n  ext4: Use struct flex_groups to calculate get_orlov_stats()\n  ext4: Use atomic_t\u0027s in struct flex_groups\n  ext4: remove /proc tuning knobs\n  ext4: Add sysfs support\n  ext4: Track lifetime disk writes\n  ext4: Fix discard of inode prealloc space with delayed allocation.\n  ext4: Automatically allocate delay allocated blocks on rename\n  ext4: Automatically allocate delay allocated blocks on close\n  ext4: add EXT4_IOC_ALLOC_DA_BLKS ioctl\n  ext4: Simplify delalloc code by removing mpage_da_writepages()\n  ext4: Save stack space by removing fake buffer heads\n  ...\n"
    },
    {
      "commit": "cc85906110e26fe8537c3bdbc08a74ae8110030b",
      "tree": "891813098ede3dba4d5ff3b83b1f7b491367ad2f",
      "parents": [
        "c09bca786ff941ed17c5f381c4eca5b106808c51",
        "c69da774b28e01e062e0a3aba7509f2dcfd2a11a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 01 13:28:15 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 01 13:28:15 2009 -0400"
      },
      "message": "Merge branch \u0027devel\u0027 into for-linus\n"
    },
    {
      "commit": "c09bca786ff941ed17c5f381c4eca5b106808c51",
      "tree": "9b79a2f2d3ac441551c9c367f22e2240040c4ef6",
      "parents": [
        "e76e5b2c663ac74ae6a542ac20795c625e36a5cd",
        "5b6c942dd1f13835eff8105ec2aa859544a1498d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 10:02:15 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 10:02:15 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6: (59 commits)\n  ide-floppy: do not complete rq\u0027s prematurely\n  ide: be able to build pmac driver without IDE built-in\n  ide-pmac: IDE cable detection on Apple PowerBook\n  ide: inline SELECT_DRIVE()\n  ide: turn selectproc() method into dev_select() method (take 5)\n  MAINTAINERS: move old ide-{floppy,tape} entries to CREDITS (take 2)\n  ide: move data register access out of tf_{read|load}() methods (take 2)\n  ide: call {in|out}put_data() methods from tf_{read|load}() methods (take 2)\n  ide-io-std: shorten ide_{in|out}put_data()\n  ide: rename IDE_TFLAG_IN_[HOB_]FEATURE\n  ide: turn set_irq() method into write_devctl() method\n  ide: use ATA_HOB\n  ide-disk: use ATA_ERR\n  ide: add support for CFA specified transfer modes (take 3)\n  ide-iops: only clear DMA words on setting DMA mode\n  ide: identify data word 53 bit 1 doesn\u0027t cover words 62 and 63 (take 3)\n  au1xxx-ide: auide_{in|out}sw() should be static\n  ide-floppy: use ide_pio_bytes()\n  ide-{floppy,tape}: fix padding for PIO transfers\n  ide: remove CONFIG_BLK_DEV_IDEDOUBLER config option\n  ...\n"
    },
    {
      "commit": "e76e5b2c663ac74ae6a542ac20795c625e36a5cd",
      "tree": "2e7271be1f3a26832f4b121839fc4044fbbf27a6",
      "parents": [
        "32527bc0e4b4fa7711ad1c923cf64ae72a7ffd9d",
        "eeafda70bf2807544e96fa4e52b2433cd470ff46"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 09:47:12 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 09:47:12 2009 -0700"
      },
      "message": "Merge branch \u0027linux-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6\n\n* \u0027linux-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6: (88 commits)\n  PCI: fix HT MSI mapping fix\n  PCI: don\u0027t enable too much HT MSI mapping\n  x86/PCI: make pci\u003dlastbus\u003d255 work when acpi is on\n  PCI: save and restore PCIe 2.0 registers\n  PCI: update fakephp for bus_id removal\n  PCI: fix kernel oops on bridge removal\n  PCI: fix conflict between SR-IOV and config space sizing\n  powerpc/PCI: include pci.h in powerpc MSI implementation\n  PCI Hotplug: schedule fakephp for feature removal\n  PCI Hotplug: rename legacy_fakephp to fakephp\n  PCI Hotplug: restore fakephp interface with complete reimplementation\n  PCI: Introduce /sys/bus/pci/devices/.../rescan\n  PCI: Introduce /sys/bus/pci/devices/.../remove\n  PCI: Introduce /sys/bus/pci/rescan\n  PCI: Introduce pci_rescan_bus()\n  PCI: do not enable bridges more than once\n  PCI: do not initialize bridges more than once\n  PCI: always scan child buses\n  PCI: pci_scan_slot() returns newly found devices\n  PCI: don\u0027t scan existing devices\n  ...\n\nFix trivial append-only conflict in Documentation/feature-removal-schedule.txt\n"
    },
    {
      "commit": "6a7f2829b5f8be124e168265f176dbbbea8861a0",
      "tree": "e900d09ba43d9a7248725287a7658fa85e041332",
      "parents": [
        "66c1ca019078220dc1bf968f2bb18421100ef147"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Mar 31 15:25:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:29 2009 -0700"
      },
      "message": "fbdev: uninline lock_fb_info()\n\nBefore:\n\n   text    data     bss     dec     hex filename\n   3648    2910      32    6590    19be drivers/video/backlight/backlight.o\n   3226    2812      32    6070    17b6 drivers/video/backlight/lcd.o\n  30990   16688    8480   56158    db5e drivers/video/console/fbcon.o\n  15488    8400      24   23912    5d68 drivers/video/fbmem.o\n\nAfter:\n\n   text    data     bss     dec     hex filename\n   3537    2870      32    6439    1927 drivers/video/backlight/backlight.o\n   3131    2772      32    5935    172f drivers/video/backlight/lcd.o\n  30876   16648    8480   56004    dac4 drivers/video/console/fbcon.o\n  15506    8400      24   23930    5d7a drivers/video/fbmem.o\n\nCc: Andrea Righi \u003crighi.andrea@gmail.com\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Krzysztof Helt \u003ckrzysztof.h1@poczta.fm\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "614c0dc93284404be2a4d5750c79bb95f2b6c980",
      "tree": "767a9412f5dcea630d2734fab7d9e8f4e393b38c",
      "parents": [
        "dd14f71cc62dd07b588cc6de935155e6fd3911c9"
      ],
      "author": {
        "name": "Krzysztof Helt",
        "email": "krzysztof.h1@wp.pl",
        "time": "Tue Mar 31 15:25:15 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:29 2009 -0700"
      },
      "message": "cirrusfb: add accelerator constant\n\nAdd an accelerator constant so almost all Cirrus are recognized as\naccelerators by the fbset command.\n\nSigned-off-by: Krzysztof Helt \u003ckrzysztof.h1@wp.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "78d89ef40c2ff7265df077e20c4d76be7d415204",
      "tree": "68503b0252682a496495b7adb46f6aa278db88ae",
      "parents": [
        "47367a3ba425d70467af0009782098235ddbf204"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Mar 31 15:24:48 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:24 2009 -0700"
      },
      "message": "rtc: convert LEAP_YEAR into an inline\n\n- the LEAP_YEAR macro is buggy - it references its arg multiple times.\n  Fix this by turning it into a C function.\n\n- give it a more approriate name\n\n- Move it to rtc.h so that other .c files can use it, instead of copying it.\n\nCc: dann frazier \u003cdannf@hp.com\u003e\nAcked-by: Alessandro Zummo \u003calessandro.zummo@towertech.it\u003e\nCc: stephane eranian \u003ceranian@googlemail.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "79955898f961a870cbcc58f6ae13f3741a909da5",
      "tree": "f1b1110446e7df4382f23eddd874ee875e4ed26d",
      "parents": [
        "8f63aaa8b9239475fc580d4450f1141496655305"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Tue Mar 31 15:24:45 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:23 2009 -0700"
      },
      "message": "autofs4: fix kernel includes\n\nautofs_dev-ioctl.h is included by both the kernel module and user space tools\nand it includes two kernel header files.  Compiles work if the kernel headers\nare installed but fail otherwise.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "35b4b3c0c1265f1a7342574be393c157601401f0",
      "tree": "ca12b33dbe911f1ba02cff197fcfb5928ab5763b",
      "parents": [
        "364fdbc00fbdd409ade63500710123fe323aa164"
      ],
      "author": {
        "name": "Anton Vorontsov",
        "email": "avorontsov@ru.mvista.com",
        "time": "Tue Mar 31 15:24:37 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:22 2009 -0700"
      },
      "message": "spi_mpc83xx: add OF platform driver bindings\n\nImplement full support for OF SPI bindings.  Now the driver can manage its\nown chip selects without any help from the board files and/or fsl_soc\nconstructors.\n\nThe \"legacy\" code is well isolated and could be removed as time goes by.\n\nSigned-off-by: Anton Vorontsov \u003cavorontsov@ru.mvista.com\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Kumar Gala \u003cgalak@gate.crashing.org\u003e\nCc: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "364fdbc00fbdd409ade63500710123fe323aa164",
      "tree": "0a2c4c85f5dd3b6e91ff5d68f419069178e5a9bb",
      "parents": [
        "34c8a20c6ee6af25ee35da9ca15ba81faacfc73d"
      ],
      "author": {
        "name": "Anton Vorontsov",
        "email": "avorontsov@ru.mvista.com",
        "time": "Tue Mar 31 15:24:36 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:22 2009 -0700"
      },
      "message": "spi_mpc83xx: rework chip selects handling\n\nThe main purpose of this patch is to pass \u0027struct spi_device\u0027 to the chip\nselect handling routines.  This is needed so that we could implement\nfull-fledged OpenFirmware support for this driver.\n\nWhile at it, also:\n- Replace two {de,activate}_cs routines by single cs_contol().\n- Don\u0027t duplicate platform data callbacks in mpc83xx_spi struct.\n\nSigned-off-by: Anton Vorontsov \u003cavorontsov@ru.mvista.com\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Kumar Gala \u003cgalak@gate.crashing.org\u003e\nCc: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c0da37753695e010776ccf2200a5731e0f88a9f3",
      "tree": "4bcc83b718a284808d01929b662ee95fb0c49e8b",
      "parents": [
        "4ede816ac36e027db5fe0051ad9c73f76db63772"
      ],
      "author": {
        "name": "Davide Libenzi",
        "email": "davidel@xmailserver.org",
        "time": "Tue Mar 31 15:24:20 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:20 2009 -0700"
      },
      "message": "epoll keyed wakeups: introduce new *_poll() wakeup macros\n\nIntroduce new wakeup macros that allow passing an event mask to the wakeup\ntargets.  They exactly mimic their non-_poll() counterpart, with the added\nevent mask passing capability.  I did add only the ones currently\nrequested, avoiding the _nr() and _all() for the moment.\n\nSigned-off-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: William Lee Irwin III \u003cwli@movementarian.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4ede816ac36e027db5fe0051ad9c73f76db63772",
      "tree": "6c79eae26067c2355a2d4c7e65bca84208a76c40",
      "parents": [
        "bcd0b235bf3808dec5115c381cd55568f63b85f0"
      ],
      "author": {
        "name": "Davide Libenzi",
        "email": "davidel@xmailserver.org",
        "time": "Tue Mar 31 15:24:20 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:20 2009 -0700"
      },
      "message": "epoll keyed wakeups: add __wake_up_locked_key() and __wake_up_sync_key()\n\nThis patchset introduces wakeup hints for some of the most popular (from\nepoll POV) devices, so that epoll code can avoid spurious wakeups on its\nwaiters.\n\nThe problem with epoll is that the callback-based wakeups do not, ATM,\ncarry any information about the events the wakeup is related to.  So the\nonly choice epoll has (not being able to call f_op-\u003epoll() from inside the\ncallback), is to add the file* to a ready-list and resolve the real events\nlater on, at epoll_wait() (or its own f_op-\u003epoll()) time.  This can cause\nspurious wakeups, since the wake_up() itself might be for an event the\ncaller is not interested into.\n\nThe rate of these spurious wakeup can be pretty high in case of many\nnetwork sockets being monitored.\n\nBy allowing devices to report the events the wakeups refer to (at least\nthe two major classes - POLLIN/POLLOUT), we are able to spare useless\nwakeups by proper handling inside the epoll\u0027s poll callback.\n\nEpoll will have in any case to call f_op-\u003epoll() on the file* later on,\nsince the change to be done in order to have the full event set sent via\nwakeup, is too invasive for the way our f_op-\u003epoll() system works (the\nfull event set is calculated inside the poll function - there are too many\nof them to even start thinking the change - also poll/select would need\nchange too).\n\nEpoll is changed in a way that both devices which send event hints, and\nthe ones that don\u0027t, are correctly handled.  The former will gain some\nefficiency though.\n\nAs a general rule for devices, would be to add an event mask by using\nkey-aware wakeup macros, when making up poll wait queues.  I tested it\n(together with the epoll\u0027s poll fix patch Andrew has in -mm) and wakeups\nfor the supported devices are correctly filtered.\n\nTest program available here:\n\nhttp://www.xmailserver.org/epoll_test.c\n\nThis patch:\n\nNothing revolutionary here.  Just using the available \"key\" that our\nwakeup core already support.  The __wake_up_locked_key() was no brainer,\nsince both __wake_up_locked() and __wake_up_locked_key() are thin wrappers\naround __wake_up_common().\n\nThe __wake_up_sync() function had a body, so the choice was between\nborrowing the body for __wake_up_sync_key() and calling it from\n__wake_up_sync(), or make an inline and calling it from both.  I chose the\nformer since in most archs it all resolves to \"mov $0, REG; jmp ADDR\".\n\nSigned-off-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: William Lee Irwin III \u003cwli@movementarian.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bcd0b235bf3808dec5115c381cd55568f63b85f0",
      "tree": "d73c4aa83dcd5321d2c48e070020576098b9705e",
      "parents": [
        "4f0989dbfa8d18dd17c32120aac1eb3e906a62a2"
      ],
      "author": {
        "name": "Davide Libenzi",
        "email": "davidel@xmailserver.org",
        "time": "Tue Mar 31 15:24:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:20 2009 -0700"
      },
      "message": "eventfd: improve support for semaphore-like behavior\n\nPeople started using eventfd in a semaphore-like way where before they\nwere using pipes.\n\nThat is, counter-based resource access.  Where a \"wait()\" returns\nimmediately by decrementing the counter by one, if counter is greater than\nzero.  Otherwise will wait.  And where a \"post(count)\" will add count to\nthe counter releasing the appropriate amount of waiters.  If eventfd the\n\"post\" (write) part is fine, while the \"wait\" (read) does not dequeue 1,\nbut the whole counter value.\n\nThe problem with eventfd is that a read() on the fd returns and wipes the\nwhole counter, making the use of it as semaphore a little bit more\ncumbersome.  You can do a read() followed by a write() of COUNTER-1, but\nIMO it\u0027s pretty easy and cheap to make this work w/out extra steps.  This\npatch introduces a new eventfd flag that tells eventfd to only dequeue 1\nfrom the counter, allowing simple read/write to make it behave like a\nsemaphore.  Simple test here:\n\nhttp://www.xmailserver.org/eventfd-sem.c\n\nTo be back-compatible with earlier kernels, userspace applications should\nprobe for the availability of this feature via\n\n#ifdef EFD_SEMAPHORE\n\tfd \u003d eventfd2 (CNT, EFD_SEMAPHORE);\n\tif (fd \u003d\u003d -1 \u0026\u0026 errno \u003d\u003d EINVAL)\n\t\t\u003cfallback\u003e\n#else\n\t\t\u003cfallback\u003e\n#endif\n\nSigned-off-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: \u003clinux-api@vger.kernel.org\u003e\nTested-by: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nCc: Ulrich Drepper \u003cdrepper@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": "311d07611e8b354cc1ee6546e4c574c01111adc8",
      "tree": "ec9cf9a12527a2239163b06ec61bad76ac2abadd",
      "parents": [
        "acdd052a285a7b4cc7da4fa7d34ef9fd0a67b2f8"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@gmail.com",
        "time": "Tue Mar 31 15:23:51 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:18 2009 -0700"
      },
      "message": "introduce pr_cont() macro\n\nWe cover all log-levels by pr_...  macros except KERN_CONT one.  Add it\nfor convenience.\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Harvey Harrison \u003charvey.harrison@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": "c2d7543851849a6923680cdd7e1047ed1a84a1c5",
      "tree": "bf3038819d4be83a1d1e64d7b95bbb3d9d908544",
      "parents": [
        "55a63998b8967615a15e2211ba0ff3a84a565824"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Tue Mar 31 15:23:46 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:17 2009 -0700"
      },
      "message": "filesystem freeze: allow SysRq emergency thaw to thaw frozen filesystems\n\nNow that the filesystem freeze operation has been elevated to the VFS, and\nis just an ioctl away, some sort of safety net for unintentionally frozen\nroot filesystems may be in order.\n\nThe timeout thaw originally proposed did not get merged, but perhaps\nsomething like this would be useful in emergencies.\n\nFor example, freeze /path/to/mountpoint may freeze your root filesystem if\nyou forgot that you had that unmounted.\n\nI chose \u0027j\u0027 as the last remaining character other than \u0027h\u0027 which is sort\nof reserved for help (because help is generated on any unknown character).\n\nI\u0027ve tested this on a non-root fs with multiple (nested) freezers, as well\nas on a system rendered unresponsive due to a frozen root fs.\n\n[randy.dunlap@oracle.com: emergency thaw only if CONFIG_BLOCK enabled]\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nCc: Takashi Sato \u003ct-sato@yk.jp.nec.com\u003e\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "53d6660836f233df66490707365ab177e5fb2bb4",
      "tree": "dad7eae486c0928af039f4bb47ee3dd7bb0ff87d",
      "parents": [
        "65bd6a9bc7be3f5841dad12f77ce4b3210bd82c5"
      ],
      "author": {
        "name": "J. R. Okajima",
        "email": "hooanon05@yahoo.co.jp",
        "time": "Tue Mar 31 15:23:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:17 2009 -0700"
      },
      "message": "loop: add ioctl to resize a loop device\n\nAdd the ability to \u0027resize\u0027 the loop device on the fly.\n\nOne practical application is a loop file with XFS filesystem, already\nmounted: You can easily enlarge the file (append some bytes) and then call\nioctl(fd, LOOP_SET_CAPACITY, new); The loop driver will learn about the\nnew size and you can use xfs_growfs later on, which will allow you to use\nfull capacity of the loop file without the need to unmount.\n\nTest app:\n\n#include \u003clinux/fs.h\u003e\n#include \u003clinux/loop.h\u003e\n#include \u003csys/ioctl.h\u003e\n#include \u003csys/stat.h\u003e\n#include \u003csys/types.h\u003e\n#include \u003cassert.h\u003e\n#include \u003cerrno.h\u003e\n#include \u003cfcntl.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003cstdlib.h\u003e\n#include \u003cunistd.h\u003e\n\n#define _GNU_SOURCE\n#include \u003cgetopt.h\u003e\n\nchar *me;\n\nvoid usage(FILE *f)\n{\n\tfprintf(f, \"%s [options] loop_dev [backend_file]\\n\"\n\t\t\"-s, --set new_size_in_bytes\\n\"\n\t\t\"\\twhen backend_file is given, \"\n\t\t\"it will be expanded too while keeping the original contents\\n\",\n\t\tme);\n}\n\nstruct option opts[] \u003d {\n\t{\n\t\t.name\t\t\u003d \"set\",\n\t\t.has_arg\t\u003d 1,\n\t\t.flag\t\t\u003d NULL,\n\t\t.val\t\t\u003d \u0027s\u0027\n\t},\n\t{\n\t\t.name\t\t\u003d \"help\",\n\t\t.has_arg\t\u003d 0,\n\t\t.flag\t\t\u003d NULL,\n\t\t.val\t\t\u003d \u0027h\u0027\n\t}\n};\n\nvoid err_size(char *name, __u64 old)\n{\n\tfprintf(stderr, \"size must be larger than current %s (%llu)\\n\",\n\t\tname, old);\n}\n\nint main(int argc, char *argv[])\n{\n\tint fd, err, c, i, bfd;\n\tssize_t ssz;\n\tsize_t sz;\n\t__u64 old, new, append;\n\tchar a[BUFSIZ];\n\tstruct stat st;\n\tFILE *out;\n\tchar *backend, *dev;\n\n\terr \u003d EINVAL;\n\tout \u003d stderr;\n\tme \u003d argv[0];\n\tnew \u003d 0;\n\twhile ((c \u003d getopt_long(argc, argv, \"s:h\", opts, \u0026i)) !\u003d -1) {\n\t\tswitch (c) {\n\t\tcase \u0027s\u0027:\n\t\t\terrno \u003d 0;\n\t\t\tnew \u003d strtoull(optarg, NULL, 0);\n\t\t\tif (errno) {\n\t\t\t\terr \u003d errno;\n\t\t\t\tperror(argv[i]);\n\t\t\t\tgoto out;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase \u0027h\u0027:\n\t\t\terr \u003d 0;\n\t\t\tout \u003d stdout;\n\t\t\tgoto err;\n\n\t\tdefault:\n\t\t\tperror(argv[i]);\n\t\t\tgoto err;\n\t\t}\n\t}\n\n\tif (optind \u003c argc)\n\t\tdev \u003d argv[optind++];\n\telse\n\t\tgoto err;\n\n\tfd \u003d open(dev, O_RDONLY);\n\tif (fd \u003c 0) {\n\t\terr \u003d errno;\n\t\tperror(dev);\n\t\tgoto out;\n\t}\n\n\terr \u003d ioctl(fd, BLKGETSIZE64, \u0026old);\n\tif (err) {\n\t\terr \u003d errno;\n\t\tperror(\"ioctl BLKGETSIZE64\");\n\t\tgoto out;\n\t}\n\n\tif (!new) {\n\t\tprintf(\"%llu\\n\", old);\n\t\tgoto out;\n\t}\n\n\tif (new \u003c old) {\n\t\terr \u003d EINVAL;\n\t\terr_size(dev, old);\n\t\tgoto out;\n\t}\n\n\tif (optind \u003c argc) {\n\t\tbackend \u003d argv[optind++];\n\t\tbfd \u003d open(backend, O_WRONLY|O_APPEND);\n\t\tif (bfd \u003c 0) {\n\t\t\terr \u003d errno;\n\t\t\tperror(backend);\n\t\t\tgoto out;\n\t\t}\n\t\terr \u003d fstat(bfd, \u0026st);\n\t\tif (err) {\n\t\t\terr \u003d errno;\n\t\t\tperror(backend);\n\t\t\tgoto out;\n\t\t}\n\t\tif (new \u003c st.st_size) {\n\t\t\terr \u003d EINVAL;\n\t\t\terr_size(backend, st.st_size);\n\t\t\tgoto out;\n\t\t}\n\t\tappend \u003d new - st.st_size;\n\t\tsz \u003d sizeof(a);\n\t\twhile (append \u003e 0) {\n\t\t\tif (append \u003c sz)\n\t\t\t\tsz \u003d append;\n\t\t\tssz \u003d write(bfd, a, sz);\n\t\t\tif (ssz !\u003d sz) {\n\t\t\t\terr \u003d errno;\n\t\t\t\tperror(backend);\n\t\t\t\tgoto out;\n\t\t\t}\n\t\t\tappend -\u003d sz;\n\t\t}\n\t\terr \u003d fsync(bfd);\n\t\tif (err) {\n\t\t\terr \u003d errno;\n\t\t\tperror(backend);\n\t\t\tgoto out;\n\t\t}\n\t}\n\n\terr \u003d ioctl(fd, LOOP_SET_CAPACITY, new);\n\tif (err) {\n\t\terr \u003d errno;\n\t\tperror(\"ioctl LOOP_SET_CAPACITY\");\n\t}\n\tgoto out;\n\n err:\n\tusage(out);\n out:\n\treturn err;\n}\n\nSigned-off-by: J. R. Okajima \u003chooanon05@yahoo.co.jp\u003e\nSigned-off-by: Tomas Matejicek \u003ctomas@slax.org\u003e\nCc: \u003cutil-linux-ng@vger.kernel.org\u003e\nCc: Karel Zak \u003ckzak@redhat.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: \u003clinux-api@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": "a8af78982ff4c0b3731527b0217d286a343a3089",
      "tree": "10f0ebe13c999dd54efdf79ff606b65e7952b69d",
      "parents": [
        "5f0e3da6e186598bbd2569410ab60fa645ba00c9"
      ],
      "author": {
        "name": "Magnus Damm",
        "email": "damm@igel.co.jp",
        "time": "Tue Mar 31 15:23:37 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:16 2009 -0700"
      },
      "message": "pm: rework includes, remove arch ifdefs\n\nMake the following header file changes:\n\n - remove arch ifdefs and asm/suspend.h from linux/suspend.h\n - add asm/suspend.h to disk.c (for arch_prepare_suspend())\n - add linux/io.h to swsusp.c (for ioremap())\n - x86 32/64 bit compile fixes\n\nSigned-off-by: Magnus Damm \u003cdamm@igel.co.jp\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nAcked-by: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9fab5619bdd7f84cdd22cc760778f759f9819a33",
      "tree": "4a7010f3ba43896c266032f8b287d6bd55b72c85",
      "parents": [
        "327c0e968645f2601a43f5ea7c19c7b3a5fa0a34"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Mar 31 15:23:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:15 2009 -0700"
      },
      "message": "shmem: writepage directly to swap\n\nSynopsis: if shmem_writepage calls swap_writepage directly, most shmem\nswap loads benefit, and a catastrophic interaction between SLUB and some\nflash storage is avoided.\n\nshmem_writepage() has always been peculiar in making no attempt to write:\nit has just transferred a shmem page from file cache to swap cache, then\nlet that page make its way around the LRU again before being written and\nfreed.\n\nThe idea was that people use tmpfs because they want those pages to stay\nin RAM; so although we give it an overflow to swap, we should resist\nwriting too soon, giving those pages a second chance before they can be\nreclaimed.\n\nThat was always questionable, and I\u0027ve toyed with this patch for years;\nbut never had a clear justification to depart from the original design.\n\nIt became more questionable in 2.6.28, when the split LRU patches classed\nshmem and tmpfs pages as SwapBacked rather than as file_cache: that in\nitself gives them more resistance to reclaim than normal file pages.  I\nprepared this patch for 2.6.29, but the merge window arrived before I\u0027d\ncompleted gathering statistics to justify sending it in.\n\nThen while comparing SLQB against SLUB, running SLUB on a laptop I\u0027d\nhabitually used with SLAB, I found SLUB to run my tmpfs kbuild swapping\ntests five times slower than SLAB or SLQB - other machines slower too, but\nnowhere near so bad.  Simpler \"cp -a\" swapping tests showed the same.\n\nslub_max_order\u003d0 brings sanity to all, but heavy swapping is too far from\nnormal to justify such a tuning.  The crucial factor on that laptop turns\nout to be that I\u0027m using an SD card for swap.  What happens is this:\n\nBy default, SLUB uses order-2 pages for shmem_inode_cache (and many other\nfs inodes), so creating tmpfs files under memory pressure brings lumpy\nreclaim into play.  One subpage of the order is chosen from the bottom of\nthe LRU as usual, then the other three picked out from their random\npositions on the LRUs.\n\nIn a tmpfs load, many of these pages will be ones which already passed\nthrough shmem_writepage, so already have swap allocated.  And though their\noffsets on swap were probably allocated sequentially, now that the pages\nare picked off at random, their swap offsets are scattered.\n\nBut the flash storage on the SD card is very sensitive to having its\nwrites merged: once swap is written at scattered offsets, performance\nfalls apart.  Rotating disk seeks increase too, but less disastrously.\n\nSo: stop giving shmem/tmpfs pages a second pass around the LRU, write them\nout to swap as soon as their swap has been allocated.\n\nIt\u0027s surely possible to devise an artificial load which runs faster the\nold way, one whose sizing is such that the tmpfs pages on their second\npass are the ones that are wanted again, and other pages not.\n\nBut I\u0027ve not yet found such a load: on all machines, under the loads I\u0027ve\ntried, immediate swap_writepage speeds up shmem swapping: especially when\nusing the SLUB allocator (and more effectively than slub_max_order\u003d0), but\nalso with the others; and it also reduces the variance between runs.  How\nmuch faster varies widely: a factor of five is rare, 5% is common.\n\nOne load which might have suffered: imagine a swapping shmem load in a\nlimited mem_cgroup on a machine with plenty of memory.  Before 2.6.29 the\nswapcache was not charged, and such a load would have run quickest with\nthe shmem swapcache never written to swap.  But now swapcache is charged,\nso even this load benefits from shmem_writepage directly to swap.\n\nApologies for the #ifndef CONFIG_SWAP swap_writepage() stub in swap.h:\nit\u0027s silly because that will never get called; but refactoring shmem.c\nsensibly according to CONFIG_SWAP will be a separate task.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: 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": "327c0e968645f2601a43f5ea7c19c7b3a5fa0a34",
      "tree": "acc6789c120a6d5000ceebf51e690d14c6cfcacb",
      "parents": [
        "2678958e1225f350806d90f211a3b475f64aee80"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Mar 31 15:23:31 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:15 2009 -0700"
      },
      "message": "vmscan: fix it to take care of nodemask\n\ntry_to_free_pages() is used for the direct reclaim of up to\nSWAP_CLUSTER_MAX pages when watermarks are low.  The caller to\nalloc_pages_nodemask() can specify a nodemask of nodes that are allowed to\nbe used but this is not passed to try_to_free_pages().  This can lead to\nunnecessary reclaim of pages that are unusable by the caller and int the\nworst case lead to allocation failure as progress was not been make where\nit is needed.\n\nThis patch passes the nodemask used for alloc_pages_nodemask() to\ntry_to_free_pages().\n\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\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": "33925b25d2c00a29664f1994ab350a9bff70f7a2",
      "tree": "fe1a0ef5cceba27664eae8f38f9e4e2a27bf1b36",
      "parents": [
        "7ca43e7564679604d86e9ed834e7bbcffd8a4a3f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Mar 31 15:23:26 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:14 2009 -0700"
      },
      "message": "nommu: there is no mlock() for NOMMU, so don\u0027t provide the bits\n\nThe mlock() facility does not exist for NOMMU since all mappings are\neffectively locked anyway, so we don\u0027t make the bits available when\nthey\u0027re not useful.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Enrik Berkhan \u003cEnrik.Berkhan@ge.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f4112de6b679d84bd9b9681c7504be7bdfb7c7d5",
      "tree": "c9a5665b31e751e1d4255b8c35a6245d5abfa3eb",
      "parents": [
        "851a039cc547b33b8139fe6d7c2bbfb158e2724e"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Tue Mar 31 15:23:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:14 2009 -0700"
      },
      "message": "mm: introduce debug_kmap_atomic\n\nx86 has debug_kmap_atomic_prot() which is error checking function for\nkmap_atomic.  It is usefull for the other architectures, although it needs\nCONFIG_TRACE_IRQFLAGS_SUPPORT.\n\nThis patch exposes it to the other architectures.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: \u003clinux-arch@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": "c2ec175c39f62949438354f603f4aa170846aabb",
      "tree": "f2c9bf1bec2deabe2d3a5092405b027637b6ead3",
      "parents": [
        "c2fdf3a9b2d52842808a8e551b53b55dd9b45030"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Mar 31 15:23:21 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:14 2009 -0700"
      },
      "message": "mm: page_mkwrite change prototype to match fault\n\nChange the page_mkwrite prototype to take a struct vm_fault, and return\nVM_FAULT_xxx flags.  There should be no functional change.\n\nThis makes it possible to return much more detailed error information to\nthe VM (and also can provide more information eg.  virtual_address to the\ndriver, which might be important in some special cases).\n\nThis is required for a subsequent fix.  And will also make it easier to\nmerge page_mkwrite() with fault() in future.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCc: Artem Bityutskiy \u003cdedekind@infradead.org\u003e\nCc: Felix Blyakher \u003cfelixb@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": "c2fdf3a9b2d52842808a8e551b53b55dd9b45030",
      "tree": "71affdf51cbf97147ebf3bf41814027c7b63b72a",
      "parents": [
        "704503d836042d4a4c7685b7036e7de0418fbc0f"
      ],
      "author": {
        "name": "Anton Blanchard",
        "email": "anton@samba.org",
        "time": "Tue Mar 31 15:23:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:14 2009 -0700"
      },
      "message": "mm: enable hashdist by default on 64bit NUMA\n\nOn PowerPC we allocate large boot time hashes on node 0.  This leads to an\nimbalance in the free memory, for example on a 64GB box (4 x 16GB nodes):\n\nFree memory:\nNode 0: 97.03%\nNode 1: 98.54%\nNode 2: 98.42%\nNode 3: 98.53%\n\nIf we switch to using vmalloc (like ia64 and x86-64) things are more\nbalanced:\n\nFree memory:\nNode 0: 97.53%\nNode 1: 98.35%\nNode 2: 98.33%\nNode 3: 98.33%\n\nFor many HPC applications we are limited by the free available memory on\nthe smallest node, so even though the same amount of memory is used the\nbetter balancing helps.\n\nSince all 64bit NUMA capable architectures should have sufficient vmalloc\nspace, it makes sense to enable it via CONFIG_64BIT.\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nAcked-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "704503d836042d4a4c7685b7036e7de0418fbc0f",
      "tree": "218bea088f0b286981221e44d5247dab98020d30",
      "parents": [
        "6a11f75b6a17b5d9ac5025f8d048382fd1f47377"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Mar 31 15:23:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:13 2009 -0700"
      },
      "message": "mm: fix proc_dointvec_userhz_jiffies \"breakage\"\n\nAddresses http://bugzilla.kernel.org/show_bug.cgi?id\u003d9838\n\nOn i386, HZ\u003d1000, jiffies_to_clock_t() converts time in a somewhat strange\nway from the user\u0027s point of view:\n\n\t# echo 500 \u003e/proc/sys/vm/dirty_writeback_centisecs\n\t# cat /proc/sys/vm/dirty_writeback_centisecs\n\t499\n\nSo, we have 5000 jiffies converted to only 499 clock ticks and reported\nback.\n\nTICK_NSEC \u003d 999848\nACTHZ \u003d 256039\n\nKeeping in-kernel variable in units passed from userspace will fix issue\nof course, but this probably won\u0027t be right for every sysctl.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\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": "6a11f75b6a17b5d9ac5025f8d048382fd1f47377",
      "tree": "a3415cd897823975b927f89a233d2703bf97ba2b",
      "parents": [
        "610a77e04a8d9fe8764dc484e2182fa251ce1cc2"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Tue Mar 31 15:23:17 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:13 2009 -0700"
      },
      "message": "generic debug pagealloc\n\nCONFIG_DEBUG_PAGEALLOC is now supported by x86, powerpc, sparc64, and\ns390.  This patch implements it for the rest of the architectures by\nfilling the pages with poison byte patterns after free_pages() and\nverifying the poison patterns before alloc_pages().\n\nThis generic one cannot detect invalid page accesses immediately but\ninvalid read access may cause invalid dereference by poisoned memory and\ninvalid write access can be detected after a long delay.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: \u003clinux-arch@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": "610a77e04a8d9fe8764dc484e2182fa251ce1cc2",
      "tree": "ec55b9b3698321c3e85cd649fa927554027c75d0",
      "parents": [
        "e2f17d9459aeccf4e013e31cbd741d6b1858eec4"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Mar 31 15:23:16 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:13 2009 -0700"
      },
      "message": "memdup_user(): introduce\n\nI notice there are many places doing copy_from_user() which follows\nkmalloc():\n\n        dst \u003d kmalloc(len, GFP_KERNEL);\n        if (!dst)\n                return -ENOMEM;\n        if (copy_from_user(dst, src, len)) {\n\t\tkfree(dst);\n\t\treturn -EFAULT\n\t}\n\nmemdup_user() is a wrapper of the above code.  With this new function, we\ndon\u0027t have to write \u0027len\u0027 twice, which can lead to typos/mistakes.  It\nalso produces smaller code and kernel text.\n\nA quick grep shows 250+ places where memdup_user() *may* be used.  I\u0027ll\nprepare a patchset to do this conversion.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Americo Wang \u003cxiyou.wangcong@gmail.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": "d1d7487173eab8352125cf6cc271940f24254bd4",
      "tree": "07de142c03385f05beac342ee1c4b93b236445c5",
      "parents": [
        "ad1c3544d0a85da7738ce8cff6f8a148da57935c"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Mar 31 15:23:14 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:13 2009 -0700"
      },
      "message": "mm: remove pagevec_swap_free()\n\npagevec_swap_free() is now unused.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e3a7cca1ef4c1af9b0acef9bd66eff6582a737b5",
      "tree": "717097ec82ce0de55e44b2fe3e35fa041e5169b2",
      "parents": [
        "bd2f6199cf9af472aeefa1b642c9f504f19e6008"
      ],
      "author": {
        "name": "Edward Shishkin",
        "email": "edward.shishkin@gmail.com",
        "time": "Tue Mar 31 15:19:39 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:12 2009 -0700"
      },
      "message": "vfs: add/use account_page_dirtied()\n\nAdd a helper function account_page_dirtied().  Use that from two\ncallsites.  reiser4 adds a function which adds a third callsite.\n\nSigned-off-by: Edward Shishkin\u003cedward.shishkin@gmail.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": "ee99c71c59f897436ec65debb99372b3146f9985",
      "tree": "051f1c43b7c7658689d4b2c23b3d8585d6464a89",
      "parents": [
        "a6dc60f8975ad96d162915e07703a4439c80dcf0"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Mar 31 15:19:31 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:11 2009 -0700"
      },
      "message": "mm: introduce for_each_populated_zone() macro\n\nImpact: cleanup\n\nIn almost cases, for_each_zone() is used with populated_zone().  It\u0027s\nbecause almost function doesn\u0027t need memoryless node information.\nTherefore, for_each_populated_zone() can help to make code simplify.\n\nThis patch has no functional change.\n\n[akpm@linux-foundation.org: small cleanup]\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9de1581e75ba9d7979766d4ab6d56f0f2d87f7c6",
      "tree": "da6854544454f7f6184e6cd54c8b4e88bfc3543a",
      "parents": [
        "a12888f772dab4bf5e6f73668dc4f5f6026a7014"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Mar 31 15:19:29 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:11 2009 -0700"
      },
      "message": "get_mm_hiwater_xxx: trivial, s/define/inline/\n\nAndrew pointed out get_mm_hiwater_xxx() evaluate \"mm\" argument thrice/twice,\nmake them inline.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: 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": "0f043a81ebe84be3576667f04fdda481609e3816",
      "tree": "c54a9ac4a1dc79bd5f2f7ec3ead5aa48802ff7a3",
      "parents": [
        "140716934f67a9b28c3f7032c07c20c746d97a31"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Mar 31 15:19:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:10 2009 -0700"
      },
      "message": "proc tty: remove struct tty_operations::read_proc\n\nstruct tty_operations::proc_fops took it\u0027s place and there is one less\ncreate_proc_read_entry() user now!\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ae149b6bec64a09373ba20fce75f8aa6b14b78fd",
      "tree": "5e2f1fdfc223b76ab798c87fd25bcff8d5f92eeb",
      "parents": [
        "15f7176eb1cccec0a332541285ee752b935c1c85"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Mar 31 15:19:15 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:08 2009 -0700"
      },
      "message": "proc tty: add struct tty_operations::proc_fops\n\nUsed for gradual switch of TTY drivers from using -\u003eread_proc which helps\nwith gradual switch from -\u003eread_proc for the whole tree.\n\nAs side effect, fix possible race condition when -\u003edata initialized after\nPDE is hooked into proc tree.\n\n-\u003eproc_fops takes precedence over -\u003eread_proc.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fdd88f0af616db59a6a36bdf0185181d2b779f53",
      "tree": "9e0acaddc49f7354430457b07ee0a94757bbc314",
      "parents": [
        "abb596b25edac1ec1acc4ef53df190771661c3d2"
      ],
      "author": {
        "name": "Sergei Shtylyov",
        "email": "sshtylyov@ru.mvista.com",
        "time": "Tue Mar 31 20:15:33 2009 +0200"
      },
      "committer": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Tue Mar 31 20:15:33 2009 +0200"
      },
      "message": "ide: inline SELECT_DRIVE()\n\nSince SELECT_DRIVE() has boiled down to a mere dev_select() method call, it now\nmakes sense to just inline it...\n\nSigned-off-by: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\n"
    },
    {
      "commit": "abb596b25edac1ec1acc4ef53df190771661c3d2",
      "tree": "d20ea24960358ce03e0f27eefd2e6911afd1309c",
      "parents": [
        "0f861e8c47ede537a8ad280c61d5d00d541f04db"
      ],
      "author": {
        "name": "Sergei Shtylyov",
        "email": "sshtylyov@ru.mvista.com",
        "time": "Tue Mar 31 20:15:32 2009 +0200"
      },
      "committer": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Tue Mar 31 20:15:32 2009 +0200"
      },
      "message": "ide: turn selectproc() method into dev_select() method (take 5)\n\nTurn selectproc() method into dev_select() method by teaching it to write to the\ndevice register and moving it from \u0027struct ide_port_ops\u0027 to \u0027struct ide_tp_ops\u0027.\n\nSigned-off-by: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nCc: benh@kernel.crashing.org\nCc: petkovbb@gmail.com\n[bart: add -\u003edev_select to at91_ide.c and tx4939.c (__BIG_ENDIAN case)]\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\n"
    },
    {
      "commit": "6762511934e6e7287ce3c8baac0d52ef64e3787b",
      "tree": "d328cb1aaf6fa4661dd10062e290905ea6e6311a",
      "parents": [
        "ecf3a31d2a08a419bdf919456f1724f5b72bde2c"
      ],
      "author": {
        "name": "Sergei Shtylyov",
        "email": "sshtylyov@ru.mvista.com",
        "time": "Tue Mar 31 20:15:30 2009 +0200"
      },
      "committer": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Tue Mar 31 20:15:30 2009 +0200"
      },
      "message": "ide: rename IDE_TFLAG_IN_[HOB_]FEATURE\n\nThe feature register has never been readable -- when its location is read, one\ngets the error register value; hence rename IDE_TFLAG_IN_[HOB_]FEATURE into\nIDE_TFLAG_IN_[HOB_]ERROR and introduce the \u0027hob_error\u0027 field into the \u0027struct\nide_taskfile\u0027 (despite the error register not really depending on the HOB bit).\n\nSigned-off-by: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\n"
    },
    {
      "commit": "ecf3a31d2a08a419bdf919456f1724f5b72bde2c",
      "tree": "11a5b4685425541fa4bb267ac6f897cb1c38ba41",
      "parents": [
        "4d74c3fcf2b90487eacec511bc8c07177711c81c"
      ],
      "author": {
        "name": "Sergei Shtylyov",
        "email": "sshtylyov@ru.mvista.com",
        "time": "Tue Mar 31 20:15:30 2009 +0200"
      },
      "committer": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Tue Mar 31 20:15:30 2009 +0200"
      },
      "message": "ide: turn set_irq() method into write_devctl() method\n\nTurn set_irq() method with its software reset hack into write_devctl() method\n(for just writing a value into the device control register) at last...\n\nSigned-off-by: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\n"
    },
    {
      "commit": "349d12a1fe57d49287a539909cf14f362634342d",
      "tree": "632b6f33a0424db5507ac099aa7292daa7902f26",
      "parents": [
        "d93bc4521c80e9d87767779814e88f6d725453d7"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Tue Mar 31 20:15:26 2009 +0200"
      },
      "committer": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Tue Mar 31 20:15:26 2009 +0200"
      },
      "message": "ide-floppy: use ide_pio_bytes()\n\n* Fix ide_init_sg_cmd() setup for non-fs requests.\n\n* Convert ide_pc_intr() to use ide_pio_bytes() for floppy media.\n\n* Remove no longer needed ide_io_buffers() and sg/sg_cnt fields\n  from struct ide_atapi_pc.\n\n* Remove partial completions; kill idefloppy_update_buffers(), as a\n  result.\n\n* Add some more debugging statements.\n\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nSigned-off-by: Borislav Petkov \u003cpetkovbb@gmail.com\u003e\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\n"
    },
    {
      "commit": "41fa9f863baacd32dd049daf8050d55a0c9e6f1a",
      "tree": "44cc612753746cd459e122f102c72f33b36aa6b7",
      "parents": [
        "b5479167f4206e0d821a51ae149d921cd7a58e54"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Tue Mar 31 20:15:25 2009 +0200"
      },
      "committer": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Tue Mar 31 20:15:25 2009 +0200"
      },
      "message": "ide: decrease size of -\u003epc_buf field in struct ide_atapi_pc\n\nstruct ide_atapi_pc is often allocated on the stack and size of -\u003epc_buf\nsize is 256 bytes.  However since only ide_floppy_create_read_capacity_cmd()\nand idetape_create_inquiry_cmd() require such size allocate buffers for\nthese pc-s explicitely and decrease -\u003epc_buf size to 64 bytes.\n\nCc: Borislav Petkov \u003cpetkovbb@gmail.com\u003e\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\n"
    },
    {
      "commit": "f094d4d83bccee9277ddb6aadccf35747889426b",
      "tree": "a4cd886f42d6ab13b507c23b08f2064ceba04623",
      "parents": [
        "88b4132e101e60e8fa67996ae3072ab6b71e8500"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Tue Mar 31 20:15:24 2009 +0200"
      },
      "committer": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Tue Mar 31 20:15:24 2009 +0200"
      },
      "message": "ide: sanitize ide_build_sglist() and ide_destroy_dmatable()\n\n* Move ide_map_sg() calls out from ide_build_sglist()\n  to ide_dma_prepare().\n\n* Pass command to ide_destroy_dmatable().\n\n* Rename ide_build_sglist() to ide_dma_map_sg()\n  and ide_destroy_dmatable() to ide_dma_unmap_sg().\n\nThere should be no functional changes caused by this patch.\n\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\n"
    },
    {
      "commit": "8a4a5738ba499083cf4c5668895efe220b1946d3",
      "tree": "78272b711b31f43526d2c665478cc3bdb0b6e393",
      "parents": [
        "7526efaafdc835b8d6b22aa1a302e14651373908"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Tue Mar 31 20:15:21 2009 +0200"
      },
      "committer": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Tue Mar 31 20:15:21 2009 +0200"
      },
      "message": "ide: add -\u003edma_check method\n\n* Add (an optional) -\u003edma_check method for checking if DMA can be\n  used for a given command and fail DMA setup in ide_dma_prepare()\n  if necessary.\n\n* Convert alim15x3 and trm290 host drivers to use -\u003edma_check.\n\n* Rename ali15x3_dma_setup() to ali_dma_check() while at it.\n\nThere should be no functional changes caused by this patch.\n\nAcked-by: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\n"
    },
    {
      "commit": "5ae5412d9a23b05ab08461b202bad21ad8f6b66d",
      "tree": "25d86e7cf0b57e15efa74e5150c2a654fc9339c9",
      "parents": [
        "4453011f959a5f5c6c7a33aea54fe17f5e43a867"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Tue Mar 31 20:15:20 2009 +0200"
      },
      "committer": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Tue Mar 31 20:15:20 2009 +0200"
      },
      "message": "ide: add ide_dma_prepare() helper\n\n* Add ide_dma_prepare() helper.\n\n* Convert ide_issue_pc() and do_rw_taskfile() to use it.\n\n* Make ide_build_sglist() static.\n\nThere should be no functional changes caused by this patch.\n\nAcked-by: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\n"
    },
    {
      "commit": "4453011f959a5f5c6c7a33aea54fe17f5e43a867",
      "tree": "7ac781ab8d82b21cdf932b1736026ebe9fea757a",
      "parents": [
        "1cee52de28aa687760ad262ad0834d1bf6c6d2ac"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Tue Mar 31 20:15:20 2009 +0200"
      },
      "committer": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Tue Mar 31 20:15:20 2009 +0200"
      },
      "message": "ide: destroy DMA mappings after ending DMA (v2)\n\nMove ide_destroy_dmatable() call out from -\u003edma_end method to\n{ide_pc,cdrom_newpc,ide_dma}_intr(), ide_dma_timeout_retry()\nand sgiioc4_resetproc().\n\nThis causes minor/safe behavior changes w.r.t.:\n* cmd64x.c::cmd64{8,x}_dma_end()\n* cs5536.c::cs5536_dma_end()\n* icside.c::icside_dma_end()\n* it821x.c::it821x_dma_end()\n* scc_pata.c::__scc_dma_end()\n* sl82c105.c::sl82c105_dma_end()\n* tx4939ide.c::tx4939ide_dma_end()\n\nv2:\n* Fix build for CONFIG_BLK_DEV_IDEDMA\u003dn (reported by Randy Dunlap).\n\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nAcked-by: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\n"
    },
    {
      "commit": "35c9b4daf4c94b30e5cede597d98016ebf31b5ad",
      "tree": "3248b5b3602218537ce0bce420fbde27a07b526b",
      "parents": [
        "e698ea83a8531a6740dc657329dcf0728392d6ac"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Tue Mar 31 20:15:19 2009 +0200"
      },
      "committer": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Tue Mar 31 20:15:19 2009 +0200"
      },
      "message": "ide: add -\u003edma_clear method and remove -\u003edma_timeout one\n\nAll custom -\u003edma_timeout implementations call the generic one thus it is\npossible to have only an optional method for resetting DMA engine instead:\n\n* Add -\u003edma_clear method and convert hpt366, pdc202xx_old and sl82c105\n  host drivers to use it.\n\n* Always use ide_dma_timeout() in ide_dma_timeout_retry() and remove\n -\u003edma_timeout method.\n\n* Make ide_dma_timeout() static.\n\nThere should be no functional changes caused by this patch.\n\nAcked-by: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\n"
    },
    {
      "commit": "06a449e30135aabb6686c95bf0c42b46d169a3b3",
      "tree": "7774a868c28b11d375428d1aaeb04fc8a5956be0",
      "parents": [
        "a08915ba594da66145f33a972db578a58b9135f1"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Tue Mar 31 20:15:13 2009 +0200"
      },
      "committer": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Tue Mar 31 20:15:13 2009 +0200"
      },
      "message": "ide-cd: fix non-SECTOR_SIZE-multiples PIO transfers for fs requests\n\nWe now support arbitrary number of bytes per-IRQ also for fs requests\nso remove ide_cd_check_transfer_size() and IDE_AFLAG_LIMIT_NFRAMES.\n\nCc: Borislav Petkov \u003cpetkovbb@gmail.com\u003e\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\n"
    },
    {
      "commit": "a08915ba594da66145f33a972db578a58b9135f1",
      "tree": "d27379ab4ff2b101a74ffe594e2dfa2939131ee0",
      "parents": [
        "5ed57ad705d6b58386ac43d2ca1c8fc66aee1101"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Tue Mar 31 20:15:13 2009 +0200"
      },
      "committer": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Tue Mar 31 20:15:13 2009 +0200"
      },
      "message": "ide-cd: use scatterlists for PIO transfers (fs requests)\n\n* Export ide_pio_bytes().\n\n* Add -\u003elast_xfer_len field to struct ide_cmd.\n\n* Add ide_cd_error_cmd() helper to ide-cd.\n\n* Convert ide-cd to use scatterlists also for PIO transfers (fs requests\n  only for now) and get rid of partial completions (except when the error\n  happens -- which is still subject to change later because looking at\n  ATAPI spec it seems that the device is free to error the whole transfer\n  with setting the Error bit only on the last transfer chunk).\n\n* Update ide_cd_{prepare_rw,restore_request,do_request}() accordingly.\n\n* Inline ide_cd_restore_request() into cdrom_start_rw().\n\nCc: Borislav Petkov \u003cpetkovbb@gmail.com\u003e\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\n"
    },
    {
      "commit": "15f7176eb1cccec0a332541285ee752b935c1c85",
      "tree": "9d33689be7415388ed57f437faaae883a4978a85",
      "parents": [
        "d3d52d687a770973b459d8a92ec1adbba3f60c4b",
        "321dee6e8b235c496f0a068a72d8df9a4e13ceb9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 18:46:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 18:46:43 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:\n  wireless: remove duplicated .ndo_set_mac_address\n  netfilter: xtables: fix IPv6 dependency in the cluster match\n  tg3: Add GRO support.\n  niu: Add GRO support.\n  ucc_geth: Fix use-after-of_node_put() in ucc_geth_probe().\n  gianfar: Fix use-after-of_node_put() in gfar_of_init().\n  kernel: remove HIPQUAD()\n  netpoll: store local and remote ip in net-endian\n  netfilter: fix endian bug in conntrack printks\n  dmascc: fix incomplete conversion to network_device_ops\n  gso: Fix support for linear packets\n  skbuff.h: fix missing kernel-doc\n  ni5010: convert to net_device_ops\n"
    },
    {
      "commit": "d17abcd5417d84cfa8a225160481203a37dc81d4",
      "tree": "74ce2c425c5c6550acec90bc92c8a3f735f0d257",
      "parents": [
        "db6f204019380c788f1de06ee937bdbccd60e5c0",
        "bb75efddeaca89f8a67fd82cdcbaaf436cf17ca9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 18:00:26 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 18:00:26 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask:\n  oprofile: Thou shalt not call __exit functions from __init functions\n  cpumask: remove the now-obsoleted pcibus_to_cpumask(): generic\n  cpumask: remove cpumask_t from core\n  cpumask: convert rcutorture.c\n  cpumask: use new cpumask_ functions in core code.\n  cpumask: remove references to struct irqaction\u0027s mask field.\n  cpumask: use mm_cpumask() wrapper: kernel/fork.c\n  cpumask: use set_cpu_active in init/main.c\n  cpumask: remove node_to_first_cpu\n  cpumask: fix seq_bitmap_*() functions.\n  cpumask: remove dangerous CPU_MASK_ALL_PTR, \u0026CPU_MASK_ALL\n"
    },
    {
      "commit": "3c6fae67d026d57f64eb3da9c0d0e76983e39ae3",
      "tree": "a11f2ff6d99b382fff02a643f6b6b204efb9c40e",
      "parents": [
        "c4e1aa67ed9e4e542a064bc271ddbf152b677e91",
        "de15f093e666ccd542f6f7a0e3e917166a07ab44"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 17:54:32 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 17:54:32 2009 -0700"
      },
      "message": "Merge branch \u0027hwmon-for-linus\u0027 of git://jdelvare.pck.nerim.net/jdelvare-2.6\n\n* \u0027hwmon-for-linus\u0027 of git://jdelvare.pck.nerim.net/jdelvare-2.6:\n  hwmon: (fschmd) Add support for the FSC Hades IC\n  hwmon: (fschmd) Add support for the FSC Syleus IC\n  i2c-i801: Instantiate FSC hardware montioring chips\n  dmi: Let dmi_walk() users pass private data\n  hwmon: Define a standard interface for chassis intrusion detection\n  Move the pcf8591 driver to hwmon\n  hwmon: (w83627ehf) Only expose in6 or temp3 on the W83667HG\n  hwmon: (w83627ehf) Add support for W83667HG\n  hwmon: (w83627ehf) Invert fan pin variables logic\n  hwmon: (hdaps) Fix Thinkpad X41 axis inversion\n  hwmon: (hdaps) Allow inversion of separate axis\n  hwmon: (ds1621) Clean up documentation\n  hwmon: (ds1621) Avoid unneeded register access\n  hwmon: (ds1621) Clean up register access\n  hwmon: (ds1621) Reorder code statements\n"
    },
    {
      "commit": "c4e1aa67ed9e4e542a064bc271ddbf152b677e91",
      "tree": "2a2ca00bed0fc22b4eb83db092c9178868d8f76b",
      "parents": [
        "cf2f7d7c90279cdbc12429de278f3d27ac2050ae",
        "2f8501815256af8498904e68bd0984b1afffd6f8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 17:17:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 17:17:35 2009 -0700"
      },
      "message": "Merge branch \u0027locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (33 commits)\n  lockdep: fix deadlock in lockdep_trace_alloc\n  lockdep: annotate reclaim context (__GFP_NOFS), fix SLOB\n  lockdep: annotate reclaim context (__GFP_NOFS), fix\n  lockdep: build fix for !PROVE_LOCKING\n  lockstat: warn about disabled lock debugging\n  lockdep: use stringify.h\n  lockdep: simplify check_prev_add_irq()\n  lockdep: get_user_chars() redo\n  lockdep: simplify get_user_chars()\n  lockdep: add comments to mark_lock_irq()\n  lockdep: remove macro usage from mark_held_locks()\n  lockdep: fully reduce mark_lock_irq()\n  lockdep: merge the !_READ mark_lock_irq() helpers\n  lockdep: merge the _READ mark_lock_irq() helpers\n  lockdep: simplify mark_lock_irq() helpers #3\n  lockdep: further simplify mark_lock_irq() helpers\n  lockdep: simplify the mark_lock_irq() helpers\n  lockdep: split up mark_lock_irq()\n  lockdep: generate usage strings\n  lockdep: generate the state bit definitions\n  ...\n"
    },
    {
      "commit": "cf2f7d7c90279cdbc12429de278f3d27ac2050ae",
      "tree": "c84bb54712f566e6497ccadd1ae9f42b4baf0c63",
      "parents": [
        "53d8f67082c9b86699dd88b7f9e667e245193f21",
        "a9caa3de249a6c43bc9c6aec87881f09276677e3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 16:06:04 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 16:06:04 2009 -0700"
      },
      "message": "Merge branch \u0027proc-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/adobriyan/proc\n\n* \u0027proc-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/adobriyan/proc:\n  Revert \"proc: revert /proc/uptime to -\u003eread_proc hook\"\n  proc 2/2: remove struct proc_dir_entry::owner\n  proc 1/2: do PDE usecounting even for -\u003eread_proc, -\u003ewrite_proc\n  proc: fix sparse warnings in pagemap_read()\n  proc: move fs/proc/inode-alloc.txt comment into a source file\n"
    },
    {
      "commit": "53d8f67082c9b86699dd88b7f9e667e245193f21",
      "tree": "0e888713ee7a1a53b05852839aeb724fabe80490",
      "parents": [
        "93c36ed8348934b462044d2d60ab345055318933",
        "8efb8c76fcdccf5050c0ea059dac392789baaff2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 15:12:14 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 15:12:14 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:\n  PCI PM: Make pci_prepare_to_sleep() disable wake-up if needed\n  radeonfb: Use __pci_complete_power_transition()\n  PCI PM: Introduce __pci_[start|complete]_power_transition() (rev. 2)\n  PCI PM: Restore config spaces of all devices during early resume\n  PCI PM: Make pci_set_power_state() handle devices with no PM support\n  PCI PM: Put devices into low power states during late suspend (rev. 2)\n  PCI PM: Move pci_restore_standard_config to pci-driver.c\n  PCI PM: Use pci_set_power_state during early resume\n  PCI PM: Consistently use variable name \"error\" for pm call return values\n  kexec: Change kexec jump code ordering\n  PM: Change hibernation code ordering\n  PM: Change suspend code ordering\n  PM: Rework handling of interrupts during suspend-resume\n  PM: Introduce functions for suspending and resuming device interrupts\n"
    },
    {
      "commit": "77e465867080c2d1e0c410e96dcdcd51e8584a6f",
      "tree": "87400adb4219cda04a39f3fe1b970b64c85c747a",
      "parents": [
        "dfbbe89e197a77f2c8046a51c74e33e35f878080"
      ],
      "author": {
        "name": "Alexander Beregalov",
        "email": "a.beregalov@gmail.com",
        "time": "Tue Mar 31 00:32:40 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 14:28:58 2009 -0700"
      },
      "message": "reiserfs: fix build breakage\n\nFix this build error when REISERFS_FS_POSIX_ACL is not set:\n\n  fs/reiserfs/inode.c: In function \u0027reiserfs_new_inode\u0027:\n  fs/reiserfs/inode.c:1919: warning: passing argument 1 of \u0027reiserfs_inherit_default_acl\u0027 from incompatible pointer type\n  fs/reiserfs/inode.c:1919: warning: passing argument 2 of \u0027reiserfs_inherit_default_acl\u0027 from incompatible pointer type\n  fs/reiserfs/inode.c:1919: warning: passing argument 3 of \u0027reiserfs_inherit_default_acl\u0027 from incompatible pointer type\n  fs/reiserfs/inode.c:1919: error: too many arguments to function \u0027reiserfs_inherit_default_acl\u0027\n\ndue to a missing transaction-handle argument in the non-acl\ncompatibility function.\n\nSigned-off-by: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nAcked-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "99b76233803beab302123d243eea9e41149804f3",
      "tree": "398178210fe66845ccd6fa4258ba762a87e023ad",
      "parents": [
        "3dec7f59c370c7b58184d63293c3dc984d475840"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Mar 25 22:48:06 2009 +0300"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Mar 31 01:14:44 2009 +0400"
      },
      "message": "proc 2/2: remove struct proc_dir_entry::owner\n\nSetting -\u003eowner as done currently (pde-\u003eowner \u003d THIS_MODULE) is racy\nas correctly noted at bug #12454. Someone can lookup entry with NULL\n-\u003eowner, thus not pinning enything, and release it later resulting\nin module refcount underflow.\n\nWe can keep -\u003eowner and supply it at registration time like -\u003eproc_fops\nand -\u003edata.\n\nBut this leaves -\u003eowner as easy-manipulative field (just one C assignment)\nand somebody will forget to unpin previous/pin current module when\nswitching -\u003eowner. -\u003eproc_fops is declared as \"const\" which should give\nsome thoughts.\n\n-\u003eread_proc/-\u003ewrite_proc were just fixed to not require -\u003eowner for\nprotection.\n\nrmmod\u0027ed directories will be empty and return \".\" and \"..\" -- no harm.\nAnd directories with tricky enough readdir and lookup shouldn\u0027t be modular.\nWe definitely don\u0027t want such modular code.\n\nRemoving -\u003eowner will also make PDE smaller.\n\nSo, let\u0027s nuke it.\n\nKudos to Jeff Layton for reminding about this, let\u0027s say, oversight.\n\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d12454\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "712b0006bf3a9ed0b14a56c3291975e582127766",
      "tree": "aff33e947673137ae21734321e1f036600297223",
      "parents": [
        "e1c502482853f84606928f5a2f2eb6da1993cda1",
        "b0d44c0dbbd52effb731b1c0af9afd56215c48de"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 13:41:00 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 13:41:00 2009 -0700"
      },
      "message": "Merge branch \u0027iommu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027iommu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (60 commits)\n  dma-debug: make memory range checks more consistent\n  dma-debug: warn of unmapping an invalid dma address\n  dma-debug: fix dma_debug_add_bus() definition for !CONFIG_DMA_API_DEBUG\n  dma-debug/x86: register pci bus for dma-debug leak detection\n  dma-debug: add a check dma memory leaks\n  dma-debug: add checks for kernel text and rodata\n  dma-debug: print stacktrace of mapping path on unmap error\n  dma-debug: Documentation update\n  dma-debug: x86 architecture bindings\n  dma-debug: add function to dump dma mappings\n  dma-debug: add checks for sync_single_sg_*\n  dma-debug: add checks for sync_single_range_*\n  dma-debug: add checks for sync_single_*\n  dma-debug: add checking for [alloc|free]_coherent\n  dma-debug: add add checking for map/unmap_sg\n  dma-debug: add checking for map/unmap_page/single\n  dma-debug: add core checking functions\n  dma-debug: add debugfs interface\n  dma-debug: add kernel command line parameters\n  dma-debug: add initialization code\n  ...\n\nFix trivial conflicts due to whitespace changes in arch/x86/kernel/pci-nommu.c\n"
    },
    {
      "commit": "0e5dd46b761195356065a30611f265adec286d0d",
      "tree": "4ca10dac14ac44789a51048c4ceb3989be175f63",
      "parents": [
        "931ff68a5a53fa84bcdf9b1b179a80e54e034bd0"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Mar 26 22:51:40 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 30 21:46:56 2009 +0200"
      },
      "message": "PCI PM: Introduce __pci_[start|complete]_power_transition() (rev. 2)\n\nThe radeonfb driver needs to program the device\u0027s PMCSR directly due\nto some quirky hardware it has to handle (see\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d12846 for details) and\nafter doing that it needs to call the platform (usually ACPI) to\nfinish the power transition of the device.  Currently it uses\npci_set_power_state() for this purpose, however making a specific\nassumption about the internal behavior of this function, which has\nchanged recently so that this assumption is no longer satisfied.\nFor this reason, introduce __pci_complete_power_transition() that may\nbe called by the radeonfb driver to complete the power transition of\nthe device.  For symmetry, introduce __pci_start_power_transition().\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\n"
    },
    {
      "commit": "0a0c5168df270a50e3518e4f12bddb31f8f5f38f",
      "tree": "ea1e392fef9d52a7b81c9010580c09317a4d707d",
      "parents": [
        "019abbc87025a030fd25008612afd4eff8a375f7"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 16 22:33:49 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 30 21:46:54 2009 +0200"
      },
      "message": "PM: Introduce functions for suspending and resuming device interrupts\n\nIntroduce helper functions allowing us to prevent device drivers from\ngetting any interrupts (without disabling interrupts on the CPU)\nduring suspend (or hibernation) and to make them start to receive\ninterrupts again during the subsequent resume.  These functions make it\npossible to keep timer interrupts enabled while the \"late\" suspend and\n\"early\" resume callbacks provided by device drivers are being\nexecuted.  In turn, this allows device drivers\u0027 \"late\" suspend and\n\"early\" resume callbacks to sleep, execute ACPI callbacks etc.\n\nThe functions introduced here will be used to rework the handling of\ninterrupts during suspend (hibernation) and resume.  Namely,\ninterrupts will only be disabled on the CPU right before suspending\nsysdevs, while device drivers will be prevented from receiving\ninterrupts, with the help of the new helper function, before their\n\"late\" suspend callbacks run (and analogously during resume).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e7a19c5624c66afa8118b10cd59f87ee407646bc",
      "tree": "4e70f99aa84cdd18f13c673980afebe4a268359e",
      "parents": [
        "ec19920944246b4686c7772a58507a20c361dc9d"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Mon Mar 30 21:46:44 2009 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Mon Mar 30 21:46:44 2009 +0200"
      },
      "message": "dmi: Let dmi_walk() users pass private data\n\nAt the moment, dmi_walk() lacks flexibility, users can\u0027t pass data to\nthe callback function. Add a pointer for private data to make this\nfunction more flexible.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Hans de Goede \u003chdegoede@redhat.com\u003e\nCc: Matthew Garrett \u003cmjg@redhat.com\u003e\nCc: Roland Dreier \u003crolandd@cisco.com\u003e\n"
    },
    {
      "commit": "e1c502482853f84606928f5a2f2eb6da1993cda1",
      "tree": "ca296007164906342a195bdf3a5305277e6af5da",
      "parents": [
        "019abbc87025a030fd25008612afd4eff8a375f7",
        "ee93961be1faddf9e9a638bc519145c20f0cfeba"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:29:21 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:33:01 2009 -0700"
      },
      "message": "Merge branch \u0027reiserfs-updates\u0027 from Jeff Mahoney\n\n* reiserfs-updates: (35 commits)\n  reiserfs: rename [cn]_* variables\n  reiserfs: rename p_._ variables\n  reiserfs: rename p_s_tb to tb\n  reiserfs: rename p_s_inode to inode\n  reiserfs: rename p_s_bh to bh\n  reiserfs: rename p_s_sb to sb\n  reiserfs: strip trailing whitespace\n  reiserfs: cleanup path functions\n  reiserfs: factor out buffer_info initialization\n  reiserfs: add atomic addition of selinux attributes during inode creation\n  reiserfs: use generic readdir for operations across all xattrs\n  reiserfs: journaled xattrs\n  reiserfs: use generic xattr handlers\n  reiserfs: remove i_has_xattr_dir\n  reiserfs: make per-inode xattr locking more fine grained\n  reiserfs: eliminate per-super xattr lock\n  reiserfs: simplify xattr internal file lookups/opens\n  reiserfs: Clean up xattrs when REISERFS_FS_XATTR is unset\n  reiserfs: remove IS_PRIVATE helpers\n  reiserfs: remove link detection code\n  ...\n\nFixed up conflicts manually due to:\n - quota name cleanups vs variable naming changes:\n\tfs/reiserfs/inode.c\n\tfs/reiserfs/namei.c\n\tfs/reiserfs/stree.c\n        fs/reiserfs/xattr.c\n - exported include header cleanups\n\tinclude/linux/reiserfs_fs.h\n"
    },
    {
      "commit": "d68caa9530a8ba54f97002e02bf6a0ad2462b8c0",
      "tree": "39a2b877483270253f95f3678a4559e9bd5524e8",
      "parents": [
        "a063ae17925cafabe55ebe1957ca0e8c480bd132"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:49 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:40 2009 -0700"
      },
      "message": "reiserfs: rename p_._ variables\n\nThis patch is a simple s/p_._//g to the reiserfs code.  This is the\nfifth in a series of patches to rip out some of the awful variable\nnaming in reiserfs.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a063ae17925cafabe55ebe1957ca0e8c480bd132",
      "tree": "85d8797ec51124d33398a15a5a8d5a6b81e3a36f",
      "parents": [
        "995c762ea486b48c9777522071fbf132dea96807"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:48 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:40 2009 -0700"
      },
      "message": "reiserfs: rename p_s_tb to tb\n\nThis patch is a simple s/p_s_tb/tb/g to the reiserfs code.  This is the\nfourth in a series of patches to rip out some of the awful variable\nnaming in reiserfs.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "995c762ea486b48c9777522071fbf132dea96807",
      "tree": "d6d82ca71ca67a98687762b83ce2858eb8dc624f",
      "parents": [
        "ad31a4fc0386e8590c51ca4b8f1ae1d8b8b2ac5e"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:47 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:39 2009 -0700"
      },
      "message": "reiserfs: rename p_s_inode to inode\n\nThis patch is a simple s/p_s_inode/inode/g to the reiserfs code.  This\nis the third in a series of patches to rip out some of the awful\nvariable naming in reiserfs.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ad31a4fc0386e8590c51ca4b8f1ae1d8b8b2ac5e",
      "tree": "636010f3ba98e15245f04ade1a74a730e40abf57",
      "parents": [
        "a9dd364358fbdc68faee5d20c2d648c320dc3cf0"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:46 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:39 2009 -0700"
      },
      "message": "reiserfs: rename p_s_bh to bh\n\nThis patch is a simple s/p_s_bh/bh/g to the reiserfs code.  This is the\nsecond in a series of patches to rip out some of the awful variable\nnaming in reiserfs.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a9dd364358fbdc68faee5d20c2d648c320dc3cf0",
      "tree": "effcf61e5e198083faff82dc1e0bd6071639fca8",
      "parents": [
        "0222e6571c332563a48d4cf5487b67feabe60b5e"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:45 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:39 2009 -0700"
      },
      "message": "reiserfs: rename p_s_sb to sb\n\nThis patch is a simple s/p_s_sb/sb/g to the reiserfs code.  This is the\nfirst in a series of patches to rip out some of the awful variable\nnaming in reiserfs.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0222e6571c332563a48d4cf5487b67feabe60b5e",
      "tree": "44829ca0a4b1343edec08d4f70696cb0d3218975",
      "parents": [
        "3cd6dbe6feb9b32347e6c6f25a27f0cde9d50418"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:44 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:39 2009 -0700"
      },
      "message": "reiserfs: strip trailing whitespace\n\nThis patch strips trailing whitespace from the reiserfs code.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "57fe60df62410f949da094d06ced1dda9575b69c",
      "tree": "f3ba5db112cd7d2a8865d16bece28c38a766145c",
      "parents": [
        "a41f1a4715f26f7bc4d047d0bc7710145c8e69c7"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:41 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:39 2009 -0700"
      },
      "message": "reiserfs: add atomic addition of selinux attributes during inode creation\n\nSome time ago, some changes were made to make security inode attributes\nbe atomically written during inode creation.  ReiserFS fell behind in\nthis area, but with the reworking of the xattr code, it\u0027s now fairly\neasy to add.\n\nThe following patch adds the ability for security attributes to be added\nautomatically during inode creation.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a41f1a4715f26f7bc4d047d0bc7710145c8e69c7",
      "tree": "8b5d94368e774ec490619593300e8b3f4b7c5cb1",
      "parents": [
        "0ab2621ebd9a28bf7a524ecd50d492a10579dfcc"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:40 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:38 2009 -0700"
      },
      "message": "reiserfs: use generic readdir for operations across all xattrs\n\nThe current reiserfs xattr implementation open codes reiserfs_readdir\nand frees the path before calling the filldir function.  Typically, the\nfilldir function is something that modifies the file system, such as a\nchown or an inode deletion that also require reading of an inode\nassociated with each direntry.  Since the file system is modified, the\npath retained becomes invalid for the next run.  In addition, it runs\nbackwards in attempt to minimize activity.\n\nThis is clearly suboptimal from a code cleanliness perspective as well\nas performance-wise.\n\nThis patch implements a generic reiserfs_for_each_xattr that uses the\ngeneric readdir and a specific filldir routine that simply populates an\narray of dentries and then performs a specific operation on them.  When\nall files have been operated on, it then calls the operation on the\ndirectory itself.\n\nThe result is a noticable code reduction and better performance.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0ab2621ebd9a28bf7a524ecd50d492a10579dfcc",
      "tree": "62dda6de2fed116aff363190f95a58d56c690e3e",
      "parents": [
        "48b32a3553a54740d236b79a90f20147a25875e3"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:39 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:38 2009 -0700"
      },
      "message": "reiserfs: journaled xattrs\n\nDeadlocks are possible in the xattr code between the journal lock and the\nxattr sems.\n\nThis patch implements journalling for xattr operations. The benefit is\ntwofold:\n * It gets rid of the deadlock possibility by always ensuring that xattr\n   write operations are initiated inside a transaction.\n * It corrects the problem where xattr backing files aren\u0027t considered any\n   differently than normal files, despite the fact they are metadata.\n\nI discussed the added journal load with Chris Mason, and we decided that\nsince xattrs (versus other journal activity) is fairly rare, the introduction\nof larger transactions to support journaled xattrs wouldn\u0027t be too big a deal.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "48b32a3553a54740d236b79a90f20147a25875e3",
      "tree": "faf6807facb5825608469a9e33c9127f90b974df",
      "parents": [
        "8ecbe550a142fe604874afa477ea68986f89b86c"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:38 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:38 2009 -0700"
      },
      "message": "reiserfs: use generic xattr handlers\n\nChristoph Hellwig had asked me quite some time ago to port the reiserfs\nxattrs to the generic xattr interface.\n\nThis patch replaces the reiserfs-specific xattr handling code with the\ngeneric struct xattr_handler.\n\nHowever, since reiserfs doesn\u0027t split the prefix and name when accessing\nxattrs, it can\u0027t leverage generic_{set,get,list,remove}xattr without\nneedlessly reconstructing the name on the back end.\n\nUpdate 7/26/07: Added missing dput() to deletion path.\nUpdate 8/30/07: Added missing mark_inode_dirty when i_mode is used to\n                represent an ACL and no previous ACL existed.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8b6dd72a441a683cef7ace93de0a57ced4367f00",
      "tree": "6bdeebd3a35d71db2c7ea3e48e3f617b5efbd81a",
      "parents": [
        "d984561b326cd0fe0d1183d11b9b4fa1d011d21d"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:36 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:38 2009 -0700"
      },
      "message": "reiserfs: make per-inode xattr locking more fine grained\n\nThe per-inode locking can be made more fine-grained to surround just the\ninteraction with the filesystem itself.  This really only applies to\nprotecting reads during a write, since concurrent writes are barred with\ninode-\u003ei_mutex at the vfs level.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d984561b326cd0fe0d1183d11b9b4fa1d011d21d",
      "tree": "e0487588581bccaa2b875529ed84ec5a4a254ab9",
      "parents": [
        "6c17675e1e02ebde220ef639a3fb1333928ec2f4"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:35 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:38 2009 -0700"
      },
      "message": "reiserfs: eliminate per-super xattr lock\n\nWith the switch to using inode-\u003ei_mutex locking during lookups/creation\nin the xattr root, the per-super xattr lock is no longer needed.\n\nThis patch removes it.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a72bdb1cd244725ff47b3a29662e2cb820d8c60f",
      "tree": "68f9022b303ca5183bd64eddbff41f0624e84188",
      "parents": [
        "6dfede696391133eadd7ce90b61c9573ee6e5a90"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:33 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:37 2009 -0700"
      },
      "message": "reiserfs: Clean up xattrs when REISERFS_FS_XATTR is unset\n\nThe current reiserfs xattr implementation will not clean up old xattr\nfiles if files are deleted when REISERFS_FS_XATTR is unset.  This\nresults in inaccessible lost files, wasting space.\n\nThis patch compiles in basic xattr knowledge, such as how to delete them\nand change ownership for quota tracking.  If the file system has never\nused xattrs, then the operation is quite fast: it returns immediately\nwhen it sees there is no .reiserfs_priv directory.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6dfede696391133eadd7ce90b61c9573ee6e5a90",
      "tree": "2051bfc5108d0e7592b8738e43f4ae972d398ccd",
      "parents": [
        "010f5a21a323e7383e067009a7785462883fe5ea"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:32 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:37 2009 -0700"
      },
      "message": "reiserfs: remove IS_PRIVATE helpers\n\nThere are a number of helper functions for marking a reiserfs inode\nprivate that were leftover from reiserfs did its own thing wrt to\nprivate inodes.  S_PRIVATE has been in the kernel for some time, so this\npatch removes the helpers and uses IS_PRIVATE instead.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1e5e59d431038c53954fe8f0b38bee0f0ad30349",
      "tree": "25e10648779424a85de6d368bd08c53c51c8f7a8",
      "parents": [
        "32e8b1062915d00d07d3b88a95174648e369b6a3"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:27 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:36 2009 -0700"
      },
      "message": "reiserfs: introduce reiserfs_error()\n\nAlthough reiserfs can currently handle severe errors such as journal failure,\nit cannot handle less severe errors like metadata i/o failure. The following\npatch adds a reiserfs_error() function akin to the one in ext3.\n\nSubsequent patches will use this new error handler to handle errors more\ngracefully in general.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "32e8b1062915d00d07d3b88a95174648e369b6a3",
      "tree": "f8d9da27137667072ca1f826c760fda1717a1c8d",
      "parents": [
        "c3a9c2109f84882b9b3178f6b1838d550d3df0ec"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:26 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:36 2009 -0700"
      },
      "message": "reiserfs: rearrange journal abort\n\nThis patch kills off reiserfs_journal_abort as it is never called, and\ncombines __reiserfs_journal_abort_{soft,hard} into one function called\nreiserfs_abort_journal, which performs the same work. It is silent\nas opposed to the old version, since the message was always issued\nafter a regular \u0027abort\u0027 message.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "c3a9c2109f84882b9b3178f6b1838d550d3df0ec"
}
