)]}'
{
  "log": [
    {
      "commit": "93fac7041f082297b93655a0e49f659cd7520e40",
      "tree": "2d8f295087377d4ac0ceea49dd67bb682b04c749",
      "parents": [
        "9bf9e89c3d147ca8cf9622d2d053684fba77a464"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Fri Mar 31 02:29:56 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:49 2006 -0800"
      },
      "message": "[PATCH] mm: schedule find_trylock_page() removal\n\nfind_trylock_page() is an odd interface in that it doesn\u0027t take a reference\nlike the others.  Now that XFS no longer uses it, and its last remaining\ncaller actually wants an elevated refcount, opencode that callsite and\nschedule find_trylock_page() for removal.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6e1819d615f24ce0726a7d0bd3dd0152d7b21654",
      "tree": "abc68747446e8241a1a7103882b9f6b6e24fa274",
      "parents": [
        "543cc27d09643640cbc34189c03a40beb8227aef"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Mar 23 03:00:03 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:07 2006 -0800"
      },
      "message": "[PATCH] swsusp: userland interface\n\nThis patch introduces a user space interface for swsusp.\n\nThe interface is based on a special character device, called the snapshot\ndevice, that allows user space processes to perform suspend and resume-related\noperations with the help of some ioctls and the read()/write() functions.\n Additionally it allows these processes to allocate free swap pages from a\nselected swap partition, called the resume partition, so that they know which\nsectors of the resume partition are available to them.\n\nThe interface uses the same low-level system memory snapshot-handling\nfunctions that are used by the built-it swap-writing/reading code of swsusp.\n\nThe interface documentation is included in the patch.\n\nThe patch assumes that the major and minor numbers of the snapshot device will\nbe 10 (ie.  misc device) and 231, the registration of which has already been\nrequested.\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@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f577eb30afdc68233f25d4d82b04102129262365",
      "tree": "25d3c2fa8dfbf42fd0d4776a36166736fcc1446a",
      "parents": [
        "2b322ce210aec74ae0d02938d3a01e29fe079469"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Mar 23 02:59:59 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:07 2006 -0800"
      },
      "message": "[PATCH] swsusp: low level interface\n\nIntroduce the low level interface that can be used for handling the\nsnapshot of the system memory by the in-kernel swap-writing/reading code of\nswsusp and the userland interface code (to be introduced shortly).\n\nAlso change the way in which swsusp records the allocated swap pages and,\nconsequently, simplifies the in-kernel swap-writing/reading code (this is\nnecessary for the userland interface too).  To this end, it introduces two\nhelper functions in mm/swapfile.c, so that the swsusp code does not refer\ndirectly to the swap internals.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9b65ef59d42a56fa1358958ede77aaa5bac385a8",
      "tree": "c6f83951e399cf52784f6d200c9588e4c41d6461",
      "parents": [
        "879336c3930ae9273ea1c45214cb8adae0ce494a"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "mita@miraclelinux.com",
        "time": "Wed Mar 22 00:09:09 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:54:06 2006 -0800"
      },
      "message": "[PATCH] fix swap cluster offset\n\nWhen we\u0027ve allocated SWAPFILE_CLUSTER pages, -\u003ecluster_next should be the\nfirst index of swap cluster.  But current code probably sets it wrong offset.\n\nSigned-off-by: Akinobu Mita \u003cmita@miraclelinux.com\u003e\nAcked-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a3351e525e4768c29aa5d22ef59b5b38e0361e53",
      "tree": "457ab54f402b471c5158e8b361d059e88ab8cd62",
      "parents": [
        "a48d07afdf18212de22b959715b16793c5a6e57a"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Feb 01 03:05:39 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:16 2006 -0800"
      },
      "message": "[PATCH] Direct Migration V9: remove_from_swap() to remove swap ptes\n\nAdd remove_from_swap\n\nremove_from_swap() allows the restoration of the pte entries that existed\nbefore page migration occurred for anonymous pages by walking the reverse\nmaps.  This reduces swap use and establishes regular pte\u0027s without the need\nfor page faults.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b16664e44c54525be89dc07ad15a13b4eeec5634",
      "tree": "1844d193009c1e55e3c26256feb14bc622ec9af3",
      "parents": [
        "2a16e3f4b0c408b9e50297d2ec27e295d490267a"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Feb 01 03:05:36 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:16 2006 -0800"
      },
      "message": "[PATCH] Direct Migration V9: PageSwapCache checks\n\nCheck for PageSwapCache after looking up and locking a swap page.\n\nThe page migration code may change a swap pte to point to a different page\nunder lock_page().\n\nIf that happens then the vm must retry the lookup operation in the swap space\nto find the correct page number.  There are a couple of locations in the VM\nwhere a lock_page() is done on a swap page.  In these locations we need to\ncheck afterwards if the page was migrated.  If the page was migrated then the\nold page that was looked up before was freed and no longer has the\nPageSwapCache bit set.\n\nSigned-off-by: Hirokazu Takahashi \u003ctaka@valinux.co.jp\u003e\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Christoph Lameter \u003cclameter@@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fc0abb1451c64c79ac80665d5ba74450ce274e4d",
      "tree": "30301b6134b122a638104645bd6bd4b45014dd2c",
      "parents": [
        "1743660b911bfb849b1fb33830522254561b9f9b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 18 17:42:33 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 18 19:20:18 2006 -0800"
      },
      "message": "[PATCH] sem2mutex: mm/slab.c\n\nConvert mm/swapfile.c\u0027s swapon_sem to swapon_mutex.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c59ede7b78db329949d9cdcd7064e22d357560ef",
      "tree": "f9dc9d464fdad5bfd464d983e77c1af031389dda",
      "parents": [
        "e16885c5ad624a6efe1b1bf764e075d75f65a788"
      ],
      "author": {
        "name": "Randy.Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Wed Jan 11 12:17:46 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 11 18:42:13 2006 -0800"
      },
      "message": "[PATCH] move capable() to capability.h\n\n- Move capable() from sched.h to capability.h;\n\n- Use \u003clinux/capability.h\u003e where capable() is used\n\t(in include/, block/, ipc/, kernel/, a few drivers/,\n\tmm/, security/, \u0026 sound/;\n\tmany more drivers/ to go)\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e97a31117c0f96be6637f68b4029609bb1f2cc7c",
      "tree": "6754f5be8904bf1e034c7c24fe992304a017c75a",
      "parents": [
        "ffd59daceb7db5f7c54f095c5529cec45222c1f1"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "juhl-lkml@dif.dk",
        "time": "Wed Jan 11 01:50:28 2006 +0100"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@r063144.stusta.swh.mhn.de",
        "time": "Wed Jan 11 01:50:28 2006 +0100"
      },
      "message": "add missing printk loglevel in mm/swapfile.c\n\nin mm/swapfile.c a printk() is missing a loglevel. I believe the proper\nloglevel for this situation is KERN_ERR, so that\u0027s what the patch below\nsets -if you agree, please apply.\n\nSigned-off-by: Jesper Juhl \u003cjuhl-lkml@dif.dk\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "1b1dcc1b57a49136f118a0f16367256ff9994a69",
      "tree": "b0b36d4f41d28c9d6514fb309d33c1a084d6309b",
      "parents": [
        "794ee1baee1c26be40410233e6c20bceb2b03c08"
      ],
      "author": {
        "name": "Jes Sorensen",
        "email": "jes@sgi.com",
        "time": "Mon Jan 09 15:59:24 2006 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@hera.kernel.org",
        "time": "Mon Jan 09 15:59:24 2006 -0800"
      },
      "message": "[PATCH] mutex subsystem, semaphore to mutex: VFS, -\u003ei_sem\n\nThis patch converts the inode semaphore to a mutex. I have tested it on\nXFS and compiled as much as one can consider on an ia64. Anyway your\nluck with it might be different.\n\nModified-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n\n(finished the conversion)\n\nSigned-off-by: Jes Sorensen \u003cjes@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cd105df4590c89837a1c300843238148cfef9b5f",
      "tree": "bea54d8f24ad97d4af5fda6baac5711fa524af0e",
      "parents": [
        "152194aaa6266d71dfee57882a23def339ef17a4"
      ],
      "author": {
        "name": "Tobias Klauser",
        "email": "tklauser@nuerscht.ch",
        "time": "Sun Jan 08 01:00:59 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:43 2006 -0800"
      },
      "message": "[PATCH] mm: clean up local variables\n\nClean up a local variable with the same name as a variable in a larger\nblock.  Also move a variable into the block where it\u0027s actually used.\n\nSpotted by http://linuxicc.sourceforge.net/\n\nSigned-off-by: Tobias Klauser \u003ctklauser@nuerscht.ch\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3a291a20bd6fcfafb2109031f0760a0d3e92ecd7",
      "tree": "6c034471da9b2aac77b9810af640bb7a515cb299",
      "parents": [
        "ca0aec0f7a94bf9f07fefa8bfd23282d4e8ceb8a"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jan 06 00:16:37 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:43 2006 -0800"
      },
      "message": "[PATCH] mm: add a new function (needed for swap suspend)\n\nThis adds the function get_swap_page_of_type() allowing us to specify an index\nin swap_info[] and select a swap_info_struct structure to be used for\nallocating a swap page.\n\nThis function (or another one of similar functionality) will be necessary for\nimplementing the image-writing part of swsusp in the user space.   It can also\nbe used for simplifying the current in-kernel implementation of the\nimage-writing part of swsusp.\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@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e2de225710b0f7480c29700bf93326b078657db8",
      "tree": "d2c0ea62f9a5c0c8f262633af2d2e5a7745e651b",
      "parents": [
        "1b09d16489f831bfc23d1c7311ee331b0680e90e"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Mon Nov 07 01:01:41 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:54:07 2005 -0800"
      },
      "message": "[PATCH] mm/swapfile.c: unexport total_swap_pages\n\nI didn\u0027t find any possible modular usage in the kernel.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4c21e2f2441dc5fbb957b030333f5a3f2d02dea7",
      "tree": "1f76d33bb1d76221c6424bc5fed080a4f91349a6",
      "parents": [
        "b38c6845b695141259019e2b7c0fe6c32a6e720d"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:40 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:42 2005 -0700"
      },
      "message": "[PATCH] mm: split page table lock\n\nChristoph Lameter demonstrated very poor scalability on the SGI 512-way, with\na many-threaded application which concurrently initializes different parts of\na large anonymous area.\n\nThis patch corrects that, by using a separate spinlock per page table page, to\nguard the page table entries in that page, instead of using the mm\u0027s single\npage_table_lock.  (But even then, page_table_lock is still used to guard page\ntable allocation, and anon_vma allocation.)\n\nIn this implementation, the spinlock is tucked inside the struct page of the\npage table page: with a BUILD_BUG_ON in case it overflows - which it would in\nthe case of 32-bit PA-RISC with spinlock debugging enabled.\n\nSplitting the lock is not quite for free: another cacheline access.  Ideally,\nI suppose we would use split ptlock only for multi-threaded processes on\nmulti-cpu machines; but deciding that dynamically would have its own costs.\nSo for now enable it by config, at some number of cpus - since the Kconfig\nlanguage doesn\u0027t support inequalities, let preprocessor compare that with\nNR_CPUS.  But I don\u0027t think it\u0027s worth being user-configurable: for good\ntesting of both split and unsplit configs, split now at 4 cpus, and perhaps\nchange that to 8 later.\n\nThere is a benefit even for singly threaded processes: kswapd can be attacking\none part of the mm while another part is busy faulting.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "705e87c0c3c38424f7f30556c85bc20e808d2f59",
      "tree": "7a237e6266f4801385e1226cc497b47e3a2458bd",
      "parents": [
        "8f4e2101fd7df9031a754eedb82e2060b51f8c45"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:27 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:40 2005 -0700"
      },
      "message": "[PATCH] mm: pte_offset_map_lock loops\n\nConvert those common loops using page_table_lock on the outside and\npte_offset_map within to use just pte_offset_map_lock within instead.\n\nThese all hold mmap_sem (some exclusively, some not), so at no level can a\npage table be whipped away from beneath them.  But whereas pte_alloc loops\ntested with the \"atomic\" pmd_present, these loops are testing with pmd_none,\nwhich on i386 PAE tests both lower and upper halves.\n\nThat\u0027s now unsafe, so add a cast into pmd_none to test only the vital lower\nhalf: we lose a little sensitivity to a corrupt middle directory, but not\nenough to worry about.  It appears that i386 and UML were the only\narchitectures vulnerable in this way, and pgd and pud no problem.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4294621f41a85497019fae64341aa5351a1921b7",
      "tree": "fdeb7eb44384a99d0679ffa6de5019bab0ea2166",
      "parents": [
        "404351e67a9facb475abf1492245374a28d13e90"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:05 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:38 2005 -0700"
      },
      "message": "[PATCH] mm: rss \u003d file_rss + anon_rss\n\nI was lazy when we added anon_rss, and chose to change as few places as\npossible.  So currently each anonymous page has to be counted twice, in rss\nand in anon_rss.  Which won\u0027t be so good if those are atomic counts in some\nconfigurations.\n\nChange that around: keep file_rss and anon_rss separately, and add them\ntogether (with get_mm_rss macro) when the total is needed - reading two\natomics is much cheaper than updating two atomics.  And update anon_rss\nupfront, typically in memory.c, not tucked away in page_add_anon_rmap.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "72866f6f277ec0ddd6df7a3b6ecdcf59a28de115",
      "tree": "a76bb7fb8e092250c4399c20f0c7c973b77cb0bb",
      "parents": [
        "6237bcd94851e9cf0ecd2520d744779df0f5a9a6"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:15:55 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:36 2005 -0700"
      },
      "message": "[PATCH] mm: anon is already wrprotected\n\ndo_anonymous_page\u0027s pte_wrprotect causes some confusion: in such a case,\nvm_page_prot must already be forcing COW, so must omit write permission, and\nso the pte_wrprotect is redundant.  Replace it by a comment to that effect,\nand reword the comment on unuse_pte which also caused confusion.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f7b3a4359b25311fb5894c8809478a2df6bed480",
      "tree": "ef2e2a707f1b5d5095c9e2e1e6d760d77ad2b31b",
      "parents": [
        "8bdac5d1ed892da54b6b2069e50a47b3aa39460f"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Thu Sep 22 21:44:27 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Sep 22 22:17:37 2005 -0700"
      },
      "message": "[PATCH] Fix bd_claim() error code.\n\nProblem: In some circumstances, bd_claim() is returning the wrong error\ncode.\n\nIf we try to swapon an unused block device that isn\u0027t swap formatted, we\nget -EINVAL.  But if that same block device is already mounted, we instead\nget -EBUSY, even though it still isn\u0027t a valid swap device.\n\nThis issue came up on the busybox list trying to get the error message\nfrom \"swapon -a\" right.  If a swap device is already enabled, we get -EBUSY,\nand we shouldn\u0027t report this as an error.  But we can\u0027t distinguish the two\n-EBUSY conditions, which are very different errors.\n\nIn the code, bd_claim() returns either 0 or -EBUSY, but in this case busy\nmeans \"somebody other than sys_swapon has already claimed this\", and\n_that_ means this block device can\u0027t be a valid swap device.  So return\n-EINVAL there.\n\nSigned-off-by: Rob Landley \u003crob@landley.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "13e4b57f6a4e23ceb99794a650d777e74831f4a6",
      "tree": "a585fdc3a2374dbedcf0114fa3c38d2fb7920774",
      "parents": [
        "75bcc8c5e1de78616b04ef9f317a293a7c1c163c"
      ],
      "author": {
        "name": "Nishanth Aravamudan",
        "email": "nacc@us.ibm.com",
        "time": "Sat Sep 10 00:27:25 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:37 2005 -0700"
      },
      "message": "[PATCH] mm: fix-up schedule_timeout() usage\n\nUse schedule_timeout_{,un}interruptible() instead of\nset_current_state()/schedule_timeout() to reduce kernel size.\n\nSigned-off-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5d337b9194b1ce3b6fd5f3cb2799455ed2f9a3d1",
      "tree": "91ed9ef6f4cb5f6a1832f2baaaabd53fcd83513e",
      "parents": [
        "048c27fd72816b44e096997d1c6901c3abbfd45b"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Sep 03 15:54:41 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:05:42 2005 -0700"
      },
      "message": "[PATCH] swap: swap_lock replace list+device\n\nThe idea of a swap_device_lock per device, and a swap_list_lock over them all,\nis appealing; but in practice almost every holder of swap_device_lock must\nalready hold swap_list_lock, which defeats the purpose of the split.\n\nThe only exceptions have been swap_duplicate, valid_swaphandles and an\nuntrodden path in try_to_unuse (plus a few places added in this series).\nvalid_swaphandles doesn\u0027t show up high in profiles, but swap_duplicate does\ndemand attention.  However, with the hold time in get_swap_pages so much\nreduced, I\u0027ve not yet found a load and set of swap device priorities to show\neven swap_duplicate benefitting from the split.  Certainly the split is mere\noverhead in the common case of a single swap device.\n\nSo, replace swap_list_lock and swap_device_lock by spinlock_t swap_lock\n(generally we seem to prefer an _ in the name, and not hide in a macro).\n\nIf someone can show a regression in swap_duplicate, then probably we should\nadd a hashlock for the swap_map entries alone (shorts being anatomic), so as\nto help the case of the single swap device too.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "048c27fd72816b44e096997d1c6901c3abbfd45b",
      "tree": "159a00b71ce9db161a48e4fc07b212db455a2cf1",
      "parents": [
        "52b7efdbe5f5696fc80338560a3fc51e0b0a993c"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Sep 03 15:54:40 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:05:41 2005 -0700"
      },
      "message": "[PATCH] swap: scan_swap_map latency breaks\n\nThe get_swap_page/scan_swap_map latency can be so bad that even those without\npreemption configured deserve relief: periodically cond_resched.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "52b7efdbe5f5696fc80338560a3fc51e0b0a993c",
      "tree": "30162de9fc8fe3dddb6462f8ff82f1594067cadd",
      "parents": [
        "7dfad4183bf9cd92f977caa3c12cc74f0eefc0e6"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Sep 03 15:54:39 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:05:41 2005 -0700"
      },
      "message": "[PATCH] swap: scan_swap_map drop swap_device_lock\n\nget_swap_page has often shown up on latency traces, doing lengthy scans while\nholding two spinlocks.  swap_list_lock is already dropped, now scan_swap_map\ndrop swap_device_lock before scanning the swap_map.\n\nWhile scanning for an empty cluster, don\u0027t worry that racing tasks may\nallocate what was free and free what was allocated; but when allocating an\nentry, check it\u0027s still free after retaking the lock.  Avoid dropping the lock\nin the expected common path.  No barriers beyond the locks, just let the\ncookie crumble; highest_bit limit is volatile, but benign.\n\nGuard against swapoff: must check SWP_WRITEOK before allocating, must raise\nSWP_SCANNING reference count while in scan_swap_map, swapoff wait for that to\nfall - just use schedule_timeout, we don\u0027t want to burden scan_swap_map\nitself, and it\u0027s very unlikely that anyone can really still be in\nscan_swap_map once swapoff gets this far.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7dfad4183bf9cd92f977caa3c12cc74f0eefc0e6",
      "tree": "e11306e1e82acba1832f07fdfb3296c34cf6e934",
      "parents": [
        "fb4f88dcabdc716c7c350e09cf4a38a419b007e1"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Sep 03 15:54:38 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:05:41 2005 -0700"
      },
      "message": "[PATCH] swap: scan_swap_map restyled\n\nRewrite scan_swap_map to allocate in just the same way as before (taking the\nnext free entry SWAPFILE_CLUSTER-1 times, then restarting at the lowest wholly\nempty cluster, falling back to lowest entry if none), but with a view towards\ndropping the lock in the next patch.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fb4f88dcabdc716c7c350e09cf4a38a419b007e1",
      "tree": "1a7806e3ac8bd45eded544763324c13c9f95c0e6",
      "parents": [
        "89d09a2c80ea6baafb559b86d545fada05e14ab5"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Sep 03 15:54:37 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:05:41 2005 -0700"
      },
      "message": "[PATCH] swap: get_swap_page drop swap_list_lock\n\nRewrite get_swap_page to allocate in just the same sequence as before, but\nwithout holding swap_list_lock across its scan_swap_map.  Decrement\nnr_swap_pages and update swap_list.next in advance, while still holding\nswap_list_lock.  Skip full devices by testing highest_bit.  Swapoff hold\nswap_device_lock as well as swap_list_lock to clear SWP_WRITEOK.  Reduces lock\ncontention when there are parallel swap devices of the same priority.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "89d09a2c80ea6baafb559b86d545fada05e14ab5",
      "tree": "90ff3c2a62c144b93c89b33d66583046f1a7efae",
      "parents": [
        "6eb396dc4a9781c5e7951143ab56ce5710687ab3"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Sep 03 15:54:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:05:41 2005 -0700"
      },
      "message": "[PATCH] swap: freeing update swap_list.next\n\nThis makes negligible difference in practice: but swap_list.next should not be\nupdated to a higher prio in the general helper swap_info_get, but rather in\nswap_entry_free; and then only in the case when entry is actually freed.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6eb396dc4a9781c5e7951143ab56ce5710687ab3",
      "tree": "48b165c8934a0f3852344725fee060740dcdfa48",
      "parents": [
        "53092a7402f227151a681b0c92ec8598c5618b1a"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Sep 03 15:54:35 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:05:41 2005 -0700"
      },
      "message": "[PATCH] swap: swap unsigned int consistency\n\nThe swap header\u0027s unsigned int last_page determines the range of swap pages,\nbut swap_info has been using int or unsigned long in some cases: use unsigned\nint throughout (except, in several places a local unsigned long is useful to\navoid overflows when adding).\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "53092a7402f227151a681b0c92ec8598c5618b1a",
      "tree": "ea482a18567c8b3b1778331ee3c4864e2f4dae6f",
      "parents": [
        "11d31886dbcb61039ed3789e583d21c6e70960fd"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Sep 03 15:54:34 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:05:40 2005 -0700"
      },
      "message": "[PATCH] swap: show span of swap extents\n\nThe \"Adding %dk swap\" message shows the number of swap extents, as a guide to\nhow fragmented the swapfile may be.  But a useful further guide is what total\nextent they span across (sometimes scarily large).\n\nAnd there\u0027s no need to keep nr_extents in swap_info: it\u0027s unused after the\ninitial message, so save a little space by keeping it on stack.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "11d31886dbcb61039ed3789e583d21c6e70960fd",
      "tree": "ddaebfd35080a530a30c56587707c2c5ef452591",
      "parents": [
        "4cd3bb10ff0b21b77b5a4cd13b4bd36694e054c4"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Sep 03 15:54:34 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:05:40 2005 -0700"
      },
      "message": "[PATCH] swap: swap extent list is ordered\n\nThere are several comments that swap\u0027s extent_list.prev points to the lowest\nextent: that\u0027s not so, it\u0027s extent_list.next which points to it, as you\u0027d\nexpect.  And a couple of loops in add_swap_extent which go all the way through\nthe list, when they should just add to the other end.\n\nFix those up, and let map_swap_page search the list forwards: profiles shows\nit to be twice as quick that way - because prefetch works better on how the\nstructs are typically kmalloc\u0027ed?  or because usually more is written to than\nread from swap, and swap is allocated ascendingly?\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4cd3bb10ff0b21b77b5a4cd13b4bd36694e054c4",
      "tree": "e2a76a229b2c030a7d4aec1155e505fd4c087067",
      "parents": [
        "e2244ec2efa4ee1edf391d0001d314933e2b2974"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Sep 03 15:54:33 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:05:40 2005 -0700"
      },
      "message": "[PATCH] swap: move destroy_swap_extents calls\n\nsys_swapon\u0027s call to destroy_swap_extents on failure is made after the final\nswap_list_unlock, which is faintly unsafe: another sys_swapon might already be\nsetting up that swap_info_struct.  Calling it earlier, before taking\nswap_list_lock, is safe.  sys_swapoff\u0027s call to destroy_swap_extents was safe,\nbut likewise move it earlier, before taking the locks (once try_to_unuse has\ncompleted, nothing can be needing the swap extents).\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e2244ec2efa4ee1edf391d0001d314933e2b2974",
      "tree": "c9e43f9b6e11ce41d976025c6f9d94c273521132",
      "parents": [
        "b0d9bcd4bb79a7834f8492f2ae5c2655a551f23d"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Sep 03 15:54:32 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:05:40 2005 -0700"
      },
      "message": "[PATCH] swap: correct swapfile nr_good_pages\n\nIf a regular swapfile lies on a filesystem whose blocksize is less than\nPAGE_SIZE, then setup_swap_extents may have to cut the number of usable swap\npages; but sys_swapon\u0027s nr_good_pages was not expecting that.  Also,\nsetup_swap_extents takes no account of badpages listed in the swap header: not\nworth doing so, but ensure nr_badpages is 0 for a regular swapfile.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b0d9bcd4bb79a7834f8492f2ae5c2655a551f23d",
      "tree": "8978577cf4b132e08e5abc7101e934ffd3106d3c",
      "parents": [
        "fd4fd5aac1282825195c6816ed40a2a6d42db5bf"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Sep 03 15:54:31 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:05:40 2005 -0700"
      },
      "message": "[PATCH] swap: update swapfile i_sem comment\n\nUpdate swap extents comment: nowadays we guard with S_SWAPFILE not i_sem.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c475a8ab625d567eacf5e30ec35d6d8704558062",
      "tree": "0971bef7b876f1b3eb160621fc2b61cb5313827b",
      "parents": [
        "d296e9cd02c92e576ecce5344026a4df4353cdb2"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jun 21 17:15:12 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue Jun 21 18:46:21 2005 -0700"
      },
      "message": "[PATCH] can_share_swap_page: use page_mapcount\n\nRemember that ironic get_user_pages race?  when the raised page_count on a\npage swapped out led do_wp_page to decide that it had to copy on write, so\nsubstituted a different page into userspace.  2.6.7 onwards have Andrea\u0027s\nsolution, where try_to_unmap_one backs out if it finds page_count raised.\n\nWhich works, but is unsatisfying (rmap.c has no other page_count heuristics),\nand was found a few months ago to hang an intensive page migration test.  A\nyear ago I was hesitant to engage page_mapcount, now it seems the right fix.\n\nSo remove the page_count hack from try_to_unmap_one; and use activate_page in\nunuse_mm when dropping lock, to replace its secondary effect of helping\nswapoff to make progress in that case.\n\nSimplify can_share_swap_page (now called only on anonymous pages) to check\npage_mapcount + page_swapcount \u003d\u003d 1: still needs the page lock to stabilize\ntheir (pessimistic) sum, but does not need swapper_space.tree_lock for that.\n\nIn do_swap_page, move swap_free and unlock_page below page_add_anon_rmap, to\nkeep sum on the high side, and correct when can_share_swap_page called.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ba32311eb73f624a85a5fc2e043cda8e076f86ef",
      "tree": "1baa53ef8f4b708ec1807ca3a267c713d00da266",
      "parents": [
        "59afda786a58f2e8f74a48f2af90534d76d5338d"
      ],
      "author": {
        "name": "McMullan, Jason",
        "email": "jason.mcmullan@timesys.com",
        "time": "Mon May 16 21:53:40 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue May 17 07:59:18 2005 -0700"
      },
      "message": "[PATCH] swapout oops fix\n\nFix OOPS when swapping on a device that doesn\u0027t have an unplug_io_fn defined\n(eg, ATA Over Ethernet)\n\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"
    }
  ]
}
