)]}'
{
  "log": [
    {
      "commit": "e562aebc6ccd4385cbbf24debe88ab4bb500c5b4",
      "tree": "a9dee6eac97d75c688a84d5fe268b2e5a0b73e23",
      "parents": [
        "40e8a10de2c9f87e892dcd5a6f9d1b208329ffea"
      ],
      "author": {
        "name": "Tony Battersby",
        "email": "tonyb@cybernetics.com",
        "time": "Thu Apr 02 16:58:26 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:01 2009 -0700"
      },
      "message": "ipc: make shm_get_stat() more robust\n\nshm_get_stat() assumes idr_find(\u0026shm_ids(ns).ipcs_idr) returns \"struct\nshmid_kernel *\"; all other callers assume that it returns \"struct\nkern_ipc_perm *\".  This works because \"struct kern_ipc_perm\" is currently\nthe first member of \"struct shmid_kernel\", but it would be better to use\ncontainer_of() to prevent future breakage.\n\nSigned-off-by: Tony Battersby \u003ctonyb@cybernetics.com\u003e\nCc: Jiri Olsa \u003colsajiri@gmail.com\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "40e8a10de2c9f87e892dcd5a6f9d1b208329ffea",
      "tree": "e00ac938e40dfbc0595346487485317af84c6094",
      "parents": [
        "2355b70fd59cb5be7de2052a9edeee7afb7ff099"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Thu Apr 02 16:58:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:00 2009 -0700"
      },
      "message": "cpu hotplug: remove unused cpuhotplug_mutex_lock()\n\ncpuhotplug_mutex_lock() is not used, remove it.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2355b70fd59cb5be7de2052a9edeee7afb7ff099",
      "tree": "93f192f9dab4748a313ec8d78041b1937e232f33",
      "parents": [
        "1ee1184485df9c9a3503d3a684b911fb7c73d259"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Thu Apr 02 16:58:24 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:00 2009 -0700"
      },
      "message": "workqueue: avoid recursion in run_workqueue()\n\n1) lockdep will complain when run_workqueue() performs recursion.\n\n2) The recursive implementation of run_workqueue() means that\n   flush_workqueue() and its documentation are inconsistent.  This may\n   hide deadlocks and other bugs.\n\n3) The recursion in run_workqueue() will poison cwq-\u003ecurrent_work, but\n   flush_work() and __cancel_work_timer(), etcetera need a reliable\n   cwq-\u003ecurrent_work.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.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": "1ee1184485df9c9a3503d3a684b911fb7c73d259",
      "tree": "0216bc3ebccf1c44b86617cd06e7b93510ef5bb8",
      "parents": [
        "95a3540da9c81a5987be810e1d9a83640a366bd5"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:23 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:00 2009 -0700"
      },
      "message": "ptrace_untrace: fix the SIGNAL_STOP_STOPPED check\n\nThis bug is ancient too. ptrace_untrace() must not resume the task\nif the group stop in progress, we should set TASK_STOPPED instead.\n\nUnfortunately, we still have problems here:\n\n\t- if the process/thread was traced, SIGNAL_STOP_STOPPED\n\t  does not necessary means this thread group is stopped.\n\n\t- ptrace breaks the bookkeeping of -\u003egroup_stop_count.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Denys Vlasenko \u003cdvlasenk@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": "95a3540da9c81a5987be810e1d9a83640a366bd5",
      "tree": "d5143f232f885f6aa8829288dc0ceb2cd9e6e34e",
      "parents": [
        "bb24c679a51b1a9b726b901330649e3861814ac0"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:21 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:00 2009 -0700"
      },
      "message": "ptrace_detach: the wrong wakeup breaks the ERESTARTxxx logic\n\nAnother ancient bug. Consider this trivial test-case,\n\n\tint main(void)\n\t{\n\t\tint pid \u003d fork();\n\n\t\tif (pid) {\n\t\t\tptrace(PTRACE_ATTACH, pid, NULL, NULL);\n\t\t\twait(NULL);\n\t\t\tptrace(PTRACE_DETACH, pid, NULL, NULL);\n\t\t} else {\n\t\t\tpause();\n\t\t\tprintf(\"WE HAVE A KERNEL BUG!!!\\n\");\n\t\t}\n\n\t\treturn 0;\n\t}\n\nthe child must not \"escape\" for sys_pause(), but it can and this was seen\nin practice.\n\nThis is because ptrace_detach does:\n\n\tif (!child-\u003eexit_state)\n\t\twake_up_process(child);\n\nthis wakeup can happen after this child has already restarted sys_pause(),\nbecause it gets another wakeup from ptrace_untrace().\n\nWith or without this patch, perhaps sys_pause() needs a fix.  But this\nwakeup also breaks the SIGNAL_STOP_STOPPED logic in ptrace_untrace().\n\nRemove this wakeup.  The caller saw this task in TASK_TRACED state, and\nunless it was SIGKILL\u0027ed in between __ptrace_unlink()-\u003eptrace_untrace()\nshould handle this case correctly.  If it was SIGKILL\u0027ed, we don\u0027t need to\nwakup the dying tracee too.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Denys Vlasenko \u003cdvlasenk@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": "bb24c679a51b1a9b726b901330649e3861814ac0",
      "tree": "0acb31023b4b6ff49e173005fb9baaa3f3b74b2f",
      "parents": [
        "5dfc80be73dd0c212d2e6dd8dbf5afa07e680bbe"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:20 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:00 2009 -0700"
      },
      "message": "tracehook_notify_death: use task_detached() helper\n\nNow that task_detached() is exported, change tracehook_notify_death() to\nuse this helper, nobody else checks -\u003eexit_signal \u003d\u003d -1 by hand.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: \"Metzger, Markus T\" \u003cmarkus.t.metzger@intel.com\u003e\nAcked-by: Roland McGrath \u003croland@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": "5dfc80be73dd0c212d2e6dd8dbf5afa07e680bbe",
      "tree": "ac173fb3fcfe2970781591f620f22d30f4ce090c",
      "parents": [
        "39c626ae47c469abdfd30c6e42eff884931380d6"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:00 2009 -0700"
      },
      "message": "forget_original_parent: do not abuse child-\u003eptrace_entry\n\nBy discussion with Roland.\n\n- Use -\u003esibling instead of -\u003eptrace_entry to chain the need to be\n  release_task\u0027d childs. Nobody else can use -\u003esibling, this task\n  is EXIT_DEAD and nobody can find it on its own list.\n\n- rename ptrace_dead to dead_childs.\n\n- Now that we don\u0027t have the \"parallel\" untrace code, change back\n  reparent_thread() to return void, pass dead_childs as an argument.\n\nActually, I don\u0027t understand why do we notify /sbin/init when we\nreparent a zombie, probably it is better to reap it unconditionally.\n\n[akpm@linux-foundation.org: s/childs/children/]\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: \"Metzger, Markus T\" \u003cmarkus.t.metzger@intel.com\u003e\nCc: Roland McGrath \u003croland@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": "39c626ae47c469abdfd30c6e42eff884931380d6",
      "tree": "58cbe75bac79ce8ef55c94189df26448d0283918",
      "parents": [
        "7f5d3652d469cdf9eb2365dfea7ce3fb9e1409cc"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:00 2009 -0700"
      },
      "message": "forget_original_parent: split out the un-ptrace part\n\nBy discussion with Roland.\n\n- Rename ptrace_exit() to exit_ptrace(), and change it to do all the\n  necessary work with -\u003eptraced list by its own.\n\n- Move this code from exit.c to ptrace.c\n\n- Update the comment in ptrace_detach() to explain the rechecking of\n  the child-\u003eptrace.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: \"Metzger, Markus T\" \u003cmarkus.t.metzger@intel.com\u003e\nCc: Roland McGrath \u003croland@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": "7f5d3652d469cdf9eb2365dfea7ce3fb9e1409cc",
      "tree": "590f845665e166694ba0f9ba0e6d2267e15d8aae",
      "parents": [
        "b1442b055c154699a6a2c436f3352f71b6beede3"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:17 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:59 2009 -0700"
      },
      "message": "reparent_thread: fix a zombie leak if /sbin/init ignores SIGCHLD\n\nIf /sbin/init ignores SIGCHLD and we re-parent a zombie, it is leaked.\nreparent_thread() does do_notify_parent() which sets -\u003eexit_signal \u003d -1 in\nthis case.  This means that nobody except us can reap it, the detached\ntask is not visible to do_wait().\n\nChange reparent_thread() to return a boolean (like __pthread_detach) to\nindicate that the thread is dead and must be released.  Also change\nforget_original_parent() to add the child to ptrace_dead list in this\ncase.\n\nThe naming becomes insane, the next patch does the cleanup.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b1442b055c154699a6a2c436f3352f71b6beede3",
      "tree": "dda315fddb15936bc74eb9c74bec29b64e65b71c",
      "parents": [
        "0a967a044a777e8b9c739120927114ddc0094298"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:16 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:59 2009 -0700"
      },
      "message": "reparent_thread: fix the \"is it traced\" check\n\nreparent_thread() uses ptrace_reparented() to check whether this thread is\nptraced, in that case we should not notify the new parent.\n\nBut ptrace_reparented() is not exactly correct when the reparented thread\nis traced by /sbin/init, because forget_original_parent() has already\nchanged -\u003ereal_parent.\n\nCurrently, the only problem is the false notification.  But with the next\npatch the kernel crash in this (yes, pathological) case.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0a967a044a777e8b9c739120927114ddc0094298",
      "tree": "aa1abba4c643e0f502623870045a4c978db5683b",
      "parents": [
        "4576145c1ecdaaea9ef8976a48335206aa1ebf91"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:15 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:59 2009 -0700"
      },
      "message": "reparent_thread: don\u0027t call kill_orphaned_pgrp() if task_detached()\n\nIf task_detached(p) \u003d\u003d T, then either\n\n  a) p is not the main thread, we will find the group leader on the\n     -\u003echildren list.\n\nor\n\n  b) p is the group leader but its -\u003eexit_state \u003d EXIT_DEAD.  This\n     can only happen when the last sub-thread has died, but in that case\n     that thread has already called kill_orphaned_pgrp() from\n     exit_notify().\n\nIn both cases kill_orphaned_pgrp() looks bogus.\n\nMove the task_detached() check up and simplify the code, this is also\nright from the \"common sense\" pov: we should do nothing with the detached\nchilds, except move them to the new parent\u0027s -\u003echildren list.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4576145c1ecdaaea9ef8976a48335206aa1ebf91",
      "tree": "b20b51848380b708f4158852b1bb4afa29ffc5f0",
      "parents": [
        "b1b4c6799fb59e710454bfe0ab477cb8523a8667"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:14 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:59 2009 -0700"
      },
      "message": "ptrace: fix possible zombie leak on PTRACE_DETACH\n\nWhen ptrace_detach() takes tasklist, the tracee can be SIGKILL\u0027ed.  If it\nhas already passed exit_notify() we can leak a zombie, because a) ptracing\ndisables the auto-reaping logic, and b) -\u003ereal_parent was not notified\nabout the child\u0027s death.\n\nptrace_detach() should follow the ptrace_exit\u0027s logic, change the code\naccordingly.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nTested-by: Denys Vlasenko \u003cdvlasenk@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": "b1b4c6799fb59e710454bfe0ab477cb8523a8667",
      "tree": "1cdd19f00c584a8800ce0d3a5530b78d1cbd6e56",
      "parents": [
        "6d69cb87f05eef3b02370b2f7bae608ad2301a00"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:13 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:59 2009 -0700"
      },
      "message": "ptrace: reintroduce __ptrace_detach() as a callee of ptrace_exit()\n\nNo functional changes, preparation for the next patch.\n\nMove the \"should we release this child\" logic into the separate handler,\n__ptrace_detach().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Denys Vlasenko \u003cdvlasenk@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": "6d69cb87f05eef3b02370b2f7bae608ad2301a00",
      "tree": "69f38afc49df51a1a75fc5c7792ced6888af329d",
      "parents": [
        "95c3eb76dc07fd81289888ffc42948196b34b444"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:12 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:59 2009 -0700"
      },
      "message": "ptrace: simplify ptrace_exit()-\u003eignoring_children() path\n\nignoring_children() takes parent-\u003esighand-\u003esiglock and checks\nk_sigaction[SIGCHLD] atomically.  But this buys nothing, we can\u0027t get the\n\"really\" wrong result even if we race with sigaction(SIGCHLD).  If we read\nthe \"stale\" sa_handler/sa_flags we can pretend it was changed right after\nthe check.\n\nRemove spin_lock(-\u003esiglock), and kill \"int ign\" which caches the result of\nignoring_children() which becomes rather trivial.\n\nPerhaps it makes sense to export this helper, do_notify_parent() can use\nit too.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Denys Vlasenko \u003cdvlasenk@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": "95c3eb76dc07fd81289888ffc42948196b34b444",
      "tree": "a656316699a090405387d0071bac2a03a7128f57",
      "parents": [
        "6588c1e3ff01418acafd938db0740e3477dc8cb7"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:11 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:59 2009 -0700"
      },
      "message": "ptrace: kill __ptrace_detach(), fix -\u003eexit_state check\n\nMove the code from __ptrace_detach() to its single caller and kill this\nhelper.\n\nAlso, fix the -\u003eexit_state check, we shouldn\u0027t wake up EXIT_DEAD tasks.\nActually, I think task_is_stopped_or_traced() makes more sense, but this\nneeds another patch.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Denys Vlasenko \u003cdvlasenk@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": "6588c1e3ff01418acafd938db0740e3477dc8cb7",
      "tree": "b58beed5813667619be47c5d064f8f78804e92d1",
      "parents": [
        "b3bfa0cba867f23365b81658b47efd906830879b"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Thu Apr 02 16:58:09 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:58 2009 -0700"
      },
      "message": "signals: SI_USER: Masquerade si_pid when crossing pid ns boundary\n\nWhen sending a signal to a descendant namespace, set -\u003esi_pid to 0 since\nthe sender does not have a pid in the receiver\u0027s namespace.\n\nNote:\n\t- If rt_sigqueueinfo() sets si_code to SI_USER when sending a\n\t  signal across a pid namespace boundary, the value in -\u003esi_pid\n\t  will be cleared to 0.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b3bfa0cba867f23365b81658b47efd906830879b",
      "tree": "e54d9a9c4c23fc00bb2ff3ed57ef5317a0660ea5",
      "parents": [
        "e4da026f980df125a4918c3bb9fe93185c7ef12a"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Thu Apr 02 16:58:08 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:58 2009 -0700"
      },
      "message": "signals: protect cinit from blocked fatal signals\n\nNormally SIG_DFL signals to global and container-init are dropped early.\nBut if a signal is blocked when it is posted, we cannot drop the signal\nsince the receiver may install a handler before unblocking the signal.\nOnce this signal is queued however, the receiver container-init has no way\nof knowing if the signal was sent from an ancestor or descendant\nnamespace.  This patch ensures that contianer-init drops all SIG_DFL\nsignals in get_signal_to_deliver() except SIGKILL/SIGSTOP.\n\nIf SIGSTOP/SIGKILL originate from a descendant of container-init they are\nnever queued (i.e dropped in sig_ignored() in an earler patch).\n\nIf SIGSTOP/SIGKILL originate from parent namespace, the signal is queued\nand container-init processes the signal.\n\nIOW, if get_signal_to_deliver() sees a sig_kernel_only() signal for global\nor container-init, the signal must have been generated internally or must\nhave come from an ancestor ns and we process the signal.\n\nFurther, the signal_group_exit() check was needed to cover the case of a\nmulti-threaded init sending SIGKILL to other threads when doing an exit()\nor exec().  But since the new sig_kernel_only() check covers the SIGKILL,\nthe signal_group_exit() check is no longer needed and can be removed.\n\nFinally, now that we have all pieces in place, set SIGNAL_UNKILLABLE for\ncontainer-inits.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e4da026f980df125a4918c3bb9fe93185c7ef12a",
      "tree": "bb755bb687bca82feb05ba3bb6962ef57257dd9a",
      "parents": [
        "921cf9f63089c7442d44083477620132f4cea066"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Thu Apr 02 16:58:06 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:58 2009 -0700"
      },
      "message": "signals: zap_pid_ns_process() should use force_sig()\n\nsend_signal() assumes that signals with SEND_SIG_PRIV are generated from\nwithin the same namespace.  So any nested container-init processes become\nimmune to the SIGKILL generated by kill_proc_info() in\nzap_pid_ns_processes().\n\nUse force_sig() in zap_pid_ns_processes() instead - force_sig() clears the\nSIGNAL_UNKILLABLE flag ensuring the signal is processed by\ncontainer-inits.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "921cf9f63089c7442d44083477620132f4cea066",
      "tree": "2a79eb0f7328ba2f05759d1b2c1e141bcfe4aafc",
      "parents": [
        "7978b567d31555fc828b8f945c605ad29e117b22"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Thu Apr 02 16:58:05 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:58 2009 -0700"
      },
      "message": "signals: protect cinit from unblocked SIG_DFL signals\n\nDrop early any SIG_DFL or SIG_IGN signals to container-init from within\nthe same container.  But queue SIGSTOP and SIGKILL to the container-init\nif they are from an ancestor container.\n\nBlocked, fatal signals (i.e when SIG_DFL is to terminate) from within the\ncontainer can still terminate the container-init.  That will be addressed\nin the next patch.\n\nNote:\tTo be bisect-safe, SIGNAL_UNKILLABLE will be set for container-inits\n   \tin a follow-on patch. Until then, this patch is just a preparatory\n\tstep.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7978b567d31555fc828b8f945c605ad29e117b22",
      "tree": "a66d7880f3031e417c2afb76c990ed5340565816",
      "parents": [
        "f008faff0e2777c8b3fe853891b774ca465938d8"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Thu Apr 02 16:58:04 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:58 2009 -0700"
      },
      "message": "signals: add from_ancestor_ns parameter to send_signal()\n\nsend_signal() (or its helper) needs to determine the pid namespace of the\nsender.  But a signal sent via kill_pid_info_as_uid() comes from within\nthe kernel and send_signal() does not need to determine the pid namespace\nof the sender.  So define a helper for send_signal() which takes an\nadditional parameter, \u0027from_ancestor_ns\u0027 and have kill_pid_info_as_uid()\nuse that helper directly.\n\nThe \u0027from_ancestor_ns\u0027 parameter will be used in a follow-on patch.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f008faff0e2777c8b3fe853891b774ca465938d8",
      "tree": "d2f325995473a33652f7f7ead71e63d5298fbd01",
      "parents": [
        "43918f2bf4806675943416d539d9d5e4d585ebff"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:02 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:58 2009 -0700"
      },
      "message": "signals: protect init from unwanted signals more\n\n(This is a modified version of the patch submitted by Oleg Nesterov\nhttp://lkml.org/lkml/2008/11/18/249 and tries to address comments that\ncame up in that discussion)\n\ninit ignores the SIG_DFL signals but we queue them anyway, including\nSIGKILL.  This is mostly OK, the signal will be dropped silently when\ndequeued, but the pending SIGKILL has 2 bad implications:\n\n        - it implies fatal_signal_pending(), so we confuse things\n          like wait_for_completion_killable/lock_page_killable.\n\n        - for the sub-namespace inits, the pending SIGKILL can\n          mask (legacy_queue) the subsequent SIGKILL from the\n          parent namespace which must kill cinit reliably.\n          (preparation, cinits don\u0027t have SIGNAL_UNKILLABLE yet)\n\nThe patch can\u0027t help when init is ptraced, but ptracing of init is not\n\"safe\" anyway.\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\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "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": "90bc8d8b1a38f1ab131a2399a202e1889db95de8",
      "tree": "97001737dc3c1c7fd364ddd995bcbfc1c27b4c3a",
      "parents": [
        "6d7b2f5f9e88902b19f91d0c8a7ef58a5455f1a2"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:57:58 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:57 2009 -0700"
      },
      "message": "do_wait: fix waiting for the group stop with the dead leader\n\ndo_wait(WSTOPPED) assumes that p-\u003estate must be \u003d\u003d TASK_STOPPED, this is\nnot true if the leader is already dead.  Check SIGNAL_STOP_STOPPED instead\nand use signal-\u003egroup_exit_code.\n\nTrivial test-case:\n\n\tvoid *tfunc(void *arg)\n\t{\n\t\tpause();\n\t\treturn NULL;\n\t}\n\n\tint main(void)\n\t{\n\t\tpthread_t thr;\n\t\tpthread_create(\u0026thr, NULL, tfunc, NULL);\n\t\tpthread_exit(NULL);\n\t\treturn 0;\n\t}\n\nIt doesn\u0027t react to ^Z (and then to ^C or ^\\). The task is stopped, but\nbash can\u0027t see this.\n\nThe bug is very old, and it was reported multiple times. This patch was sent\nmore than a year ago (http://marc.info/?t\u003d119713920000003) but it was ignored.\n\nThis change also fixes other oddities (but not all) in this area.  For\nexample, before this patch:\n\n\t$ sleep 100\n\t^Z\n\t[1]+  Stopped                 sleep 100\n\t$ strace -p `pidof sleep`\n\tProcess 11442 attached - interrupt to quit\n\nstrace hangs in do_wait(), because -\u003eexit_code was already consumed by\nbash.  After this patch, strace happily proceeds:\n\n\t--- SIGTSTP (Stopped) @ 0 (0) ---\n\trestart_syscall(\u003c... resuming interrupted call ...\u003e\n\nTo me, this looks much more \"natural\" and correct.\n\nAnother example.  Let\u0027s suppose we have the main thread M and sub-thread\nT, the process is stopped, and its parent did wait(WSTOPPED).  Now we can\nptrace T but not M.  This looks at least strange to me.\n\nImho, do_wait() should not confuse the per-thread ptrace stops with the\nper-process job control stops.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Denys Vlasenko \u003cdvlasenk@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Jan Kratochvil \u003cjan.kratochvil@redhat.com\u003e\nCc: Kaz Kylheku \u003ckkylheku@gmail.com\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nCc: Roland McGrath \u003croland@redhat.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": "6d7b2f5f9e88902b19f91d0c8a7ef58a5455f1a2",
      "tree": "4ad594fcef55ad95424e58c39e10a723d1dcbe4f",
      "parents": [
        "db7f47cf4805e30decb0841764b21b7c4000f7dc"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Thu Apr 02 16:57:57 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:57 2009 -0700"
      },
      "message": "cpusets: prevent PF_THREAD_BOUND tasks from attaching to non-root cpusets\n\nKthreads that have the PF_THREAD_BOUND bit set in their flags are bound to a\nspecific cpu.  Thus, their set of allowed cpus shall not change.\n\nThis patch prevents such threads from attaching to non-root cpusets.  They do\nnot have mempolicies that restrict them to a subset of system nodes and, since\ntheir cpumask may never change, they cannot use any of the features of\ncpusets.\n\nThe tasks will forever be a member of the root cpuset and will be returned\nwhen listing the tasks attached to that cpuset.\n\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Dhaval Giani \u003cdhaval@linux.vnet.ibm.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": "db7f47cf4805e30decb0841764b21b7c4000f7dc",
      "tree": "10a7ee574ae29fbd3c78a22bd6700e14efe80e65",
      "parents": [
        "a1bc5a4eee990a1f290735c8694d0aebdad095fa"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Apr 02 16:57:55 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:57 2009 -0700"
      },
      "message": "cpusets: allow cpusets to be configured/built on non-SMP systems\n\nAllow cpusets to be configured/built on non-SMP systems\n\nCurrently it\u0027s impossible to build cpusets under UML on x86-64, since\ncpusets depends on SMP and x86-64 UML doesn\u0027t support SMP.\n\nThere\u0027s code in cpusets that doesn\u0027t depend on SMP.  This patch surrounds\nthe minimum amount of cpusets code with #ifdef CONFIG_SMP in order to\nallow cpusets to build/run on UP systems (for testing purposes under UML).\n\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Paul Menage \u003cmenage@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": "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": "7f81b1ae18416b457e4d5ff23f0bd598e8a42224",
      "tree": "8b484cec5b67d4cf00dfacd407b2648cd0d1b645",
      "parents": [
        "010cfac4ca0f9e85f54ba2117a372e72f4fb9a60"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:53 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:57 2009 -0700"
      },
      "message": "cpuset: remove struct cpuset_hotplug_scanner\n\nUse cgroup_scanner.data, instead of introducing cpuset_hotplug_scanner.\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\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": "010cfac4ca0f9e85f54ba2117a372e72f4fb9a60",
      "tree": "47b8ed65b2e3cdfe269794545995020947a667a6",
      "parents": [
        "3b6766fe668b83c8a03c6ed01bcc2ac77cbae848"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:52 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:57 2009 -0700"
      },
      "message": "cpuset: avoid changing cpuset\u0027s mems when errno returned\n\nWhen writing to cpuset.mems, cpuset has to update its mems_allowed before\ncalling update_tasks_nodemask(), but this function might return -ENOMEM.\n\nTo avoid this rare case, we allocate the memory before changing\nmems_allowed, and then pass to update_tasks_nodemask().  Similar to what\nupdate_cpumask() does.\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\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": "3b6766fe668b83c8a03c6ed01bcc2ac77cbae848",
      "tree": "8b109576301d849406f080c61f4ce1809556ad0b",
      "parents": [
        "bd1a8ab73edd449fecda633449cc277b856ad4f5"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:51 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:57 2009 -0700"
      },
      "message": "cpuset: rewrite update_tasks_nodemask()\n\nThis patch uses cgroup_scan_tasks() to rebind tasks\u0027 vmas to new cpuset\u0027s\nmems_allowed.\n\nNot only simplify the code largely, but also avoid allocating an array to\nhold mm pointers of all the tasks in the cpuset.  This array can be big\n(size \u003e PAGESIZE) if we have lots of tasks in that cpuset, thus has a\nchance to fail the allocation when under memory stress.\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\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": "0b4217b3fdddc4a58939720d3ed809537577d48b",
      "tree": "9bda180eb4e9fed454453b4aeaf9447602c74022",
      "parents": [
        "83aae4c737866da3280f51fd15da58eddd788397"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:49 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:56 2009 -0700"
      },
      "message": "cpuset: fix possible races in cpu/memory hotplug\n\nChange to cpuset-\u003ecpus_allowed and cpuset-\u003emems_allowed should be protected\nby callback_mutex, otherwise the reader may read wrong cpus/mems. This is\ncpuset\u0027s lock rule.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@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": "83aae4c737866da3280f51fd15da58eddd788397",
      "tree": "a4fdabfb02949e0d44743850b7f37ae52eaed757",
      "parents": [
        "627991a20b3f4d504d20466ab405fe035cb1a20a"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Thu Apr 02 16:57:48 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:56 2009 -0700"
      },
      "message": "memcg: cleanup cache_charge\n\nCurrent mem_cgroup_cache_charge is a bit complicated especially\nin the case of shmem\u0027s swap-in.\n\nThis patch cleans it up by using try_charge_swapin and commit_charge_swapin.\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "627991a20b3f4d504d20466ab405fe035cb1a20a",
      "tree": "ac1d7e0bc0881cf31c72ab1f830de904d52ef13e",
      "parents": [
        "a3b2d692690aef228e493b1beaafe5364cab3237"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:47 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:56 2009 -0700"
      },
      "message": "memcg: remove redundant message at swapon\n\nIt\u0027s pointed out that swap_cgroup\u0027s message at swapon() is nonsense.\nBecause\n\n  * It can be calculated very easily if all necessary information is\n    written in Kconfig.\n\n  * It\u0027s not necessary to annoying people at every swapon().\n\nIn other view, now, memory usage per swp_entry is reduced to 2bytes from\n8bytes(64bit) and I think it\u0027s reasonably small.\n\nReported-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "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": "3c776e64660028236313f0e54f3a9945764422df",
      "tree": "4268ca55283e572ab0e6570cd05030d64048af34",
      "parents": [
        "3918b96e03b2b8dd05889320623f6870e81d35ec"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Thu Apr 02 16:57:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:56 2009 -0700"
      },
      "message": "memcg: charge swapcache to proper memcg\n\nmemcg_test.txt says at 4.1:\n\n\tThis swap-in is one of the most complicated work. In do_swap_page(),\n\tfollowing events occur when pte is unchanged.\n\n\t(1) the page (SwapCache) is looked up.\n\t(2) lock_page()\n\t(3) try_charge_swapin()\n\t(4) reuse_swap_page() (may call delete_swap_cache())\n\t(5) commit_charge_swapin()\n\t(6) swap_free().\n\n\tConsidering following situation for example.\n\n\t(A) The page has not been charged before (2) and reuse_swap_page()\n\t    doesn\u0027t call delete_from_swap_cache().\n\t(B) The page has not been charged before (2) and reuse_swap_page()\n\t    calls delete_from_swap_cache().\n\t(C) The page has been charged before (2) and reuse_swap_page() doesn\u0027t\n\t    call delete_from_swap_cache().\n\t(D) The page has been charged before (2) and reuse_swap_page() calls\n\t    delete_from_swap_cache().\n\n\t    memory.usage/memsw.usage changes to this page/swp_entry will be\n\t Case          (A)      (B)       (C)     (D)\n         Event\n       Before (2)     0/ 1     0/ 1      1/ 1    1/ 1\n          \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n          (3)        +1/+1    +1/+1     +1/+1   +1/+1\n          (4)          -       0/ 0       -     -1/ 0\n          (5)         0/-1     0/ 0     -1/-1    0/ 0\n          (6)          -       0/-1       -      0/-1\n          \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n       Result         1/ 1     1/ 1      1/ 1    1/ 1\n\n       In any cases, charges to this page should be 1/ 1.\n\nIn case of (D), mem_cgroup_try_get_from_swapcache() returns NULL\n(because lookup_swap_cgroup() returns NULL), so \"+1/+1\" at (3) means\ncharges to the memcg(\"foo\") to which the \"current\" belongs.\nOTOH, \"-1/0\" at (4) and \"0/-1\" at (6) means uncharges from the memcg(\"baa\")\nto which the page has been charged.\n\nSo, if the \"foo\" and \"baa\" is different(for example because of task move),\nthis charge will be moved from \"baa\" to \"foo\".\n\nI think this is an unexpected behavior.\n\nThis patch fixes this by modifying mem_cgroup_try_get_from_swapcache()\nto return the memcg to which the swapcache has been charged if PCG_USED bit\nis set.\nIIUC, checking PCG_USED bit of swapcache is safe under page lock.\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: 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": "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": "81d39c20f5ee2437d71709beb82597e2a38efbbc",
      "tree": "56297eb00cfa2bc251b2c5e0e0330becafd39e33",
      "parents": [
        "14067bb3e24b96d92e22d19c18c0119edf5575e5"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:36 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:55 2009 -0700"
      },
      "message": "memcg: fix shrinking memory to return -EBUSY by fixing retry algorithm\n\nAs pointed out, shrinking memcg\u0027s limit should return -EBUSY after\nreasonable retries.  This patch tries to fix the current behavior of\nshrink_usage.\n\nBefore looking into \"shrink should return -EBUSY\" problem, we should fix\nhierarchical reclaim code.  It compares current usage and current limit,\nbut it only makes sense when the kernel reclaims memory because hit\nlimits.  This is also a problem.\n\nWhat this patch does are.\n\n  1. add new argument \"shrink\" to hierarchical reclaim. If \"shrink\u003d\u003dtrue\",\n     hierarchical reclaim returns immediately and the caller checks the kernel\n     should shrink more or not.\n     (At shrinking memory, usage is always smaller than limit. So check for\n      usage \u003c limit is useless.)\n\n  2. For adjusting to above change, 2 changes in \"shrink\"\u0027s retry path.\n     2-a. retry_count depends on # of children because the kernel visits\n\t  the children under hierarchy one by one.\n     2-b. rather than checking return value of hierarchical_reclaim\u0027s progress,\n\t  compares usage-before-shrink and usage-after-shrink.\n\t  If usage-before-shrink \u003c\u003d usage-after-shrink, retry_count is\n\t  decremented.\n\nReported-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.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": "14067bb3e24b96d92e22d19c18c0119edf5575e5",
      "tree": "54af97e899bf4253b170938f6711097824b7364f",
      "parents": [
        "04046e1a0a34286382e913f8fc461440c21d88e8"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamzawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:55 2009 -0700"
      },
      "message": "memcg: hierarchical stat\n\nClean up memory.stat file routine and show \"total\" hierarchical stat.\n\nThis patch does\n  - renamed get_all_zonestat to be get_local_zonestat.\n  - remove old mem_cgroup_stat_desc, which is only for per-cpu stat.\n  - add mcs_stat to cover both of per-cpu/per-lru stat.\n  - add \"total\" stat of hierarchy (*)\n  - add a callback system to scan all memcg under a root.\n\u003d\u003d \"total\" is added.\n[kamezawa@localhost ~]$ cat /opt/cgroup/xxx/memory.stat\ncache 0\nrss 0\npgpgin 0\npgpgout 0\ninactive_anon 0\nactive_anon 0\ninactive_file 0\nactive_file 0\nunevictable 0\nhierarchical_memory_limit 50331648\nhierarchical_memsw_limit 9223372036854775807\ntotal_cache 65536\ntotal_rss 192512\ntotal_pgpgin 218\ntotal_pgpgout 155\ntotal_inactive_anon 0\ntotal_active_anon 135168\ntotal_inactive_file 61440\ntotal_active_file 4096\ntotal_unevictable 0\n\u003d\u003d\n(*) maybe the user can do calc hierarchical stat by his own program\n   in userland but if it can be written in clean way, it\u0027s worth to be\n   shown, I think.\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\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": "04046e1a0a34286382e913f8fc461440c21d88e8",
      "tree": "cab2b8a61e7474d509fbd3ea02e38b7c4137ce4b",
      "parents": [
        "b4046f00ee7c1e5615261b496cf7309683275b29"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:55 2009 -0700"
      },
      "message": "memcg: use CSS ID\n\nAssigning CSS ID for each memcg and use css_get_next() for scanning hierarchy.\n\n\tAssume folloing tree.\n\n\tgroup_A (ID\u003d3)\n\t\t/01 (ID\u003d4)\n\t\t   /0A (ID\u003d7)\n\t\t/02 (ID\u003d10)\n\tgroup_B (ID\u003d5)\n\tand task in group_A/01/0A hits limit at group_A.\n\n\treclaim will be done in following order (round-robin).\n\tgroup_A(3) -\u003e group_A/01 (4) -\u003e group_A/01/0A (7) -\u003e group_A/02(10)\n\t-\u003e group_A -\u003e .....\n\n\tRound robin by ID. The last visited cgroup is recorded and restart\n\tfrom it when it start reclaim again.\n\t(More smart algorithm can be implemented..)\n\n\tNo cgroup_mutex or hierarchy_mutex is required.\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\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": "b4046f00ee7c1e5615261b496cf7309683275b29",
      "tree": "8ef312b95b03f362f7780a37620167c54bf55e8f",
      "parents": [
        "d969fbe69e07fcceb0558b35d4c75eb046041c5e"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:32 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:55 2009 -0700"
      },
      "message": "devcgroup: avoid using cgroup_lock\n\nThere is nothing special that has to be protected by cgroup_lock,\nso introduce devcgroup_mtuex for it\u0027s own use.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d969fbe69e07fcceb0558b35d4c75eb046041c5e",
      "tree": "e93bab346a32b061522a946fe3a012155c59c27c",
      "parents": [
        "0670e08bdfc67272f8c3087030417465629b8073"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:31 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:54 2009 -0700"
      },
      "message": "debug cgroup: remove unneeded cgroup_lock\n\nSince we are in cgroup write handler, so the cgrp is valid, so we don\u0027t\nhave to hold cgroup_mutex when calling cgroup_task_count().  One similar\nexample is in cgroup_tasks_open().\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-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": "0670e08bdfc67272f8c3087030417465629b8073",
      "tree": "44a4e3b6059aeb8c2a97d5fb8ccf743a2eaafd07",
      "parents": [
        "099fca3225b39f7a3ed853036038054172b55581"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:30 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:54 2009 -0700"
      },
      "message": "cgroups: don\u0027t change release_agent when remount failed\n\nRemount can fail in either case:\n  - wrong mount options is specified, or option \u0027noprefix\u0027 is changed.\n  - a to-be-added subsys is already mounted/active.\n\nWhen using remount to change \u0027release_agent\u0027, for the above former failure\ncase, remount will return errno with release_agent unchanged, but for the\nlatter case, remount will return EBUSY with relase_agent changed, which is\nunexpected I think:\n\n # mount -t cgroup -o cpu xxx /cgrp1\n # mount -t cgroup -o cpuset,release_agent\u003dagent1 yyy /cgrp2\n # cat /cgrp2/release_agent\n agent1\n # mount -t cgroup -o remount,cpuset,noprefix,release_agent\u003dagent2 yyy /cgrp2\n mount: /cgrp2 not mounted already, or bad option\n # cat /cgrp2/release_agent\n agent1     \u003c-- ok\n # mount -t cgroup -o remount,cpu,cpuset,release_agent\u003dagent2 yyy /cgrp2\n mount: /cgrp2 is busy\n # cat /cgrp2/release_agent\n agent2     \u003c-- unexpected!\n\nSigned-off-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": "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": "b6719ec1ad54e47e40633b19703f2c1254708842",
      "tree": "3db0fe0ec0a92a006562de9b012d2a89ddce19eb",
      "parents": [
        "66bdc9cfc77ba89a9ee6c82d28375b646ab4bb1d"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:28 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:54 2009 -0700"
      },
      "message": "cgroups: more documentation for remount and release_agent\n\nThis won\u0027t remove cpuacct from the mounted hierachy:\n # mount -t cgroup -o cpu,cpuacct xxx /mnt\n # mount -o remount,cpu /mnt\n\nBecause for this usage mount(8) will append the new options to the original\noptions.\n\nAnd this will get you right:\n # mount [-t cgroup] -o remount,cpu xxx /mnt\n\nAlso document how to specify or change release_agent.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nReviewd-by: 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": "66bdc9cfc77ba89a9ee6c82d28375b646ab4bb1d",
      "tree": "dd0d292a2f413f8c14d2219f8de94516fffe18b5",
      "parents": [
        "ec64f51545fffbc4cb968f0cea56341a4b07e85a"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Thu Apr 02 16:57:27 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:54 2009 -0700"
      },
      "message": "kernel/cgroup.c: kfree(NULL) is legal\n\nReduces object file size a bit:\n\nBefore:\n$ size kernel/cgroup.o\n   text    data     bss     dec     hex filename\n  21593    7804    4924   34321    8611 kernel/cgroup.o\nAfter:\n$ size kernel/cgroup.o\n   text    data     bss     dec     hex filename\n  21537    7744    4924   34205    859d kernel/cgroup.o\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\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": "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": "45dad7bd9d9b65a30d6e790b111f6f2d8f746d22",
      "tree": "ab00afe099eb226d5f365124ee591b2518ebe0f0",
      "parents": [
        "760df93ecdd59fc1c213a491b5adee79f53606da"
      ],
      "author": {
        "name": "Li Xiaodong",
        "email": "lixd@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:21 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:53 2009 -0700"
      },
      "message": "documentation: fix unix_dgram_qlen description\n\nPrevious description about system parameter in /proc/sys/net/unix/ is\nwrong (or missed).  Simply add a new description about unix_dgram_qlen\naccording to latest kernel.\n\nSigned-off-by: Li Xiaodong \u003clixd@cn.fujitsu.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "760df93ecdd59fc1c213a491b5adee79f53606da",
      "tree": "305a4e0fae43549eb24a3ebcf9bcc15a16ef2138",
      "parents": [
        "70eed8d06601ca3810a0e56035eae6496d57856b"
      ],
      "author": {
        "name": "Shen Feng",
        "email": "shen@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:20 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:53 2009 -0700"
      },
      "message": "documentation: update Documentation/filesystem/proc.txt and Documentation/sysctls\n\nNow /proc/sys is described in many places and much information is\nredundant.  This patch updates the proc.txt and move the /proc/sys\ndesciption out to the files in Documentation/sysctls.\n\nDetails are:\n\nmerge\n-  2.1  /proc/sys/fs - File system data\n-  2.11 /proc/sys/fs/mqueue - POSIX message queues filesystem\n-  2.17 /proc/sys/fs/epoll - Configuration options for the epoll interface\nwith Documentation/sysctls/fs.txt.\n\nremove\n-  2.2  /proc/sys/fs/binfmt_misc - Miscellaneous binary formats\nsince it\u0027s not better then the Documentation/binfmt_misc.txt.\n\nmerge\n-  2.3  /proc/sys/kernel - general kernel parameters\nwith Documentation/sysctls/kernel.txt\n\nremove\n-  2.5  /proc/sys/dev - Device specific parameters\nsince it\u0027s obsolete the sysfs is used now.\n\nremove\n-  2.6  /proc/sys/sunrpc - Remote procedure calls\nsince it\u0027s not better then the Documentation/sysctls/sunrpc.txt\n\nmove\n-  2.7  /proc/sys/net - Networking stuff\n-  2.9  Appletalk\n-  2.10 IPX\nto newly created Documentation/sysctls/net.txt.\n\nremove\n-  2.8  /proc/sys/net/ipv4 - IPV4 settings\nsince it\u0027s not better then the Documentation/networking/ip-sysctl.txt.\n\nadd\n- Chapter 3 Per-Process Parameters\nto descibe /proc/\u003cpid\u003e/xxx parameters.\n\nSigned-off-by: Shen Feng \u003cshen@cn.fujitsu.com\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "70eed8d06601ca3810a0e56035eae6496d57856b",
      "tree": "0451b872264c1c71bb9275caffaf4844232b440f",
      "parents": [
        "880fe76ee6f38eda82e9f3de9a7a206dfd1bab9d"
      ],
      "author": {
        "name": "Henrik Austad",
        "email": "henrik@austad.us",
        "time": "Thu Apr 02 16:57:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:53 2009 -0700"
      },
      "message": "documentation: ignore byproducts from latex\n\nWhen using \u0027make pdfdocs\u0027, auto-generated files should be ignored\n\nSigned-off-by: Henrik Austad \u003chenrik@austad.us\u003e\nCc: 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": "880fe76ee6f38eda82e9f3de9a7a206dfd1bab9d",
      "tree": "b5f5d085e73bdf352a9878e622d151f98bac6607",
      "parents": [
        "695f6ae0dcea3dd83bfbb9634ff067f780649ba8"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "roel.kluin@gmail.com",
        "time": "Thu Apr 02 16:57:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:53 2009 -0700"
      },
      "message": "hppfs: hppfs_read_file() may return -ERROR\n\nhppfs_read_file() may return (ssize_t) -ENOMEM, or -EFAULT.  When stored\nin size_t \u0027count\u0027, these errors will not be noticed, a large value will be\nadded to *ppos.\n\nSigned-off-by: Roel Kluin \u003croel.kluin@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": "695f6ae0dcea3dd83bfbb9634ff067f780649ba8",
      "tree": "0c97d92bfdc0791d0456faad6ef93b88e5739247",
      "parents": [
        "de18f3b2d68c1f3481839be760a5ff93f6a9a5e5"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Apr 02 16:57:17 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:52 2009 -0700"
      },
      "message": "ext3: avoid false EIO errors\n\nSometimes block_write_begin() can map buffers in a page but later we\nfail to copy data into those buffers (because the source page has been\npaged out in the mean time).  We then end up with !uptodate mapped\nbuffers.  To add a bit more to the confusion, block_write_end() does\nnot commit any data (and thus does not any mark buffers as uptodate) if\nwe didn\u0027t succeed with copying all the data.\n\nCommit f4fc66a894546bdc88a775d0e83ad20a65210bcb (ext3: convert to new\naops) missed these cases and thus we were inserting non-uptodate\nbuffers to transaction\u0027s list which confuses JBD code and it reports IO\nerrors, aborts a transaction and generally makes users afraid about\ntheir data ;-P.\n\nThis patch fixes the problem by reorganizing ext3_..._write_end() code\nto first call block_write_end() to mark buffers with valid data\nuptodate and after that we file only uptodate buffers to transaction\u0027s\nlists.\n\nWe also fix a problem where we could leave blocks allocated beyond i_size\n(i_disksize in fact) because of failed write. We now add inode to orphan\nlist when write fails (to be safe in case we crash) and then truncate blocks\nbeyond i_size in a separate transaction.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nReviewed-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "de18f3b2d68c1f3481839be760a5ff93f6a9a5e5",
      "tree": "75b4b389baed2c56b1fc94948d1ab42e08ddcdfe",
      "parents": [
        "45f902178022439795a21e14f886b8ccb49a75d2"
      ],
      "author": {
        "name": "Bryan Donlan",
        "email": "bdonlan@gmail.com",
        "time": "Thu Apr 02 16:57:15 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:52 2009 -0700"
      },
      "message": "ext3: return -EIO not -ESTALE on directory traversal through deleted inode\n\next3_iget() returns -ESTALE if invoked on a deleted inode, in order to\nreport errors to NFS properly.  However, in ext[234]_lookup(), this\n-ESTALE can be propagated to userspace if the filesystem is corrupted such\nthat a directory entry references a deleted inode.  This leads to a\nmisleading error message - \"Stale NFS file handle\" - and confusion on the\npart of the admin.\n\nThe bug can be easily reproduced by creating a new filesystem, making a\nlink to an unused inode using debugfs, then mounting and attempting to ls\n-l said link.\n\nThis patch thus changes ext3_lookup to return -EIO if it receives -ESTALE\nfrom ext3_iget(), as ext3 does for other filesystem metadata corruption;\nand also invokes the appropriate ext*_error functions when this case is\ndetected.\n\nSigned-off-by: Bryan Donlan \u003cbdonlan@gmail.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "45f902178022439795a21e14f886b8ccb49a75d2",
      "tree": "addf5725b2cd80be4a140a70499cc07f86635a23",
      "parents": [
        "ecca9af0a98fdacfcdc73979d08481d7b27ff986"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yjwei@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:14 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:52 2009 -0700"
      },
      "message": "ext3: use unsigned instead of int for type of blocksize in fs/ext3/namei.c\n\nUse unsigned instead of int for the parameter which carries a blocksize.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Wei Yongjun \u003cyjwei@cn.fujitsu.com\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ecca9af0a98fdacfcdc73979d08481d7b27ff986",
      "tree": "41aa40eedd27799b2fa021138173c1adcabe89a5",
      "parents": [
        "039fd8ce6258e01ec29f1637f9bf1868dd877c55"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Apr 02 16:57:13 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:52 2009 -0700"
      },
      "message": "jbd: fix oops in jbd_journal_init_inode() on corrupted fs\n\nOn 32-bit system with CONFIG_LBD getblk can fail because provided block\nnumber is too big. Make JBD gracefully handle that.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: \u003cdmaciejak@fortinet.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "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": "b277c884f7856ce0791b1e72079023a86767981b",
      "tree": "583eee77a6ebc27efb8cd4e01fd21befcc27ffa0",
      "parents": [
        "8c655918b15691d3a97f4e9a7c3c0a6ac992e297"
      ],
      "author": {
        "name": "Erik Ekman",
        "email": "erik@kryo.se",
        "time": "Thu Apr 02 16:57:09 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:52 2009 -0700"
      },
      "message": "pnpbios: propagate kthread_run() error\n\n- Error code from kthread_run() is now returned in pnpbios_thread_init()\n\n- Remove variable which always was 0.\n\nSigned-off-by: Erik Ekman \u003cerik@kryo.se\u003e\nCc: Bjorn Helgaas \u003cbjorn.helgaas@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8c655918b15691d3a97f4e9a7c3c0a6ac992e297",
      "tree": "ee6f47740938ffc21174728b656f17871b67a173",
      "parents": [
        "bfb9bcdbda9a61bca469bf899a589918c60c4c18"
      ],
      "author": {
        "name": "Erik Ekman",
        "email": "erik@kryo.se",
        "time": "Thu Apr 02 16:57:08 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:52 2009 -0700"
      },
      "message": "pnpbios: fix warning if CONFIG_HOTPLUG\u003dn\n\ndrivers/pnp/pnpbios/core.c: In function \u0027pnpbios_thread_init\u0027:\ndrivers/pnp/pnpbios/core.c:578: warning: unused variable \u0027task\u0027\n\nSigned-off-by: Erik Ekman \u003cerik@kryo.se\u003e\nCc: Bjorn Helgaas \u003cbjorn.helgaas@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "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": "8a0cecffeb52363a57257bbbbd58f4c4537a75bb",
      "tree": "ee7f754d49a2f2ad75b72ec59e90e6fa2c0753eb",
      "parents": [
        "926b663ce8215ba448960e1ff6e58b67a2c3b99b"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Thu Apr 02 16:57:06 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:51 2009 -0700"
      },
      "message": "gpio: gpio_{request,free}() now required (feature removal)\n\nWe want to phase out the GPIO \"autorequest\" mechanism in gpiolib and\nrequire all callers to use gpio_request().\n\n - Update feature-removal-schedule\n - Update the documentation now\n - Convert the relevant pr_warning() in gpiolib to a WARN()\n   so folk using this mechanism get a noisy stack dump\n\nSome drivers and board init code will probably need to change.\nImplementations not using gpiolib will still be fine; they are already\nrequired to implement gpio_{request,free}() stubs.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "926b663ce8215ba448960e1ff6e58b67a2c3b99b",
      "tree": "d60e6add2528b6a61968b0dc2db2f162bb157639",
      "parents": [
        "f30281f4f7c2a0efcfeddad12277dfdada8f08a7"
      ],
      "author": {
        "name": "Daniel Silverstone",
        "email": "dsilvers@simtec.co.uk",
        "time": "Thu Apr 02 16:57:05 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:51 2009 -0700"
      },
      "message": "gpiolib: allow GPIOs to be named\n\nAllow GPIOs in GPIOLIB chips to be named.  This name is then used when the\nGPIO is exported to sysfs, although it could be used elsewhere if deemed\nuseful.\n\nSigned-off-by: Daniel Silverstone \u003cdsilvers@simtec.co.uk\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": "f30281f4f7c2a0efcfeddad12277dfdada8f08a7",
      "tree": "01354ffba20643cdf0beb81dcb2b62def6320725",
      "parents": [
        "96615841e170f0108832e64a90d51b469573a472"
      ],
      "author": {
        "name": "Daniel Glockner",
        "email": "dg@emlix.com",
        "time": "Thu Apr 02 16:57:03 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:51 2009 -0700"
      },
      "message": "rtc: add m41t62 support to rtc-m41t80 driver\n\nCompared to the other supported chips, the m41t62 uses a different\nregister to set the square wave frequency.\n\nSigned-off-by: Daniel Glockner \u003cdg@emlix.com\u003e\nCc: Chris Zankel \u003cchris@zankel.net\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nCc: Alessandro Zummo \u003ca.zummo@towertech.it\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": "c1c490e017b66b31f6559db9cbb51a3ce00cf639",
      "tree": "94dfc491de797796143bc457476d0e2163abd6d3",
      "parents": [
        "6f2c55b843836d26528c56a0968689accaedbc67"
      ],
      "author": {
        "name": "Simon Kitching",
        "email": "skitching@apache.org",
        "time": "Thu Apr 02 16:57:00 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:51 2009 -0700"
      },
      "message": "initramfs: prevent initramfs printk message being split by messages from other code.\n\ninitramfs uses printk without a linefeed, then does some work, then uses\nprintk to finish the message off.  However if some other code does a\nprintk in between, then the messages get mixed together.  Better for each\nmessage to be an independent line...\n\nExample of problem that this fixes:\n\n    checking if image is initramfs...\u003c7\u003eSwitched to high resolution mode on CPU 1\n    Switched to high resolution mode on CPU 0\n    it is\n\nSigned-off-by: Simon Kitching \u003cskitching@apache.org\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": "e4c2ff1cf2d7fc65d0fc6f88bc98338e0212ad52",
      "tree": "340dffee06940d8ad4b8f7843f4389f727532e62",
      "parents": [
        "7130f2f5528fd9df8f18790730e39dff9136ee33"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Apr 02 16:56:53 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:50 2009 -0700"
      },
      "message": "uml: fix warnings in kernel_execve\n\nFix the following warnings:\n\narch/um/kernel/syscall.c: In function \u0027kernel_execve\u0027:\narch/um/kernel/syscall.c:130: warning: passing argument 1 of \u0027um_execve\u0027 discards qualifiers from pointer target type\narch/um/kernel/syscall.c:130: warning: passing argument 2 of \u0027um_execve\u0027 discards qualifiers from pointer target type\narch/um/kernel/syscall.c:130: warning: passing argument 3 of \u0027um_execve\u0027 discards qualifiers from pointer target type\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: WANG Cong \u003cxiyou.wangcong@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": "7130f2f5528fd9df8f18790730e39dff9136ee33",
      "tree": "af09b8360f8e8645b0d4340956a74c508124b06d",
      "parents": [
        "ebe28bb41573502518805d0c9b39fc6426008fd1"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Thu Apr 02 16:56:51 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:50 2009 -0700"
      },
      "message": "uml: fix link error from prefixing of i386 syscalls with ptregs_\n\nFix the following link error:\n\narch/um/sys-i386/built-in.o: In function `sys_call_table\u0027:\n(.rodata+0x11c): undefined reference to `ptregs_fork\u0027\narch/um/sys-i386/built-in.o: In function `sys_call_table\u0027:\n(.rodata+0x140): undefined reference to `ptregs_execve\u0027\narch/um/sys-i386/built-in.o: In function `sys_call_table\u0027:\n(.rodata+0x2cc): undefined reference to `ptregs_iopl\u0027\narch/um/sys-i386/built-in.o: In function `sys_call_table\u0027:\n(.rodata+0x2d8): undefined reference to `ptregs_vm86old\u0027\narch/um/sys-i386/built-in.o: In function `sys_call_table\u0027:\n(.rodata+0x2f0): undefined reference to `ptregs_sigreturn\u0027\narch/um/sys-i386/built-in.o: In function `sys_call_table\u0027:\n(.rodata+0x2f4): undefined reference to `ptregs_clone\u0027\narch/um/sys-i386/built-in.o: In function `sys_call_table\u0027:\n(.rodata+0x3ac): undefined reference to `ptregs_vm86\u0027\narch/um/sys-i386/built-in.o: In function `sys_call_table\u0027:\n(.rodata+0x3c8): undefined reference to `ptregs_rt_sigreturn\u0027\narch/um/sys-i386/built-in.o: In function `sys_call_table\u0027:\n(.rodata+0x3fc): undefined reference to `ptregs_sigaltstack\u0027\narch/um/sys-i386/built-in.o: In function `sys_call_table\u0027:\n(.rodata+0x40c): undefined reference to `ptregs_vfork\u0027\n\nThis was introduced by commit 253f29a4, \"x86: pass in pt_regs pointer\nfor syscalls that need it\"\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Brian Gerst \u003cbrgerst@gmail.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nReviewed-by: WANG Cong \u003cxiyou.wangcong@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": "ebe28bb41573502518805d0c9b39fc6426008fd1",
      "tree": "d6e9a235958c21cdef912d9ed4a2e48befdbc1b4",
      "parents": [
        "83f9ef463bcb4ba7b4fee1d6212fac7d277010d3"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Apr 02 16:56:49 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:50 2009 -0700"
      },
      "message": "uml: fix compile error from net_device_ops conversion\n\nFix the following compile error:\n\narch/um/drivers/net_kern.c: In function \u0027uml_inetaddr_event\u0027:\narch/um/drivers/net_kern.c:760: error: \u0027struct net_device\u0027 has no member named \u0027open\u0027\n\nThis was introduced by commit 8bb95b39, \"uml: convert network device\nto netdevice ops\".\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nReviewed-by: WANG Cong \u003cxiyou.wangcong@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": "83f9ef463bcb4ba7b4fee1d6212fac7d277010d3",
      "tree": "550207be5d53e057803d14d5cce5487b86613662",
      "parents": [
        "97f76d3d197f201ac8a8a3ced5b8fef81568e50e"
      ],
      "author": {
        "name": "Scott James Remnant",
        "email": "scott@canonical.com",
        "time": "Thu Apr 02 16:56:47 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:49 2009 -0700"
      },
      "message": "floppy: provide a PNP device table in the module.\n\nThe missing device table means that the floppy module is not auto-loaded,\neven when the appropriate PNP device (0700) is found.\n\nWe don\u0027t actually use the table in the module, since the device doesn\u0027t\nhave a struct pnp_driver, but it\u0027s sufficient to cause an alias in the\nmodule that udev/modprobe will use.\n\nSigned-off-by: Scott James Remnant \u003cscott@canonical.com\u003e\nSigned-off-by: Tim Gardner \u003ctim.gardner@canonical.com\u003e\nCc: Bjorn Helgaas \u003cbjorn.helgaas@hp.com\u003e\nCc: Philippe De Muyter \u003cphdm@macqel.be\u003e\nAcked-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "97f76d3d197f201ac8a8a3ced5b8fef81568e50e",
      "tree": "8264f920a1f1a83e9cb0247ffe9390a7b6332852",
      "parents": [
        "9a896c9a48ac6704c0ce8ee081b836644d0afe40"
      ],
      "author": {
        "name": "Nikanth Karthikesan",
        "email": "knikanth@suse.de",
        "time": "Thu Apr 02 16:56:46 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:49 2009 -0700"
      },
      "message": "vfs: check bh-\u003eb_blocknr only if BH_Mapped is set\n\nCheck bh-\u003eb_blocknr only if BH_Mapped is set.\n\nakpm: I doubt if b_blocknr is ever uninitialised here, but it could\nconceivably cause a problem if we\u0027re doing a lookup for block zero.\n\nSigned-off-by: Nikanth Karthikesan \u003cknikanth@suse.de\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": "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": "c90bfeb80f00c765a57f17442fea1a57756b9034",
      "tree": "9555d4194b28b1aba10e76a9ca62fb6f3edb07ad",
      "parents": [
        "58984ce21d315b70df1a43644df7416ea7c9bfd8"
      ],
      "author": {
        "name": "Michael Ellerman",
        "email": "michael@ellerman.id.au",
        "time": "Thu Apr 02 16:56:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:49 2009 -0700"
      },
      "message": "MAINTAINERS: add hvc_console\n\nAdd a MAINTAINERS entry for the hypervisor virtual console driver.\n\nSigned-off-by: Michael Ellerman \u003cmichael@ellerman.id.au\u003e\nAcked-by: Josh Boyer \u003cjwboyer@linux.vnet.ibm.com\u003e\nCc: Josh Boyer \u003cjwboyer@linux.vnet.ibm.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "58984ce21d315b70df1a43644df7416ea7c9bfd8",
      "tree": "7a434bbd8866ba762e143582020e8537f27cdce0",
      "parents": [
        "417b43d4b728619e9bcc2da4fa246a6350d46667"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Thu Apr 02 16:56:42 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:49 2009 -0700"
      },
      "message": "mm: do_xip_mapping_read: fix length calculation\n\nThe calculation of the value nr in do_xip_mapping_read is incorrect.  If\nthe copy required more than one iteration in the do while loop the copies\nvariable will be non-zero.  The maximum length that may be passed to the\ncall to copy_to_user(buf+copied, xip_mem+offset, nr) is len-copied but the\ncheck only compares against (nr \u003e len).\n\nThis bug is the cause for the heap corruption Carsten has been chasing\nfor so long:\n\n*** glibc detected *** /bin/bash: free(): invalid next size (normal): 0x00000000800e39f0 ***\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d Backtrace: \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n/lib64/libc.so.6[0x200000b9b44]\n/lib64/libc.so.6(cfree+0x8e)[0x200000bdade]\n/bin/bash(free_buffered_stream+0x32)[0x80050e4e]\n/bin/bash(close_buffered_stream+0x1c)[0x80050ea4]\n/bin/bash(unset_bash_input+0x2a)[0x8001c366]\n/bin/bash(make_child+0x1d4)[0x8004115c]\n/bin/bash[0x8002fc3c]\n/bin/bash(execute_command_internal+0x656)[0x8003048e]\n/bin/bash(execute_command+0x5e)[0x80031e1e]\n/bin/bash(execute_command_internal+0x79a)[0x800305d2]\n/bin/bash(execute_command+0x5e)[0x80031e1e]\n/bin/bash(reader_loop+0x270)[0x8001efe0]\n/bin/bash(main+0x1328)[0x8001e960]\n/lib64/libc.so.6(__libc_start_main+0x100)[0x200000592a8]\n/bin/bash(clearerr+0x5e)[0x8001c092]\n\nWith this bug fix the commit 0e4a9b59282914fe057ab17027f55123964bc2e2\n\"ext2/xip: refuse to change xip flag during remount with busy inodes\" can\nbe removed again.\n\nCc: Carsten Otte \u003ccotte@de.ibm.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Jared Hulbert \u003cjaredeh@gmail.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.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": "417b43d4b728619e9bcc2da4fa246a6350d46667",
      "tree": "3db555a29fefe22f85e79cf589ae534d3354b393",
      "parents": [
        "98f4ebb290a7dca8c48f27ec1d2cab8fa7982dad"
      ],
      "author": {
        "name": "Anton Blanchard",
        "email": "anton@samba.org",
        "time": "Thu Apr 02 16:56:39 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:49 2009 -0700"
      },
      "message": "random: align rekey_work\u0027s timer\n\nAlign rekey_work. Even though it\u0027s infrequent, we may as well line it up.\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "98f4ebb290a7dca8c48f27ec1d2cab8fa7982dad",
      "tree": "4bad1464ee372de6789e95cb18b56ce54dd3ef27",
      "parents": [
        "d2caa3c549c74d6476e2c29e13bd4d0e7d21c7fe"
      ],
      "author": {
        "name": "Anton Blanchard",
        "email": "anton@samba.org",
        "time": "Thu Apr 02 16:56:39 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:48 2009 -0700"
      },
      "message": "mm: align vmstat_work\u0027s timer\n\nEven though vmstat_work is marked deferrable, there are still benefits to\naligning it.  For certain applications we want to keep OS jitter as low as\npossible and aligning timers and work so they occur together can reduce\ntheir overall impact.\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d2caa3c549c74d6476e2c29e13bd4d0e7d21c7fe",
      "tree": "8bdaf6ababcd789ced0f441fd9503ee8e033d242",
      "parents": [
        "846c151a4de188bb8f7043097518dab2ff5b5c2c"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Thu Apr 02 16:56:37 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:48 2009 -0700"
      },
      "message": "writeback: guard against jiffies wraparound on inode-\u003edirtied_when checks (try #3)\n\nThe dirtied_when value on an inode is supposed to represent the first time\nthat an inode has one of its pages dirtied.  This value is in units of\njiffies.  It\u0027s used in several places in the writeback code to determine\nwhen to write out an inode.\n\nThe problem is that these checks assume that dirtied_when is updated\nperiodically.  If an inode is continuously being used for I/O it can be\npersistently marked as dirty and will continue to age.  Once the time\ncompared to is greater than or equal to half the maximum of the jiffies\ntype, the logic of the time_*() macros inverts and the opposite of what is\nneeded is returned.  On 32-bit architectures that\u0027s just under 25 days\n(assuming HZ \u003d\u003d 1000).\n\nAs the least-recently dirtied inode, it\u0027ll end up being the first one that\npdflush will try to write out.  sync_sb_inodes does this check:\n\n\t/* Was this inode dirtied after sync_sb_inodes was called? */\n \tif (time_after(inode-\u003edirtied_when, start))\n \t\tbreak;\n\n...but now dirtied_when appears to be in the future.  sync_sb_inodes bails\nout without attempting to write any dirty inodes.  When this occurs,\npdflush will stop writing out inodes for this superblock.  Nothing can\nunwedge it until jiffies moves out of the problematic window.\n\nThis patch fixes this problem by changing the checks against dirtied_when\nto also check whether it appears to be in the future.  If it does, then we\nconsider the value to be far in the past.\n\nThis should shrink the problematic window of time to such a small period\n(30s) as not to matter.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nAcked-by: Ian Kent \u003craven@themaw.net\u003e\nCc: Jens Axboe \u003cjens.axboe@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": "846c151a4de188bb8f7043097518dab2ff5b5c2c",
      "tree": "9ba48a2dbb8ecd137d7bf41039fa628bab75824e",
      "parents": [
        "b6fac63cc1f52ec27f29fe6c6c8494a2ffac33fd"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Thu Apr 02 16:56:36 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:48 2009 -0700"
      },
      "message": "__tty_open(): use the correct type for saved_flags\n\nfilp-\u003ef_flags is unsigned, so use that type for the local copy.\n\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": "b6fac63cc1f52ec27f29fe6c6c8494a2ffac33fd",
      "tree": "78b4da8231fb80ea05fffc65c4647957b5a858fb",
      "parents": [
        "33e5d76979cf01e3834814fe0aea569d1d602c1a"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Thu Apr 02 16:56:34 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:48 2009 -0700"
      },
      "message": "vfs: skip I_CLEAR state inodes\n\nclear_inode() will switch inode state from I_FREEING to I_CLEAR, and do so\n_outside_ of inode_lock.  So any I_FREEING testing is incomplete without a\ncoupled testing of I_CLEAR.\n\nSo add I_CLEAR tests to drop_pagecache_sb(), generic_sync_sb_inodes() and\nadd_dquot_ref().\n\nMasayoshi MIZUMA discovered the bug in drop_pagecache_sb() and Jan Kara\nreminds fixing the other two cases.\n\nMasayoshi MIZUMA has a nice panic flow:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n            [process A]               |        [process B]\n |                                    |\n |    prune_icache()                  | drop_pagecache()\n |      spin_lock(\u0026inode_lock)        |   drop_pagecache_sb()\n |      inode-\u003ei_state |\u003d I_FREEING;  |       |\n |      spin_unlock(\u0026inode_lock)      |       V\n |          |                         |     spin_lock(\u0026inode_lock)\n |          V                         |         |\n |      dispose_list()                |         |\n |        list_del()                  |         |\n |        clear_inode()               |         |\n |          inode-\u003ei_state \u003d I_CLEAR  |         |\n |            |                       |         V\n |            |                       |      if (inode-\u003ei_state \u0026 (I_FREEING|I_WILL_FREE))\n |            |                       |              continue;           \u003c\u003d\u003d\u003d\u003d NOT MATCH\n |            |                       |\n |            |                       | (DANGER from here on! Accessing disposing inode!)\n |            |                       |\n |            |                       |      __iget()\n |            |                       |        list_move() \u003c\u003d\u003d\u003d\u003d\u003d PANIC on poisoned list !!\n V            V                       |\n(time)\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nReported-by: Masayoshi MIZUMA \u003cm.mizuma@jp.fujitsu.com\u003e\nReviewed-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: \u003cstable@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": "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": "5482415a5ecc0cd791a5d885cc3db8281401078f",
      "tree": "eb8913fd57791b7d6204671d72016d0278ae3074",
      "parents": [
        "ee3b4290aec03022cfb67c9adba9f1b3215245f0"
      ],
      "author": {
        "name": "Sergey Senozhatsky",
        "email": "sergey.senozhatsky@mail.by",
        "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": "fb: nvidiafb recognizes geforcego 7300 chip as mobile\n\nnvidiafb recognizes geforcego 7300 chip as mobile\n\nSigned-off-by: Sergey Senozhatsky \u003csergey.senozhatsky@mail.by\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": "833bb3046b6cb320e775ea2160ddca87d53260d5",
      "tree": "de206436200246909246f9e0df27e4cced13e364",
      "parents": [
        "8b53ef33d9d8fa5f771ae11cc6a6e7bc0182beec"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Apr 02 01:30:04 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 14:50:48 2009 -0700"
      },
      "message": "serial: fixup /proc/tty/driver/serial after proc_fops conversion\n\n\"struct tty_driver *\" lies in m-\u003eprivate not in v which is\nSEQ_TOKEN_START which is 1 which is enough to trigger NULL dereference\nnext line:\n\n\tBUG: unable to handle kernel NULL pointer dereference at 000000ad\n\tIP: [\u003cc040d689\u003e] uart_proc_show+0xe/0x2b0\n\nNoticed by Linus.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8b53ef33d9d8fa5f771ae11cc6a6e7bc0182beec",
      "tree": "7835bab94824b3d52e7466ae28825941f6c6277a",
      "parents": [
        "ef5ddd3d591399f2c722a77bce543d20bef31663",
        "80a03e29164c76b70e6dbb1d10515820cc24487a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 13:33:41 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 13:33:41 2009 -0700"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6\n\n* \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6: (29 commits)\n  [IA64] BUG to BUG_ON changes\n  [IA64] Fix typo/thinko in arch/ia64/sn/kernel/sn2/sn2_smp.c\n  ia64: remove some warnings.\n  ia64/xen: fix the link error.\n  ia64/pv_ops/bp/xen: implemented binary patchable pv_cpu_ops.\n  ia64/pv_ops/binary patch: define paravirt_dv_serialize_data() and suppress false positive warning.\n  ia64/pv_ops/bp/module: support binary patching for kernel module.\n  ia64/pv_ops: implement binary patching optimization for native.\n  ia64/pv_op/binarypatch: add helper functions to support binary patching for paravirt_ops.\n  ia64/pv_ops/xen/gate.S: xen gate page paravirtualization\n  ia64/pv_ops: paravirtualize gate.S.\n  ia64/pv_ops: move down __kernel_syscall_via_epc.\n  ia64/pv_ops/xen: define xen specific gate page.\n  ia64/pv_ops: gate page paravirtualization.\n  ia64/pv_ops/xen/pv_time_ops: implement sched_clock.\n  ia64/pv_ops/pv_time_ops: add sched_clock hook.\n  ia64/pv_ops/xen: paravirtualize read/write ar.itc and ar.itm\n  ia64/pv_ops: paravirtualize mov \u003d ar.itc.\n  ia64/pv_ops/pvchecker: support mov \u003d ar.itc paravirtualization\n  ia64/pv_ops: paravirtualize fsys.S.\n  ...\n"
    },
    {
      "commit": "ef5ddd3d591399f2c722a77bce543d20bef31663",
      "tree": "a6bec12fcf1e7533cb8a972fc1b465923e46585c",
      "parents": [
        "972dd435fb2c5da173a4c8dea44ccb8748e36d35",
        "cd670599b7b00d9263f6f11a05c0edeb9cbedaf3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 12:52:57 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 12:52:57 2009 -0700"
      },
      "message": "Merge branch \u0027x86-setup-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-setup-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, setup: guard against pre-ACPI 3 e820 code not updating %ecx\n"
    },
    {
      "commit": "972dd435fb2c5da173a4c8dea44ccb8748e36d35",
      "tree": "283d86d3012fb73b6cbf2ae88218ca3c262b868b",
      "parents": [
        "9c9cb14387389a70fe40f9be99f243e2a410b0b7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 12:46:15 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 12:51:33 2009 -0700"
      },
      "message": "qeth: properly delete empty files.\n\nCommit 64ef8957986f6a04f61e7c95fa6ffeb3a86a6661 (\"qeth: remove EDDP\")\nremoved the qeth_core_offl.[hc] files, but ended up doing so by just\npatching them to zero size, rather than removing them properly.\n\nActually remove the files.\n\nReported-by: Andrew Price \u003candy@andrewprice.me.uk\u003e\nCc: Frank Blaschka \u003cfrank.blaschka@de.ibm.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cd670599b7b00d9263f6f11a05c0edeb9cbedaf3",
      "tree": "e7aa26873f746baa1bd49cd92d3e7ab97c1716af",
      "parents": [
        "c549e71d073a6e9a4847497344db28a784061455"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Wed Apr 01 11:35:00 2009 -0700"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Wed Apr 01 11:35:00 2009 -0700"
      },
      "message": "x86, setup: guard against pre-ACPI 3 e820 code not updating %ecx\n\nImpact: BIOS bug safety\n\nFor pre-ACPI 3 BIOSes, pre-initialize the end of the e820 buffer just\nin case the BIOS returns an unchanged %ecx but without actually\ntouching the ACPI 3 extended flags field.\n\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "9c9cb14387389a70fe40f9be99f243e2a410b0b7",
      "tree": "cb927908a099f6448f86871e3bbc3985139db6cd",
      "parents": [
        "4fe70410d9a219dabb47328effccae7e7f2a6e26",
        "c549e71d073a6e9a4847497344db28a784061455"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 11:13:31 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 11:13:31 2009 -0700"
      },
      "message": "Merge branch \u0027x86/setup\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86/setup\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, setup: ACPI 3, BIOS workaround for E820-probing code\n  x86, setup: preemptively save/restore edi and ebp around INT 15 E820\n  x86, setup: mark %esi as clobbered in E820 BIOS call\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"
    }
  ],
  "next": "c69da774b28e01e062e0a3aba7509f2dcfd2a11a"
}
