)]}'
{
  "log": [
    {
      "commit": "f2cc3eb133baa2e9dc8efd40f417106b2ee520f3",
      "tree": "37b08158ee5296e79a61aad086be36c742825e3b",
      "parents": [
        "96fabbf55ae79826f2e8a86f4066d7e8834315ae"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:19:06 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:26 2008 -0800"
      },
      "message": "do_wait: fix security checks\n\nImho, the current usage of security_task_wait() is not logical.\n\nSuppose we have the single child p, and security_task_wait(p) return\n-EANY.  In that case waitpid(-1) returns this error.  Why? Isn\u0027t it\nbetter to return ECHLD? We don\u0027t really have reapable children.\n\nNow suppose that child was stolen by gdb.  In that case we find this\nchild on -\u003eptrace_children and set flag \u003d 1, but we don\u0027t check that the\nchild was denied.  So, do_wait(..., WNOHANG) returns 0, this doesn\u0027t\nmatch the behaviour above.  Without WNOHANG do_wait() blocks only to\nreturn the error later, when the child will be untraced.  Inho, really\nstrange.\n\nI think eligible_child() should return the error only if the child\u0027s pid\nwas requested explicitly, otherwise we should silently ignore the tasks\nwhich were nacked by security_task_wait().\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "96fabbf55ae79826f2e8a86f4066d7e8834315ae",
      "tree": "e4b3259a744a1e0c8fa477e3dfba02e4ea1993c8",
      "parents": [
        "1bad95c3bee183719e15eebffef66afc3fb3f8b0"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:19:04 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:26 2008 -0800"
      },
      "message": "do_wait: cleanup delay_group_leader() usage\n\neligible_child() \u003d\u003d 2 means delay_group_leader().  With the previous patch\nthis only matters for EXIT_ZOMBIE task, we can move that special check to\nthe only place it is really needed.\n\nAlso, with this patch we don\u0027t skip security_task_wait() for the group\nleaders in a non-empty thread group.  I don\u0027t really understand the exact\nsemantics of security_task_wait(), but imho this change is a bugfix.\n\nAlso rearrange the code a bit to kill an ugly \"check_continued\" backdoor.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1bad95c3bee183719e15eebffef66afc3fb3f8b0",
      "tree": "b875db7096572a69f3906db631708d7e75e22f3f",
      "parents": [
        "20686a309aa98c518adbbd9b57cdbb1804143deb"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:19:03 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:26 2008 -0800"
      },
      "message": "wait_task_stopped(): remove unneeded delay_group_leader check\n\nwait_task_stopped() doesn\u0027t need the \"delay_group_leader\" parameter.  If\nthe child is not traced it must be a group leader.  With or without\nsubthreads -\u003egroup_stop_count \u003d\u003d 0 when the whole task is stopped.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Mika Penttila \u003cmika.penttila@kolumbus.fi\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": "20686a309aa98c518adbbd9b57cdbb1804143deb",
      "tree": "4aac811e67d777d3c0015ca51312aa93b4832d35",
      "parents": [
        "9cbab8100538efdd93aeae6fc37787d986f2f558"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:19:03 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:26 2008 -0800"
      },
      "message": "ptrace_stop: fix racy nonstop_code setting\n\nIf the tracer is gone and we are not going to stop, ptrace_stop() sets\n-\u003eexit_code \u003d nostop_code.  However, the tracer could actually clear the\nexit code before detaching.  In that case get_signal_to_deliver() \"resends\"\nthe signal which was cancelled by the debugger.  For example, it is\npossible that a quick PTRACE_ATTACH + PTRACE_DETACH can leave the tracee in\nSTOPPED state.\n\nChange the behaviour of ptrace_stop().  If the caller is ptrace notify(),\nwe should always clear -\u003eexit_code.  If the caller is\nget_signal_to_deliver(), we should not touch it at all.  To do so, change\nthe nonstop_code parameter to \"bool clear_code\" and change the callers\naccordingly.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\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": "9cbab8100538efdd93aeae6fc37787d986f2f558",
      "tree": "a34cf1b3d6bdb3b2bbede801a9acdb23d35903ff",
      "parents": [
        "ee7c82da830ea860b1f9274f1f0cdf99f206e7c2"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:19:02 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:26 2008 -0800"
      },
      "message": "do_wait: factor out \"retval !\u003d 0\" checks\n\nEvery branch if the main \"if\" statement does the same code at the end.  Move\nit down.  Also, fix the indentation.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\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": "ee7c82da830ea860b1f9274f1f0cdf99f206e7c2",
      "tree": "449477479b25ec73a1c2242723b3fb1c09cd936d",
      "parents": [
        "6405f7f4675884b671bee66678e1c2859bdb0e56"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:19:01 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:26 2008 -0800"
      },
      "message": "wait_task_stopped: simplify and fix races with SIGCONT/SIGKILL/untrace\n\nwait_task_stopped() has multiple races with SIGCONT/SIGKILL.  tasklist_lock\ndoes not pin the child in TASK_TRACED/TASK_STOPPED stated, almost all info\nreported (including exit_code) may be wrong.\n\nIn fact, the code under write_lock_irq(tasklist_lock) is not safe.  The child\nmay be PTRACE_DETACH\u0027ed at this time by another subthread, in that case it is\npossible we are no longer its -\u003eparent.\n\nChange wait_task_stopped() to take -\u003esiglock before inspecting the task.  This\nguarantees that the child can\u0027t resume and (for example) clear its\n-\u003eexit_code, so we don\u0027t need to use xchg(\u0026p-\u003eexit_code) and re-check.  The\nonly exception is ptrace_stop() which changes -\u003estate and -\u003eexit_code without\n-\u003esiglock held during abort.  But this can only happen if both the tracer and\nthe tracee are dying (coredump is in progress), we don\u0027t care.\n\nWith this patch wait_task_stopped() doesn\u0027t move the child to the end of\nthe -\u003eparent list on success.  This optimization could be restored, but\nin that case we have to take write_lock(tasklist) and do some nasty\nchecks.\n\nAlso change the do_wait() since we don\u0027t return EAGAIN any longer.\n\n[akpm@linux-foundation.org: fix up after Willy renamed everything]\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\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": "6405f7f4675884b671bee66678e1c2859bdb0e56",
      "tree": "31f0e42b011de36976f5a50b86aee7132f6b82b4",
      "parents": [
        "c0c0b649d67aa775aa9851de61aade17504be70c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:19:00 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:26 2008 -0800"
      },
      "message": "ptrace_stop: fix the race with ptrace detach+attach\n\nIf the tracer went away (may_ptrace_stop() failed), ptrace_stop() drops\ntasklist and then changes the -\u003estate from TASK_TRACED to TASK_RUNNING.\n\nThis can fool another tracer which attaches to us in between.  Change the\n-\u003estate under tasklist_lock to ensure that ptrace_check_attach() can\u0027t wrongly\nsucceed.  Also, remove the unnecessary mb().\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\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": "c0c0b649d67aa775aa9851de61aade17504be70c",
      "tree": "5902fb53a364155352fcc04e87860d724d8b31fd",
      "parents": [
        "34a1738f7da0b3d28d4b066d03a78f46b8cab68f"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:19:00 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:26 2008 -0800"
      },
      "message": "ptrace_check_attach: remove unneeded -\u003esignal !\u003d NULL check\n\nIt is not possible to see the PT_PTRACED task without -\u003esignal/sighand under\ntasklist_lock, release_task() does ptrace_unlink() first.  If the task was\nalready released before, ptrace_attach() can\u0027t succeed and set PT_PTRACED.\nRemove this check.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "34a1738f7da0b3d28d4b066d03a78f46b8cab68f",
      "tree": "4e7312642adb1aab0ba9fa4f29b4912c9ee035d2",
      "parents": [
        "6b39c7bfbd1436836c0fb34c5b437fda1a7a3dd4"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:18:59 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:26 2008 -0800"
      },
      "message": "kill my_ptrace_child()\n\nNow that my_ptrace_child() is trivial we can use the \"p-\u003eptrace \u0026 PT_PTRACED\"\ninline and simplify the corresponding logic in do_wait: we can\u0027t find the\nchild in TASK_TRACED state without PT_PTRACED flag set, ptrace_untrace()\neither sets TASK_STOPPED or wakes up the tracee.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6b39c7bfbd1436836c0fb34c5b437fda1a7a3dd4",
      "tree": "60d3d9719eef3076527fcbf9c3cb362fe0f52d61",
      "parents": [
        "01b8b07a5d77d22e609267dcae74d15e3e9c5f13"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:18:58 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:26 2008 -0800"
      },
      "message": "kill PT_ATTACHED\n\nSince the patch\n\n\t\"Fix ptrace_attach()/ptrace_traceme()/de_thread() race\"\n\tcommit f5b40e363ad6041a96e3da32281d8faa191597b9\n\nwe set PT_ATTACHED and change child-\u003eparent \"atomically\" wrt task_list lock.\n\nThis means we can remove the checks like \"PT_ATTACHED \u0026\u0026 -\u003eparent !\u003d ptracer\"\nwhich were needed to catch the \"ptrace attach is in progress\" case.  We can\nalso remove the flag itself since nobody else uses it.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "01b8b07a5d77d22e609267dcae74d15e3e9c5f13",
      "tree": "dd53c51f75de9511da7fdf283c73080d6c2552a8",
      "parents": [
        "ed2ddbf88c0ddeeae4c78bb306a116dfd867c55c"
      ],
      "author": {
        "name": "Pierre Peiffer",
        "email": "pierre.peiffer@bull.net",
        "time": "Fri Feb 08 04:18:57 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:26 2008 -0800"
      },
      "message": "IPC: consolidate sem_exit_ns(), msg_exit_ns() and shm_exit_ns()\n\nsem_exit_ns(), msg_exit_ns() and shm_exit_ns() are all called when an\nipc_namespace is released to free all ipcs of each type.  But in fact, they\ndo the same thing: they loop around all ipcs to free them individually by\ncalling a specific routine.\n\nThis patch proposes to consolidate this by introducing a common function,\nfree_ipcs(), that do the job.  The specific routine to call on each\nindividual ipcs is passed as parameter.  For this, these ipc-specific\n\u0027free\u0027 routines are reworked to take a generic \u0027struct ipc_perm\u0027 as\nparameter.\n\nSigned-off-by: Pierre Peiffer \u003cpierre.peiffer@bull.net\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Nadia Derbey \u003cNadia.Derbey@bull.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ed2ddbf88c0ddeeae4c78bb306a116dfd867c55c",
      "tree": "de6d6828c03f98be6fc41e8acf3b3e52df28be9b",
      "parents": [
        "4b9fcb0ec60584d639ad105c42b75a3447071e47"
      ],
      "author": {
        "name": "Pierre Peiffer",
        "email": "pierre.peiffer@bull.net",
        "time": "Fri Feb 08 04:18:57 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:26 2008 -0800"
      },
      "message": "IPC: make struct ipc_ids static in ipc_namespace\n\nEach ipc_namespace contains a table of 3 pointers to struct ipc_ids (3 for\nmsg, sem and shm, structure used to store all ipcs) These \u0027struct ipc_ids\u0027\nare dynamically allocated for each icp_namespace as the ipc_namespace\nitself (for the init namespace, they are initialized with pointers to\nstatic variables instead)\n\nIt is so for historical reason: in fact, before the use of idr to store the\nipcs, the ipcs were stored in tables of variable length, depending of the\nmaximum number of ipc allowed.  Now, these \u0027struct ipc_ids\u0027 have a fixed\nsize.  As they are allocated in any cases for each new ipc_namespace, there\nis no gain of memory in having them allocated separately of the struct\nipc_namespace.\n\nThis patch proposes to make this table static in the struct ipc_namespace.\nThus, we can allocate all in once and get rid of all the code needed to\nallocate and free these ipc_ids separately.\n\nSigned-off-by: Pierre Peiffer \u003cpierre.peiffer@bull.net\u003e\nAcked-by: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Nadia Derbey \u003cNadia.Derbey@bull.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4b9fcb0ec60584d639ad105c42b75a3447071e47",
      "tree": "b68be0c60ca985901cd20c0b8a7321e8be07d328",
      "parents": [
        "b2d75cddc83a349ef5633f609b9734b6b957f90f"
      ],
      "author": {
        "name": "Pierre Peiffer",
        "email": "pierre.peiffer@bull.net",
        "time": "Fri Feb 08 04:18:56 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:26 2008 -0800"
      },
      "message": "IPC/semaphores: consolidate SEM_STAT and IPC_STAT commands\n\nThese commands (SEM_STAT and IPC_STAT) are rather doing the same things\n(only the meaning of the id given as input and the return value differ).\nHowever, for the semaphores, they are handled in two different places (two\ndifferent functions).\n\nThis patch consolidates this for clarification by handling these both\ncommands in the same place in semctl_nolock().  It also removes one unused\nparameter for this function.\n\nSigned-off-by: Pierre Peiffer \u003cpierre.peiffer@bull.net\u003e\nCc: Nadia Derbey \u003cNadia.Derbey@bull.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b2d75cddc83a349ef5633f609b9734b6b957f90f",
      "tree": "95e493a25eedec2722d5fb3c2ef0aabc64645b21",
      "parents": [
        "a46c9994242978ab001299cc9c906b9a3eedadcc"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Feb 08 04:18:54 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:25 2008 -0800"
      },
      "message": "ipc: uninline some code from util.h\n\nipc_lock_check_down(), ipc_lock_check() and ipcget() seem too large to be\ninline.  Besides, they give no optimization being inline as they perform\ncalls inside in any case.\n\nMoving them into ipc/util.c saves 500 bytes of vmlinux and shortens IPC\ninternal API.\n\n$ ./scripts/bloat-o-meter vmlinux-orig vmlinux\nadd/remove: 3/2 grow/shrink: 0/10 up/down: 490/-989 (-499)\nfunction                                     old     new   delta\nipcget                                         -     392    +392\nipc_lock_check_down                            -      49     +49\nipc_lock_check                                 -      49     +49\nsys_semget                                   119     105     -14\nsys_shmget                                   108      86     -22\nsys_msgget                                   100      78     -22\ndo_msgsnd                                    665     631     -34\ndo_msgrcv                                    680     644     -36\ndo_shmat                                     771     733     -38\nsys_msgctl                                  1302    1229     -73\nipcget_new                                    80       -     -80\nsys_semtimedop                              1534    1452     -82\nsys_semctl                                  2034    1922    -112\nsys_shmctl                                  1919    1765    -154\nipcget_public                                322       -    -322\n\nThe ipcget() growth is the result of gcc inlining of currently static\nipcget_new/_public.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Nadia Derbey \u003cNadia.Derbey@bull.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a46c9994242978ab001299cc9c906b9a3eedadcc",
      "tree": "e559a09485dd7a5bef311a96d8e4d9542c064952",
      "parents": [
        "b4c502a709e53e02ae5249a5f2f2b8292abc0386"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Fri Feb 08 04:18:53 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:25 2008 -0800"
      },
      "message": "serial_core: bring mostly into line with coding style\n\nSigned-off-by: Alan Cox \u003calan@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": "b4c502a709e53e02ae5249a5f2f2b8292abc0386",
      "tree": "0838eb2163811b426c9154ff9598015acd8ef7ef",
      "parents": [
        "6f803cd08f4cfa40e3aa31ffc39777700c018e09"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Fri Feb 08 04:18:53 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:25 2008 -0800"
      },
      "message": "8250: enable rate reporting via termios\n\nSigned-off-by: Alan Cox \u003calan@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": "6f803cd08f4cfa40e3aa31ffc39777700c018e09",
      "tree": "4c8798afa63987733c693561afabee6c532918f0",
      "parents": [
        "5756ee99967d65fa8e14873d55cdf150659097ee"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Fri Feb 08 04:18:52 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:25 2008 -0800"
      },
      "message": "serial8250: coding style\n\nSigned-off-by: Alan Cox \u003calan@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": "5756ee99967d65fa8e14873d55cdf150659097ee",
      "tree": "06f1ca49bc3805359c0b365b63e9cb6c600263df",
      "parents": [
        "3b0fd36ddc5826cbf20c8766d9262bc2efd3a51c"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Fri Feb 08 04:18:51 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:25 2008 -0800"
      },
      "message": "8250_pci: coding style\n\nSigned-off-by: Alan Cox \u003calan@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": "3b0fd36ddc5826cbf20c8766d9262bc2efd3a51c",
      "tree": "6aefb22ec7789abef1cc3d969bb39a0e8a19cb8c",
      "parents": [
        "0fe1c1371342869f4693ad42929c1388842b0f3e"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Fri Feb 08 04:18:51 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:25 2008 -0800"
      },
      "message": "8250_hub6: codding style\n\nSigned-off-by: Alan Cox \u003calan@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": "0fe1c1371342869f4693ad42929c1388842b0f3e",
      "tree": "f608531dd7c0d87242b79445766f37fe08d0b4dd",
      "parents": [
        "8b4a483be544569cd61156be86c0becf21a02e8b"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Fri Feb 08 04:18:50 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:25 2008 -0800"
      },
      "message": "8250_hp300: coding style\n\nSigned-off-by: Alan Cox \u003calan@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": "8b4a483be544569cd61156be86c0becf21a02e8b",
      "tree": "a6888788585b2849ffdf54d408d73e86f34475c3",
      "parents": [
        "ce2e204f0c55567baa0323df8d327989d7113c66"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Fri Feb 08 04:18:50 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:25 2008 -0800"
      },
      "message": "8250_gsc: coding style\n\nSigned-off-by: Alan Cox \u003calan@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": "ce2e204f0c55567baa0323df8d327989d7113c66",
      "tree": "fd094bebd322c2fd0df68766e3adc0e76eabd424",
      "parents": [
        "355d95a1c8aab5c0d54178c1b2269e7425c746ee"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Fri Feb 08 04:18:49 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:25 2008 -0800"
      },
      "message": "8250_early: coding style\n\nSigned-off-by: Alan Cox \u003calan@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": "355d95a1c8aab5c0d54178c1b2269e7425c746ee",
      "tree": "1ebab6e296fea01b090bf3d46891174f9b254dbd",
      "parents": [
        "37bdfb074ec035880ed140f6281badf92b655a72"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Fri Feb 08 04:18:48 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:25 2008 -0800"
      },
      "message": "tty_ioctl: drag screaming into compliance with the coding style\n\nSigned-off-by: Alan Cox \u003calan@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": "37bdfb074ec035880ed140f6281badf92b655a72",
      "tree": "9226be1a944ad3f87f2095675ba8a7f07b979817",
      "parents": [
        "66c6ceae39534c029c3434489c036f5ae2c6a593"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Fri Feb 08 04:18:47 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:25 2008 -0800"
      },
      "message": "tty_io: drag screaming into coding style compliance\n\nSigned-off-by: Alan Cox \u003calan@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": "66c6ceae39534c029c3434489c036f5ae2c6a593",
      "tree": "8ca5664b5d07f81f57e7eed7a9d6205a51fb70ce",
      "parents": [
        "4129a6454dd925560bf3f46a12eb9f01cf8d5e7e"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Fri Feb 08 04:18:46 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:25 2008 -0800"
      },
      "message": "tty_audit: fix checkpatch complaint\n\nSigned-off-by: Alan Cox \u003calan@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": "4129a6454dd925560bf3f46a12eb9f01cf8d5e7e",
      "tree": "1bbd53a877bdfda744697c09ab44ec8db0420edf",
      "parents": [
        "6df3526b6649e57a414ba6b4179655341affcf46"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Fri Feb 08 04:18:45 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:25 2008 -0800"
      },
      "message": "rocket: don\u0027t let random users reset the controller\n\nSigned-off-by: Alan Cox \u003calan@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": "6df3526b6649e57a414ba6b4179655341affcf46",
      "tree": "96ba0c9b8dec4685675c0ccb590990bb97a1f908",
      "parents": [
        "4edf1827ea19e65ca27ed197384d63f4d1dc8836"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Fri Feb 08 04:18:45 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:25 2008 -0800"
      },
      "message": "rocket: first pass at termios reporting\n\nAlso removes a cflag comparison that caused some mode changes to get wrongly\nignored\n\nSigned-off-by: Alan Cox \u003calan@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": "4edf1827ea19e65ca27ed197384d63f4d1dc8836",
      "tree": "5c495b258256303db6c251cc4a2cfb195c3180a6",
      "parents": [
        "db1acaa632870ec87b65e062bc72ca375837a1f6"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Fri Feb 08 04:18:44 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:25 2008 -0800"
      },
      "message": "n_tty: clean up old code to follow coding style and (mostly) checkpatch\n\nSigned-off-by: Alan Cox \u003calan@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": "db1acaa632870ec87b65e062bc72ca375837a1f6",
      "tree": "9d63ae5544bcba791e3acb1ba65ac0e3acab5a4c",
      "parents": [
        "92dfc9dc7ba63134f721b6e745dbdcfc13ea341b"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Fri Feb 08 04:18:43 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:24 2008 -0800"
      },
      "message": "moxa: first pass at termios reporting\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nCc: Jiri Slaby \u003cjirislaby@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": "92dfc9dc7ba63134f721b6e745dbdcfc13ea341b",
      "tree": "aa959d2d5ba1819651888601e4d917b01ddcc88c",
      "parents": [
        "6d7623943c905efae327933bc5ee0b2f78e15f56"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Fri Feb 08 04:18:43 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:24 2008 -0800"
      },
      "message": "fix \"modules: make module_address_lookup() safe\"\n\nGet the constness right, avoid nasty cast.\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\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": "6d7623943c905efae327933bc5ee0b2f78e15f56",
      "tree": "e2e4e073bd495970aa487bec94c560dcf31e33b1",
      "parents": [
        "88173507e4fc1e7ecd111b0565e8cba0cb7dae6d"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Feb 08 04:18:42 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:24 2008 -0800"
      },
      "message": "modules: include sections.h to avoid defining linker variables explicitly\n\nmodule.c should not define linker variables on its own. We have an include\nfile for that.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.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": "88173507e4fc1e7ecd111b0565e8cba0cb7dae6d",
      "tree": "ed1a3f61f95b6e253afe8e330a668a12ad56a4e2",
      "parents": [
        "596f56018df3ed7de20f6038f72177b3674ebbd4"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Feb 08 04:18:41 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:24 2008 -0800"
      },
      "message": "Modules: handle symbols that have a zero value\n\nThe module subsystem cannot handle symbols that are zero.  If symbols are\npresent that have a zero value then the module resolver prints out a\nmessage that these symbols are unresolved.\n\n[akinobu.mita@gmail.com: fix __find_symbl() error checks]\nCc: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@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": "596f56018df3ed7de20f6038f72177b3674ebbd4",
      "tree": "8d3956e81dd291e5c01d27d76d5b0dfb9febd38b",
      "parents": [
        "aa7738a5f503abea5445cdd8cc2d501502c748ae"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Fri Feb 08 04:18:40 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:24 2008 -0800"
      },
      "message": "tty: s390 support for termios2.\n\nBackend for s390.\n\nAcked-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@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": "aa7738a5f503abea5445cdd8cc2d501502c748ae",
      "tree": "6e4a845990b68ad3c8d707c6e6abbed4ac24a8db",
      "parents": [
        "d94afc6ccf6690b30ae112ec8101b3f10d50114e"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Fri Feb 08 04:18:39 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:24 2008 -0800"
      },
      "message": "tty: let architectures override the user/kernel macros.\n\nGive architectures that support the new termios2 the possibilty to overide the\nuser_termios_to_kernel_termios and kernel_termios_to_user_termios macros.  As\nsoon as all architectures that use the generic variant have been converted the\nifdefs can go away again.  Architectures in question are avr32, frv, powerpc\nand s390.\n\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@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": "d94afc6ccf6690b30ae112ec8101b3f10d50114e",
      "tree": "f54fb1fe147861db876b99809ff1cd1a316c45c0",
      "parents": [
        "f8bab73515ca5b392680bb033dceeb37b8463e95"
      ],
      "author": {
        "name": "mark gross",
        "email": "mgross@linux.intel.com",
        "time": "Fri Feb 08 04:18:39 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:24 2008 -0800"
      },
      "message": "intel-iommu: fault_reason index cleanup\n\nFix an off by one bug in the fault reason string reporting function, and\nclean up some of the code around this buglet.\n\n[akpm@linux-foundation.org: cleanup]\nSigned-off-by: mark gross \u003cmgross@linux.intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f8bab73515ca5b392680bb033dceeb37b8463e95",
      "tree": "c450e793839868c23209e6fcbfb189975d9d4db6",
      "parents": [
        "2d3a4e3666325a9709cc8ea2e88151394e8f20fc"
      ],
      "author": {
        "name": "mark gross",
        "email": "mgross@linux.intel.com",
        "time": "Fri Feb 08 04:18:38 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:24 2008 -0800"
      },
      "message": "intel-iommu: PMEN support\n\nAdd support for protected memory enable bits by clearing them if they are\nset at startup time.  Some future boot loaders or firmware could have this\nbit set after it loads the kernel, and it needs to be cleared if DMA\u0027s are\ngoing to happen effectively.\n\nSigned-off-by: mark gross \u003cmgross@intel.com\u003e\nAcked-by: Muli Ben-Yehuda \u003cmuli@il.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2d3a4e3666325a9709cc8ea2e88151394e8f20fc",
      "tree": "c3e75289de8c824f5e2bb2e97d4b6853d48da3f3",
      "parents": [
        "c6caeb7c4544608e8ae62731334661fc396c7f85"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Fri Feb 08 04:18:37 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:24 2008 -0800"
      },
      "message": "proc: fix -\u003eopen\u0027less usage due to -\u003eproc_fops flip\n\nTypical PDE creation code looks like:\n\n\tpde \u003d create_proc_entry(\"foo\", 0, NULL);\n\tif (pde)\n\t\tpde-\u003eproc_fops \u003d \u0026foo_proc_fops;\n\nNotice that PDE is first created, only then -\u003eproc_fops is set up to\nfinal value. This is a problem because right after creation\na) PDE is fully visible in /proc , and\nb) -\u003eproc_fops are proc_file_operations which do not have -\u003eopen callback. So, it\u0027s\n   possible to -\u003eread without -\u003eopen (see one class of oopses below).\n\nThe fix is new API called proc_create() which makes sure -\u003eproc_fops are\nset up before gluing PDE to main tree. Typical new code looks like:\n\n\tpde \u003d proc_create(\"foo\", 0, NULL, \u0026foo_proc_fops);\n\tif (!pde)\n\t\treturn -ENOMEM;\n\nFix most networking users for a start.\n\nIn the long run, create_proc_entry() for regular files will go.\n\nBUG: unable to handle kernel NULL pointer dereference at virtual address 00000024\nprinting eip: c1188c1b *pdpt \u003d 000000002929e001 *pde \u003d 0000000000000000\nOops: 0002 [#1] PREEMPT SMP DEBUG_PAGEALLOC\nlast sysfs file: /sys/block/sda/sda1/dev\nModules linked in: foo af_packet ipv6 cpufreq_ondemand loop serio_raw psmouse k8temp hwmon sr_mod cdrom\n\nPid: 24679, comm: cat Not tainted (2.6.24-rc3-mm1 #2)\nEIP: 0060:[\u003cc1188c1b\u003e] EFLAGS: 00210002 CPU: 0\nEIP is at mutex_lock_nested+0x75/0x25d\nEAX: 000006fe EBX: fffffffb ECX: 00001000 EDX: e9340570\nESI: 00000020 EDI: 00200246 EBP: e9340570 ESP: e8ea1ef8\n DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068\nProcess cat (pid: 24679, ti\u003dE8EA1000 task\u003dE9340570 task.ti\u003dE8EA1000)\nStack: 00000000 c106f7ce e8ee05b4 00000000 00000001 458003d0 f6fb6f20 fffffffb\n       00000000 c106f7aa 00001000 c106f7ce 08ae9000 f6db53f0 00000020 00200246\n       00000000 00000002 00000000 00200246 00200246 e8ee05a0 fffffffb e8ee0550\nCall Trace:\n [\u003cc106f7ce\u003e] seq_read+0x24/0x28a\n [\u003cc106f7aa\u003e] seq_read+0x0/0x28a\n [\u003cc106f7ce\u003e] seq_read+0x24/0x28a\n [\u003cc106f7aa\u003e] seq_read+0x0/0x28a\n [\u003cc10818b8\u003e] proc_reg_read+0x60/0x73\n [\u003cc1081858\u003e] proc_reg_read+0x0/0x73\n [\u003cc105a34f\u003e] vfs_read+0x6c/0x8b\n [\u003cc105a6f3\u003e] sys_read+0x3c/0x63\n [\u003cc10025f2\u003e] sysenter_past_esp+0x5f/0xa5\n [\u003cc10697a7\u003e] destroy_inode+0x24/0x33\n \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nINFO: lockdep is turned off.\nCode: 75 21 68 e1 1a 19 c1 68 87 00 00 00 68 b8 e8 1f c1 68 25 73 1f c1 e8 84 06 e9 ff e8 52 b8 e7 ff 83 c4 10 9c 5f fa e8 28 89 ea ff \u003cf0\u003e fe 4e 04 79 0a f3 90 80 7e 04 00 7e f8 eb f0 39 76 34 74 33\nEIP: [\u003cc1188c1b\u003e] mutex_lock_nested+0x75/0x25d SS:ESP 0068:e8ea1ef8\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c6caeb7c4544608e8ae62731334661fc396c7f85",
      "tree": "3afabe64dedd7bf7d0f88f7612e5f468c8d55c1d",
      "parents": [
        "488e5bc4560d0b510c1ddc451c51a6cc14e3a930"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Feb 08 04:18:35 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:24 2008 -0800"
      },
      "message": "proc: fix the threaded /proc/self\n\nLong ago when the CLONE_THREAD support first went it someone thought it\nwould be wise to point /proc/self at /proc/\u003ctgid\u003e instead of /proc/\u003cpid\u003e.\n\nGiven that /proc/\u003ctgid\u003e can return information about a very different task\n(if enough things have been unshared) then our current process /proc/\u003ctgid\u003e\nseems blatantly wrong.  So far I have yet to think up an example where the\ncurrent behavior would be advantageous, and I can see several places where\nit is seriously non-intuitive.\n\nWe may be stuck with the current broken behavior for backwards\ncompatibility reasons but lets try fixing our ancient bug for the 2.6.25\ntime frame and see if anyone screams.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"Guillaume Chazarain\" \u003cguichaz@yahoo.fr\u003e\nCc: \"Pavel Emelyanov\" \u003cxemul@openvz.org\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\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": "488e5bc4560d0b510c1ddc451c51a6cc14e3a930",
      "tree": "0b0df343406ff47578280e01388fc997064c8aa9",
      "parents": [
        "df5f8314ca30d6a76735748e5ba4ca9809c0f434"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Feb 08 04:18:34 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:24 2008 -0800"
      },
      "message": "proc: proper pidns handling for /proc/self\n\nCurrently if you access a /proc that is not mounted with your processes\ncurrent pid namespace /proc/self will point at a completely random task.\n\nThis patch fixes /proc/self to point to the current process if it is\navailable in the particular mount of /proc or to return -ENOENT if the\ncurrent process is not visible.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "df5f8314ca30d6a76735748e5ba4ca9809c0f434",
      "tree": "e0a6157b1666a320e69586a81c77a3fe83b36a2a",
      "parents": [
        "a56d3fc74c0178c5f41c48315604d62cff4e746d"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Feb 08 04:18:33 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:24 2008 -0800"
      },
      "message": "proc: seqfile convert proc_pid_status to properly handle pid namespaces\n\nCurrently we possibly lookup the pid in the wrong pid namespace.  So\nseq_file convert proc_pid_status which ensures the proper pid namespaces is\npassed in.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: another build fix]\n[akpm@linux-foundation.org: s390 build fix]\n[akpm@linux-foundation.org: fix task_name() output]\n[akpm@linux-foundation.org: fix nommu build]\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Andrew Morgan \u003cmorgan@kernel.org\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Paul Jackson \u003cpj@sgi.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": "a56d3fc74c0178c5f41c48315604d62cff4e746d",
      "tree": "a6049be18c706090b8c65dc4f6ff9398f880199d",
      "parents": [
        "ee992744ea53db0a90c986fd0a70fbbf91e7f8bd"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Feb 08 04:18:32 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:24 2008 -0800"
      },
      "message": "seqfile convert proc_pid_statm\n\nThis conversion is just for code cleanliness, uniformity, and general safety.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ee992744ea53db0a90c986fd0a70fbbf91e7f8bd",
      "tree": "2d15727e92c407bb22c4842923cbfb2dfda82306",
      "parents": [
        "be614086a4aff163d5aa0dc160638d1193b59cde"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Feb 08 04:18:31 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:23 2008 -0800"
      },
      "message": "proc: rewrite do_task_stat to correctly handle pid namespaces.\n\nCurrently (as pointed out by Oleg) do_task_stat has a race when calling\ntask_pid_nr_ns with the task exiting.  In addition do_task_stat is not\ncurrently displaying information in the context of the pid namespace that\nmounted the /proc filesystem.  So \"cut -d\u0027 \u0027 -f 1 /proc/\u003cpid\u003e/stat\" may not\nequal \u003cpid\u003e.\n\nThis patch fixes the problem by converting to a single_open seq_file show\nmethod.  Getting the pid namespace from the filesystem superblock instead of\ncurrent, and simply using the the struct pid from the inode instead of\nattempting to get that same pid from the task.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "be614086a4aff163d5aa0dc160638d1193b59cde",
      "tree": "f60781ec8485fa7c1a5324a9767ec762e38b7447",
      "parents": [
        "94413d8807a3c511a3675be4ce27a4d16d6408ee"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Feb 08 04:18:30 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:23 2008 -0800"
      },
      "message": "proc: implement proc_single_file_operations\n\nCurrently many /proc/pid files use a crufty precursor to the current seq_file\napi, and they don\u0027t have direct access to the pid_namespace or the pid of for\nwhich they are displaying data.\n\nSo implement proc_single_file_operations to make the seq_file routines easy to\nuse, and to give access to the full state of the pid of we are displaying data\nfor.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "94413d8807a3c511a3675be4ce27a4d16d6408ee",
      "tree": "d20800024bdfe15d4f6ae1e7cc63a537127afab4",
      "parents": [
        "fd2cbe48883a01f710c2a639877e3b3e4eba6e59"
      ],
      "author": {
        "name": "Zhang Rui",
        "email": "rui.zhang@intel.com",
        "time": "Fri Feb 08 04:18:29 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:23 2008 -0800"
      },
      "message": "proc: detect duplicate names on registration\n\nPrint a warning if PDE is registered with a name which already exists in\ntarget directory.\n\nBug report and a simple fix can be found here:\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d8798\n\n[\\n fixlet and no undescriptive variable usage --adobriyan]\n[akpm@linux-foundation.org: make printk comprehensible]\nSigned-off-by: Zhang Rui \u003crui.zhang@intel.com\u003e\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fd2cbe48883a01f710c2a639877e3b3e4eba6e59",
      "tree": "d358e9de25cb8abf06b0f6fb334d6121da19ae07",
      "parents": [
        "76df0c25d0c34eba9fbb8a44106ed096553ba0e8"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Fri Feb 08 04:18:28 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:23 2008 -0800"
      },
      "message": "proc: remove useless check on symlink removal\n\nproc symlinks always have valid -\u003edata containing destination of symlink.  No\nneed to check it on removal -- proc_symlink() already done it.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "76df0c25d0c34eba9fbb8a44106ed096553ba0e8",
      "tree": "a68241a860699f952a1cfcf22e50ddbc19bba7c9",
      "parents": [
        "4237e0d3de38da640d7c977d68f5f7f1d207a631"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Fri Feb 08 04:18:27 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:23 2008 -0800"
      },
      "message": "proc: simplify function prototypes\n\nMove code around so as to reduce the number of forward-declarations.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4237e0d3de38da640d7c977d68f5f7f1d207a631",
      "tree": "0bf02984aef945c5d97a5929b82e7ecd6b7f39ed",
      "parents": [
        "5b3fe63b19e00f3b2a14a09c979e84163029e390"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Fri Feb 08 04:18:27 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:23 2008 -0800"
      },
      "message": "proc: less LOCK operations during lookup\n\nPseudo-code for lookup effectively is:\n\n\tLOCK kernel\n\tLOCK proc_subdir_lock\n\t\tfind PDE\n\t\tUNLOCK proc_subdir_lock\n\n\t\tget inode\n\n\t\tLOCK proc_subdir_lock\n\t\tgoto unlock\n\tUNLOCK proc_subdir_lock\n\tUNLOCK kernel\n\nWe can get rid of LOCK/UNLOCK pair after getting inode simply by jumping\nto unlock_kernel() directly.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5b3fe63b19e00f3b2a14a09c979e84163029e390",
      "tree": "c37ded3ef5db617e01db1dc9efc29e0bb7095c31",
      "parents": [
        "cbdc73873229754ab3e673ea8c82eaf9ae3c646f"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@sw.ru",
        "time": "Fri Feb 08 04:18:26 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:23 2008 -0800"
      },
      "message": "proc: remove MODULE_LICENSE\n\nproc is not modular, so MODULE_LICENSE just expands to empty space.  proc\nwithout doubts remains GPLed.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cbdc73873229754ab3e673ea8c82eaf9ae3c646f",
      "tree": "4e7995dfe70e474e9a77c478bc235482cdee577b",
      "parents": [
        "74bd59bb39eb08b4379e2590c5f160748d83f812"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Feb 08 04:18:25 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:23 2008 -0800"
      },
      "message": "namespaces: mark NET_NS with \"depends on NAMESPACES\"\n\nThere\u0027s already an option controlling the net namespaces cloning code, so make\nit work the same way as all the other namespaces\u0027 options.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.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": "74bd59bb39eb08b4379e2590c5f160748d83f812",
      "tree": "2e0b8e18b0d51f9972239a0322aca313b325a8fa",
      "parents": [
        "aee16ce73c71a241190cef3aaa265f6a3ab8e035"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Feb 08 04:18:24 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:23 2008 -0800"
      },
      "message": "namespaces: cleanup the code managed with PID_NS option\n\nJust like with the user namespaces, move the namespace management code into\nthe separate .c file and mark the (already existing) PID_NS option as \"depend\non NAMESPACES\"\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.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": "aee16ce73c71a241190cef3aaa265f6a3ab8e035",
      "tree": "ccfded2678d36af2d4ba9ad106240acf65173b28",
      "parents": [
        "ae5e1b22f17983da929a0d0178896269e19da186"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Feb 08 04:18:23 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:23 2008 -0800"
      },
      "message": "namespaces: cleanup the code managed with the USER_NS option\n\nMake the user_namespace.o compilation depend on this option and move the\ninit_user_ns into user.c file to make the kernel compile and work without the\nnamespaces support.  This make the user namespace code be organized similar to\nother namespaces\u0027.\n\nAlso mask the USER_NS option as \"depend on NAMESPACES\".\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.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": "ae5e1b22f17983da929a0d0178896269e19da186",
      "tree": "e9937e2060167a430cf90955327d1a5a2e7b2303",
      "parents": [
        "58bfdd6deeec02b73691ea2c951a3c5d743bca63"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Feb 08 04:18:22 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:23 2008 -0800"
      },
      "message": "namespaces: move the IPC namespace under IPC_NS option\n\nCurrently the IPC namespace management code is spread over the ipc/*.c files.\nI moved this code into ipc/namespace.c file which is compiled out when needed.\n\nThe linux/ipc_namespace.h file is used to store the prototypes of the\nfunctions in namespace.c and the stubs for NAMESPACES\u003dn case.  This is done\nso, because the stub for copy_ipc_namespace requires the knowledge of the\nCLONE_NEWIPC flag, which is in sched.h.  But the linux/ipc.h file itself in\nincluded into many many .c files via the sys.h-\u003esem.h sequence so adding the\nsched.h into it will make all these .c depend on sched.h which is not that\ngood.  On the other hand the knowledge about the namespaces stuff is required\nin 4 .c files only.\n\nBesides, this patch compiles out some auxiliary functions from ipc/sem.c,\nmsg.c and shm.c files.  It turned out that moving these functions into\nnamespaces.c is not that easy because they use many other calls and macros\nfrom the original file.  Moving them would make this patch complicated.  On\nthe other hand all these functions can be consolidated, so I will send a\nseparate patch doing this a bit later.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.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": "58bfdd6deeec02b73691ea2c951a3c5d743bca63",
      "tree": "8f46771858dee87080b0ed64bc176b25c239f3b1",
      "parents": [
        "c5289a69491f2b597e22d0456b46cc043deedbd8"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Feb 08 04:18:21 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:23 2008 -0800"
      },
      "message": "namespaces: move the UTS namespace under UTS_NS option\n\nCurrently all the namespace management code is in the kernel/utsname.c file,\nso just compile it out and make stubs in the appropriate header.\n\nThe init namespace itself is in init/version.c and is in the kernel all the\ntime.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.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": "c5289a69491f2b597e22d0456b46cc043deedbd8",
      "tree": "1d8c53398a8e3c452a58c520fbae5afb16dfb680",
      "parents": [
        "a3d0c6aa1bb342b9b2c7b123b52ac2f48a4d4d0a"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Feb 08 04:18:19 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:23 2008 -0800"
      },
      "message": "namespaces: add the NAMESPACES config option\n\nThe option is selectable if EMBEDDED is chosen only.  When the EMBEDDED is off\nnamespaces will be on.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.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": "a3d0c6aa1bb342b9b2c7b123b52ac2f48a4d4d0a",
      "tree": "0c6766dd2add1f08c6153769c655e46ddff82a42",
      "parents": [
        "ac74c00e499ed276a965e5b5600667d5dc04a84a"
      ],
      "author": {
        "name": "Nishanth Aravamudan",
        "email": "nacc@us.ibm.com",
        "time": "Fri Feb 08 04:18:18 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:23 2008 -0800"
      },
      "message": "hugetlb: add locking for overcommit sysctl\n\nWhen I replaced hugetlb_dynamic_pool with nr_overcommit_hugepages I used\nproc_doulongvec_minmax() directly.  However, hugetlb.c\u0027s locking rules\nrequire that all counter modifications occur under the hugetlb_lock.  Add a\ncallback into the hugetlb code similar to the one for nr_hugepages.  Grab\nthe lock around the manipulation of nr_overcommit_hugepages in\nproc_doulongvec_minmax().\n\nSigned-off-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nAcked-by: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.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": "ac74c00e499ed276a965e5b5600667d5dc04a84a",
      "tree": "81a34f797445a15b322ab48f9f69c272ef1e242d",
      "parents": [
        "a4ffc0a0b240a29cbe489f6db9dae112a49ef1c1"
      ],
      "author": {
        "name": "Ulisses Furquim",
        "email": "ulissesf@gmail.com",
        "time": "Fri Feb 08 04:18:16 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:22 2008 -0800"
      },
      "message": "inotify: fix check for one-shot watches before destroying them\n\nAs the IN_ONESHOT bit is never set when an event is sent we must check it\nin the watch\u0027s mask and not in the event\u0027s mask.\n\nSigned-off-by: Ulisses Furquim \u003culissesf@gmail.com\u003e\nReported-by: \"Clem Taylor\" \u003cclem.taylor@gmail.com\u003e\nTested-by: \"Clem Taylor\" \u003cclem.taylor@gmail.com\u003e\nCc: Amy Griffis \u003camy.griffis@hp.com\u003e\nCc: Robert Love \u003crlove@google.com\u003e\nCc: John McCutchan \u003cttb@tentacle.dhs.org\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": "a4ffc0a0b240a29cbe489f6db9dae112a49ef1c1",
      "tree": "9719c706444f4b720aff2bb4bdf23a4be3f4b1e3",
      "parents": [
        "d7511ec8115487ccea2ce93bf58d5e5cd2c1c0a3",
        "af195ac82e38ba802fd86b5a014ed05ef6dd88bb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 19:30:50 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 19:30:50 2008 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm: (44 commits)\n  dm raid1: report fault status\n  dm raid1: handle read failures\n  dm raid1: fix EIO after log failure\n  dm raid1: handle recovery failures\n  dm raid1: handle write failures\n  dm snapshot: combine consecutive exceptions in memory\n  dm: stripe enhanced status return\n  dm: stripe trigger event on failure\n  dm log: auto load modules\n  dm: move deferred bio flushing to workqueue\n  dm crypt: use async crypto\n  dm crypt: prepare async callback fn\n  dm crypt: add completion for async\n  dm crypt: add async request mempool\n  dm crypt: extract scatterlist processing\n  dm crypt: tidy io ref counting\n  dm crypt: introduce crypt_write_io_loop\n  dm crypt: abstract crypt_write_done\n  dm crypt: store sector mapping in dm_crypt_io\n  dm crypt: move queue functions\n  ...\n"
    },
    {
      "commit": "d7511ec8115487ccea2ce93bf58d5e5cd2c1c0a3",
      "tree": "e428f9438a563f1fa77479e9c9c4ef8b2e451a8b",
      "parents": [
        "0b61a2ba5dfd1620731e717d686e6ade657fd975",
        "e84542f5db655d1ce7b4890832f0e5d19aae965d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 19:15:38 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 19:15:38 2008 -0800"
      },
      "message": "Merge branch \u0027release\u0027 of git://lm-sensors.org/kernel/mhoffman/hwmon-2.6\n\n* \u0027release\u0027 of git://lm-sensors.org/kernel/mhoffman/hwmon-2.6: (59 commits)\n  hwmon: (lm80) Add individual alarm files\n  hwmon: (lm80) De-macro the sysfs callbacks\n  hwmon: (lm80) Various cleanups\n  hwmon: (w83627hf) Refactor beep enable handling\n  hwmon: (w83627hf) Add individual alarm and beep files\n  hwmon: (w83627hf) Enable VBAT monitoring\n  hwmon: (w83627ehf) The W83627DHG has 8 VID pins\n  hwmon: (asb100) Add individual alarm files\n  hwmon: (asb100) De-macro the sysfs callbacks\n  hwmon: (asb100) Various cleanups\n  hwmon: VRM is not written to registers\n  hwmon: (dme1737) fix Super-IO device ID override\n  hwmon: (dme1737) fix divide-by-0\n  hwmon: (abituguru3) Add AUX4 fan input for Abit IP35 Pro\n  hwmon: Add support for Texas Instruments/Burr-Brown ADS7828\n  hwmon: (adm9240) Add individual alarm files\n  hwmon: (lm77) Add individual alarm files\n  hwmon: Discard useless I2C driver IDs\n  hwmon: (lm85) Make the pwmN_enable files writable\n  hwmon: (lm85) Return standard values in pwmN_enable\n  ...\n"
    },
    {
      "commit": "0b61a2ba5dfd1620731e717d686e6ade657fd975",
      "tree": "dea84efd43934a7d6139048f87c4ba86d68d4b6d",
      "parents": [
        "a13ff0bb3feda8b1fcffc69951320277ed7c4101",
        "de2eeea609b55e8c3994133a565b39edeaaaaf69"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 19:12:12 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 19:12:12 2008 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com:8090/xfs/xfs-2.6\n\n* \u0027for-linus\u0027 of git://oss.sgi.com:8090/xfs/xfs-2.6: (62 commits)\n  [XFS] add __init/__exit mark to specific init/cleanup functions\n  [XFS] Fix oops in xfs_file_readdir()\n  [XFS] kill xfs_root\n  [XFS] keep i_nlink updated and use proper accessors\n  [XFS] stop updating inode-\u003ei_blocks\n  [XFS] Make xfs_ail_check check less by default\n  [XFS] Move AIL pushing into it\u0027s own thread\n  [XFS] use generic_permission\n  [XFS] stop re-checking permissions in xfs_swapext\n  [XFS] clean up xfs_swapext\n  [XFS] remove permission check from xfs_change_file_space\n  [XFS] prevent panic during log recovery due to bogus op_hdr length\n  [XFS] Cleanup various fid related bits:\n  [XFS] Fix xfs_lowbit64\n  [XFS] Remove CFORK macros and use code directly in IFORK and DFORK macros.\n  [XFS] kill superflous buffer locking (2nd attempt)\n  [XFS] Use kernel-supplied \"roundup_pow_of_two\" for simplicity\n  [XFS] Remove the BPCSHIFT and NB* based macros from XFS.\n  [XFS] Remove bogus assert\n  [XFS] optimize XFS_IS_REALTIME_INODE w/o realtime config\n  ...\n"
    },
    {
      "commit": "a13ff0bb3feda8b1fcffc69951320277ed7c4101",
      "tree": "e9f1179086614b5c435d7a81e19f99746da17214",
      "parents": [
        "c00f08d705e149fbfaf7a252b4d4fbb7affdcc96"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Thu Feb 07 18:46:06 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 19:09:22 2008 -0800"
      },
      "message": "Convert SG from nopage to fault.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Douglas Gilbert \u003cdougg@torque.net\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c00f08d705e149fbfaf7a252b4d4fbb7affdcc96",
      "tree": "8c916856376d0d400ddda239d5be386f9b9516d7",
      "parents": [
        "c8b6de16d9434405e5832b8772e4f986ddd5118e",
        "3adbefee6fd58a061b2bf1df4f3769701860fc62"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 18:22:29 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 18:22:29 2008 -0800"
      },
      "message": "Merge branch \u0027slub-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/christoph/vm\n\n* \u0027slub-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/christoph/vm:\n  SLUB: fix checkpatch warnings\n  Use non atomic unlock\n  SLUB: Support for performance statistics\n  SLUB: Alternate fast paths using cmpxchg_local\n  SLUB: Use unique end pointer for each slab page.\n  SLUB: Deal with annoying gcc warning on kfree()\n"
    },
    {
      "commit": "af195ac82e38ba802fd86b5a014ed05ef6dd88bb",
      "tree": "661e5848dd970f6213cbcf181818f234cef2c571",
      "parents": [
        "06386bbfd2441416875d0403d405c56822f6ebac"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Fri Feb 08 02:11:39 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:11:39 2008 +0000"
      },
      "message": "dm raid1: report fault status\n\nThis patch adds extra information to the mirror status output, so that\nit can be determined which device(s) have failed.  For each mirror device,\na character is printed indicating the most severe error encountered.  The\ncharacters are:\n *    A \u003d\u003e Alive - No failures\n *    D \u003d\u003e Dead - A write failure occurred leaving mirror out-of-sync\n *    S \u003d\u003e Sync - A sychronization failure occurred, mirror out-of-sync\n *    R \u003d\u003e Read - A read failure occurred, mirror data unaffected\nThis allows userspace to properly reconfigure the mirror set.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "06386bbfd2441416875d0403d405c56822f6ebac",
      "tree": "ce66e5d061f67df6e85854aafaf0c43620513359",
      "parents": [
        "b80aa7a0c268d3ae0c472f648af1e3e4a359765c"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Fri Feb 08 02:11:37 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:11:37 2008 +0000"
      },
      "message": "dm raid1: handle read failures\n\nThis patch gives the ability to respond-to/record device failures\nthat happen during read operations.  It also adds the ability to\nread from mirror devices that are not the primary if they are\nin-sync.\n\nThere are essentially two read paths in mirroring; the direct path\nand the queued path.  When a read request is mapped, if the region\nis \u0027in-sync\u0027 the direct path is taken; otherwise the queued path\nis taken.\n\nIf the direct path is taken, we must record bio information so that\nif the read fails we can retry it.  We then discover the status of\na direct read through mirror_end_io.  If the read has failed, we will\nmark the device from which the read was attempted as failed (so we\ndon\u0027t try to read from it again), restore the bio and try again.\n\nIf the queued path is taken, we discover the results of the read\nfrom \u0027read_callback\u0027.  If the device failed, we will mark the device\nas failed and attempt the read again if there is another device\nwhere this region is known to be \u0027in-sync\u0027.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "b80aa7a0c268d3ae0c472f648af1e3e4a359765c",
      "tree": "ce3d7f686a2b022dab3e0f8ddc1846d2ac4f6c58",
      "parents": [
        "8f0205b798f926e2745de5fdebf0a8605c621de6"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Fri Feb 08 02:11:35 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:11:35 2008 +0000"
      },
      "message": "dm raid1: fix EIO after log failure\n\nThis patch adds the ability to requeue write I/O to\ncore device-mapper when there is a log device failure.\n\nIf a write to the log produces and error, the pending writes are\nput on the \"failures\" list.  Since the log is marked as failed,\nthey will stay on the failures list until a suspend happens.\n\nSuspends come in two phases, presuspend and postsuspend.  We must\nmake sure that all the writes on the failures list are requeued\nin the presuspend phase (a requirement of dm core).  This means\nthat recovery must be complete (because writes may be delayed\nbehind it) and the failures list must be requeued before we\nreturn from presuspend.\n\nThe mechanisms to ensure recovery is complete (or stopped) was\nalready in place, but needed to be moved from postsuspend to\npresuspend.  We rely on \u0027flush_workqueue\u0027 to ensure that the\nmirror thread is complete and therefore, has requeued all writes\nin the failures list.\n\nBecause we are using flush_workqueue, we must ensure that no\nadditional \u0027queue_work\u0027 calls will produce additional I/O\nthat we need to requeue (because once we return from\npresuspend, we are unable to do anything about it).  \u0027queue_work\u0027\nis called in response to the following functions:\n- complete_resync_work \u003d NA, recovery is stopped\n- rh_dec (mirror_end_io) \u003d NA, only calls \u0027queue_work\u0027 if it\n                           is ready to recover the region\n                           (recovery is stopped) or it needs\n                           to clear the region in the log*\n                           **this doesn\u0027t get called while\n                           suspending**\n- rh_recovery_end \u003d NA, recovery is stopped\n- rh_recovery_start \u003d NA, recovery is stopped\n- write_callback \u003d 1) Writes w/o failures simply call\n                   bio_endio -\u003e mirror_end_io -\u003e rh_dec\n                   (see rh_dec above)\n                   2) Writes with failures are put on\n                   the failures list and queue_work is\n                   called**\n                   ** write_callbacks don\u0027t happen\n                   during suspend **\n- do_failures \u003d NA, \u0027queue_work\u0027 not called if suspending\n- add_mirror (initialization) \u003d NA, only done on mirror creation\n- queue_bio \u003d NA, 1) delayed I/O scheduled before flush_workqueue\n              is called.  2) No more I/Os are being issued.\n              3) Re-attempted READs can still be handled.\n              (Write completions are handled through rh_dec/\n              write_callback - mention above - and do not\n              use queue_bio.)\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "8f0205b798f926e2745de5fdebf0a8605c621de6",
      "tree": "3b0efdd8b666e507c2c7987ce6477064c2d4cc56",
      "parents": [
        "72f4b314100bae85c75d8e4c6fec621ab44e777d"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Fri Feb 08 02:11:32 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:11:32 2008 +0000"
      },
      "message": "dm raid1: handle recovery failures\n\nThis patch adds the calls to \u0027fail_mirror\u0027 if an error occurs during\nmirror recovery (aka resynchronization).  \u0027fail_mirror\u0027 is responsible\nfor recording the type of error by mirror device and ensuring an event\ngets raised for the purpose of notifying userspace.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "72f4b314100bae85c75d8e4c6fec621ab44e777d",
      "tree": "6dc5e860e8a4acab2e047f31391d0c8fdf366ff7",
      "parents": [
        "d74f81f8adc504a23be3babf347b9f69e9389924"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Fri Feb 08 02:11:29 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:11:29 2008 +0000"
      },
      "message": "dm raid1: handle write failures\n\nThis patch gives mirror the ability to handle device failures\nduring normal write operations.\n\nThe \u0027write_callback\u0027 function is called when a write completes.\nIf all the writes failed or succeeded, we report failure or\nsuccess respectively.  If some of the writes failed, we call\nfail_mirror; which increments the error count for the device, notes\nthe type of error encountered (DM_RAID1_WRITE_ERROR),  and\nselects a new primary (if necessary).  Note that the primary\ndevice can never change while the mirror is not in-sync (IOW,\nwhile recovery is happening.)  This means that the scenario\nwhere a failed write changes the primary and gives\nrecovery_complete a chance to misread the primary never happens.\nThe fact that the primary can change has necessitated the change\nto the default_mirror field.  We need to protect against reading\ngarbage while the primary changes.  We then add the bio to a new\nlist in the mirror set, \u0027failures\u0027.  For every bio in the \u0027failures\u0027\nlist, we call a new function, \u0027__bio_mark_nosync\u0027, where we mark\nthe region \u0027not-in-sync\u0027 in the log and properly set the region\nstate as, RH_NOSYNC.  Userspace must also be notified of the\nfailure.  This is done by \u0027raising an event\u0027 (dm_table_event()).\nIf fail_mirror is called in process context the event can be raised\nright away.  If in interrupt context, the event is deferred to the\nkmirrord thread - which raises the event if \u0027event_waiting\u0027 is set.\n\nBackwards compatibility is maintained by ignoring errors if\nthe DM_FEATURES_HANDLE_ERRORS flag is not present.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "d74f81f8adc504a23be3babf347b9f69e9389924",
      "tree": "4a687e400479ad330bb36ded54012cd8b8b84ecf",
      "parents": [
        "4f7f5c675fd6bacaae3c67be44de872dcff0e3b7"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Fri Feb 08 02:11:27 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:11:27 2008 +0000"
      },
      "message": "dm snapshot: combine consecutive exceptions in memory\n\nProvided sector_t is 64 bits, reduce the in-memory footprint of the\nsnapshot exception table by the simple method of using unused bits of\nthe chunk number to combine consecutive entries.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "4f7f5c675fd6bacaae3c67be44de872dcff0e3b7",
      "tree": "5825966577a4018047bc126922b1f815af905348",
      "parents": [
        "a25eb9446ad50027bc2082386e5358bedad087ed"
      ],
      "author": {
        "name": "Brian Wood",
        "email": "brian.j.wood@intel.com",
        "time": "Fri Feb 08 02:11:24 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:11:24 2008 +0000"
      },
      "message": "dm: stripe enhanced status return\n\nThis patch adds additional information to the status line. It is added at the\nend of the returned text so it will not interfere with existing\nimplementations using this data. The addition of this information will allow\nfor a common return interface to match that returned with the dm-raid1.c\nstatus line (with Jonathan Brassow\u0027s patches).\n\nHere is a sample of what is returned with a mirror \"status\" call:\nisw_eeaaabgfg_mirror: 0 488390920 mirror 2 8:16 8:32 3727/3727 1 AA 1 core\n\nHere\u0027s what\u0027s returned with this patch for a stripe \"status\" call:\nisw_dheeijjdej_stripe: 0 976783872 striped 2 8:16 8:32 1 AA\n\nSigned-off-by: Brian Wood \u003cbrian.j.wood@intel.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "a25eb9446ad50027bc2082386e5358bedad087ed",
      "tree": "d9d2e5d26dbf403efa69dd52aec94bf37c82da78",
      "parents": [
        "fb8b284806124bef250196007d7373ea3fe26194"
      ],
      "author": {
        "name": "Brian Wood",
        "email": "brian.j.wood@intel.com",
        "time": "Fri Feb 08 02:11:22 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:11:22 2008 +0000"
      },
      "message": "dm: stripe trigger event on failure\n\nThis patch adds the stripe_end_io function to process errors that might\noccur after an IO operation. As part of this there are a number of\nenhancements made to record and trigger events:\n\n- New atomic variable in struct stripe to record the number of\nerrors each stripe volume device has experienced (could be used\nlater with uevents to report back directly to userspace)\n\n- New workqueue/work struct setup to process the trigger_event function\n\n- New end_io function. It is here that testing for BIO error conditions\ntake place. It determines the exact stripe that cause the error,\nrecords this in the new atomic variable, and calls the queue_work() function\n\n- New trigger_event function to process failure events. This\ncalls dm_table_event()\n\nSigned-off-by: Brian Wood \u003cbrian.j.wood@intel.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "fb8b284806124bef250196007d7373ea3fe26194",
      "tree": "8e34cc38a2c5a0e8e7a937c53421cf7f76466a00",
      "parents": [
        "304f3f6a58301316da612d7bf21d9abe1369d456"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Fri Feb 08 02:11:19 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:11:19 2008 +0000"
      },
      "message": "dm log: auto load modules\n\nIf the log type is not recognised, attempt to load the module\n\u0027dm-log-\u003ctype\u003e.ko\u0027.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "304f3f6a58301316da612d7bf21d9abe1369d456",
      "tree": "aa380ca3cd0a7d8a61f17915050866876510f181",
      "parents": [
        "3a7f6c990ad04e6f576a159876c602d14d6f7fef"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Fri Feb 08 02:11:17 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:11:17 2008 +0000"
      },
      "message": "dm: move deferred bio flushing to workqueue\n\nAdd a single-thread workqueue for each mapped device\nand move flushing of the lists of pushback and deferred bios\nto this new workqueue.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "3a7f6c990ad04e6f576a159876c602d14d6f7fef",
      "tree": "dc120485f8801050fa640f22c1bdeae1429728e0",
      "parents": [
        "95497a960015c89c7c585d5fb953bc2816dba1e5"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Fri Feb 08 02:11:14 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:11:14 2008 +0000"
      },
      "message": "dm crypt: use async crypto\n\ndm-crypt: Use crypto ablkcipher interface\n\nMove encrypt/decrypt core to async crypto call.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "95497a960015c89c7c585d5fb953bc2816dba1e5",
      "tree": "3e1f33a86b81bf371517fc5b60db295989355a4d",
      "parents": [
        "43d6903482eec168b727bc4bf76a9f415257d862"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Fri Feb 08 02:11:12 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:11:12 2008 +0000"
      },
      "message": "dm crypt: prepare async callback fn\n\ndm-crypt: Use crypto ablkcipher interface\n\nPrepare callback function for async crypto operation.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "43d6903482eec168b727bc4bf76a9f415257d862",
      "tree": "cc0f5d3621c052376d2f6cff85af87002e4df344",
      "parents": [
        "ddd42edfd8ec44595b1501318512bc29a36f015f"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Fri Feb 08 02:11:09 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:11:09 2008 +0000"
      },
      "message": "dm crypt: add completion for async\n\ndm-crypt: Use crypto ablkcipher interface\nPrepare completion for async crypto request.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "ddd42edfd8ec44595b1501318512bc29a36f015f",
      "tree": "c102f6dd5ffad033531352ef53508db4bbefb382",
      "parents": [
        "01482b7671d014aa44f2efbc1153f4e3f48d7fb3"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Fri Feb 08 02:11:07 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:11:07 2008 +0000"
      },
      "message": "dm crypt: add async request mempool\n\ndm-crypt: Use crypto ablkcipher interface\n\nIntroduce mempool for async crypto requests.\n\ncc-\u003ereq is used mainly during synchronous operations\n(to prevent allocation and deallocation of the same object).\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "01482b7671d014aa44f2efbc1153f4e3f48d7fb3",
      "tree": "12017dac7b6b1b680649b59470d91f6dd9baf55f",
      "parents": [
        "899c95d36c896f9fb7bc5f4f03b4abd86bda292c"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Fri Feb 08 02:11:04 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:11:04 2008 +0000"
      },
      "message": "dm crypt: extract scatterlist processing\n\ndm-crypt: Use crypto ablkcipher interface\n\nMove scatterlists to separate dm_crypt_struct and\npick out block processing from crypt_convert.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "899c95d36c896f9fb7bc5f4f03b4abd86bda292c",
      "tree": "824017f25f4c0ed321077e068280c9bbd207ad47",
      "parents": [
        "84131db689ab86409315c15a3ea5daf732cb04e1"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Fri Feb 08 02:11:02 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:11:02 2008 +0000"
      },
      "message": "dm crypt: tidy io ref counting\n\nMake io reference counting more obvious.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "84131db689ab86409315c15a3ea5daf732cb04e1",
      "tree": "e7ba3d1c2b7ddb38ed14725aab699e07776627b0",
      "parents": [
        "dec1cedf9d4eabe43f3c7d6af095eff40c139a89"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Fri Feb 08 02:10:59 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:10:59 2008 +0000"
      },
      "message": "dm crypt: introduce crypt_write_io_loop\n\nIntroduce crypt_write_io_loop().\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "dec1cedf9d4eabe43f3c7d6af095eff40c139a89",
      "tree": "1ee57308cac1e018fb670e21bc91822f0250aa83",
      "parents": [
        "0c395b0f8dd7aee394df95b46963fc0f3401cf90"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Fri Feb 08 02:10:57 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:10:57 2008 +0000"
      },
      "message": "dm crypt: abstract crypt_write_done\n\nProcess write request in separate function and queue\nfinal bio through io workqueue.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "0c395b0f8dd7aee394df95b46963fc0f3401cf90",
      "tree": "03a83a7ba9e9917fadae5416ed58533e51e67067",
      "parents": [
        "395b167ca0c559aa975d8bbc46a3d10edd6e17d0"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Fri Feb 08 02:10:54 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:10:54 2008 +0000"
      },
      "message": "dm crypt: store sector mapping in dm_crypt_io\n\nAdd sector into dm_crypt_io instead of using local variable.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "395b167ca0c559aa975d8bbc46a3d10edd6e17d0",
      "tree": "5b5db9ad8da4d1d28e971dece58979594f56bad2",
      "parents": [
        "4e4eef64e246694a6302c3ee95ac9b60c40f877e"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:10:52 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:10:52 2008 +0000"
      },
      "message": "dm crypt: move queue functions\n\nReorder kcryptd functions for clarity.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "4e4eef64e246694a6302c3ee95ac9b60c40f877e",
      "tree": "704b46c01bf929873bbca0ea28e621f0c4e3830f",
      "parents": [
        "ee7a491e62214bfd56c97c1fef3672c09e2a700d"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Fri Feb 08 02:10:49 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:10:49 2008 +0000"
      },
      "message": "dm crypt: adjust io processing functions\n\nRename functions to follow calling convention.\nPrepare write io error processing function skeleton.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "ee7a491e62214bfd56c97c1fef3672c09e2a700d",
      "tree": "b17672c2216a93ec875da4b332b9c0d6e0348b82",
      "parents": [
        "5742fd77757894ebb5e441afbdac1fb666e782f7"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Fri Feb 08 02:10:46 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:10:46 2008 +0000"
      },
      "message": "dm crypt: tidy crypt_endio\n\nSimplify crypt_endio function.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "5742fd77757894ebb5e441afbdac1fb666e782f7",
      "tree": "6976ec2b920b9df1e2316d4603d81a6082a7d42b",
      "parents": [
        "fcd369daa36d547607dbedd0b41099d6dfc1d1c7"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Fri Feb 08 02:10:43 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:10:43 2008 +0000"
      },
      "message": "dm crypt: move error setting outside crypt_dec_pending\n\nMove error code setting outside of crypt_dec_pending function.\nUse -EIO if crypt_convert_scatterlist() fails.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "fcd369daa36d547607dbedd0b41099d6dfc1d1c7",
      "tree": "456f6369cb9f16bd4575442d5729f9d03efb4620",
      "parents": [
        "53017030e2548dffbe481fb4ab6b587abbee6f8b"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Fri Feb 08 02:10:41 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:10:41 2008 +0000"
      },
      "message": "dm crypt: remove unnecessary crypt_context write parm\n\nRemove write attribute from convert_context and use bio flag instead.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "53017030e2548dffbe481fb4ab6b587abbee6f8b",
      "tree": "83831c963242bfafb6c753960ef3a50b3fd1e314",
      "parents": [
        "009cd09042fbd095e708b412ad7870fb421fa2f0"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Fri Feb 08 02:10:38 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:10:38 2008 +0000"
      },
      "message": "dm crypt: move convert_context inside dm_crypt_io\n\nMove convert_context inside dm_crypt_io.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "009cd09042fbd095e708b412ad7870fb421fa2f0",
      "tree": "7b3a431d8201305142de75e4353a572b3e0a8c79",
      "parents": [
        "0149e57fedcaca8905b6cca091fcb0915ff3e27d"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:10:35 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:10:35 2008 +0000"
      },
      "message": "dm mpath: add missing static\n\nA static declaration missing.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "0149e57fedcaca8905b6cca091fcb0915ff3e27d",
      "tree": "90af92ad51346a4d002169f8348e240df17a3e37",
      "parents": [
        "46125c1c90882e17f856f1ba30440efea9135e80"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:10:32 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:10:32 2008 +0000"
      },
      "message": "dm: targets no longer experimental\n\nDrop the EXPERIMENTAL tag from well-established device-mapper targets, so\nthe newer ones stand out better.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "46125c1c90882e17f856f1ba30440efea9135e80",
      "tree": "e1175d29ec1985a220bfb07c0d6fa6cc83c44f15",
      "parents": [
        "94d6351e147231b2c5a9512d69693ee8ac0c204d"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Fri Feb 08 02:10:30 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:10:30 2008 +0000"
      },
      "message": "dm: refactor dm_suspend completion wait\n\nMove completion wait to separate function\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "94d6351e147231b2c5a9512d69693ee8ac0c204d",
      "tree": "a0b5c1935077c1bf40db1945c5f30e8d8a9a47a2",
      "parents": [
        "73d410c0137f63c6597e9763c81e5f4d015e9940"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Fri Feb 08 02:10:27 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:10:27 2008 +0000"
      },
      "message": "dm: split dm_suspend io_lock hold into two\n\nChange io_locking to allow processing flush in separate thread.\n\nBecause we have DMF_BLOCK_IO already set, any possible\nnew ios are queued in dm_requests now.\n\nIn the case of interrupting previous wait there can be more\nios queued (we unlocked io_lock for a while) but this is safe.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "73d410c0137f63c6597e9763c81e5f4d015e9940",
      "tree": "d76251d96254217b6935dee0acca676476a7a45e",
      "parents": [
        "6d6f10df890df8be69edd4db32dc8ce09f311bb8"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Fri Feb 08 02:10:25 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:10:25 2008 +0000"
      },
      "message": "dm: tidy dm_suspend\n\nTidy dm_suspend function\n\n - change return value logic in dm_suspend\n - use atomic_read only once.\n - move DMF_BLOCK_IO clearing into one place\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "6d6f10df890df8be69edd4db32dc8ce09f311bb8",
      "tree": "3845f7fdd940cdd4ee9e35cc40aeeab766b21b03",
      "parents": [
        "6ed7ade89657e71da3afa7cb13ad25570a95dd9d"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Fri Feb 08 02:10:22 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:10:22 2008 +0000"
      },
      "message": "dm: refactor deferred bio_list processing\n\nRefactor deferred bio_list processing.\n\n - use separate _merge_pushback_list function\n - move deferred bio list pick up to flush function\n - use bio_list_pop instead of bio_list_get\n - simplify noflush flag use\n\nNo real functional change in this patch.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "6ed7ade89657e71da3afa7cb13ad25570a95dd9d",
      "tree": "713c0fc55b5802c92fa160d65eba1e692e9ff9fc",
      "parents": [
        "a26ffd4aa99d6ace82852930edf09e450cc7dc8d"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Fri Feb 08 02:10:19 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:10:19 2008 +0000"
      },
      "message": "dm: tidy alloc_dev labels\n\nTidy labels in alloc_dev to make later patches more clear.\n\nNo functional change in this patch.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "a26ffd4aa99d6ace82852930edf09e450cc7dc8d",
      "tree": "d00f229139f52f71ffeabc66b1d5b6fdd5fa67a7",
      "parents": [
        "69a2ce72a4efe0653479a5d69fc86b5726e83219"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Fri Feb 08 02:10:16 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:10:16 2008 +0000"
      },
      "message": "dm ioctl: use uninitialized_var\n\ndrivers/md/dm-ioctl.c:1405: warning: \u0027param\u0027 may be used uninitialized in this function\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "69a2ce72a4efe0653479a5d69fc86b5726e83219",
      "tree": "2fa4c50f83782356c5202c1a987a83cdea4a4c6a",
      "parents": [
        "e48b9db251122b88783844b1d2d69c6780f898ff"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Fri Feb 08 02:10:14 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:10:14 2008 +0000"
      },
      "message": "dm: table use uninitialized_var\n\ndrivers/md/dm-table.c: In function \u0027dm_get_device\u0027:\ndrivers/md/dm-table.c:478: warning: \u0027dev\u0027 may be used uninitialized in this function\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "e48b9db251122b88783844b1d2d69c6780f898ff",
      "tree": "7a3b1a37da6cb96cae5845a85662ec330fc559ba",
      "parents": [
        "e61290a4a23c3f85f883f0c8cc7c967501f82a57"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Fri Feb 08 02:10:11 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:10:11 2008 +0000"
      },
      "message": "dm snapshot: use uninitialized_var\n\ndrivers/md/dm-exception-store.c: In function \u0027persistent_read_metadata\u0027:\ndrivers/md/dm-exception-store.c:452: warning: \u0027new_snapshot\u0027 may be used uninitialized in this function\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "e61290a4a23c3f85f883f0c8cc7c967501f82a57",
      "tree": "db8947500e6d75be2f6ff02cecfdb1bbace5230e",
      "parents": [
        "8defd83084c3ce46d314c038f7c0f0ed7156d6f8"
      ],
      "author": {
        "name": "Daniel Walker",
        "email": "dwalker@mvista.com",
        "time": "Fri Feb 08 02:10:08 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:10:08 2008 +0000"
      },
      "message": "dm: convert suspend_lock semaphore to mutex\n\nReplace semaphore with mutex.\n\nSigned-off-by: Daniel Walker \u003cdwalker@mvista.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "8defd83084c3ce46d314c038f7c0f0ed7156d6f8",
      "tree": "c21d30f80f0d991e731ba9a2c1263c5dbe498e6e",
      "parents": [
        "82d601dc076deb5f348cc3a70f57248bc976ae0c"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@crashcourse.ca",
        "time": "Fri Feb 08 02:10:06 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:10:06 2008 +0000"
      },
      "message": "dm snapshot: use rounddown_pow_of_two\n\nSince the source file already includes the log2.h header file, it\nseems pointless to re-invent the necessary routine.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@crashcourse.ca\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "82d601dc076deb5f348cc3a70f57248bc976ae0c",
      "tree": "9047dc31a5fde553b64b96bc5b426065b77772c2",
      "parents": [
        "4f41b09f86e0e3b48194b2ad0356391bf6d47e40"
      ],
      "author": {
        "name": "Jun\u0027ichi Nomura",
        "email": "j-nomura@ce.jp.nec.com",
        "time": "Fri Feb 08 02:10:04 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:10:04 2008 +0000"
      },
      "message": "dm: table remove unused total\n\n\"total \u003d 0\" does nothing.\n\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "4f41b09f86e0e3b48194b2ad0356391bf6d47e40",
      "tree": "49e28b85c4fabcd464ebf3e0f7431ca92406a8a2",
      "parents": [
        "afb24528f9012e5c6361ca9a9128c7c089c1cc7c"
      ],
      "author": {
        "name": "Vasily Averin",
        "email": "vvs@sw.ru",
        "time": "Fri Feb 08 02:10:01 2008 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Feb 08 02:10:01 2008 +0000"
      },
      "message": "dm: table remove unused variable\n\nSave some bytes.\n\nSigned-off-by: Vasily Averin \u003cvvs@sw.ru\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    }
  ],
  "next": "afb24528f9012e5c6361ca9a9128c7c089c1cc7c"
}
