)]}'
{
  "log": [
    {
      "commit": "a08f06bb7a0743a7fc8d571899c93d882468096e",
      "tree": "27168380ec79b56895dbce004ffe940d0065450d",
      "parents": [
        "a2e5790d841658485d642196dbb0927303d6c22f"
      ],
      "author": {
        "name": "Andy Shevchenko",
        "email": "andriy.shevchenko@linux.intel.com",
        "time": "Mon Jan 22 18:05:43 2018 +0200"
      },
      "committer": {
        "name": "Andy Shevchenko",
        "email": "andriy.shevchenko@linux.intel.com",
        "time": "Wed Feb 07 12:50:21 2018 +0200"
      },
      "message": "seq_file: Introduce DEFINE_SHOW_ATTRIBUTE() helper macro\n\nThe DEFINE_SHOW_ATTRIBUTE() helper macro would be useful for current\nusers, which are many of them, and for new comers to decrease code\nduplication.\n\nAcked-by: Lee Jones \u003clee.jones@linaro.org\u003e\nAcked-by: Darren Hart (VMware) \u003cdvhart@infradead.org\u003e\nSigned-off-by: Andy Shevchenko \u003candriy.shevchenko@linux.intel.com\u003e\n"
    },
    {
      "commit": "b24413180f5600bcb3bb70fbed5cf186b60864bd",
      "tree": "4ebcae0dab27ee8bfcecb9a5daf65353c6dd7ed6",
      "parents": [
        "bb176f67090ca54869fc1262c913aa69d2ede070"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Wed Nov 01 15:07:57 2017 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Nov 02 11:10:55 2017 +0100"
      },
      "message": "License cleanup: add SPDX GPL-2.0 license identifier to files with no license\n\nMany source files in the tree are missing licensing information, which\nmakes it harder for compliance tools to determine the correct license.\n\nBy default all files without license information are under the default\nlicense of the kernel, which is GPL version 2.\n\nUpdate the files which contain no license information with the \u0027GPL-2.0\u0027\nSPDX license identifier.  The SPDX identifier is a legally binding\nshorthand, which can be used instead of the full boiler plate text.\n\nThis patch is based on work done by Thomas Gleixner and Kate Stewart and\nPhilippe Ombredanne.\n\nHow this work was done:\n\nPatches were generated and checked against linux-4.14-rc6 for a subset of\nthe use cases:\n - file had no licensing information it it.\n - file was a */uapi/* one with no licensing information in it,\n - file was a */uapi/* one with existing licensing information,\n\nFurther patches will be generated in subsequent months to fix up cases\nwhere non-standard license headers were used, and references to license\nhad to be inferred by heuristics based on keywords.\n\nThe analysis to determine which SPDX License Identifier to be applied to\na file was done in a spreadsheet of side by side results from of the\noutput of two independent scanners (ScanCode \u0026 Windriver) producing SPDX\ntag:value files created by Philippe Ombredanne.  Philippe prepared the\nbase worksheet, and did an initial spot review of a few 1000 files.\n\nThe 4.13 kernel was the starting point of the analysis with 60,537 files\nassessed.  Kate Stewart did a file by file comparison of the scanner\nresults in the spreadsheet to determine which SPDX license identifier(s)\nto be applied to the file. She confirmed any determination that was not\nimmediately clear with lawyers working with the Linux Foundation.\n\nCriteria used to select files for SPDX license identifier tagging was:\n - Files considered eligible had to be source code files.\n - Make and config files were included as candidates if they contained \u003e5\n   lines of source\n - File already had some variant of a license header in it (even if \u003c5\n   lines).\n\nAll documentation files were explicitly excluded.\n\nThe following heuristics were used to determine which SPDX license\nidentifiers to apply.\n\n - when both scanners couldn\u0027t find any license traces, file was\n   considered to have no license information in it, and the top level\n   COPYING file license applied.\n\n   For non */uapi/* files that summary was:\n\n   SPDX license identifier                            # files\n   ---------------------------------------------------|-------\n   GPL-2.0                                              11139\n\n   and resulted in the first patch in this series.\n\n   If that file was a */uapi/* path one, it was \"GPL-2.0 WITH\n   Linux-syscall-note\" otherwise it was \"GPL-2.0\".  Results of that was:\n\n   SPDX license identifier                            # files\n   ---------------------------------------------------|-------\n   GPL-2.0 WITH Linux-syscall-note                        930\n\n   and resulted in the second patch in this series.\n\n - if a file had some form of licensing information in it, and was one\n   of the */uapi/* ones, it was denoted with the Linux-syscall-note if\n   any GPL family license was found in the file or had no licensing in\n   it (per prior point).  Results summary:\n\n   SPDX license identifier                            # files\n   ---------------------------------------------------|------\n   GPL-2.0 WITH Linux-syscall-note                       270\n   GPL-2.0+ WITH Linux-syscall-note                      169\n   ((GPL-2.0 WITH Linux-syscall-note) OR BSD-2-Clause)    21\n   ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)    17\n   LGPL-2.1+ WITH Linux-syscall-note                      15\n   GPL-1.0+ WITH Linux-syscall-note                       14\n   ((GPL-2.0+ WITH Linux-syscall-note) OR BSD-3-Clause)    5\n   LGPL-2.0+ WITH Linux-syscall-note                       4\n   LGPL-2.1 WITH Linux-syscall-note                        3\n   ((GPL-2.0 WITH Linux-syscall-note) OR MIT)              3\n   ((GPL-2.0 WITH Linux-syscall-note) AND MIT)             1\n\n   and that resulted in the third patch in this series.\n\n - when the two scanners agreed on the detected license(s), that became\n   the concluded license(s).\n\n - when there was disagreement between the two scanners (one detected a\n   license but the other didn\u0027t, or they both detected different\n   licenses) a manual inspection of the file occurred.\n\n - In most cases a manual inspection of the information in the file\n   resulted in a clear resolution of the license that should apply (and\n   which scanner probably needed to revisit its heuristics).\n\n - When it was not immediately clear, the license identifier was\n   confirmed with lawyers working with the Linux Foundation.\n\n - If there was any question as to the appropriate license identifier,\n   the file was flagged for further research and to be revisited later\n   in time.\n\nIn total, over 70 hours of logged manual review was done on the\nspreadsheet to determine the SPDX license identifiers to apply to the\nsource files by Kate, Philippe, Thomas and, in some cases, confirmation\nby lawyers working with the Linux Foundation.\n\nKate also obtained a third independent scan of the 4.13 code base from\nFOSSology, and compared selected files where the other two scanners\ndisagreed against that SPDX file, to see if there was new insights.  The\nWindriver scanner is based on an older version of FOSSology in part, so\nthey are related.\n\nThomas did random spot checks in about 500 files from the spreadsheets\nfor the uapi headers and agreed with SPDX license identifier in the\nfiles he inspected. For the non-uapi files Thomas did random spot checks\nin about 15000 files.\n\nIn initial set of patches against 4.14-rc6, 3 files were found to have\ncopy/paste license identifier errors, and have been fixed to reflect the\ncorrect identifier.\n\nAdditionally Philippe spent 10 hours this week doing a detailed manual\ninspection and review of the 12,461 patched files from the initial patch\nversion early this week with:\n - a full scancode scan run, collecting the matched texts, detected\n   license ids and scores\n - reviewing anything where there was a license detected (about 500+\n   files) to ensure that the applied SPDX license was correct\n - reviewing anything where there was no detection but the patch license\n   was not GPL-2.0 WITH Linux-syscall-note to ensure that the applied\n   SPDX license was correct\n\nThis produced a worksheet with 20 files needing minor correction.  This\nworksheet was then exported into 3 different .csv files for the\ndifferent types of files to be modified.\n\nThese .csv files were then reviewed by Greg.  Thomas wrote a script to\nparse the csv files and add the proper SPDX tag to the file, in the\nformat that the file expected.  This script was further refined by Greg\nbased on the output to detect more types of files automatically and to\ndistinguish between header and source .c files (which need different\ncomment types.)  Finally Greg ran the script using the .csv files to\ngenerate the patches.\n\nReviewed-by: Kate Stewart \u003ckstewart@linuxfoundation.org\u003e\nReviewed-by: Philippe Ombredanne \u003cpombredanne@nexb.com\u003e\nReviewed-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "75ba1d07fd6a494851db5132612944a9d4773f9c",
      "tree": "7a4d91412f3beefe884b3ef8cac536d304d66fa9",
      "parents": [
        "f7a5f132b447cb6301ab3f0b0468a63db29e41f5"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Fri Oct 07 17:02:20 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:30 2016 -0700"
      },
      "message": "seq/proc: modify seq_put_decimal_[u]ll to take a const char *, not char\n\nAllow some seq_puts removals by taking a string instead of a single\nchar.\n\n[akpm@linux-foundation.org: update vmstat_show(), per Joe]\nLink: http://lkml.kernel.org/r/667e1cf3d436de91a5698170a1e98d882905e956.1470704995.git.joe@perches.com\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "34dbbcdbf63360661ff7bda6c5f52f99ac515f92",
      "tree": "56152a152ec895f7b9f49d529f2248b9c4eaed1f",
      "parents": [
        "4046d6e81f33b7ef50d6668b78076d54c5e066b6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 14 11:22:00 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 14 12:56:09 2016 -0700"
      },
      "message": "Make file credentials available to the seqfile interfaces\n\nA lot of seqfile users seem to be using things like %pK that uses the\ncredentials of the current process, but that is actually completely\nwrong for filesystem interfaces.\n\nThe unix semantics for permission checking files is to check permissions\nat _open_ time, not at read or write time, and that is not just a small\ndetail: passing off stdin/stdout/stderr to a suid application and making\nthe actual IO happen in privileged context is a classic exploit\ntechnique.\n\nSo if we want to be able to look at permissions at read time, we need to\nuse the file open credentials, not the current ones.  Normal file\naccesses can just use \"f_cred\" (or any of the helper functions that do\nthat, like file_ns_capable()), but the seqfile interfaces do not have\nany such options.\n\nIt turns out that seq_file _does_ save away the user_ns information of\nthe file, though.  Since user_ns is just part of the full credential\ninformation, replace that special case with saving off the cred pointer\ninstead, and suddenly seq_file has all the permission information it\nneeds.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6798a8caaf64fa68b9ab2044e070fe4545034e03",
      "tree": "0703bb5ad58e92d21c00a69359ba962ba4928740",
      "parents": [
        "c9946c4208a3725e116c05180d93154eb406d451"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Fri Sep 11 13:07:48 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 11 15:21:34 2015 -0700"
      },
      "message": "fs/seq_file: convert int seq_vprint/seq_printf/etc... returns to void\n\nThe seq_\u003cfoo\u003e function return values were frequently misused.\n\nSee: commit 1f33c41c03da (\"seq_file: Rename seq_overflow() to\n     seq_has_overflowed() and make public\")\n\nAll uses of these return values have been removed, so convert the\nreturn types to void.\n\nMiscellanea:\n\no Move seq_put_decimal_\u003ctype\u003e and seq_escape prototypes closer the\n  other seq_vprintf prototypes\no Reorder seq_putc and seq_puts to return early on overflow\no Add argument names to seq_vprintf and seq_printf\no Update the seq_escape kernel-doc\no Convert a couple of leading spaces to tabs in seq_escape\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Mark Brown \u003cbroonie@kernel.org\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Joerg Roedel \u003cjroedel@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": "37607102c4426cf92aeb5da1b1d9a79ba6d95e3f",
      "tree": "4690fa938f30a2104eb4fe92de49a4b5386d021d",
      "parents": [
        "40f705a736eac10e7dca7ab5dd5ed675a6df031d"
      ],
      "author": {
        "name": "Andy Shevchenko",
        "email": "andriy.shevchenko@linux.intel.com",
        "time": "Wed Sep 09 15:38:33 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 10 13:29:01 2015 -0700"
      },
      "message": "seq_file: provide an analogue of print_hex_dump()\n\nThis introduces a new helper and switches current users to use it.  All\npatches are compiled tested. kmemleak is tested via its own test suite.\n\nThis patch (of 6):\n\nThe new seq_hex_dump() is a complete analogue of print_hex_dump().\n\nWe have few users of this functionality already. It allows to reduce their\ncodebase.\n\nSigned-off-by: Andy Shevchenko \u003candriy.shevchenko@linux.intel.com\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: Tadeusz Struk \u003ctadeusz.struk@intel.com\u003e\nCc: Helge Deller \u003cdeller@gmx.de\u003e\nCc: Ingo Tuchscherer \u003cingo.tuchscherer@de.ibm.com\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Vladimir Kondratiev \u003cqca_vkondrat@qca.qualcomm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a068acf2ee77693e0bf39d6e07139ba704f461c3",
      "tree": "760636f774a9ad528168fa7ceaaf34529167b085",
      "parents": [
        "46359295a352e01a5a017297c70b7ee0c5da6de6"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "keescook@chromium.org",
        "time": "Fri Sep 04 15:44:57 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 04 16:54:41 2015 -0700"
      },
      "message": "fs: create and use seq_show_option for escaping\n\nMany file systems that implement the show_options hook fail to correctly\nescape their output which could lead to unescaped characters (e.g.  new\nlines) leaking into /proc/mounts and /proc/[pid]/mountinfo files.  This\ncould lead to confusion, spoofed entries (resulting in things like\nsystemd issuing false d-bus \"mount\" notifications), and who knows what\nelse.  This looks like it would only be the root user stepping on\nthemselves, but it\u0027s possible weird things could happen in containers or\nin other situations with delegated mount privileges.\n\nHere\u0027s an example using overlay with setuid fusermount trusting the\ncontents of /proc/mounts (via the /etc/mtab symlink).  Imagine the use\nof \"sudo\" is something more sneaky:\n\n  $ BASE\u003d\"ovl\"\n  $ MNT\u003d\"$BASE/mnt\"\n  $ LOW\u003d\"$BASE/lower\"\n  $ UP\u003d\"$BASE/upper\"\n  $ WORK\u003d\"$BASE/work/ 0 0\n  none /proc fuse.pwn user_id\u003d1000\"\n  $ mkdir -p \"$LOW\" \"$UP\" \"$WORK\"\n  $ sudo mount -t overlay -o \"lowerdir\u003d$LOW,upperdir\u003d$UP,workdir\u003d$WORK\" none /mnt\n  $ cat /proc/mounts\n  none /root/ovl/mnt overlay rw,relatime,lowerdir\u003dovl/lower,upperdir\u003dovl/upper,workdir\u003dovl/work/ 0 0\n  none /proc fuse.pwn user_id\u003d1000 0 0\n  $ fusermount -u /proc\n  $ cat /proc/mounts\n  cat: /proc/mounts: No such file or directory\n\nThis fixes the problem by adding new seq_show_option and\nseq_show_option_n helpers, and updating the vulnerable show_option\nhandlers to use them as needed.  Some, like SELinux, need to be open\ncoded due to unusual existing escape mechanisms.\n\n[akpm@linux-foundation.org: add lost chunk, per Kees]\n[keescook@chromium.org: seq_show_option should be using const parameters]\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nAcked-by: Jan Kara \u003cjack@suse.com\u003e\nAcked-by: Paul Moore \u003cpaul@paul-moore.com\u003e\nCc: J. R. Okajima \u003chooanon05g@gmail.com\u003e\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2726d56620ce71f40dd583d51391b86e1ab8cc57",
      "tree": "5fad19a48f9eb60de9e407e0b0baa24bb72e7dbb",
      "parents": [
        "9bf39ab2adafd7cf8740859cb49e7b7952813a5d"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Jun 19 10:30:28 2015 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 23 18:01:07 2015 -0400"
      },
      "message": "vfs: add seq_file_path() helper\n\nTurn\n\tseq_path(..., \u0026file-\u003ef_path, ...);\ninto\n\tseq_file_path(..., file, ...);\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "46385326cc1577587ed3e7432c2425cf6d3e4308",
      "tree": "a4a87d47fb4ef5853c5c31236a272c22a9304caf",
      "parents": [
        "ccbd59c1c104d6e42e949e2588563bfe25d9d98f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Feb 13 14:38:15 2015 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 13 21:21:39 2015 -0800"
      },
      "message": "bitmap, cpumask, nodemask: remove dedicated formatting functions\n\nNow that all bitmap formatting usages have been converted to\n\u0027%*pb[l]\u0027, the separate formatting functions are unnecessary.  The\nfollowing functions are removed.\n\n* bitmap_scn[list]printf()\n* cpumask_scnprintf(), cpulist_scnprintf()\n* [__]nodemask_scnprintf(), [__]nodelist_scnprintf()\n* seq_bitmap[_list](), seq_cpumask[_list](), seq_nodemask[_list]()\n* seq_buf_bitmask()\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\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": "1f33c41c03daece85a84b8dcea5733f3efe3e2b0",
      "tree": "dc20bd3893f3756d30c9281c2aafc5c1170bdaee",
      "parents": [
        "f114040e3ea6e07372334ade75d1ee0775c355e1"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Sep 29 16:08:21 2014 -0700"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Oct 29 20:26:06 2014 -0400"
      },
      "message": "seq_file: Rename seq_overflow() to seq_has_overflowed() and make public\n\nThe return values of seq_printf/puts/putc are frequently misused.\n\nStart down a path to remove all the return value uses of these\nfunctions.\n\nMove the seq_overflow() to a global inlined function called\nseq_has_overflowed() that can be used by the users of seq_file() calls.\n\nUpdate the documentation to not show return types for seq_printf\net al.  Add a description of seq_has_overflowed().\n\nLink: http://lkml.kernel.org/p/848ac7e3d1c31cddf638a8526fa3c59fa6fdeb8a.1412031505.git.joe@perches.com\n\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\n[ Reworked the original patch from Joe ]\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "839cc2a94cc3665bafe32203c2f095f4dd470a80",
      "tree": "c48aa0e5bcd3f09ad5b7354396a50928c9211155",
      "parents": [
        "57f4257eae33e036125973858934730250d464e3"
      ],
      "author": {
        "name": "Tetsuo Handa",
        "email": "penguin-kernel@I-love.SAKURA.ne.jp",
        "time": "Thu Nov 14 14:31:56 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 15 09:32:20 2013 +0900"
      },
      "message": "seq_file: introduce seq_setwidth() and seq_pad()\n\nThere are several users who want to know bytes written by seq_*() for\nalignment purpose.  Currently they are using %n format for knowing it\nbecause seq_*() returns 0 on success.\n\nThis patch introduces seq_setwidth() and seq_pad() for allowing them to\nalign without using %n format.\n\nSigned-off-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: David 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": "0bc77381c1b1600e659eb7322c39d1753615722d",
      "tree": "6e2adc4932f0fc136d08da5ba5adb032970a1b05",
      "parents": [
        "99b072bb38c9b398bc7c3fc8a0f30d0801f78750"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Jun 21 08:58:21 2013 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 08 13:36:41 2013 +0400"
      },
      "message": "seq_file: add seq_list_*_percpu helpers\n\nWhen we convert the file_lock_list to a set of percpu lists, we\u0027ll need\na way to iterate over them in order to output /proc/locks info. Add\nsome seq_list_*_percpu helpers to handle that.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nAcked-by: J. Bruce Fields \u003cbfields@fieldses.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2043f495c7c1a06f7748b5bcd17656d93c95e1a6",
      "tree": "f3d0368632a1fda88bb385ddfc01600fe450e74f",
      "parents": [
        "70ef457dc92bdd03c0c8d640fce45909166983a1"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Mar 31 13:43:23 2013 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Apr 09 14:13:29 2013 -0400"
      },
      "message": "new helper: single_open_size()\n\nSame as single_open(), but preallocates the buffer of given size.\nDoesn\u0027t make any sense for sizes up to PAGE_SIZE and doesn\u0027t make\nsense if output of show() exceeds PAGE_SIZE only rarely - seq_read()\nwill take care of growing the buffer and redoing show().  If you\n_know_ that it will be large, it might make more sense to look into\nsaner iterator, rather than go with single-shot one.  If that\u0027s\nimpossible, single_open_size() might be for you.\n\nAgain, don\u0027t use that without a good reason; occasionally that\u0027s really\nthe best way to go, but very often there are better solutions.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "adb37c4c67f807f16beb222028fb3ce9a354dc2b",
      "tree": "59f46f84b013f1a6390c72d58fe5b158c6e4b58e",
      "parents": [
        "fc5795c8a94c2d0b221dffae9ebb22686b3dafd8"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed May 23 18:01:20 2012 -0600"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Aug 14 21:47:55 2012 -0700"
      },
      "message": "userns: Make seq_file\u0027s user namespace accessible\n\nstruct file already has a user namespace associated with it\nin file-\u003ef_cred-\u003euser_ns, unfortunately because struct\nseq_file has no struct file backpointer associated with\nit, it is difficult to get at the user namespace in seq_file\ncontext.  Therefore add a helper function seq_user_ns to return\nthe associated user namespace and a user_ns field to struct\nseq_file to be used in implementing seq_user_ns.\n\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "a4808147dcf1ecf2f76212a78fd9692b3c112f47",
      "tree": "18d51f7b18416f3483e58b23da87d5f239325107",
      "parents": [
        "90306c41dc3d8e5f12ecd0193dae99e0e7f6e896"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jun 11 13:16:35 2012 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jun 11 13:16:35 2012 +0100"
      },
      "message": "seq_file: Add seq_vprintf function and export it\n\nThe existing seq_printf function is rewritten in terms of the new\nseq_vprintf which is also exported to modules. This allows GFS2\n(and potentially other seq_file users) to have a vprintf based\ninterface and to avoid an extra copy into a temporary buffer in\nsome cases.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nReported-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\n"
    },
    {
      "commit": "ed2d265d1266736bd294332d7f649003943ae36e",
      "tree": "860e5b7bb72933e4a9abacdc2f2d75a0e6254e32",
      "parents": [
        "f1d38e423a697b7aa06e12d3ca4753bcc1aa3531",
        "6c03438edeb5c359af35f060ea016ca65671c269"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 10:08:39 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 10:08:39 2012 -0700"
      },
      "message": "Merge tag \u0027bug-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux\n\nPull \u003clinux/bug.h\u003e cleanup from Paul Gortmaker:\n \"The changes shown here are to unify linux\u0027s BUG support under the one\n  \u003clinux/bug.h\u003e file.  Due to historical reasons, we have some BUG code\n  in bug.h and some in kernel.h -- i.e.  the support for BUILD_BUG in\n  linux/kernel.h predates the addition of linux/bug.h, but old code in\n  kernel.h wasn\u0027t moved to bug.h at that time.  As a band-aid, kernel.h\n  was including \u003casm/bug.h\u003e to pseudo link them.\n\n  This has caused confusion[1] and general yuck/WTF[2] reactions.  Here\n  is an example that violates the principle of least surprise:\n\n      CC      lib/string.o\n      lib/string.c: In function \u0027strlcat\u0027:\n      lib/string.c:225:2: error: implicit declaration of function \u0027BUILD_BUG_ON\u0027\n      make[2]: *** [lib/string.o] Error 1\n      $\n      $ grep linux/bug.h lib/string.c\n      #include \u003clinux/bug.h\u003e\n      $\n\n  We\u0027ve included \u003clinux/bug.h\u003e for the BUG infrastructure and yet we\n  still get a compile fail! [We\u0027ve not kernel.h for BUILD_BUG_ON.] Ugh -\n  very confusing for someone who is new to kernel development.\n\n  With the above in mind, the goals of this changeset are:\n\n  1) find and fix any include/*.h files that were relying on the\n     implicit presence of BUG code.\n  2) find and fix any C files that were consuming kernel.h and hence\n     relying on implicitly getting some/all BUG code.\n  3) Move the BUG related code living in kernel.h to \u003clinux/bug.h\u003e\n  4) remove the asm/bug.h from kernel.h to finally break the chain.\n\n  During development, the order was more like 3-4, build-test, 1-2.  But\n  to ensure that git history for bisect doesn\u0027t get needless build\n  failures introduced, the commits have been reorderd to fix the problem\n  areas in advance.\n\n\t[1]  https://lkml.org/lkml/2012/1/3/90\n\t[2]  https://lkml.org/lkml/2012/1/17/414\"\n\nFix up conflicts (new radeon file, reiserfs header cleanups) as per Paul\nand linux-next.\n\n* tag \u0027bug-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:\n  kernel.h: doesn\u0027t explicitly use bug.h, so don\u0027t include it.\n  bug: consolidate BUILD_BUG_ON with other bug code\n  BUG: headers with BUG/BUG_ON etc. need linux/bug.h\n  bug.h: add include of it to various implicit C users\n  lib: fix implicit users of kernel.h for TAINT_WARN\n  spinlock: macroize assert_spin_locked to avoid bug.h dependency\n  x86: relocate get/set debugreg fcns to include/asm/debugreg.\n"
    },
    {
      "commit": "bda7bad62bc4c4e0783348e8db51abe094153c56",
      "tree": "c62650a3da656ba18aebe170df7d554158ae5fc5",
      "parents": [
        "1ac101a5d675aca2426c5cd460c73fb95acb8391"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Mar 23 15:02:54 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:42 2012 -0700"
      },
      "message": "procfs: speed up /proc/pid/stat, statm\n\nProcess accounting applications as top, ps visit some files under\n/proc/\u003cpid\u003e.  With seq_put_decimal_ull(), we can optimize /proc/\u003cpid\u003e/stat\nand /proc/\u003cpid\u003e/statm files.\n\nThis patch adds\n  - seq_put_decimal_ll() for signed values.\n  - allow delimiter \u003d\u003d 0.\n  - convert seq_printf() to seq_put_decimal_ull/ll in /proc/stat, statm.\n\nTest result on a system with 2000+ procs.\n\nBefore patch:\n  [kamezawa@bluextal test]$ top -b -n 1 | wc -l\n  2223\n  [kamezawa@bluextal test]$ time top -b -n 1 \u003e /dev/null\n\n  real    0m0.675s\n  user    0m0.044s\n  sys     0m0.121s\n\n  [kamezawa@bluextal test]$ time ps -elf \u003e /dev/null\n\n  real    0m0.236s\n  user    0m0.056s\n  sys     0m0.176s\n\nAfter patch:\n  kamezawa@bluextal ~]$ time top -b -n 1 \u003e /dev/null\n\n  real    0m0.657s\n  user    0m0.052s\n  sys     0m0.100s\n\n  [kamezawa@bluextal ~]$ time ps -elf \u003e /dev/null\n\n  real    0m0.198s\n  user    0m0.050s\n  sys     0m0.145s\n\nConsidering top, ps tend to scan /proc periodically, this will reduce cpu\nconsumption by top/ps to some extent.\n\n[akpm@linux-foundation.org: checkpatch fixes]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1ac101a5d675aca2426c5cd460c73fb95acb8391",
      "tree": "5d993fde0c5e67de97c0d9ffac54163f06fc90c9",
      "parents": [
        "59a32e2ce5eb809967cac4e718bc527beca83c59"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Mar 23 15:02:54 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:42 2012 -0700"
      },
      "message": "procfs: add num_to_str() to speed up /proc/stat\n\n\u003d\u003d stat_check.py\nnum \u003d 0\nwith open(\"/proc/stat\") as f:\n        while num \u003c 1000 :\n                data \u003d f.read()\n                f.seek(0, 0)\n                num \u003d num + 1\n\u003d\u003d\n\nperf shows\n\n    20.39%  stat_check.py  [kernel.kallsyms]    [k] format_decode\n    13.41%  stat_check.py  [kernel.kallsyms]    [k] number\n    12.61%  stat_check.py  [kernel.kallsyms]    [k] vsnprintf\n    10.85%  stat_check.py  [kernel.kallsyms]    [k] memcpy\n     4.85%  stat_check.py  [kernel.kallsyms]    [k] radix_tree_lookup\n     4.43%  stat_check.py  [kernel.kallsyms]    [k] seq_printf\n\nThis patch removes most of calls to vsnprintf() by adding num_to_str()\nand seq_print_decimal_ull(), which prints decimal numbers without rich\nfunctions provided by printf().\n\nOn my 8cpu box.\n\u003d\u003d Before patch \u003d\u003d\n[root@bluextal test]# time ./stat_check.py\n\nreal    0m0.150s\nuser    0m0.026s\nsys     0m0.121s\n\n\u003d\u003d After patch \u003d\u003d\n[root@bluextal test]# time ./stat_check.py\n\nreal    0m0.055s\nuser    0m0.022s\nsys     0m0.030s\n\n[akpm@linux-foundation.org: remove incorrect comment, use less statck in num_to_str(), move comment from .h to .c, simplify seq_put_decimal_ull()]\n[andrea@betterlinux.com: avoid breaking the ABI in /proc/stat]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrea Righi \u003candrea@betterlinux.com\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Paul Turner \u003cpjt@google.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "187f1882b5b0748b3c4c22274663fdb372ac0452",
      "tree": "36283f258cf65f03599a045d48bb05d0ec27f3f9",
      "parents": [
        "50af5ead3b44ccf8bd2b4d2a50c1b610f557c480"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Wed Nov 23 20:12:59 2011 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Mar 04 17:54:34 2012 -0500"
      },
      "message": "BUG: headers with BUG/BUG_ON etc. need linux/bug.h\n\nIf a header file is making use of BUG, BUG_ON, BUILD_BUG_ON, or any\nother BUG variant in a static inline (i.e. not in a #define) then\nthat header really should be including \u003clinux/bug.h\u003e and not just\nexpecting it to be implicitly present.\n\nWe can make this change risk-free, since if the files using these\nheaders didn\u0027t have exposure to linux/bug.h already, they would have\nbeen causing compile failures/warnings.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "8c9379e972e984d11c2b99121847ba9fa7a0c56c",
      "tree": "aa348006b91148b67d224d5e5fb29f3bc1644776",
      "parents": [
        "79e801a906db46cb8efad66c400b01df874b3f12"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 08 20:18:57 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:52:40 2012 -0500"
      },
      "message": "constify seq_file stuff\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b9075fa968a0a4347aef35e235e2995c0e57dddd",
      "tree": "cf9f9716784e790d8a43339653256d9cf9178ff3",
      "parents": [
        "ae29bc92da01a2e9d278a9a58c3b307d41cc0254"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Oct 31 17:11:33 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:54 2011 -0700"
      },
      "message": "treewide: use __printf not __attribute__((format(printf,...)))\n\nStandardize the style for compiler based printf format verification.\nStandardized the location of __printf too.\n\nDone via script and a little typing.\n\n$ grep -rPl --include\u003d*.[ch] -w \"__attribute__\" * | \\\n  grep -vP \"^(tools|scripts|include/linux/compiler-gcc.h)\" | \\\n  xargs perl -n -i -e \u0027local $/; while (\u003c\u003e) { s/\\b__attribute__\\s*\\(\\s*\\(\\s*format\\s*\\(\\s*printf\\s*,\\s*(.+)\\s*,\\s*(.+)\\s*\\)\\s*\\)\\s*\\)/__printf($1, $2)/g ; print; }\u0027\n\n[akpm@linux-foundation.org: revert arch bits]\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: \"Kirill A. Shutemov\" \u003ckirill@shutemov.name\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f15146380d28b746df3c8b81b392812eb982382a",
      "tree": "bf43b38b60c21bd01b007c9636062783d406eb29",
      "parents": [
        "72c5052ddc3956d847f21c2b8d55c93664a51b2c"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Tue Jul 12 20:48:39 2011 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 20:47:50 2011 -0400"
      },
      "message": "fs: seq_file - add event counter to simplify poll() support\n\nMoving the event counter into the dynamically allocated \u0027struc seq_file\u0027\nallows poll() support without the need to allocate its own tracking\nstructure.\n\nAll current users are switched over to use the new counter.\n\nRequested-by: Andrew Morton akpm@linux-foundation.org\nAcked-by: NeilBrown \u003cneilb@suse.de\u003e\nTested-by: Lucas De Marchi lucas.demarchi@profusion.mobi\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1cc523271ef0b6305c565a143e3d48f6fff826dd",
      "tree": "8acfcce42d5d81e4ce993c078985bfc3789bf2c5",
      "parents": [
        "35e2da46d25a53e0e19956f533cc29272a6cceb2"
      ],
      "author": {
        "name": "stephen hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Mon Feb 22 07:57:17 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Feb 22 15:45:54 2010 -0800"
      },
      "message": "seq_file: add RCU versions of new hlist/list iterators (v3)\n\nMany usages of seq_file use RCU protected lists, so non RCU\niterators will not work safely.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "66655de6d132b726be64c324bc3f9ea366d20697",
      "tree": "d88c42a19de245e4a81337eef6bf06555586005d",
      "parents": [
        "b1109bf085c8dd69537b7876ea83f914dd1fe46a"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Feb 08 23:18:22 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Feb 10 11:12:06 2010 -0800"
      },
      "message": "seq_file: Add helpers for iteration over a hlist\n\nSome places in kernel need to iterate over a hlist in seq_file,\nso provide some common helpers.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f84398068d9c2babe41500504ef247ae07081857",
      "tree": "7306df97a7ee62f314f4db152fb2afceff156988",
      "parents": [
        "f9098980ffea9c749622ff8ddf3b6d5831902a46"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Sep 21 14:48:36 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Sep 24 07:47:35 2009 -0400"
      },
      "message": "vfs: seq_file: add helpers for data filling\n\nAdd two helpers that allow access to the seq_file\u0027s own buffer, but\nhide the internal details of seq_files.\n\nThis allows easier implementation of special purpose filling\nfunctions.  It also cleans up some existing functions which duplicated\nthe seq_file logic.\n\nMake these inline functions in seq_file.h, as suggested by Al.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nAcked-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0b923606e75f1ab672e25b14ac039a1cdcfa382f",
      "tree": "7661aaea6d8809b002cd03f910122f87eb35608a",
      "parents": [
        "b99b87f70c7785ab1e253c6220f4b0b57ce3a7f7"
      ],
      "author": {
        "name": "Peter Oberparleiter",
        "email": "oberpar@linux.vnet.ibm.com",
        "time": "Wed Jun 17 16:28:05 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:57 2009 -0700"
      },
      "message": "seq_file: add function to write binary data\n\nseq_write() can be used to construct seq_files containing arbitrary data.\nRequired by the gcov-profiling interface to synthesize binary profiling\ndata files.\n\nSigned-off-by: Peter Oberparleiter \u003coberpar@linux.vnet.ibm.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Huang Ying \u003cying.huang@intel.com\u003e\nCc: Li Wei \u003cW.Li@Sun.COM\u003e\nCc: Michael Ellerman \u003cmichaele@au1.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Heiko Carstens \u003cheicars2@linux.vnet.ibm.com\u003e\nCc: Martin Schwidefsky \u003cmschwid2@linux.vnet.ibm.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "af76aba00fdcfb21535c9f9872245d14097a4561",
      "tree": "221ec0b2cd01c7629abc1f30f0f563e1731c1683",
      "parents": [
        "1a2142afa5646ad5af44bbe1febaa5e0b7e71156"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 30 22:05:11 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 30 22:05:11 2009 +1030"
      },
      "message": "cpumask: fix seq_bitmap_*() functions.\n\n1) seq_bitmap_list() should take a const.\n2) All the seq_bitmap should use cpumask_bits().\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "8f19d472935c83d823fa4cf02bcc0a7b9952db30",
      "tree": "25cabc0b48ad0acb05fa69f92de617cf588fec8d",
      "parents": [
        "55ec82176eca52e4e0530a82a0eb59160a1a95a1"
      ],
      "author": {
        "name": "Eric Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Feb 18 14:48:16 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 18 15:37:53 2009 -0800"
      },
      "message": "seq_file: properly cope with pread\n\nCurrently seq_read assumes that the offset passed to it is always the\noffset it passed to user space.  In the case pread this assumption is\nbroken and we do the wrong thing when presented with pread.\n\nTo solve this I introduce an offset cache inside of struct seq_file so we\nknow where our logical file position is.  Then in seq_read if we try to\nread from another offset we reset our data structures and attempt to go to\nthe offset user space wanted.\n\n[akpm@linux-foundation.org: restore FMODE_PWRITE]\n[pjt@google.com: seq_open needs its fmode opened up to take advantage of this]\nSigned-off-by: Eric Biederman \u003cebiederm@xmission.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Paul Turner \u003cpjt@google.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.25.x, 2.6.26.x, 2.6.27.x, 2.6.28.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e12f0102ac81d660c9f801d0a0e10ccf4537a9de",
      "tree": "00463d0a0e3978d21a1c29331b58f101a2b50adf",
      "parents": [
        "cbe31f02f5b5536f17dd978118e25052af528071"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Dec 30 09:05:19 2008 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Dec 30 09:05:19 2008 +1030"
      },
      "message": "cpumask: Use nr_cpu_ids in seq_cpumask\n\nImpact: cleanup, futureproof\n\nnr_cpu_ids is the (badly named) runtime limit on possible CPU numbers;\nie. the variable version of NR_CPUS.\n\nWith the new cpumask operators, only bits less than this are defined.\nSo we should use it everywhere, rather than NR_CPUS.  Eventually this\nwill make it possible to allocate cpumasks of the minimal length at runtime.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cb78a0ce69fad2026825f957e24e2d9cda1ec9f1",
      "tree": "9a1359350c46f34394f715d9bebadc9cde842fa5",
      "parents": [
        "4b0bc0bca83f3fb7cf920e2ec80684c15d2269c0"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Dec 30 09:05:14 2008 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Dec 30 09:05:14 2008 +1030"
      },
      "message": "bitmap: fix seq_bitmap and seq_cpumask to take const pointer\n\nImpact: cleanup\n\nseq_bitmap just calls bitmap_scnprintf on the bits: that arg can be const.\nSimilarly, seq_cpumask just calls seq_bitmap.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "74e2f334f4440cbcb63e9ebbcdcea430d41bdfa3",
      "tree": "99a0aa61963601d998563e45b3ea40c5f2e4357c",
      "parents": [
        "02b67518e2b1c490787dac7f35e1204e74fe21ba"
      ],
      "author": {
        "name": "Török Edwin",
        "email": "edwintorok@gmail.com",
        "time": "Sat Nov 22 13:28:48 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 09:45:39 2008 +0100"
      },
      "message": "vfs, seqfile: make mangle_path() global\n\nImpact: expose new VFS API\n\nmake mangle_path() available, as per the suggestions of Christoph Hellwig\nand Al Viro:\n\n  http://lkml.org/lkml/2008/11/4/338\n\nSigned-off-by: Török Edwin \u003cedwintorok@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3eda20118000941e7e8994fc5fac8706d8c10f00",
      "tree": "7873d4760af7801f8e5b95cc7d6b719894aad6f5",
      "parents": [
        "85dd030edb174376ef43bc95e5fae4755af1ec98"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Sat Oct 18 20:28:19 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:39 2008 -0700"
      },
      "message": "seq_file: add seq_cpumask_list(), seq_nodemask_list()\n\nseq_cpumask_list(), seq_nodemask_list() are very like seq_cpumask(),\nseq_nodemask(), but they print human readable string.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Paul Jackson \u003cpj@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": "50ac2d694f2dd1658341cf97bcf2ffb836d772cb",
      "tree": "c4466ecb7c5211ee9423380783f00027411d5d5a",
      "parents": [
        "dd763460eb628b57814251a15a39f8d75c044d76"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Aug 12 15:09:02 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 12 16:07:30 2008 -0700"
      },
      "message": "seq_file: add seq_cpumask(), seq_nodemask()\n\nShort enough reads from /proc/irq/*/smp_affinity return -EINVAL for no\ngood reason.\n\nThis became noticed with NR_CPUS\u003d4096 patches, when length of printed\nrepresentation of cpumask becase 1152, but cat(1) continued to read with\n1024-byte chunks.  bitmap_scnprintf() in good faith fills buffer, returns\n1023, check returns -EINVAL.\n\nFix it by switching to seq_file, so handler will just fill buffer and\ndoesn\u0027t care about offsets, length, filling EOF and all this crap.\n\nFor that add seq_bitmap(), and wrappers around it -- seq_cpumask() and\nseq_nodemask().\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nReviewed-by: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Mike Travis \u003ctravis@sgi.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "735643ee6cc5249bfac07fcad0946a5e7aff4423",
      "tree": "e725df246f4a3cf88b6b42a28d859ab969acf81c",
      "parents": [
        "71cc2c2152170b8166f59abb0604dc62073aeb92"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@crashcourse.ca",
        "time": "Wed Apr 30 00:55:12 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:54 2008 -0700"
      },
      "message": "Remove \"#ifdef __KERNEL__\" checks from unexported headers\n\nRemove the \"#ifdef __KERNEL__\" tests from unexported header files in\nlinux/include whose entire contents are wrapped in that preprocessor\ntest.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@crashcourse.ca\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9d1bc60138977d9c79471b344a64f2df13b2ccef",
      "tree": "84ed2e1920a1a88ae84515bd9d90240faed5805c",
      "parents": [
        "6092d048183b76bfa3f84b32f8158dd8d10bd811"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Mar 27 13:06:21 2008 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Apr 23 00:04:38 2008 -0400"
      },
      "message": "[patch 2/7] vfs: mountinfo: add seq_file_root()\n\nAdd a new function:\n\n  seq_file_root()\n\nThis is similar to seq_path(), but calculates the path relative to the\ngiven root, instead of current-\u003efs-\u003eroot.  If the path was unreachable\nfrom root, then modify the root parameter to reflect this.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6092d048183b76bfa3f84b32f8158dd8d10bd811",
      "tree": "2d38af32961eb52b36daca2f29ce69e80f6e7283",
      "parents": [
        "934b25c597c0e98304a7eaec198a87e4633a42bb"
      ],
      "author": {
        "name": "Ram Pai",
        "email": "linuxram@us.ibm.com",
        "time": "Thu Mar 27 13:06:20 2008 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Apr 23 00:04:32 2008 -0400"
      },
      "message": "[patch 1/7] vfs: mountinfo: add dentry_path()\n\n[mszeredi@suse.cz] split big patch into managable chunks\n\nAdd the following functions:\n\n  dentry_path()\n  seq_dentry()\n\nThese are similar to d_path() and seq_path().  But instead of\ncalculating the path within a mount namespace, they calculate the path\nfrom the root of the filesystem to a given dentry, ignoring mounts\ncompletely.\n\nSigned-off-by: Ram Pai \u003clinuxram@us.ibm.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "521b5d0c40386f4a9805cdec7bd979fc96a86aeb",
      "tree": "2193c12ee3dc0551790c79370603acb57e0f59e7",
      "parents": [
        "4e1b36fb485dd81b0818ef1bc8fb5c0f2923a283"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 28 00:46:41 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Apr 21 23:14:02 2008 -0400"
      },
      "message": "[PATCH] teach seq_file to discard entries\n\nAllow -\u003eshow() return SEQ_SKIP; that will discard all\noutput from that element and move on.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c0f39322c335412339dec16ebfd2a05ceba5ebcf",
      "tree": "0a2f1aea451ec3aa563d0069a3d464b647142df1",
      "parents": [
        "856f6ff7a3132c8e412b23a7b9157b68ac9a2baf"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Wed Apr 02 00:10:28 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 02 00:10:28 2008 -0700"
      },
      "message": "[NETNS]: Do not include net/net_namespace.h from seq_file.h\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0e5f8be1388093edc324a78ebf241170b258eba3",
      "tree": "1b5491f78edba6bc3d463e4190deff22f10dff74",
      "parents": [
        "5983a3dff0036d7ef6a2139473564f4f3e7b2a11"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Thu Mar 27 14:25:53 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 27 14:25:53 2008 -0700"
      },
      "message": "[NETNS]: Compile NET /proc support only if CONFIG_NET is set.\n\nThis fix broken compilation for \u0027allnoconfig\u0027. This was introduced by\nIntroduced by commit 1218854afa6f659be90b748cf1bc7badee954a35 (\"[NET]\nNETNS: Omit seq_net_private-\u003enet without CONFIG_NET_NS.\")\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nAcked-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1218854afa6f659be90b748cf1bc7badee954a35",
      "tree": "78b83e3941fa7e5a03c04e2e4f6ddb1a08ea38a0",
      "parents": [
        "3b1e0a655f8eba44ab1ee2a1068d169ccfb853b9"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Wed Mar 26 02:36:06 2008 +0900"
      },
      "committer": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Wed Mar 26 04:39:56 2008 +0900"
      },
      "message": "[NET] NETNS: Omit seq_net_private-\u003enet without CONFIG_NET_NS.\n\nWithout CONFIG_NET_NS, no namespace other than \u0026init_net exists,\nno need to store net in seq_net_private.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\n"
    },
    {
      "commit": "c32c2f63a9d6c953aaf168c0b2551da9734f76d2",
      "tree": "14eca3083f3de4a87a95359ab66109c10add1ae7",
      "parents": [
        "e83aece3afad4d56cc01abe069d3519e851cd2de"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Thu Feb 14 19:38:43 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 14 21:17:08 2008 -0800"
      },
      "message": "d_path: Make seq_path() use a struct path argument\n\nseq_path() is always called with a dentry and a vfsmount from a struct path.\nMake seq_path() take it directly as an argument.\n\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Neil Brown \u003cneilb@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": "e372c41401993b45c721c4d92730e7e0a79f7c1b",
      "tree": "8f062f506c0578fc83b7d05c8751a7ccac96e50e",
      "parents": [
        "097e66c578459f79e3a2128c54e9df5194e1419a"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Mon Nov 19 22:31:54 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:28 2008 -0800"
      },
      "message": "[NET]: Consolidate net namespace related proc files creation.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2b47c3611de05c585e2d81204f6c7e3e255a3461",
      "tree": "24a14614fb9bf507b4b6ad3fa6a7cfa5a92318fb",
      "parents": [
        "41d10da3717409de33d5441f2f6d8f072ab3fbb6"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Tue Oct 16 23:27:21 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:53 2007 -0700"
      },
      "message": "Fix f_version type: should be u64 instead of unsigned long\n\nFix f_version type: should be u64 instead of long\n\nThere is a type inconsistency between struct inode i_version and struct file\nf_version.\n\nfs.h:\n\nstruct inode\n  u64                     i_version;\n\nand\n\nstruct file\n  unsigned long           f_version;\n\nUsers do:\n\nfs/ext3/dir.c:\n\nif (filp-\u003ef_version !\u003d inode-\u003ei_version) {\n\nSo why isn\u0027t f_version a u64 ? It becomes a problem if versions gets\nhigher than 2^32 and we are on an architecture where longs are 32 bits.\n\nThis patch changes the f_version type to u64, and updates the users accordingly.\n\nIt applies to 2.6.23-rc2-mm2.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nCc: Martin Bligh \u003cmbligh@google.com\u003e\nCc: \"Randy.Dunlap\" \u003crdunlap@xenotime.net\u003e\nCc: Al Viro \u003cviro@ftp.linux.org.uk\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nCc: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "39699037a5c94d7cd1363dfe48a50c78c643fd9a",
      "tree": "ea5a0ab329dbe43531c3b713536e45491e1cb51f",
      "parents": [
        "59e90b2d22500f2e9cc635793562154abc8f4621"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Oct 10 02:28:42 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Oct 10 16:55:33 2007 -0700"
      },
      "message": "[FS] seq_file: Introduce the seq_open_private()\n\nThis function allocates the zeroed chunk of memory and\ncall seq_open(). The __seq_open_private() helper returns\nthe allocated memory to make it possible for the caller\nto initialize it.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bcf67e16251c42302499499b1c50f7d35622f564",
      "tree": "3df64aa83005c0a153acf3a1a0d7a6e6d49dc688",
      "parents": [
        "c14d444b55f285063a4018c10d521614b70b581a"
      ],
      "author": {
        "name": "Pavel Emelianov",
        "email": "xemul@sw.ru",
        "time": "Tue Jul 10 17:22:26 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 10 17:51:13 2007 -0700"
      },
      "message": "Make common helpers for seq_files that work with list_heads\n\nMany places in kernel use seq_file API to iterate over a regular list_head.\nThe code for such iteration is identical in all the places, so it\u0027s worth\nintroducing a common helpers.\n\nThis makes code about 300 lines smaller:\n\nThe first version of this patch made the helper functions static inline\nin the seq_file.h header. This patch moves them to the fs/seq_file.c as\nAndrew proposed. The vmlinux .text section sizes are as follows:\n\n2.6.22-rc1-mm1:              0x001794d5\nwith the previous version:   0x00179505\nwith this patch:             0x00179135\n\nThe config file used was make allnoconfig with the \"y\" inclusion of all\nthe possible options to make the files modified by the patch compile plus\ndrivers I have on the test node.\n\nThis patch:\n\nMany places in kernel use seq_file API to iterate over a regular list_head.\nThe code for such iteration is identical in all the places, so it\u0027s worth\nintroducing a common helpers.\n\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\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": "15ad7cdcfd76450d4beebc789ec646664238184d",
      "tree": "279d05a76ae0906c23ee2de8c5684d95d9886ad3",
      "parents": [
        "4a08a9f68168e547c2baf100020e9b96cae5fbd1"
      ],
      "author": {
        "name": "Helge Deller",
        "email": "deller@gmx.de",
        "time": "Wed Dec 06 20:40:36 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:46 2006 -0800"
      },
      "message": "[PATCH] struct seq_operations and struct file_operations constification\n\n - move some file_operations structs into the .rodata section\n\n - move static strings from policy_types[] array into the .rodata section\n\n - fix generic seq_operations usages, so that those structs may be defined\n   as \"const\" as well\n\n[akpm@osdl.org: couple of fixes]\nSigned-off-by: Helge Deller \u003cdeller@gmx.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0ac1759abc69fb62438c30a7e422f628a1120d67",
      "tree": "953fd417cc63bae48245ab03c04123a45e21125e",
      "parents": [
        "7cf34c761db8827818a27e23c50756f8b821a9b0"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 23 03:00:37 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:12 2006 -0800"
      },
      "message": "[PATCH] sem2mutex: fs/seq_file.c\n\nSemaphore to mutex conversion.\n\nThe conversion was generated via scripts, and the result was validated\nautomatically via a script as well.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
