)]}'
{
  "log": [
    {
      "commit": "fac1f0e34026a656174102ebad4d1cd71cd4fe2c",
      "tree": "14316411b2c2ca17b8c6d0c287cfd221755b4c90",
      "parents": [
        "8c6d21528406ec719aaea9d589876fd105c31646"
      ],
      "author": {
        "name": "Jan Harkes",
        "email": "jaharkes@cs.cmu.edu",
        "time": "Thu Jul 19 01:48:44 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:48 2007 -0700"
      },
      "message": "coda: coda doesn\u0027t track atime\n\nSet MS_NOATIME flag to avoid unnecessary calls when the coda inode is\naccessed.\n\nAlso, set statfs.f_bsize to 4k.  1k is obviously too small for the suggested\nIO size.\n\nSigned-off-by: Jan Harkes \u003cjaharkes@cs.cmu.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8c6d21528406ec719aaea9d589876fd105c31646",
      "tree": "00ff80bd206e5178cf57e37844d7512687ea2f59",
      "parents": [
        "d728900cd5502927158db747c653007cf72e2e49"
      ],
      "author": {
        "name": "Jan Harkes",
        "email": "jaharkes@cs.cmu.edu",
        "time": "Thu Jul 19 01:48:43 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:48 2007 -0700"
      },
      "message": "coda: allow removal of busy directories\n\nA directory without children may still be busy when it is the cwd for some\nprocess.  We can safely remove such a directory because the VFS prevents\nfurther operations.  Also we don\u0027t need to call d_delete as it is already\ncalled in vfs_rmdir.\n\nSigned-off-by: Jan Harkes \u003cjaharkes@cs.cmu.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d728900cd5502927158db747c653007cf72e2e49",
      "tree": "34e641ec49e42265e01e0fe38be6bc54abfb11d0",
      "parents": [
        "56ee3547940f895a2cf20f2ac462fbeaee55fa2a"
      ],
      "author": {
        "name": "Jan Harkes",
        "email": "jaharkes@cs.cmu.edu",
        "time": "Thu Jul 19 01:48:43 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:48 2007 -0700"
      },
      "message": "coda: fix nlink updates for directories\n\nThe Coda client sets the directory link count to 1 when it isn\u0027t sure how many\nsubdirectories we have.  In this case we shouldn\u0027t change the link count in\nthe kernel when a subdirectory is created or removed.\n\nSigned-off-by: Jan Harkes \u003cjaharkes@cs.cmu.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "56ee3547940f895a2cf20f2ac462fbeaee55fa2a",
      "tree": "b8fe62fb424c9f6b10a41f67e91955735c9034ef",
      "parents": [
        "38c2e4370da495813ca93d7cad31ed5090e8c310"
      ],
      "author": {
        "name": "Jan Harkes",
        "email": "jaharkes@cs.cmu.edu",
        "time": "Thu Jul 19 01:48:42 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:48 2007 -0700"
      },
      "message": "coda: correctly invalidate cached access rights\n\nChange the epoch value to forces a refresh instead of clearing the cached\nrights mask and block all further accesses to the object.\n\nSigned-off-by: Jan Harkes \u003cjaharkes@cs.cmu.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "38c2e4370da495813ca93d7cad31ed5090e8c310",
      "tree": "bf48c4a17f3f2f7cf17a20e37f55f898a332a2c7",
      "parents": [
        "18991197b4b588255ccabf472ebc84db7b66a19c"
      ],
      "author": {
        "name": "Jan Harkes",
        "email": "jaharkes@cs.cmu.edu",
        "time": "Thu Jul 19 01:48:41 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:48 2007 -0700"
      },
      "message": "coda: do not grab an uninitialized fd when the open upcall returns an error\n\nWhen open fails the fd in the response is uninitialized and we ended up taking\na reference on the file struct and never released it.\n\nSigned-off-by: Jan Harkes \u003cjaharkes@cs.cmu.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "18991197b4b588255ccabf472ebc84db7b66a19c",
      "tree": "eb6b66df60951378072c9d6af99af153b7d6dd66",
      "parents": [
        "da1a679cde9b12d6e331f43d2d92a234f2d1f9b0"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Thu Jul 19 01:48:40 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:48 2007 -0700"
      },
      "message": "Use --build-id ld option\n\nThis change passes the --build-id when linking the kernel and when linking\nmodules, if ld supports it.  This is a new GNU ld option that synthesizes an\nELF note section inside the read-only data.  The note in this section contains\nunique identifying bits called the \"build ID\", which are generated so as to be\ndifferent for any two linked ELF files that aren\u0027t identical.  The build ID\ncan be recovered from stripped files, memory dumps, etc.  and used to look up\nthe original program built, locate debuginfo or other details or history\nassociated with it.  For normal program linking, the compiler passes\n--build-id to ld by default, but the option is needed when using ld directly\nas we do.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: 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": "da1a679cde9b12d6e331f43d2d92a234f2d1f9b0",
      "tree": "d8cf046a064a1f00443627a6d68b631789882f29",
      "parents": [
        "86ead9caf9a9f265f6065c46080d046230e25d78"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Thu Jul 19 01:48:39 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:47 2007 -0700"
      },
      "message": "Add /sys/kernel/notes\n\nThis patch adds the /sys/kernel/notes magic file.  Reading this delivers the\ncontents of the kernel\u0027s .notes section.  This lets userland easily glean any\ndetailed information about the running kernel\u0027s build that was stored there at\ncompile time.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: 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": "86ead9caf9a9f265f6065c46080d046230e25d78",
      "tree": "eea6ca1ba336b8e7d6797ef024817f59e6eb7396",
      "parents": [
        "8fb775ee582999ea45503f0c4e9393c2df065a81"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Thu Jul 19 01:48:39 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:47 2007 -0700"
      },
      "message": "s390: Put allocated ELF notes in read-only data segment\n\nThis changes the s390 linker script to use the asm-generic NOTES macro so that\nELF note sections with SHF_ALLOC set are linked into the kernel image along\nwith other read-only data.  The PT_NOTE also points to their location.\n\nThis paves the way for putting useful build-time information into ELF notes\nthat can be found easily later in a kernel memory dump.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: 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": "8fb775ee582999ea45503f0c4e9393c2df065a81",
      "tree": "cb30f9d57cd4a988ba89fd00c848949506c27e22",
      "parents": [
        "caf45dd92677b2001123cc06b5835052ccfee76f"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Thu Jul 19 01:48:38 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:47 2007 -0700"
      },
      "message": "powerpc: Put allocated ELF notes in read-only data segment\n\nThis changes the powerpc linker script to use the asm-generic NOTES macro so\nthat ELF note sections with SHF_ALLOC set are linked into the kernel image\nalong with other read-only data.  The PT_NOTE also points to their location.\n\nThis paves the way for putting useful build-time information into ELF notes\nthat can be found easily later in a kernel memory dump.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "caf45dd92677b2001123cc06b5835052ccfee76f",
      "tree": "70c97b9acc6b419a2965d8b621aeb8d41d668722",
      "parents": [
        "2e1d5b8f24a887caded5ae3ceb2f341d4fbd1861"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Thu Jul 19 01:48:37 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:47 2007 -0700"
      },
      "message": "alpha: Put allocated ELF notes in read-only data segment\n\nThis changes the alpha linker script to use the asm-generic NOTES macro so\nthat ELF note sections with SHF_ALLOC set are linked into the kernel image\nalong with other read-only data.  The PT_NOTE also points to their location.\n\nThis paves the way for putting useful build-time information into ELF notes\nthat can be found easily later in a kernel memory dump.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2e1d5b8f24a887caded5ae3ceb2f341d4fbd1861",
      "tree": "8823e9f0a41498a1c114772713099018073eb288",
      "parents": [
        "cbe87121f1545bb3e98ae114519bf0c4db27d6ab"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Thu Jul 19 01:48:37 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:47 2007 -0700"
      },
      "message": "x86_64: Put allocated ELF notes in read-only data segment\n\nThis changes the x86_64 linker script to use the asm-generic NOTES macro so\nthat ELF note sections with SHF_ALLOC set are linked into the kernel image\nalong with other read-only data.  The PT_NOTE also points to their location.\n\nThis paves the way for putting useful build-time information into ELF notes\nthat can be found easily later in a kernel memory dump.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\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": "cbe87121f1545bb3e98ae114519bf0c4db27d6ab",
      "tree": "5654badf0076dad480ae5832be943930d1cfe6a6",
      "parents": [
        "b38bd33a6bf5095736620ca8e85fe61820c2d312"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Thu Jul 19 01:48:36 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:47 2007 -0700"
      },
      "message": "i386: Put allocated ELF notes in read-only data segment\n\nThis changes the i386 linker script and the asm-generic macro it uses so that\nELF note sections with SHF_ALLOC set are linked into the kernel image along\nwith other read-only data.  The PT_NOTE also points to their location.\n\nThis paves the way for putting useful build-time information into ELF notes\nthat can be found easily later in a kernel memory dump.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: 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": "b38bd33a6bf5095736620ca8e85fe61820c2d312",
      "tree": "86ba1d0c28dedc87ced6d1f06c7a80d944650559",
      "parents": [
        "f0a594c1c74fedbd838402e7372030311be8cc6e"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Thu Jul 19 01:48:35 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:47 2007 -0700"
      },
      "message": "fix ext4/JBD2 build warnings\n\nLooking at the current linus-git tree jbd_debug() define in\ninclude/linux/jbd2.h\n\nextern u8 journal_enable_debug;\n\n#define jbd_debug(n, f, a...)                                           \\\n        do {                                                            \\\n                if ((n) \u003c\u003d journal_enable_debug) {                      \\\n                        printk (KERN_DEBUG \"(%s, %d): %s: \",            \\\n                                __FILE__, __LINE__, __FUNCTION__);      \\\n                        printk (f, ## a);                               \\\n                }                                                       \\\n        } while (0)\n\u003e fs/ext4/inode.c: In function âext4_write_inodeâ:\n\u003e fs/ext4/inode.c:2906: warning: comparison is always true due to limited\n\u003e range of data type\n\u003e\n\u003e fs/jbd2/recovery.c: In function âjbd2_journal_recoverâ:\n\u003e fs/jbd2/recovery.c:254: warning: comparison is always true due to\n\u003e limited range of data type\n\u003e fs/jbd2/recovery.c:257: warning: comparison is always true due to\n\u003e limited range of data type\n\u003e\n\u003e fs/jbd2/recovery.c: In function âjbd2_journal_skip_recoveryâ:\n\u003e fs/jbd2/recovery.c:301: warning: comparison is always true due to\n\u003e limited range of data type\n\u003e\nNoticed all warnings are occurs when the debug level is 0. Then found\nthe \"jbd2: Move jbd2-debug file to debugfs\" patch\nhttp://git.kernel.org/?p\u003dlinux/kernel/git/torvalds/linux-2.6.git;a\u003dcommit;h\u003d0f49d5d019afa4e94253bfc92f0daca3badb990b\n\nchanged the jbd2_journal_enable_debug from int type to u8, makes the\njbd_debug comparision is always true when the debugging level is 0. Thus\nthe compile warning occurs.\n\nThought about changing the jbd2_journal_enable_debug data type back to\nint, but can\u0027t, because the jbd2-debug is moved to debug fs, where\ncalling debugfs_create_u8() to create the debugfs entry needs the value\nto be u8 type.\n\nEven if we changed the data type back to int, the code is still buggy,\nkernel should not print jbd2 debug message if the\njbd2_journal_enable_debug is set to 0. But this is not the case.\n\nThe fix is change the level of debugging to 1. The same should fixed in\next3/JBD, but currently ext3 jbd-debug via /proc fs is broken, so we\nprobably should fix it all together.\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: Theodore Tso \u003ctytso@mit.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f0a594c1c74fedbd838402e7372030311be8cc6e",
      "tree": "5ad2537167712b7bb281c30ca89ea1a076ee1bf6",
      "parents": [
        "4b8a8b812edd7067fffcc4a85b8aa3adae081535"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Thu Jul 19 01:48:34 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:47 2007 -0700"
      },
      "message": "update checkpatch.pl to version 0.08\n\nThis version brings a number of new checks, and a number of bug\nfixes.  Of note:\n\n  - warnings for multiple assignments per line\n  - warnings for multiple declarations per line\n  - checks for single statement blocks with braces\n\nThis patch includes an update for feature-removal-schedule.txt to\nbetter target checks.\n\nAndy Whitcroft (12):\n      Version: 0.08\n      only apply printk checks where there is a string literal\n      allow suppression of errors for when no patch is found\n      warn about multiple assignments\n      warn on declaration of multiple variables\n      check for kfree() with needless null check\n      check for single statement braced blocks\n      check for aggregate initialisation on the next line\n      handle the \u003d\u003e operator\n      check for spaces between function name and open parenthesis\n      move to explicit Check: entries in feature-removal-schedule.txt\n      handle pointer attributes\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4b8a8b812edd7067fffcc4a85b8aa3adae081535",
      "tree": "8a8bfe718e411f449957edf7d477383c1c87d0fd",
      "parents": [
        "aa781aeb49752e5654241b53368c80362ad7bea3"
      ],
      "author": {
        "name": "Rolf Eike Beer",
        "email": "eike-kernel@sf-tec.de",
        "time": "Thu Jul 19 01:48:33 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:47 2007 -0700"
      },
      "message": "Typo: fro -\u003e from\n\nSigned-off-by: Rolf Eike Beer \u003ceike-kernel@sf-tec.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "aa781aeb49752e5654241b53368c80362ad7bea3",
      "tree": "b0af0e1f3e13cbe1742b3f7ec704415b3c303ecd",
      "parents": [
        "01c55ed3260e130f152b7fbab2e18f23980b59a4"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 19 01:48:32 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:47 2007 -0700"
      },
      "message": "add POSIX clocks and timers maintainer\n\nUpdate the MAINTAINERS file: Thomas Gleixner has been the de-facto\nmaintainer of POSIX timers and clocks for quite some time.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "01c55ed3260e130f152b7fbab2e18f23980b59a4",
      "tree": "a04909d08fdde4ffb507c680fba863cfd5d7735c",
      "parents": [
        "bb90110dcb9e93bf79e3c988abc6cbcabd46d57f"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Thu Jul 19 01:48:32 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:47 2007 -0700"
      },
      "message": "kernel/relay.c: make functions static\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nCc: Tom Zanussi \u003czanussi@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": "bb90110dcb9e93bf79e3c988abc6cbcabd46d57f",
      "tree": "0c082570bea12431636bd44fe470ebc0c9a6d8ab",
      "parents": [
        "ee78b0a61f0514ffc3d59257fbe6863b43477829"
      ],
      "author": {
        "name": "Kawai, Hidehiro",
        "email": "hidehiro.kawai.ez@hitachi.com",
        "time": "Thu Jul 19 01:48:31 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:47 2007 -0700"
      },
      "message": "coredump masking: documentation for /proc/pid/coredump_filter\n\nThis patch adds the documentation for /proc/\u003cpid\u003e/coredump_filter.\n\nSigned-off-by: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: \"Randy.Dunlap\" \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ee78b0a61f0514ffc3d59257fbe6863b43477829",
      "tree": "2039f5c61595529991af01a3082559b8e1409762",
      "parents": [
        "e2e00906a06f7e74c49ca0ca85b960f270c83d5e"
      ],
      "author": {
        "name": "Kawai, Hidehiro",
        "email": "hidehiro.kawai.ez@hitachi.com",
        "time": "Thu Jul 19 01:48:30 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:47 2007 -0700"
      },
      "message": "coredump masking: ELF-FDPIC: enable core dump filtering\n\nThis patch enables core dump filtering for ELF-FDPIC-formatted core file.\n\nSigned-off-by: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e2e00906a06f7e74c49ca0ca85b960f270c83d5e",
      "tree": "9759d1b88155de95ad09beab9c5dd98a7c7d80ea",
      "parents": [
        "a1b59e802f846b6b0e057507386068fcc6dff442"
      ],
      "author": {
        "name": "Kawai, Hidehiro",
        "email": "hidehiro.kawai.ez@hitachi.com",
        "time": "Thu Jul 19 01:48:30 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:47 2007 -0700"
      },
      "message": "coredump masking: ELF-FDPIC: remove an unused argument\n\nThis patch removes an unused argument from elf_fdpic_dump_segments().\n\nSigned-off-by: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a1b59e802f846b6b0e057507386068fcc6dff442",
      "tree": "1ad51ffa807774986595e56b6fac3525b6a285ac",
      "parents": [
        "3cb4a0bb1e773e3c41800b33a3f7dab32bd06c64"
      ],
      "author": {
        "name": "Kawai, Hidehiro",
        "email": "hidehiro.kawai.ez@hitachi.com",
        "time": "Thu Jul 19 01:48:29 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:47 2007 -0700"
      },
      "message": "coredump masking: ELF: enable core dump filtering\n\nThis patch enables core dump filtering for ELF-formatted core file.\n\nSigned-off-by: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3cb4a0bb1e773e3c41800b33a3f7dab32bd06c64",
      "tree": "d363522865706f0674b7b104a8fc7b151f336764",
      "parents": [
        "6c5d523826dc639df709ed0f88c5d2ce25379652"
      ],
      "author": {
        "name": "Kawai, Hidehiro",
        "email": "hidehiro.kawai.ez@hitachi.com",
        "time": "Thu Jul 19 01:48:28 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:47 2007 -0700"
      },
      "message": "coredump masking: add an interface for core dump filter\n\nThis patch adds an interface to set/reset flags which determines each memory\nsegment should be dumped or not when a core file is generated.\n\n/proc/\u003cpid\u003e/coredump_filter file is provided to access the flags.  You can\nchange the flag status for a particular process by writing to or reading from\nthe file.\n\nThe flag status is inherited to the child process when it is created.\n\nSigned-off-by: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6c5d523826dc639df709ed0f88c5d2ce25379652",
      "tree": "ef2fa8cb30266b3a9b047902794e78c583b099da",
      "parents": [
        "76fdbb25f963de5dc1e308325f0578a2f92b1c2d"
      ],
      "author": {
        "name": "Kawai, Hidehiro",
        "email": "hidehiro.kawai.ez@hitachi.com",
        "time": "Thu Jul 19 01:48:27 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:46 2007 -0700"
      },
      "message": "coredump masking: reimplementation of dumpable using two flags\n\nThis patch changes mm_struct.dumpable to a pair of bit flags.\n\nset_dumpable() converts three-value dumpable to two flags and stores it into\nlower two bits of mm_struct.flags instead of mm_struct.dumpable.\nget_dumpable() behaves in the opposite way.\n\n[akpm@linux-foundation.org: export set_dumpable]\nSigned-off-by: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "76fdbb25f963de5dc1e308325f0578a2f92b1c2d",
      "tree": "ce54ba0dc9e6d45dfe6bccfc6a663628f7734843",
      "parents": [
        "86fd6dfc0990d81123dca19541554426c9e9de3e"
      ],
      "author": {
        "name": "Kawai, Hidehiro",
        "email": "hidehiro.kawai.ez@hitachi.com",
        "time": "Thu Jul 19 01:48:26 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:46 2007 -0700"
      },
      "message": "coredump masking: bound suid_dumpable sysctl\n\nThis patch series is version 5 of the core dump masking feature, which\ncontrols which VMAs should be dumped based on their memory types and\nper-process flags.\n\nI adopted most of Andrew\u0027s suggestion at the previous version.  He also\nsuggested using system call instead of /proc/\u003cpid\u003e/ interface, I decided to\nuse the latter continuously because adding new system call with pid argument\nwill give a big impact on the kernel.\n\nYou can access the per-process flags via /proc/\u003cpid\u003e/coredump_filter\ninterface.  coredump_filter represents a bitmask of memory types, and if a bit\nis set, VMAs of corresponding memory type are written into a core file when\nthe process is dumped.  The bitmask is inherited from the parent process when\na process is created.\n\nThe original purpose is to avoid longtime system slowdown when a number of\nprocesses which share a huge shared memory are dumped at the same time.  To\nachieve this purpose, this patch series adds an ability to suppress dumping\nanonymous shared memory for specified processes.  In this version, three other\nmemory types are also supported.\n\nHere are the coredump_filter bits:\n  bit 0: anonymous private memory\n  bit 1: anonymous shared memory\n  bit 2: file-backed private memory\n  bit 3: file-backed shared memory\n\nThe default value of coredump_filter is 0x3.  This means the new core dump\nroutine has the same behavior as conventional behavior by default.\n\nIn this version, coredump_filter bits and mm.dumpable are merged into\nmm.flags, and it is accessed by atomic bitops.\n\nThe supported core file formats are ELF and ELF-FDPIC.  ELF has been tested,\nbut ELF-FDPIC has not been built and tested because I don\u0027t have the test\nenvironment.\n\nThis patch limits a value of suid_dumpable sysctl to the range of 0 to 2.\n\nSigned-off-by: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "86fd6dfc0990d81123dca19541554426c9e9de3e",
      "tree": "c4704fc566b031bc2b8a04308e774cfa7a730416",
      "parents": [
        "cdccb316c0860b26ad52f622a7592122a62d02b4"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Thu Jul 19 01:48:25 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:45 2007 -0700"
      },
      "message": "docbook: don\u0027t reference file without kernel-doc\n\nRemove include/linux/rmap.h from kernel-api.tmpl since it no longer\ncontains kernel-doc.  Fixes this warning:\n\nWarning(linux-2.6.22//include/linux/rmap.h): no structured comments found\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cdccb316c0860b26ad52f622a7592122a62d02b4",
      "tree": "c7c5e07bdf327959dea145efb574f7f94ab547d5",
      "parents": [
        "51f5a0c8f63990fcb6e09ed52be348df58c9e416"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Thu Jul 19 01:48:25 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:45 2007 -0700"
      },
      "message": "kernel-doc: fix leading dot in man-mode output\n\nIf a parameter description begins with a \u0027.\u0027, this indicates a \"request\"\nfor \"man\" mode output (*roff), so it needs special handling.\n\nProblem case is in include/asm-i386/atomic.h for function\natomic_add_unless():\n * @u: ...unless v is equal to u.\nThis parameter description is currently not printed in man mode output.\n\n[akpm@linux-foundation.org: cleanup]\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "51f5a0c8f63990fcb6e09ed52be348df58c9e416",
      "tree": "208bf8a3f4cb24a1375dad5d5107991571248300",
      "parents": [
        "5f8c7c98ae3888cf0a2cf320f514f75cc92f00be"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Thu Jul 19 01:48:24 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:45 2007 -0700"
      },
      "message": "kernel-doc: strip C99 comments\n\nStrip C99-style comments from the input stream.\n/*...*/ comments are already stripped.\nC99 comments confuse the kernel-doc script.\n\nAlso update some comments.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5f8c7c98ae3888cf0a2cf320f514f75cc92f00be",
      "tree": "5949c17d2d7a880838602559c01907412438f119",
      "parents": [
        "2ac534bc127bcf31f8cb76f65b1b0b7cba5e81ac"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Thu Jul 19 01:48:24 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:45 2007 -0700"
      },
      "message": "kernel-doc: fix unnamed struct/union warning\n\nFix kernel-doc warning:\nWarning(linux-2.6.22-rc2-git2/include/linux/skbuff.h:316): No description found for parameter \u0027}\u0027\n\nwhich is caused by nested anonymous structs/unions ending with:\n  };\n};\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2ac534bc127bcf31f8cb76f65b1b0b7cba5e81ac",
      "tree": "58853479e82f1db4bb3f78a507abc87385410eac",
      "parents": [
        "f79c20f52532d38fd0aee7ef64e138cc1613c484"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Thu Jul 19 01:48:23 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:45 2007 -0700"
      },
      "message": "kernel-doc: add tools doc in Makefile\n\nAdd kernel-doc tools info in Makefile.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f79c20f52532d38fd0aee7ef64e138cc1613c484",
      "tree": "889b946d5eff0c66293d3b5d56062bf0d85f73bf",
      "parents": [
        "c4a7808fc3d7a346d5d12e0d69d76d66d821488b"
      ],
      "author": {
        "name": "Josef \u0027Jeff\u0027 Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Thu Jul 19 01:48:22 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:45 2007 -0700"
      },
      "message": "fs: remove path_walk export\n\nSigned-off-by: Josef \u0027Jeff\u0027 Sipek \u003cjsipek@cs.sunysb.edu\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Michael Halcrow \u003cmhalcrow@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": "c4a7808fc3d7a346d5d12e0d69d76d66d821488b",
      "tree": "e301f6e97ebc3800baafc53161631ec3e01d83c2",
      "parents": [
        "16b6287a5286e872abece4f42a6eb5899157a836"
      ],
      "author": {
        "name": "Josef \u0027Jeff\u0027 Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Thu Jul 19 01:48:22 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:45 2007 -0700"
      },
      "message": "fs: mark link_path_walk static\n\nSigned-off-by: Josef \u0027Jeff\u0027 Sipek \u003cjsipek@cs.sunysb.edu\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Michael Halcrow \u003cmhalcrow@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": "16b6287a5286e872abece4f42a6eb5899157a836",
      "tree": "f0c1da7a06ea868fa155760662d5e1df4fdf402a",
      "parents": [
        "4ac4efc1f5575a268417f80ef4059aee383f8331"
      ],
      "author": {
        "name": "Josef \u0027Jeff\u0027 Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Thu Jul 19 01:48:21 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:45 2007 -0700"
      },
      "message": "nfsctl: use vfs_path_lookup\n\nuse vfs_path_lookup instead of open-coding the necessary functionality.\n\nSigned-off-by: Josef \u0027Jeff\u0027 Sipek \u003cjsipek@cs.sunysb.edu\u003e\nAcked-by: NeilBrown \u003cneilb@suse.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Michael Halcrow \u003cmhalcrow@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": "4ac4efc1f5575a268417f80ef4059aee383f8331",
      "tree": "46b5c73e424dbbab2d4feed1c42357305213d1c7",
      "parents": [
        "16f1820028d660d9da9c03b2ae7e98253c11795b"
      ],
      "author": {
        "name": "Josef \u0027Jeff\u0027 Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Thu Jul 19 01:48:20 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:45 2007 -0700"
      },
      "message": "sunrpc: use vfs_path_lookup\n\nuse vfs_path_lookup instead of open-coding the necessary functionality.\n\nSigned-off-by: Josef \u0027Jeff\u0027 Sipek \u003cjsipek@cs.sunysb.edu\u003e\nAcked-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Michael Halcrow \u003cmhalcrow@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": "16f1820028d660d9da9c03b2ae7e98253c11795b",
      "tree": "08939a5d7fcc02c76739a9dce38052da598d74d5",
      "parents": [
        "b6a2fea39318e43fee84fa7b0b90d68bed92d2ba"
      ],
      "author": {
        "name": "Josef \u0027Jeff\u0027 Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Thu Jul 19 01:48:18 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:45 2007 -0700"
      },
      "message": "fs: introduce vfs_path_lookup\n\nStackable file systems, among others, frequently need to lookup paths or\npath components starting from an arbitrary point in the namespace\n(identified by a dentry and a vfsmount).  Currently, such file systems use\nlookup_one_len, which is frowned upon [1] as it does not pass the lookup\nintent along; not passing a lookup intent, for example, can trigger BUG_ON\u0027s\nwhen stacking on top of NFSv4.\n\nThe first patch introduces a new lookup function to allow lookup starting\nfrom an arbitrary point in the namespace.  This approach has been suggested\nby Christoph Hellwig [2].\n\nThe second patch changes sunrpc to use vfs_path_lookup.\n\nThe third patch changes nfsctl.c to use vfs_path_lookup.\n\nThe fourth patch marks link_path_walk static.\n\nThe fifth, and last patch, unexports path_walk because it is no longer\nunnecessary to call it directly, and using the new vfs_path_lookup is\ncleaner.\n\nFor example, the following snippet of code, looks up \"some/path/component\"\nin a directory pointed to by parent_{dentry,vfsmnt}:\n\nerr \u003d vfs_path_lookup(parent_dentry, parent_vfsmnt,\n\t\t      \"some/path/component\", 0, \u0026nd);\nif (!err) {\n\t/* exits */\n\n\t...\n\n\t/* once done, release the references */\n\tpath_release(\u0026nd);\n} else if (err \u003d\u003d -ENOENT) {\n\t/* doesn\u0027t exist */\n} else {\n\t/* other error */\n}\n\nVFS functions such as lookup_create can be used on the nameidata structure\nto pass the create intent to the file system.\n\nSigned-off-by: Josef \u0027Jeff\u0027 Sipek \u003cjsipek@cs.sunysb.edu\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Michael Halcrow \u003cmhalcrow@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": "b6a2fea39318e43fee84fa7b0b90d68bed92d2ba",
      "tree": "c9c3619cb2730b5c10c7427b837146bce3d69156",
      "parents": [
        "bdf4c48af20a3b0f01671799ace345e3d49576da"
      ],
      "author": {
        "name": "Ollie Wild",
        "email": "aaw@google.com",
        "time": "Thu Jul 19 01:48:16 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:45 2007 -0700"
      },
      "message": "mm: variable length argument support\n\nRemove the arg+env limit of MAX_ARG_PAGES by copying the strings directly from\nthe old mm into the new mm.\n\nWe create the new mm before the binfmt code runs, and place the new stack at\nthe very top of the address space.  Once the binfmt code runs and figures out\nwhere the stack should be, we move it downwards.\n\nIt is a bit peculiar in that we have one task with two mm\u0027s, one of which is\ninactive.\n\n[a.p.zijlstra@chello.nl: limit stack size]\nSigned-off-by: Ollie Wild \u003caaw@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\n[bunk@stusta.de: unexport bprm_mm_init]\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bdf4c48af20a3b0f01671799ace345e3d49576da",
      "tree": "7c3b903d2de1cba6e212ad6f347bc8742b08035a",
      "parents": [
        "b111757c50ee30dad162192df6168e270a90c252"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jul 19 01:48:15 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:45 2007 -0700"
      },
      "message": "audit: rework execve audit\n\nThe purpose of audit_bprm() is to log the argv array to a userspace daemon at\nthe end of the execve system call.  Since user-space hasn\u0027t had time to run,\nthis array is still in pristine state on the process\u0027 stack; so no need to\ncopy it, we can just grab it from there.\n\nIn order to minimize the damage to audit_log_*() copy each string into a\ntemporary kernel buffer first.\n\nCurrently the audit code requires that the full argument vector fits in a\nsingle packet.  So currently it does clip the argv size to a (sysctl) limit,\nbut only when execve auditing is enabled.\n\nIf the audit protocol gets extended to allow for multiple packets this check\ncan be removed.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ollie Wild \u003caaw@google.com\u003e\nCc: \u003clinux-audit@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": "b111757c50ee30dad162192df6168e270a90c252",
      "tree": "49a38ddb2fd5f53ceb4f76c802c2185c1be9a6c6",
      "parents": [
        "f34e3b61f2be9628bd41244f3ecc42009c5eced5"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jul 19 01:48:14 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:45 2007 -0700"
      },
      "message": "arch: personality independent stack top\n\nNew arch macro STACK_TOP_MAX it gives the larges valid stack address for the\narchitecture in question.\n\nIt differs from STACK_TOP in that it will not distinguish between\npersonalities but will always return the largest possible address.\n\nThis is used to create the initial stack on execve, which we will move down to\nthe proper location once the binfmt code has figured out where that is.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ollie Wild \u003caaw@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": "f34e3b61f2be9628bd41244f3ecc42009c5eced5",
      "tree": "192a64c12f84b3d69b9bf12ba56c2c7d86bc269b",
      "parents": [
        "5fb7dc37dc16fbc8b80d81318a582201ef7e280d"
      ],
      "author": {
        "name": "Fenghua Yu",
        "email": "fenghua.yu@intel.com",
        "time": "Thu Jul 19 01:48:13 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:45 2007 -0700"
      },
      "message": "use the new percpu interface for shared data\n\nCurrently most of the per cpu data, which is accessed by different cpus,\nhas a ____cacheline_aligned_in_smp attribute.  Move all this data to the\nnew per cpu shared data section: .data.percpu.shared_aligned.\n\nThis will seperate the percpu data which is referenced frequently by other\ncpus from the local only percpu data.\n\nSigned-off-by: Fenghua Yu \u003cfenghua.yu@intel.com\u003e\nAcked-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\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": "5fb7dc37dc16fbc8b80d81318a582201ef7e280d",
      "tree": "4d6bb4441ece64380e7186ebadd35ad2f5486f9f",
      "parents": [
        "3d7e33825d8799115dd2495c9944badd3272a623"
      ],
      "author": {
        "name": "Fenghua Yu",
        "email": "fenghua.yu@intel.com",
        "time": "Thu Jul 19 01:48:12 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:44 2007 -0700"
      },
      "message": "define new percpu interface for shared data\n\nper cpu data section contains two types of data.  One set which is\nexclusively accessed by the local cpu and the other set which is per cpu,\nbut also shared by remote cpus.  In the current kernel, these two sets are\nnot clearely separated out.  This can potentially cause the same data\ncacheline shared between the two sets of data, which will result in\nunnecessary bouncing of the cacheline between cpus.\n\nOne way to fix the problem is to cacheline align the remotely accessed per\ncpu data, both at the beginning and at the end.  Because of the padding at\nboth ends, this will likely cause some memory wastage and also the\ninterface to achieve this is not clean.\n\nThis patch:\n\nMoves the remotely accessed per cpu data (which is currently marked\nas ____cacheline_aligned_in_smp) into a different section, where all the data\nelements are cacheline aligned. And as such, this differentiates the local\nonly data and remotely accessed data cleanly.\n\nSigned-off-by: Fenghua Yu \u003cfenghua.yu@intel.com\u003e\nAcked-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\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": "3d7e33825d8799115dd2495c9944badd3272a623",
      "tree": "869eeefa9dd88c622db199f636cd1785c6099947",
      "parents": [
        "9e367d859297b9377d65574f538cf52730e9eda8"
      ],
      "author": {
        "name": "Michael Ellerman",
        "email": "michael@ellerman.id.au",
        "time": "Thu Jul 19 01:48:11 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:44 2007 -0700"
      },
      "message": "jprobes: make jprobes a little safer for users\n\nI realise jprobes are a razor-blades-included type of interface, but that\ndoesn\u0027t mean we can\u0027t try and make them safer to use.  This guy I know once\nwrote code like this:\n\nstruct jprobe jp \u003d { .kp.symbol_name \u003d \"foo\", .entry \u003d \"jprobe_foo\" };\n\nAnd then his kernel exploded. Oops.\n\nThis patch adds an arch hook, arch_deref_entry_point() (I don\u0027t like it\neither) which takes the void * in a struct jprobe, and gives back the text\naddress that it represents.\n\nWe can then use that in register_jprobe() to check that the entry point we\u0027re\npassed is actually in the kernel text, rather than just some random value.\n\nSigned-off-by: Michael Ellerman \u003cmichael@ellerman.id.au\u003e\nCc: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\nAcked-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9e367d859297b9377d65574f538cf52730e9eda8",
      "tree": "c7d4e7c3d1521810981d1623c5100a44600c603f",
      "parents": [
        "81eae375eceba481ca4c605d42913871f093f6d5"
      ],
      "author": {
        "name": "Michael Ellerman",
        "email": "michael@ellerman.id.au",
        "time": "Thu Jul 19 01:48:10 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:44 2007 -0700"
      },
      "message": "jprobes: remove JPROBE_ENTRY()\n\nAFAICT now that jprobe.entry is a void *, JPROBE_ENTRY doesn\u0027t do anything\nuseful - so remove it ..\n\nI\u0027ve left a do-nothing version so that out-of-tree jprobes code will still\ncompile without modifications.\n\nSigned-off-by: Michael Ellerman \u003cmichael@ellerman.id.au\u003e\nCc: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\nAcked-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "81eae375eceba481ca4c605d42913871f093f6d5",
      "tree": "c3f1b345b4a42674ea4087aef336f0bf5be1df5e",
      "parents": [
        "f9acc8c7b35a100f3a9e0e6977f7807b0169f9a5"
      ],
      "author": {
        "name": "Michael Ellerman",
        "email": "michael@ellerman.id.au",
        "time": "Thu Jul 19 01:48:09 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:44 2007 -0700"
      },
      "message": "jprobes: make struct jprobe.entry a void *\n\nCurrently jprobe.entry is a kprobe_opcode_t *, but that\u0027s a lie.  On some\nplatforms it doesn\u0027t point to an opcode at all, it points to a function\ndescriptor.\n\nIt\u0027s really a pointer to something that the arch code can turn into a function\nentry point.  And that\u0027s what actually happens, none of the generic code ever\nlooks at jprobe.entry, it\u0027s only ever dereferenced by arch code.\n\nSo just make it a void *.\n\nSigned-off-by: Michael Ellerman \u003cmichael@ellerman.id.au\u003e\nCc: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\nAcked-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f9acc8c7b35a100f3a9e0e6977f7807b0169f9a5",
      "tree": "6a4dcd227bb698a217a1d42d37e3f0135a444ea4",
      "parents": [
        "cf914a7d656e62b9dd3e0dffe4f62b953ae6048d"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "wfg@mail.ustc.edu.cn",
        "time": "Thu Jul 19 01:48:08 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:44 2007 -0700"
      },
      "message": "readahead: sanify file_ra_state names\n\nRename some file_ra_state variables and remove some accessors.\n\nIt results in much simpler code.\nKudos to Rusty!\n\nSigned-off-by: Fengguang Wu \u003cwfg@mail.ustc.edu.cn\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": "cf914a7d656e62b9dd3e0dffe4f62b953ae6048d",
      "tree": "baf7e79de006ca80eac426d2d1be4c52f5f19624",
      "parents": [
        "fe3cba17c49471e99d3421e675fc8b3deaaf0b70"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jul 19 01:48:08 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:44 2007 -0700"
      },
      "message": "readahead: split ondemand readahead interface into two functions\n\nSplit ondemand readahead interface into two functions.  I think this makes it\na little clearer for non-readahead experts (like Rusty).\n\nInternally they both call ondemand_readahead(), but the page argument is\nchanged to an obvious boolean flag.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Fengguang Wu \u003cwfg@mail.ustc.edu.cn\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fe3cba17c49471e99d3421e675fc8b3deaaf0b70",
      "tree": "df696c4584c6db2e439f068d2474fcb946ca587d",
      "parents": [
        "d8983910a4045fa21022cfccf76ed13eb40fd7f5"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "wfg@mail.ustc.edu.cn",
        "time": "Thu Jul 19 01:48:07 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:44 2007 -0700"
      },
      "message": "mm: share PG_readahead and PG_reclaim\n\nShare the same page flag bit for PG_readahead and PG_reclaim.\n\nOne is used only on file reads, another is only for emergency writes.  One\nis used mostly for fresh/young pages, another is for old pages.\n\nCombinations of possible interactions are:\n\na) clear PG_reclaim \u003d\u003e implicit clear of PG_readahead\n\tit will delay an asynchronous readahead into a synchronous one\n\tit actually does _good_ for readahead:\n\t\tthe pages will be reclaimed soon, it\u0027s readahead thrashing!\n\t\tin this case, synchronous readahead makes more sense.\n\nb) clear PG_readahead \u003d\u003e implicit clear of PG_reclaim\n\tone(and only one) page will not be reclaimed in time\n\tit can be avoided by checking PageWriteback(page) in readahead first\n\nc) set PG_reclaim \u003d\u003e implicit set of PG_readahead\n\twill confuse readahead and make it restart the size rampup process\n\tit\u0027s a trivial problem, and can mostly be avoided by checking\n\tPageWriteback(page) first in readahead\n\nd) set PG_readahead \u003d\u003e implicit set of PG_reclaim\n\tPG_readahead will never be set on already cached pages.\n\tPG_reclaim will always be cleared on dirtying a page.\n\tso not a problem.\n\nIn summary,\n\ta)   we get better behavior\n\tb,d) possible interactions can be avoided\n\tc)   racy condition exists that might affect readahead, but the chance\n\t     is _really_ low, and the hurt on readahead is trivial.\n\nCompound pages also use PG_reclaim, but for now they do not interact with\nreclaim/readahead code.\n\nSigned-off-by: Fengguang Wu \u003cwfg@mail.ustc.edu.cn\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": "d8983910a4045fa21022cfccf76ed13eb40fd7f5",
      "tree": "81902a5157ace03a94aa4b62599a20bc87f7a1c0",
      "parents": [
        "431a4820bfcdf7ff530e745230bafb06c9bf2d6d"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "wfg@mail.ustc.edu.cn",
        "time": "Thu Jul 19 01:48:06 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:44 2007 -0700"
      },
      "message": "readahead: pass real splice size\n\nPass real splice size to page_cache_readahead_ondemand().\n\nThe splice code works in chunks of 16 pages internally.  The readahead code\nshould be told of the overall splice size, instead of the internal chunk size.\n Otherwize bad things may happen.  Imagine some 17-page random splice reads.\nThe code before this patch will result in two readahead calls: readahead(16);\nreadahead(1); That leads to one 16-page I/O and one 32-page I/O: one extra I/O\nand 31 readahead miss pages.\n\nSigned-off-by: Fengguang Wu \u003cwfg@mail.ustc.edu.cn\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.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": "431a4820bfcdf7ff530e745230bafb06c9bf2d6d",
      "tree": "0b2396609deec8da5697979bce4c8ee18af254e6",
      "parents": [
        "c743d96b6d2ff55a94df7b5ac7c74987bb9c343b"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "wfg@mail.ustc.edu.cn",
        "time": "Thu Jul 19 01:48:05 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:44 2007 -0700"
      },
      "message": "readahead: move synchronous readahead call out of splice loop\n\nMove synchronous page_cache_readahead_ondemand() call out of splice loop.\n\nThis avoids one pointless page allocation/insertion in case of non-zero\nra_pages, or many pointless readahead calls in case of zero ra_pages.\n\nNote that if a user sets ra_pages to less than PIPE_BUFFERS\u003d16 pages, he will\nnot get expected readahead behavior anyway.  The splice code works in batches\nof 16 pages, which can be taken as another form of synchronous readahead.\n\nSigned-off-by: Fengguang Wu \u003cwfg@mail.ustc.edu.cn\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.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": "c743d96b6d2ff55a94df7b5ac7c74987bb9c343b",
      "tree": "391e5dad21e62590e343c63e5ba05322d0fc76ad",
      "parents": [
        "dc7868fcb9a73990e6f30371c1be465c436a7a7f"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "wfg@mail.ustc.edu.cn",
        "time": "Thu Jul 19 01:48:04 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:44 2007 -0700"
      },
      "message": "readahead: remove the old algorithm\n\nRemove the old readahead algorithm.\n\nSigned-off-by: Fengguang Wu \u003cwfg@mail.ustc.edu.cn\u003e\nCc: Steven Pratt \u003cslpratt@austin.ibm.com\u003e\nCc: Ram Pai \u003clinuxram@us.ibm.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": "dc7868fcb9a73990e6f30371c1be465c436a7a7f",
      "tree": "21dfd3e625bb4a9f78a7795f0a5b110c3dd8843e",
      "parents": [
        "a08a166fe77d9f9ad88ed6d06b97e73453661f89"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "wfg@mail.ustc.edu.cn",
        "time": "Thu Jul 19 01:48:04 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:44 2007 -0700"
      },
      "message": "readahead: convert ext3/ext4 invocations\n\nConvert ext3/ext4 dir reads to use on-demand readahead.\n\nReadahead for dirs operates _not_ on file level, but on blockdev level.  This\nmakes a difference when the data blocks are not continuous.  And the read\nroutine is somehow opaque: there\u0027s no handy info about the status of current\npage.  So a simplified call scheme is employed: to call into readahead\nwhenever the current page falls out of readahead windows.\n\nSigned-off-by: Fengguang Wu \u003cwfg@mail.ustc.edu.cn\u003e\nCc: Steven Pratt \u003cslpratt@austin.ibm.com\u003e\nCc: Ram Pai \u003clinuxram@us.ibm.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": "a08a166fe77d9f9ad88ed6d06b97e73453661f89",
      "tree": "ea7e8aa2936e12ee4f81c7f0c6b8b130021ebe56",
      "parents": [
        "3ea89ee86a82e9fbde37018d9b9e92a552e5fd13"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "wfg@mail.ustc.edu.cn",
        "time": "Thu Jul 19 01:48:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:44 2007 -0700"
      },
      "message": "readahead: convert splice invocations\n\nConvert splice reads to use on-demand readahead.\n\nSigned-off-by: Fengguang Wu \u003cwfg@mail.ustc.edu.cn\u003e\nCc: Steven Pratt \u003cslpratt@austin.ibm.com\u003e\nCc: Ram Pai \u003clinuxram@us.ibm.com\u003e\nCc: Jens Axboe \u003caxboe@suse.de\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": "3ea89ee86a82e9fbde37018d9b9e92a552e5fd13",
      "tree": "5fef7216ef39d66684754e4aadf368ce9adfd72e",
      "parents": [
        "122a21d11cbfda6d1e33cbc8ae9e4c4ee2f1886e"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "wfg@mail.ustc.edu.cn",
        "time": "Thu Jul 19 01:48:02 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:44 2007 -0700"
      },
      "message": "readahead: convert filemap invocations\n\nConvert filemap reads to use on-demand readahead.\n\nThe new call scheme is to\n- call readahead on non-cached page\n- call readahead on look-ahead page\n- update prev_index when finished with the read request\n\nSigned-off-by: Fengguang Wu \u003cwfg@mail.ustc.edu.cn\u003e\nCc: Steven Pratt \u003cslpratt@austin.ibm.com\u003e\nCc: Ram Pai \u003clinuxram@us.ibm.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": "122a21d11cbfda6d1e33cbc8ae9e4c4ee2f1886e",
      "tree": "e13f4e2dd0f838f5f922ed047e5ee56bf3546f21",
      "parents": [
        "5ce1110b92b31d079aa443e967f43a2294e01194"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "wfg@mail.ustc.edu.cn",
        "time": "Thu Jul 19 01:48:01 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:44 2007 -0700"
      },
      "message": "readahead: on-demand readahead logic\n\nThis is a minimal readahead algorithm that aims to replace the current one.\nIt is more flexible and reliable, while maintaining almost the same behavior\nand performance.  Also it is full integrated with adaptive readahead.\n\nIt is designed to be called on demand:\n\t- on a missing page, to do synchronous readahead\n\t- on a lookahead page, to do asynchronous readahead\n\nIn this way it eliminated the awkward workarounds for cache hit/miss,\nreadahead thrashing, retried read, and unaligned read.  It also adopts the\ndata structure introduced by adaptive readahead, parameterizes readahead\npipelining with `lookahead_index\u0027, and reduces the current/ahead windows to\none single window.\n\nHEURISTICS\n\nThe logic deals with four cases:\n\n\t- sequential-next\n\t\tfound a consistent readahead window, so push it forward\n\n\t- random\n\t\tstandalone small read, so read as is\n\n\t- sequential-first\n\t\tcreate a new readahead window for a sequential/oversize request\n\n\t- lookahead-clueless\n\t\thit a lookahead page not associated with the readahead window,\n\t\tso create a new readahead window and ramp it up\n\nIn each case, three parameters are determined:\n\n\t- readahead index: where the next readahead begins\n\t- readahead size:  how much to readahead\n\t- lookahead size:  when to do the next readahead (for pipelining)\n\nBEHAVIORS\n\nThe old behaviors are maximally preserved for trivial sequential/random reads.\nNotable changes are:\n\n\t- It no longer imposes strict sequential checks.\n\t  It might help some interleaved cases, and clustered random reads.\n\t  It does introduce risks of a random lookahead hit triggering an\n\t  unexpected readahead. But in general it is more likely to do good\n\t  than to do evil.\n\n\t- Interleaved reads are supported in a minimal way.\n\t  Their chances of being detected and proper handled are still low.\n\n\t- Readahead thrashings are better handled.\n\t  The current readahead leads to tiny average I/O sizes, because it\n\t  never turn back for the thrashed pages.  They have to be fault in\n\t  by do_generic_mapping_read() one by one.  Whereas the on-demand\n\t  readahead will redo readahead for them.\n\nOVERHEADS\n\nThe new code reduced the overheads of\n\n\t- excessively calling the readahead routine on small sized reads\n\t  (the current readahead code insists on seeing all requests)\n\n\t- doing a lot of pointless page-cache lookups for small cached files\n\t  (the current readahead only turns itself off after 256 cache hits,\n\t  unfortunately most files are \u003c 1MB, so never see that chance)\n\nThat accounts for speedup of\n\t- 0.3% on 1-page sequential reads on sparse file\n\t- 1.2% on 1-page cache hot sequential reads\n\t- 3.2% on 256-page cache hot sequential reads\n\t- 1.3% on cache hot `tar /lib`\n\nHowever, it does introduce one extra page-cache lookup per cache miss, which\nimpacts random reads slightly. That\u0027s 1% overheads for 1-page random reads on\nsparse file.\n\nPERFORMANCE\n\nThe basic benchmark setup is\n\t- 2.6.20 kernel with on-demand readahead\n\t- 1MB max readahead size\n\t- 2.9GHz Intel Core 2 CPU\n\t- 2GB memory\n\t- 160G/8M Hitachi SATA II 7200 RPM disk\n\nThe benchmarks show that\n\t- it maintains the same performance for trivial sequential/random reads\n\t- sysbench/OLTP performance on MySQL gains up to 8%\n\t- performance on readahead thrashing gains up to 3 times\n\niozone throughput (KB/s): roughly the same\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\niozone -c -t1 -s 4096m -r 64k\n\n\t\t\t       2.6.20          on-demand      gain\nfirst run\n\t  \"  Initial write \"   61437.27        64521.53      +5.0%\n\t  \"        Rewrite \"   47893.02        48335.20      +0.9%\n\t  \"           Read \"   62111.84        62141.49      +0.0%\n\t  \"        Re-read \"   62242.66        62193.17      -0.1%\n\t  \"   Reverse Read \"   50031.46        49989.79      -0.1%\n\t  \"    Stride read \"    8657.61         8652.81      -0.1%\n\t  \"    Random read \"   13914.28        13898.23      -0.1%\n\t  \" Mixed workload \"   19069.27        19033.32      -0.2%\n\t  \"   Random write \"   14849.80        14104.38      -5.0%\n\t  \"         Pwrite \"   62955.30        65701.57      +4.4%\n\t  \"          Pread \"   62209.99        62256.26      +0.1%\n\nsecond run\n\t  \"  Initial write \"   60810.31        66258.69      +9.0%\n\t  \"        Rewrite \"   49373.89        57833.66     +17.1%\n\t  \"           Read \"   62059.39        62251.28      +0.3%\n\t  \"        Re-read \"   62264.32        62256.82      -0.0%\n\t  \"   Reverse Read \"   49970.96        50565.72      +1.2%\n\t  \"    Stride read \"    8654.81         8638.45      -0.2%\n\t  \"    Random read \"   13901.44        13949.91      +0.3%\n\t  \" Mixed workload \"   19041.32        19092.04      +0.3%\n\t  \"   Random write \"   14019.99        14161.72      +1.0%\n\t  \"         Pwrite \"   64121.67        68224.17      +6.4%\n\t  \"          Pread \"   62225.08        62274.28      +0.1%\n\nIn summary, writes are unstable, reads are pretty close on average:\n\n\t\t\t  access pattern  2.6.20  on-demand   gain\n\t\t\t\t   Read  62085.61  62196.38  +0.2%\n\t\t\t\tRe-read  62253.49  62224.99  -0.0%\n\t\t\t   Reverse Read  50001.21  50277.75  +0.6%\n\t\t\t    Stride read   8656.21   8645.63  -0.1%\n\t\t\t    Random read  13907.86  13924.07  +0.1%\n\t \t\t Mixed workload  19055.29  19062.68  +0.0%\n\t\t\t\t  Pread  62217.53  62265.27  +0.1%\n\naio-stress: roughly the same\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\naio-stress -l -s4096 -r128 -t1 -o1 knoppix511-dvd-cn.iso\naio-stress -l -s4096 -r128 -t1 -o3 knoppix511-dvd-cn.iso\n\n\t\t\t\t\t2.6.20      on-demand  delta\n\t\t\tsequential\t 92.57s      92.54s    -0.0%\n\t\t\trandom\t\t311.87s     312.15s    +0.1%\n\nsysbench fileio: roughly the same\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nsysbench --test\u003dfileio --file-io-mode\u003dasync --file-test-mode\u003drndrw \\\n\t --file-total-size\u003d4G --file-block-size\u003d64K \\\n\t --num-threads\u003d001 --max-requests\u003d10000 --max-time\u003d900 run\n\n\t\t\t\tthreads    2.6.20   on-demand    delta\n\t\tfirst run\n\t\t\t\t      1   59.1974s    59.2262s  +0.0%\n\t\t\t\t      2   58.0575s    58.2269s  +0.3%\n\t\t\t\t      4   48.0545s    47.1164s  -2.0%\n\t\t\t\t      8   41.0684s    41.2229s  +0.4%\n\t\t\t\t     16   35.8817s    36.4448s  +1.6%\n\t\t\t\t     32   32.6614s    32.8240s  +0.5%\n\t\t\t\t     64   23.7601s    24.1481s  +1.6%\n\t\t\t\t    128   24.3719s    23.8225s  -2.3%\n\t\t\t\t    256   23.2366s    22.0488s  -5.1%\n\n\t\tsecond run\n\t\t\t\t      1   59.6720s    59.5671s  -0.2%\n\t\t\t\t      8   41.5158s    41.9541s  +1.1%\n\t\t\t\t     64   25.0200s    23.9634s  -4.2%\n\t\t\t\t    256   22.5491s    20.9486s  -7.1%\n\nNote that the numbers are not very stable because of the writes.\nThe overall performance is close when we sum all seconds up:\n\n                sum all up               495.046s    491.514s   -0.7%\n\nsysbench oltp (trans/sec): up to 8% gain\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nsysbench --test\u003doltp --oltp-table-size\u003d10000000 --oltp-read-only \\\n\t --mysql-socket\u003d/var/run/mysqld/mysqld.sock \\\n\t --mysql-user\u003droot --mysql-password\u003dreadahead \\\n\t --num-threads\u003d064 --max-requests\u003d10000 --max-time\u003d900 run\n\n\t10000-transactions run\n\t\t\t\tthreads    2.6.20   on-demand    gain\n\t\t\t\t      1     62.81       64.56   +2.8%\n\t\t\t\t      2     67.97       70.93   +4.4%\n\t\t\t\t      4     81.81       85.87   +5.0%\n\t\t\t\t      8     94.60       97.89   +3.5%\n\t\t\t\t     16     99.07      104.68   +5.7%\n\t\t\t\t     32     95.93      104.28   +8.7%\n\t\t\t\t     64     96.48      103.68   +7.5%\n\t5000-transactions run\n\t\t\t\t      1     48.21       48.65   +0.9%\n\t\t\t\t      8     68.60       70.19   +2.3%\n\t\t\t\t     64     70.57       74.72   +5.9%\n\t2000-transactions run\n\t\t\t\t      1     37.57       38.04   +1.3%\n\t\t\t\t      2     38.43       38.99   +1.5%\n\t\t\t\t      4     45.39       46.45   +2.3%\n\t\t\t\t      8     51.64       52.36   +1.4%\n\t\t\t\t     16     54.39       55.18   +1.5%\n\t\t\t\t     32     52.13       54.49   +4.5%\n\t\t\t\t     64     54.13       54.61   +0.9%\n\nThat\u0027s interesting results. Some investigations show that\n\t- MySQL is accessing the db file non-uniformly: some parts are\n\t  more hot than others\n\t- It is mostly doing 4-page random reads, and sometimes doing two\n\t  reads in a row, the latter one triggers a 16-page readahead.\n\t- The on-demand readahead leaves many lookahead pages (flagged\n\t  PG_readahead) there. Many of them will be hit, and trigger\n\t  more readahead pages. Which might save more seeks.\n\t- Naturally, the readahead windows tend to lie in hot areas,\n\t  and the lookahead pages in hot areas is more likely to be hit.\n\t- The more overall read density, the more possible gain.\n\nThat also explains the adaptive readahead tricks for clustered random reads.\n\nreadahead thrashing: 3 times better\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nWe boot kernel with \"mem\u003d128m single\", and start a 100KB/s stream on every\nsecond, until reaching 200 streams.\n\n\t\t\t      max throughput     min avg I/O size\n\t\t2.6.20:            5MB/s               16KB\n\t\ton-demand:        15MB/s              140KB\n\nSigned-off-by: Fengguang Wu \u003cwfg@mail.ustc.edu.cn\u003e\nCc: Steven Pratt \u003cslpratt@austin.ibm.com\u003e\nCc: Ram Pai \u003clinuxram@us.ibm.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": "5ce1110b92b31d079aa443e967f43a2294e01194",
      "tree": "eff95b4c8ede07d0777ca68a30d686d1acbb5c73",
      "parents": [
        "f615bfca468c9b80ed2d09be5fdbaf470a32c045"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "wfg@mail.ustc.edu.cn",
        "time": "Thu Jul 19 01:47:59 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:44 2007 -0700"
      },
      "message": "readahead: data structure and routines\n\nExtend struct file_ra_state to support the on-demand readahead logic.  Also\ndefine some helpers for it.\n\nSigned-off-by: Fengguang Wu \u003cwfg@mail.ustc.edu.cn\u003e\nCc: Steven Pratt \u003cslpratt@austin.ibm.com\u003e\nCc: Ram Pai \u003clinuxram@us.ibm.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": "f615bfca468c9b80ed2d09be5fdbaf470a32c045",
      "tree": "4771fd91ae020efaafbe653ad78ba5e32d56e8a3",
      "parents": [
        "46fc3e7b4e7233a0ac981ac9084b55217318d04d"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "wfg@mail.ustc.edu.cn",
        "time": "Thu Jul 19 01:47:58 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:43 2007 -0700"
      },
      "message": "readahead: MIN_RA_PAGES/MAX_RA_PAGES macros\n\nDefine two convenient macros for read-ahead:\n\t- MAX_RA_PAGES: rounded down counterpart of VM_MAX_READAHEAD\n\t- MIN_RA_PAGES: rounded _up_ counterpart of VM_MIN_READAHEAD\n\nNote that the rounded up MIN_RA_PAGES will work flawlessly with _large_\npage sizes like 64k.\n\nSigned-off-by: Fengguang Wu \u003cwfg@mail.ustc.edu.cn\u003e\nCc: Steven Pratt \u003cslpratt@austin.ibm.com\u003e\nCc: Ram Pai \u003clinuxram@us.ibm.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\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": "46fc3e7b4e7233a0ac981ac9084b55217318d04d",
      "tree": "555bededb43671605fa085d3b4d330d31aa4af5c",
      "parents": [
        "d77c2d7cc5126639a47d73300b40d461f2811a0f"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "wfg@mail.ustc.edu.cn",
        "time": "Thu Jul 19 01:47:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:43 2007 -0700"
      },
      "message": "readahead: add look-ahead support to __do_page_cache_readahead()\n\nAdd look-ahead support to __do_page_cache_readahead().\n\nIt works by\n\t- mark the Nth backwards page with PG_readahead,\n\t(which instructs the page\u0027s first reader to invoke readahead)\n\t- and only do the marking for newly allocated pages.\n\t(to prevent blindly doing readahead on already cached pages)\n\nLook-ahead is a technique to achieve I/O pipelining:\n\nWhile the application is working through a chunk of cached pages, the kernel\nreads-ahead the next chunk of pages _before_ time of need.  It effectively\nhides low level I/O latencies to high level applications.\n\nSigned-off-by: Fengguang Wu \u003cwfg@mail.ustc.edu.cn\u003e\nCc: Steven Pratt \u003cslpratt@austin.ibm.com\u003e\nCc: Ram Pai \u003clinuxram@us.ibm.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": "d77c2d7cc5126639a47d73300b40d461f2811a0f",
      "tree": "d02b32ca92fde9a04be9bee0f0b7c8961479448c",
      "parents": [
        "2ba2d00363975242dee9bb22cf798b487e3cd61e"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "wfg@mail.ustc.edu.cn",
        "time": "Thu Jul 19 01:47:55 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:43 2007 -0700"
      },
      "message": "readahead: introduce PG_readahead\n\nIntroduce a new page flag: PG_readahead.\n\nIt acts as a look-ahead mark, which tells the page reader: Hey, it\u0027s time to\ninvoke the read-ahead logic.  For the sake of I/O pipelining, don\u0027t wait until\nit runs out of cached pages!\n\nSigned-off-by: Fengguang Wu \u003cwfg@mail.ustc.edu.cn\u003e\nCc: Steven Pratt \u003cslpratt@austin.ibm.com\u003e\nCc: Ram Pai \u003clinuxram@us.ibm.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": "2ba2d00363975242dee9bb22cf798b487e3cd61e",
      "tree": "26bc53fb314ec9d585f07a5866c275ff1bfbc1aa",
      "parents": [
        "64ee4808a786caade50362d5057f65314fdf2f36"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Thu Jul 19 01:47:55 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:43 2007 -0700"
      },
      "message": "AIO sparse fix (type of ki_flags)\n\nFix type issue reported by latest \u0027sparse\u0027: kiocb.ki_flags should be\n\"unsigned long\" (not \"long\"), to match bitop type signature.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Benjamin LaHaise \u003cbcrl@kvack.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "64ee4808a786caade50362d5057f65314fdf2f36",
      "tree": "8eaed3de1a0cc0aa2e4189e5b3a7ff9505e60dee",
      "parents": [
        "39ef01e00daf6d860783f1a836f765265a9d3b47"
      ],
      "author": {
        "name": "Michael Halcrow",
        "email": "mhalcrow@us.ibm.com",
        "time": "Thu Jul 19 01:47:54 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:43 2007 -0700"
      },
      "message": "eCryptfs: ecryptfs_setattr() bugfix\n\nThere is another bug recently introduced into the ecryptfs_setattr()\nfunction in 2.6.22.  eCryptfs will attempt to treat special files like\nregular eCryptfs files on chmod, chown, and so forth.  This leads to a NULL\npointer dereference.  This patch validates that the file is a regular file\nbefore proceeding with operations related to the inode\u0027s crypt_stat.\n\nThanks to Ryusuke Konishi for finding this bug and suggesting the fix.\n\nSigned-off-by: Michael Halcrow \u003cmhalcrow@us.ibm.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": "39ef01e00daf6d860783f1a836f765265a9d3b47",
      "tree": "b118a71490e5f4cf58b6756e7f24e537838c8e37",
      "parents": [
        "4004c69ad68dd03733179277280ea2946990ba36"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Thu Jul 19 01:47:53 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:43 2007 -0700"
      },
      "message": "mbcs: Remove lots of global symbols\n\nMBCS has a collection of things that searches say are not used elsewhere\nand could be static.  If this is the case they should be static, if not\nthen someone at SGI should rename things like \"soft_list\" so they don\u0027t\npollute the global namespace with generic names...\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nAcked-by: Bruce Losure \u003cblosure@sgi.com\u003e\nCc: Jes Sorensen \u003cjes@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4004c69ad68dd03733179277280ea2946990ba36",
      "tree": "521f206229832f757c0f7652101d187a7a6ff5c8",
      "parents": [
        "a0a9983509f45b2225ca87fdcf7b40ea916834ed"
      ],
      "author": {
        "name": "Ravikiran G Thirumalai",
        "email": "kiran@scalex86.org",
        "time": "Thu Jul 19 01:47:53 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:43 2007 -0700"
      },
      "message": "Avoid too many remote cpu references due to /proc/stat\n\nOptimize show_stat to collect per-irq information just once.\n\nOn x86_64, with newer kernel versions, kstat_irqs is a bit of a problem.\nOn every call to kstat_irqs, the process brings in per-cpu data from all\nonline cpus.  Doing this for NR_IRQS, which is now 256 + 32 * NR_CPUS\nresults in (256+32*63) * 63 remote cpu references on a 64 cpu config.\nConsidering the fact that we already compute this value per-cpu, we can\nsave on the remote references as below.\n\nSigned-off-by: Alok N Kataria \u003calok.kataria@calsoftinc.com\u003e\nSigned-off-by: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a0a9983509f45b2225ca87fdcf7b40ea916834ed",
      "tree": "a70151c57f184bccd24175fa19a585021e297973",
      "parents": [
        "e53252d97e670a38b1d2e9723b48077bba11ddda"
      ],
      "author": {
        "name": "David Brownell",
        "email": "david-b@pacbell.net",
        "time": "Thu Jul 19 01:47:52 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:43 2007 -0700"
      },
      "message": "gpio calls don\u0027t need i/o barriers\n\nClarify that drivers using the GPIO operations don\u0027t need to issue io\nbarrier instructions themselves.  Previously this wasn\u0027t clear, and at\nleast one platform assumed otherwise (and would thus break various\notherwise-portable drivers which don\u0027t issue barriers).\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e53252d97e670a38b1d2e9723b48077bba11ddda",
      "tree": "a9909f22d7f0424214e2576912c0a3300dde3df0",
      "parents": [
        "68fc4fabca897a09f75f53bac14cdc7a98f52210"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Thu Jul 19 01:47:51 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:43 2007 -0700"
      },
      "message": "unregister_chrdev() return void\n\nunregister_chrdev() does not return meaningful value.  This patch makes it\nreturn void like most unregister_* functions.\n\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": "68fc4fabca897a09f75f53bac14cdc7a98f52210",
      "tree": "c010fa0d091a543a966aad82926d0fb5c2831f1f",
      "parents": [
        "cb00ea3528eb3c09eae9871d6e7d038776e952e2"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Thu Jul 19 01:47:50 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:43 2007 -0700"
      },
      "message": "unregister_chrdev(): ignore the return value\n\nunregister_chrdev() always returns 0.  There is no need to check the return\nvalue.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Takashi Iwai \u003ctiwai@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": "cb00ea3528eb3c09eae9871d6e7d038776e952e2",
      "tree": "b87eae0b060f37bedf01b52ccad6034d1df4f376",
      "parents": [
        "95a631e2d9853c9138e14fbaa9a51e6451f040b4"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@gmail.com",
        "time": "Thu Jul 19 01:47:43 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:43 2007 -0700"
      },
      "message": "UDF: coding style conversion - lindent\n\nThis patch converts UDF coding style to kernel coding style using Lindent.\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Jan Kara \u003cjack@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "95a631e2d9853c9138e14fbaa9a51e6451f040b4",
      "tree": "3e804f075206cd625238f6633042e79a6cfb676b",
      "parents": [
        "77afcf78a2ded9a91838734234949c0ead5feb12"
      ],
      "author": {
        "name": "Pavel Machek",
        "email": "pavel@ucw.cz",
        "time": "Thu Jul 19 01:47:42 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:43 2007 -0700"
      },
      "message": "Suspend MAINTAINERS update\n\nI guess it is time to clarify that suspend and hibernation are separate\nthings, and add Rafael as a maintainer.  Plus, people blame us for suspend\nproblems, anyway, I guess it is fair to mark us as suspend maintainers,\ntoo.\n\nSigned-off-by: Pavel Machek \u003cpavel@suse.cz\u003e\nAcked-by: Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "77afcf78a2ded9a91838734234949c0ead5feb12",
      "tree": "76922017855c70d550b40241f8a144f6c098cd04",
      "parents": [
        "5a60d6235c8352ade8f2699e72fcdfe853730456"
      ],
      "author": {
        "name": "Pavel Machek",
        "email": "pavel@suse.cz",
        "time": "Thu Jul 19 01:47:41 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:43 2007 -0700"
      },
      "message": "PM: Integrate beeping flag with existing acpi_sleep flags\n\nMove \"debug during resume from s2ram\" into the variable we already use\nfor real-mode flags to simplify code. It also closes nasty trap for\nthe user in acpi_sleep_setup; order of parameters actually mattered there,\nacpi_sleep\u003ds3_bios,s3_mode doing something different from\nacpi_sleep\u003ds3_mode,s3_bios.\n\nSigned-off-by: Pavel Machek \u003cpavel@suse.cz\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5a60d6235c8352ade8f2699e72fcdfe853730456",
      "tree": "cafab638df562b912e9e2a653e5c7238816d9706",
      "parents": [
        "bd804eba1c8597cbb7cd5a5f9fe886aae16a079a"
      ],
      "author": {
        "name": "Nigel Cunningham",
        "email": "nigel@nigel.suspend2.net",
        "time": "Thu Jul 19 01:47:41 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:43 2007 -0700"
      },
      "message": "PM: Optional beeping during resume from suspend to RAM\n\nAdd a feature allowing the user to make the system beep during a resume from\nsuspend to RAM, on x86_64 and i386.\n\nThis is useful for the users with broken resume from RAM, so that they can\nverify if the control reaches the kernel after a wake-up event.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bd804eba1c8597cbb7cd5a5f9fe886aae16a079a",
      "tree": "082f289809f92db6d23a13cd8fbbb82da125fcda",
      "parents": [
        "d7372cdf6938ccea23ec9fc68970702fed9ec3c8"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 01:47:40 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:42 2007 -0700"
      },
      "message": "PM: Introduce pm_power_off_prepare\n\nIntroduce the pm_power_off_prepare() callback that can be registered by the\ninterested platforms in analogy with pm_idle() and pm_power_off(), used for\npreparing the system to power off (needed by ACPI).\n\nThis allows us to drop acpi_sysclass and device_acpi that are only defined in\norder to register the ACPI power off preparation callback, which is needed by\npm_power_off() registered in a much different way.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d7372cdf6938ccea23ec9fc68970702fed9ec3c8",
      "tree": "bd16d092edccbedf8c1fb5ad0baea0f89276ac71",
      "parents": [
        "6c961dfb7c903cfd1cd71b506863894038fd704f"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 01:47:39 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:42 2007 -0700"
      },
      "message": "ACPI: Do not prepare for hibernation in acpi_shutdown\n\nSince we are now explicitly calling hibernation_ops-\u003eprepare() before\nhibernation_ops-\u003eenter() in hibernation_platform_enter() (defined in\nkernel/power/disk.c), ACPI should not call acpi_sleep_prepare(ACPI_STATE_S4)\nfrom acpi_shutdown().\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Len Brown \u003clenb@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": "6c961dfb7c903cfd1cd71b506863894038fd704f",
      "tree": "32890d6ef2cf735243d804778a5b62951aed4ef5",
      "parents": [
        "ccd4b65aef4be2278543fde5b999e55a4d694fd8"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 01:47:38 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:42 2007 -0700"
      },
      "message": "PM: Reduce code duplication between main.c and user.c\n\nThe SNAPSHOT_S2RAM ioctl code is outdated and it should not duplicate the\nsuspend code in kernel/power/main.c.  Fix that.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Nigel Cunningham \u003cnigel@nigel.suspend2.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ccd4b65aef4be2278543fde5b999e55a4d694fd8",
      "tree": "2753440a79dab444eb3fa01fcaed1c996e1cfe28",
      "parents": [
        "8cdd4936c17bd8085cb0dfacc4a37ccf8d0ada7b"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 01:47:37 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:42 2007 -0700"
      },
      "message": "PM: prevent frozen user mode helpers from failing the freezing of tasks\n\nAt present, if a user mode helper is running while\nusermodehelper_pm_callback() is executed, the helper may be frozen and the\ncompletion in call_usermodehelper_exec() won\u0027t be completed until user\nspace processes are thawed.  As a result, the freezing of kernel threads\nmay fail, which is not desirable.\n\nPrevent this from happening by introducing a counter of running user mode\nhelpers and allowing usermodehelper_pm_callback() to succeed for action \u003d\nPM_HIBERNATION_PREPARE or action \u003d PM_SUSPEND_PREPARE only if there are no\nhelpers running.  [Namely, usermodehelper_pm_callback() waits for at most\nRUNNING_HELPERS_TIMEOUT for the number of running helpers to become zero\nand fails if that doesn\u0027t happen.]\n\nSpecial thanks to Uli Luckas \u003cu.luckas@road.de\u003e, Pavel Machek\n\u003cpavel@ucw.cz\u003e and Oleg Nesterov \u003coleg@tv-sign.ru\u003e for reviewing the\nprevious versions of this patch and for very useful comments.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Uli Luckas \u003cu.luckas@road.de\u003e\nAcked-by: Nigel Cunningham \u003cnigel@nigel.suspend2.net\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\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": "8cdd4936c17bd8085cb0dfacc4a37ccf8d0ada7b",
      "tree": "0a9ff7cf1b1a797b1267beeb317507210f4dd170",
      "parents": [
        "b10d911749d37dccfa5873d2088aea3f074b9e45"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 01:47:36 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:42 2007 -0700"
      },
      "message": "PM: disable usermode helper before hibernation and suspend\n\nUse a hibernation and suspend notifier to disable the user mode helper before\na hibernation/suspend and enable it after the operation.\n\n[akpm@linux-foundation.org: build fix]\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nAcked-by: Nigel Cunningham \u003cnigel@nigel.suspend2.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b10d911749d37dccfa5873d2088aea3f074b9e45",
      "tree": "56bd0ccb2861d7ae562d4e48a737727628358b42",
      "parents": [
        "c2cf7d87d804c66e063829d5ca739053e901dc15"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 01:47:36 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:42 2007 -0700"
      },
      "message": "PM: introduce hibernation and suspend notifiers\n\nMake it possible to register hibernation and suspend notifiers, so that\nsubsystems can perform hibernation-related or suspend-related operations that\nshould not be carried out by device drivers\u0027 .suspend() and .resume()\nroutines.\n\n[akpm@linux-foundation.org: build fixes]\n[akpm@linux-foundation.org: cleanups]\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Nigel Cunningham \u003cnigel@nigel.suspend2.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c2cf7d87d804c66e063829d5ca739053e901dc15",
      "tree": "0c8217d9dca6a3ffcf4073315a6a8f6328639b3a",
      "parents": [
        "e7cd8a722745a01bcfac4d4a52d53391d177da20"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 01:47:35 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:42 2007 -0700"
      },
      "message": "Freezer: remove redundant check in try_to_freeze_tasks\n\nWe don\u0027t need to check if todo is positive before calling time_after() in\ntry_to_freeze_tasks(), because if todo is zero at this point, the loop will be\nbroken anyway due to the while () condition being false.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Gautham R Shenoy \u003cego@in.ibm.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": "e7cd8a722745a01bcfac4d4a52d53391d177da20",
      "tree": "45c7e57cac39a6aa90d1c5f6682ddd12bdc8315a",
      "parents": [
        "f4a3a7d60c9c9a961e4c970f6eb41dd1c9d3ec21"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 01:47:34 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:42 2007 -0700"
      },
      "message": "Freezer: return int from freeze_processes\n\nMake try_to_freeze_tasks() and freeze_processes() return -EBUSY on failure\ninstead of the number of unfrozen tasks (none of the callers actually uses\nthis number).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Gautham R Shenoy \u003cego@in.ibm.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": "f4a3a7d60c9c9a961e4c970f6eb41dd1c9d3ec21",
      "tree": "adc1687ad3f8bf9e01e8fd3029f8f40196d9d2e5",
      "parents": [
        "0c1eecfb345401629aa57c9d3b077273e56c45a7"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 01:47:33 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:42 2007 -0700"
      },
      "message": "Freezer: use __set_current_state in refrigerator\n\nUse __set_current_state() as appropriate in refrigerator() instead of\naccessing current-\u003estate directly.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Gautham R Shenoy \u003cego@in.ibm.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": "0c1eecfb345401629aa57c9d3b077273e56c45a7",
      "tree": "522d7090966c6e70f3147c30e3308781e0309938",
      "parents": [
        "b1457bcc3a00a0446c7f6e2f22fd24b6d8d0a309"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 01:47:33 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:42 2007 -0700"
      },
      "message": "Freezer: avoid freezing kernel threads prematurely\n\nKernel threads should not have TIF_FREEZE set when user space processes are\nbeing frozen, since otherwise some of them might be frozen prematurely.\nTo prevent this from happening we can (1) make exit_mm() unset TIF_FREEZE\nunconditionally just after clearing tsk-\u003emm and (2) make try_to_freeze_tasks()\ncheck if p-\u003emm is different from zero and PF_BORROWED_MM is unset in p-\u003eflags\nwhen user space processes are to be frozen.\n\nNamely, when user space processes are being frozen, we only should set\nTIF_FREEZE for tasks that have p-\u003emm different from NULL and don\u0027t have\nPF_BORROWED_MM set in p-\u003eflags.  For this reason task_lock() must be used to\nprevent try_to_freeze_tasks() from racing with use_mm()/unuse_mm(), in which\np-\u003emm and p-\u003eflags.PF_BORROWED_MM are changed under task_lock(p).  Also, we\nneed to prevent the following scenario from happening:\n\n* daemonize() is called by a task spawned from a user space code path\n* freezer checks if the task has p-\u003emm set and the result is positive\n* task enters exit_mm() and clears its TIF_FREEZE\n* freezer sets TIF_FREEZE for the task\n* task calls try_to_freeze() and goes to the refrigerator, which is wrong at\n  that point\n\nThis requires us to acquire task_lock(p) before p-\u003eflags.PF_BORROWED_MM and\np-\u003emm are examined and release it after TIF_FREEZE is set for p (or it turns\nout that TIF_FREEZE should not be set).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Nigel Cunningham \u003cnigel@nigel.suspend2.net\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": "b1457bcc3a00a0446c7f6e2f22fd24b6d8d0a309",
      "tree": "57b25b23e861ce5d0aa4e0ddc0a69ed405ae4701",
      "parents": [
        "10a1803d667e209914eaada9b95525252f23ec78"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 01:47:31 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:42 2007 -0700"
      },
      "message": "Hibernation: prepare to enter the low power state\n\nDuring hibernation we call hibernation_ops-\u003eprepare() before creating the image,\nbut then, before saving it, we cancel the power transition by calling\nhibernation_ops-\u003efinish().  Thus prior to calling hibernation_ops-\u003eenter() we\nshould let the platform firmware know that we\u0027re going to enter the low power\nstate after all.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Nigel Cunningham \u003cnigel@nigel.suspend2.net\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": "10a1803d667e209914eaada9b95525252f23ec78",
      "tree": "0969e95d7f55d62aa8a5a3a0dd616fe4e151323e",
      "parents": [
        "a634cc10164d1c229fbeca33923e6a0ed939e894"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 01:47:31 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:42 2007 -0700"
      },
      "message": "swsusp: fix hibernation code ordering\n\nChange the code ordering so that hibernation_ops-\u003eprepare() is called after\ndevice_suspend().  This is needed so that we don\u0027t violate the ACPI\nspecification, which states that the _PTS and _GTS system-control methods,\nexecuted from acpi_sleep_prepare(), ought to be called after devices have been\nput in low power states.\n\nThe \"Finish\" label in hibernation_restore() is moved, because device_suspend()\nresumes devices if the suspending of them fails and the restore code ordering\nshould reflect the hibernation code ordering.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Nigel Cunningham \u003cnigel@nigel.suspend2.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a634cc10164d1c229fbeca33923e6a0ed939e894",
      "tree": "a2cdc5403127ca71b2cf378feb86d46745022ac1",
      "parents": [
        "7777fab989b5d006903188c966058ebcd2d6342a"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 01:47:30 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:42 2007 -0700"
      },
      "message": "swsusp: introduce restore platform operations\n\nAt least on some machines it is necessary to prepare the ACPI firmware for the\nrestoration of the system memory state from the hibernation image if the\n\"platform\" mode of hibernation has been used.  Namely, in that cases we need\nto disable the GPEs before replacing the \"boot\" kernel with the \"frozen\"\nkernel (cf.  http://bugzilla.kernel.org/show_bug.cgi?id\u003d7887).  After the\nrestore they will be re-enabled by hibernation_ops-\u003efinish(), but if the\nrestore fails, they have to be re-enabled by the restore code explicitly.\n\nFor this purpose we can introduce two additional hibernation operations,\ncalled pre_restore() and restore_cleanup() and call them from the restore code\npath.  Still, they should be called if the \"platform\" mode of hibernation has\nbeen used, so we need to pass the information about the hibernation mode from\nthe \"frozen\" kernel to the \"boot\" kernel in the image header.\n\nApparently, we can\u0027t drop the disabling of GPEs before the restore because of\nBug #7887 .   We also can\u0027t do it unconditionally, because the GPEs wouldn\u0027t\nhave been enabled after a successful restore if the suspend had been done in\nthe \u0027shutdown\u0027 or \u0027reboot\u0027 mode.\n\nIn principle we could (and probably should) unconditionally disable the GPEs\nbefore each snapshot creation *and* before the restore, but then we\u0027d have to\nunconditionally enable them after the snapshot creation as well as after the\nrestore (or restore failure)   Still, for this purpose we\u0027d need to modify\nacpi_enter_sleep_state_prep() and acpi_leave_sleep_state() and we\u0027d have to\nintroduce some mechanism synchronizing the disablind/enabling of the GPEs with\nthe device drivers\u0027 .suspend()/.resume() routines and with\ndisable_/enable_nonboot_cpus().   However, this would have affected the\nsuspend (ie.  s2ram) code as well as the hibernation, which I\u0027d like to avoid\nin this patch series.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Nigel Cunningham \u003cnigel@nigel.suspend2.net\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7777fab989b5d006903188c966058ebcd2d6342a",
      "tree": "cff336bf6bd4dd2f665709dbf07f4224ab9f2fbd",
      "parents": [
        "127067a9c994dff16b280f409cc7b18a54a63719"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 01:47:29 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:42 2007 -0700"
      },
      "message": "swsusp: remove code duplication between disk.c and user.c\n\nCurrently, much of the code in kernel/power/disk.c is duplicated in\nkernel/power/user.c , mainly for historical reasons.  By eliminating this code\nduplication we can reduce the size of user.c quite substantially and remove\nthe maintenance difficulty resulting from it.\n\n[bunk@stusta.de: kernel/power/disk.c: make code static]\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Nigel Cunningham \u003cnigel@nigel.suspend2.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "127067a9c994dff16b280f409cc7b18a54a63719",
      "tree": "47942df4f05b22c1461c7d66f7d21773dd71afd1",
      "parents": [
        "a0349828d6d6f95c445674c2953ee9db75c11f8f"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 01:47:28 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:42 2007 -0700"
      },
      "message": "swsusp: remove incorrect code from user.c\n\nIn the face of the recent change of suspend code ordering (cf.\nhttp://marc.info/?l\u003dlinux-acpi\u0026m\u003d117938245931603\u0026w\u003d2) we should also modify\nthe code ordering in swsusp so that hibernation_ops-\u003eprepare() is executed\nafter device_suspend().\n\nHowever, for this purpose it seems reasonable to eliminate the code\nduplication between kernel/power/disk.c and kernel/power/user.c first.  By\neliminating it we can reduce the size of user.c quite substantially and remove\nthe maintenance difficulty with making essentially the same changes in two\ndifferent places.\n\nMoreover, we should also remove the calls to \"platform\" functions from the\nrestore code path, since it doesn\u0027t carry out any power transition of the\nsystem, but we generally need to disable the GPEs before the restore if the\n\u0027platform\u0027 hibernation mode has been used.  To do this, we can introduce two\nnew hibernation_ops to be used in the restore code.\n\nThis patch:\n\nMake the code hibernation code in kernel/power/user.c be functionally\nequivalent to the corresponding code in kernel/power/disk.c , as it should be.\n\nThe calls to the platform functions removed by this patch are incorrect.  They\nshould be replaced with some other \"platform\" invocations that will be\nintroduced in one of the subsequent patches.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Nigel Cunningham \u003cnigel@nigel.suspend2.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a0349828d6d6f95c445674c2953ee9db75c11f8f",
      "tree": "1b511d59de0b437aa2724adfc403fb36ff1e2dfd",
      "parents": [
        "328616e3b76859f1abdd08a8df1ddbb7bb81f807"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@ubuntu.com",
        "time": "Thu Jul 19 01:47:27 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:42 2007 -0700"
      },
      "message": "PM: Do not require dev spew to get PM_DEBUG\n\nIn order to enable things like PM_TRACE, you\u0027re required to enable\nPM_DEBUG, which sends a large spew of messages on boot, and often times can\noverflow dmesg buffer.\n\nCreate new PM_VERBOSE and shift that to be the option that enables\ndrivers/base/power\u0027s messages.\n\nSigned-off-by: Ben Collins \u003cbcollins@ubuntu.com\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "328616e3b76859f1abdd08a8df1ddbb7bb81f807",
      "tree": "c2f5bf6250159b19cff6f000f2f752b8924d6dc6",
      "parents": [
        "3ee6dafc677a68e461a7ddafc94a580ebab80735"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Thu Jul 19 01:47:26 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:42 2007 -0700"
      },
      "message": "freezer: run show_state() when freezing times out\n\nTo see which tasks are stuck where.\n\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3ee6dafc677a68e461a7ddafc94a580ebab80735",
      "tree": "6a92c9f5bd24ff80c52c944327c3b065234f7ad2",
      "parents": [
        "bb2d5ce16409efcdf94017a6b6fecd468226e29c"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Jul 19 01:47:24 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:41 2007 -0700"
      },
      "message": "only allow nonlinear vmas for ram backed filesystems\n\npage_mkclean() doesn\u0027t re-protect ptes for non-linear mappings, so a later\nre-dirty through such a mapping will not generate a fault, PG_dirty will\nnot reflect the dirty state and the dirty count will be skewed.  This\nimplies that msync() is also currently broken for nonlinear mappings.\n\nThe easiest solution is to emulate remap_file_pages on non-linear mappings\nwith simple mmap() for non ram-backed filesystems.  Applications continue\nto work (albeit slower), as long as the number of remappings remain below\nthe maximum vma count.\n\nHowever all currently known real uses of non-linear mappings are for ram\nbacked filesystems, which this patch doesn\u0027t affect.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bb2d5ce16409efcdf94017a6b6fecd468226e29c",
      "tree": "12ce94a51c3aa8bffb22e1aa22f122268013fec4",
      "parents": [
        "79352894b28550ee0eee919149f57626ec1b3572"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Thu Jul 19 01:47:23 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:41 2007 -0700"
      },
      "message": "Remove alloc_zeroed_user_highpage()\n\nalloc_zeroed_user_highpage() has no in-tree users and it is not exported.\nAs it is not exported, it can simply be removed.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "79352894b28550ee0eee919149f57626ec1b3572",
      "tree": "849e6aa148c69b9df3920199255ca14792eeffa2",
      "parents": [
        "83c54070ee1a2d05c89793884bea1a03f2851ed4"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Thu Jul 19 01:47:22 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:41 2007 -0700"
      },
      "message": "mm: fix clear_page_dirty_for_io vs fault race\n\nFix msync data loss and (less importantly) dirty page accounting\ninaccuracies due to the race remaining in clear_page_dirty_for_io().\n\nThe deleted comment explains what the race was, and the added comments\nexplain how it is fixed.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "83c54070ee1a2d05c89793884bea1a03f2851ed4",
      "tree": "dc732f5a9b93fb7004ed23f551bd98b77cc580e0",
      "parents": [
        "d0217ac04ca6591841e5665f518e38064f4e65bd"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Thu Jul 19 01:47:05 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:41 2007 -0700"
      },
      "message": "mm: fault feedback #2\n\nThis patch completes Linus\u0027s wish that the fault return codes be made into\nbit flags, which I agree makes everything nicer.  This requires requires\nall handle_mm_fault callers to be modified (possibly the modifications\nshould go further and do things like fault accounting in handle_mm_fault --\nhowever that would be for another patch).\n\n[akpm@linux-foundation.org: fix alpha build]\n[akpm@linux-foundation.org: fix s390 build]\n[akpm@linux-foundation.org: fix sparc build]\n[akpm@linux-foundation.org: fix sparc64 build]\n[akpm@linux-foundation.org: fix ia64 build]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ian Molton \u003cspyro@f2s.com\u003e\nCc: Bryan Wu \u003cbryan.wu@analog.com\u003e\nCc: Mikael Starvik \u003cstarvik@axis.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Yoshinori Sato \u003cysato@users.sourceforge.jp\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: Greg Ungerer \u003cgerg@uclinux.org\u003e\nCc: Matthew Wilcox \u003cwilly@debian.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Kazumoto Kojima \u003ckkojima@rr.iij4u.or.jp\u003e\nCc: Richard Curnow \u003crc@rc0.org.uk\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nCc: Miles Bader \u003cuclinux-v850@lsi.nec.co.jp\u003e\nCc: Chris Zankel \u003cchris@zankel.net\u003e\nAcked-by: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nAcked-by: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nAcked-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nAcked-by: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n[ Still apparently needs some ARM and PPC loving - Linus ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d0217ac04ca6591841e5665f518e38064f4e65bd",
      "tree": "d3309094bb734d34773f97d642593e298a5cfcfc",
      "parents": [
        "ed2f2f9b3ff8debdf512f7687b232c3c1d7d60d7"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Thu Jul 19 01:47:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:41 2007 -0700"
      },
      "message": "mm: fault feedback #1\n\nChange -\u003efault prototype.  We now return an int, which contains\nVM_FAULT_xxx code in the low byte, and FAULT_RET_xxx code in the next byte.\n FAULT_RET_ code tells the VM whether a page was found, whether it has been\nlocked, and potentially other things.  This is not quite the way he wanted\nit yet, but that\u0027s changed in the next patch (which requires changes to\narch code).\n\nThis means we no longer set VM_CAN_INVALIDATE in the vma in order to say\nthat a page is locked which requires filemap_nopage to go away (because we\ncan no longer remain backward compatible without that flag), but we were\ngoing to do that anyway.\n\nstruct fault_data is renamed to struct vm_fault as Linus asked. address\nis now a void __user * that we should firmly encourage drivers not to use\nwithout really good reason.\n\nThe page is now returned via a page pointer in the vm_fault struct.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ed2f2f9b3ff8debdf512f7687b232c3c1d7d60d7",
      "tree": "f935333e6d233ba0f119d4642b15063ba544fddf",
      "parents": [
        "6967614761fd305b3414d9485d89dc2e0a407410"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Jul 19 01:47:01 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:41 2007 -0700"
      },
      "message": "Document -\u003epage_mkwrite() locking\n\nThere seems to be very little documentation about this callback in general.\nThe locking in particular is a bit tricky, so it\u0027s worth having this in\nwriting.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: David Howells \u003cdhowells@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": "6967614761fd305b3414d9485d89dc2e0a407410",
      "tree": "498bd41e9cf8795535f597696dd2c834d79ffb44",
      "parents": [
        "54cb8821de07f2ffcd28c380ce9b93d5784b40d7"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Jul 19 01:47:00 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:41 2007 -0700"
      },
      "message": "ocfs2: release page lock before calling -\u003epage_mkwrite\n\n__do_fault() was calling -\u003epage_mkwrite() with the page lock held, which\nviolates the locking rules for that callback.  Release and retake the page\nlock around the callback to avoid deadlocking file systems which manually\ntake it.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "54cb8821de07f2ffcd28c380ce9b93d5784b40d7",
      "tree": "1de676534963d96af42863b20191bc9f80060dea",
      "parents": [
        "d00806b183152af6d24f46f0c33f14162ca1262a"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Thu Jul 19 01:46:59 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:41 2007 -0700"
      },
      "message": "mm: merge populate and nopage into fault (fixes nonlinear)\n\nNonlinear mappings are (AFAIKS) simply a virtual memory concept that encodes\nthe virtual address -\u003e file offset differently from linear mappings.\n\n-\u003epopulate is a layering violation because the filesystem/pagecache code\nshould need to know anything about the virtual memory mapping.  The hitch here\nis that the -\u003enopage handler didn\u0027t pass down enough information (ie.  pgoff).\n But it is more logical to pass pgoff rather than have the -\u003enopage function\ncalculate it itself anyway (because that\u0027s a similar layering violation).\n\nHaving the populate handler install the pte itself is likewise a nasty thing\nto be doing.\n\nThis patch introduces a new fault handler that replaces -\u003enopage and\n-\u003epopulate and (later) -\u003enopfn.  Most of the old mechanism is still in place\nso there is a lot of duplication and nice cleanups that can be removed if\neveryone switches over.\n\nThe rationale for doing this in the first place is that nonlinear mappings are\nsubject to the pagefault vs invalidate/truncate race too, and it seemed stupid\nto duplicate the synchronisation logic rather than just consolidate the two.\n\nAfter this patch, MAP_NONBLOCK no longer sets up ptes for pages present in\npagecache.  Seems like a fringe functionality anyway.\n\nNOPAGE_REFAULT is removed.  This should be implemented with -\u003efault, and no\nusers have hit mainline yet.\n\n[akpm@linux-foundation.org: cleanup]\n[randy.dunlap@oracle.com: doc. fixes for readahead]\n[akpm@linux-foundation.org: build fix]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d00806b183152af6d24f46f0c33f14162ca1262a",
      "tree": "36f829cf13d5410374a3f00b56ec0b1f8dc3ce3c",
      "parents": [
        "589f1e81bde732dd0b1bc5d01b6bddd4bcb4527b"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Thu Jul 19 01:46:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:41 2007 -0700"
      },
      "message": "mm: fix fault vs invalidate race for linear mappings\n\nFix the race between invalidate_inode_pages and do_no_page.\n\nAndrea Arcangeli identified a subtle race between invalidation of pages from\npagecache with userspace mappings, and do_no_page.\n\nThe issue is that invalidation has to shoot down all mappings to the page,\nbefore it can be discarded from the pagecache.  Between shooting down ptes to\na particular page, and actually dropping the struct page from the pagecache,\ndo_no_page from any process might fault on that page and establish a new\nmapping to the page just before it gets discarded from the pagecache.\n\nThe most common case where such invalidation is used is in file truncation.\nThis case was catered for by doing a sort of open-coded seqlock between the\nfile\u0027s i_size, and its truncate_count.\n\nTruncation will decrease i_size, then increment truncate_count before\nunmapping userspace pages; do_no_page will read truncate_count, then find the\npage if it is within i_size, and then check truncate_count under the page\ntable lock and back out and retry if it had subsequently been changed (ptl\nwill serialise against unmapping, and ensure a potentially updated\ntruncate_count is actually visible).\n\nComplexity and documentation issues aside, the locking protocol fails in the\ncase where we would like to invalidate pagecache inside i_size.  do_no_page\ncan come in anytime and filemap_nopage is not aware of the invalidation in\nprogress (as it is when it is outside i_size).  The end result is that\ndangling (-\u003emapping \u003d\u003d NULL) pages that appear to be from a particular file\nmay be mapped into userspace with nonsense data.  Valid mappings to the same\nplace will see a different page.\n\nAndrea implemented two working fixes, one using a real seqlock, another using\na page-\u003eflags bit.  He also proposed using the page lock in do_no_page, but\nthat was initially considered too heavyweight.  However, it is not a global or\nper-file lock, and the page cacheline is modified in do_no_page to increment\n_count and _mapcount anyway, so a further modification should not be a large\nperformance hit.  Scalability is not an issue.\n\nThis patch implements this latter approach.  -\u003enopage implementations return\nwith the page locked if it is possible for their underlying file to be\ninvalidated (in that case, they must set a special vm_flags bit to indicate\nso).  do_no_page only unlocks the page after setting up the mapping\ncompletely.  invalidation is excluded because it holds the page lock during\ninvalidation of each page (and ensures that the page is not mapped while\nholding the lock).\n\nThis also allows significant simplifications in do_no_page, because we have\nthe page locked in the right place in the pagecache from the start.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "589f1e81bde732dd0b1bc5d01b6bddd4bcb4527b",
      "tree": "b7dee3b229edc4a5110be4c6b02f6c7bc6d5a165",
      "parents": [
        "ce524c8360d60cc6d3f77986bd58c4448d2b1e3a",
        "9ee0be05dc69b61e5a869bffebd638b31898dae2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Jul 18 18:38:25 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Jul 18 18:38:25 2007 -0700"
      },
      "message": "Merge branch \u0027isdn-fix\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/misc-2.6\n\n* \u0027isdn-fix\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/misc-2.6:\n  ISDN HiSax: uninitialized return in hisax_cs_setup\n"
    },
    {
      "commit": "ce524c8360d60cc6d3f77986bd58c4448d2b1e3a",
      "tree": "70ab63183f7952e66e4627ff5c655871b8a8c41c",
      "parents": [
        "789c56b7f73218141b8004cb4f775eed8c514212",
        "f9e29228e6f2058e7b086115ecb7008630ebd832"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Jul 18 18:33:45 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Jul 18 18:33:45 2007 -0700"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6\n\n* \u0027upstream-linus\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6:\n  eHEA: Fix bonding support\n  Blackfin ethernet driver: on chip ethernet MAC controller driver\n  fix wrong argument of tc35815_read_plat_dev_addr()\n  ARM/ETHER3: Handle multicast frames.\n  SAA9730: Handle multicast frames.\n  NI5010: Handle multicast frames.\n  NS83820: Handle multicast frames.\n  Fix RGMII-ID handling in gianfar\n  Fix Vitesse RGMII-ID support\n  Add phy-connection-type to gianfar nodes\n  Fix Vitesse 824x PHY interrupt acking\n  [PATCH] zd1211rw: Add ID for Siemens Gigaset USB Stick 54\n  [PATCH] zd1211rw: Add ID for Planex GW-US54GXS\n  [PATCH] Update version ipw2200 stamp to 1.2.2\n  [PATCH] ipw2200: Fix ipw_isr() comments error on shared IRQ\n  [PATCH] Fix ipw2200 set wrong power parameter causing firmware error\n  [PATCH] ipw2100: Fix `iwpriv set_power` error\n  [PATCH] softmac: Channel is listed twice in scan output\n"
    },
    {
      "commit": "789c56b7f73218141b8004cb4f775eed8c514212",
      "tree": "e412bb0591e94e383f21aa6429f0e380b5579d4d",
      "parents": [
        "7209a1dc2557b127ee75a49e200812366532510d",
        "1ff8392c32a2645d2665ca779ecb91bb29361c13"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Jul 18 18:32:28 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Jul 18 18:32:28 2007 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6: (24 commits)\n  [CIFS] merge conflict in fs/cifs/export.c\n  [CIFS] Allow disabling CIFS Unix Extensions as mount option\n  [CIFS] More whitespace/formatting fixes (noticed by checkpatch)\n  [CIFS] Typo in previous patch\n  [CIFS] zero_user_page() conversions\n  [CIFS] use simple_prepare_write to zero page data\n  [CIFS] Fix build break - inet.h not included when experimental ifdef off\n  [CIFS] Add support for new POSIX unlink\n  [CIFS] whitespace/formatting fixes\n  [CIFS] Fix oops in cifs_create when nfsd server exports cifs mount\n  [CIFS] whitespace cleanup\n  [CIFS] Fix packet signatures for NTLMv2 case\n  [CIFS] more whitespace fixes\n  [CIFS] more whitespace cleanup\n  [CIFS] whitespace cleanup\n  [CIFS] whitespace cleanup\n  [CIFS] ipv6 support no longer experimental\n  [CIFS] Mount should fail if server signing off but client mount option requires it\n  [CIFS] whitespace fixes\n  [CIFS] Fix sign mount option and sign proc config setting\n  ...\n"
    },
    {
      "commit": "7209a1dc2557b127ee75a49e200812366532510d",
      "tree": "e89f39446c0bd8dfead5524110963cfbe65f05c7",
      "parents": [
        "29e7ee378e2327c808ede66dec4d4d964f4d375f",
        "ede178e216b5dd9200cf2c483c746e0672fbe503"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Jul 18 18:28:34 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Jul 18 18:28:34 2007 -0700"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/docs-2.6\n\n* master.kernel.org:/pub/scm/linux/kernel/git/gregkh/docs-2.6:\n  zh_CN/HOWTO: update URLs of git trees\n  Chinese translation of Documentation/stable_api_nonsense.txt\n  HOWTO: add Chinese translation of Documentation/HOWTO\n  Documentation: add Japanese translated stable_api_nonsense.txt\n  HOWTO: add Japanese translation of Documentation/HOWTO\n"
    },
    {
      "commit": "29e7ee378e2327c808ede66dec4d4d964f4d375f",
      "tree": "4f904bfc485acd2ba5f7abdf43f57eeb8ce1dbdb",
      "parents": [
        "fc15bc817eecd5c13581adab2a182c07edededa0",
        "967e35dcc9ac194b4a6fad69a5a51f93d69bb0d1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Jul 18 18:28:08 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Jul 18 18:28:08 2007 -0700"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6\n\n* master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6:\n  sysfs: cosmetic clean up on node creation failure paths\n  sysfs: kill an extra put in sysfs_create_link() failure path\n  Driver core: check return code of sysfs_create_link()\n  HOWTO: Add the knwon_regression URI to the documentation\n  dev_vdbg() documentation\n  dev_vdbg(), available with -DVERBOSE_DEBUG\n  sysfs: make sysfs_init_inode() static\n  sysfs: fix sysfs root inode nlink accounting\n  Documentation fix devres.txt: lib/iomap.c -\u003e lib/devres.c\n  sysfs: avoid kmem_cache_free(NULL)\n  PM: remove deprecated dpm_runtime_* routines\n  PM: Remove deprecated sysfs files\n  Driver core: accept all valid action-strings in uevent-trigger\n  debugfs: remove rmdir() non-empty complaint\n"
    },
    {
      "commit": "fc15bc817eecd5c13581adab2a182c07edededa0",
      "tree": "4495364581afd49596e88882f58a2f1196bc512f",
      "parents": [
        "a8dcf12f9e8ba113251c04d602f1695d537fb142",
        "bc4c4f45acbe1f1528d654b0b1793f25c175bf8f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Jul 18 18:27:50 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Jul 18 18:27:50 2007 -0700"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/uio-2.6\n\n* master.kernel.org:/pub/scm/linux/kernel/git/gregkh/uio-2.6:\n  UIO: Hilscher CIF card driver\n  UIO: Documentation\n  UIO: Add the User IO core code\n"
    },
    {
      "commit": "a8dcf12f9e8ba113251c04d602f1695d537fb142",
      "tree": "1b36a19e34a8471e847bfea88dc66ee6683b7b07",
      "parents": [
        "d796e641a3eea2109381d6b0af533454f44916fa",
        "6924c55492c904695f13c552c461c2211f4fdd6a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Jul 18 18:27:00 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Jul 18 18:27:00 2007 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-linus\u0027 of git://linux-nfs.org/~bfields/linux:\n  locks: fix vfs_test_lock() comment\n  locks: make posix_test_lock() interface more consistent\n  nfs: disable leases over NFS\n  gfs2: stop giving out non-cluster-coherent leases\n  locks: export setlease to filesystems\n  locks: provide a file lease method enabling cluster-coherent leases\n  locks: rename lease functions to reflect locks.c conventions\n  locks: share more common lease code\n  locks: clean up lease_alloc()\n  locks: convert an -EINVAL return to a BUG\n  leases: minor break_lease() comment clarification\n"
    }
  ],
  "next": "d796e641a3eea2109381d6b0af533454f44916fa"
}
