)]}'
{
  "log": [
    {
      "commit": "d554ed895dc8f293cc712c71f14b101ace82579a",
      "tree": "fd29ba33d640e156e2ca4267ffbdb9dc566fd3d6",
      "parents": [
        "221e3ebf6d5f2625373573155924e39f196c5d3d"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jslaby@suse.cz",
        "time": "Fri Mar 05 13:42:42 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:29 2010 -0800"
      },
      "message": "fs: use rlimit helpers\n\nMake sure compiler won\u0027t do weird things with limits.  E.g.  fetching them\ntwice may return 2 different values after writable limits are implemented.\n\nI.e.  either use rlimit helpers added in commit 3e10e716abf3 (\"resource:\nadd helpers for fetching rlimits\") or ACCESS_ONCE if not applicable.\n\nSigned-off-by: Jiri Slaby \u003cjslaby@suse.cz\u003e\nCc: Alexander 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": "7dc52157982ab771f40e3c0b7dc55b954c3c2d19",
      "tree": "a41e39174d9535f0c678eb36249ceee4a1775d6b",
      "parents": [
        "497f0ab39cd25bed317b29482c147c967f7ecd1f"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Feb 22 17:04:52 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 25 10:34:48 2010 +0100"
      },
      "message": "vfs: Apply lockdep-based checking to rcu_dereference() uses\n\nAdd lockdep-ified RCU primitives to alloc_fd(), files_fdtable()\nand fcheck_files().\n\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: laijs@cn.fujitsu.com\nCc: dipankar@in.ibm.com\nCc: mathieu.desnoyers@polymtl.ca\nCc: josh@joshtriplett.org\nCc: dvhltc@us.ibm.com\nCc: niv@us.ibm.com\nCc: peterz@infradead.org\nCc: rostedt@goodmis.org\nCc: Valdis.Kletnieks@vt.edu\nCc: dhowells@redhat.com\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nLKML-Reference: \u003c1266887105-1528-8-git-send-email-paulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d43c36dc6b357fa1806800f18aa30123c747a6d1",
      "tree": "339ce510073ecbe9b3592008f7dece7b277035ef",
      "parents": [
        "69585dd69e663a40729492c7b52eb82477a2027a"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Oct 07 17:09:06 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 11 11:20:58 2009 -0700"
      },
      "message": "headers: remove sched.h from interrupt.h\n\nAfter m68k\u0027s task_thread_info() doesn\u0027t refer to current,\nit\u0027s possible to remove sched.h from interrupt.h and not break m68k!\nMany thanks to Heiko Carstens for allowing this.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "1027abe8827b47f7e9c4ed6514fde3d44f79963c",
      "tree": "be6aba7e46176534cc71622de53a8bcbf28a06c4",
      "parents": [
        "a1bc6eb4b499ae67ada9a01660010580b6569403"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 30 04:13:04 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Aug 01 11:25:23 2008 -0400"
      },
      "message": "[PATCH] merge locate_fd() and get_unused_fd()\n\n\tNew primitive: alloc_fd(start, flags).  get_unused_fd() and\nget_unused_fd_flags() become wrappers on top of it.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4e1e018ecc6f7bfd10fc75b3ff9715cc8164e0a2",
      "tree": "75404b1269b079a327551f76a9b3f941f5b11a77",
      "parents": [
        "6c5d0512a091480c9f981162227fdb1c9d70e555"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 16:01:20 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:45 2008 -0400"
      },
      "message": "[PATCH] fix RLIM_NOFILE handling\n\n* dup2() should return -EBADF on exceeded sysctl_nr_open\n* dup() should *not* return -EINVAL even if you have rlimit set to 0;\n  it should get -EMFILE instead.\n\nCheck for orig_start exceeding rlimit taken to sys_fcntl().\nFailing expand_files() in dup{2,3}() now gets -EMFILE remapped to -EBADF.\nConsequently, remaining checks for rlimit are taken to expand_files().\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "eceea0b3df05ed262ae32e0c6340cc7a3626632d",
      "tree": "73e5e33acace9187d5729a9a8c8ff53c3d720d52",
      "parents": [
        "adbecb128cd2cc5d14b0ebef6d020ced0efd0ec6"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat May 10 10:08:32 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 16 17:22:52 2008 -0400"
      },
      "message": "[PATCH] avoid multiplication overflows and signedness issues for max_fds\n\nLimit sysctl_nr_open - we don\u0027t want -\u003emax_fds to exceed MAX_INT and\nwe don\u0027t want size calculation for -\u003efd[] to overflow.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "adbecb128cd2cc5d14b0ebef6d020ced0efd0ec6",
      "tree": "ba0f7c202e364002eedc999526ac07262f21dae4",
      "parents": [
        "afbec7fff4928c273a1f1bb14dfdfdf62688a193"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 08 21:19:42 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 16 17:22:46 2008 -0400"
      },
      "message": "[PATCH] dup_fd() part 4 - race fix\n\nParent _can_ be a clone task, contrary to the comment.  Moreover,\nmore files could be opened while we allocate a copy, in which case\nwe end up copying only part into new descriptor table.  Since what\nwe get _is_ affected by all changes in the old range, we can get\nrather weird effects - e.g.\n\tdup2(0, 1024); close(0);\nin parallel with fork() resulting in child that sees the effect of\nclose(), but not that of dup2() done just before that close().\n\nWhat we need is to recalculate the open_count after having reacquired\n-\u003efile_lock and if external fdtable we\u0027d just allocated is too small for\nit, free the sucker and redo allocation.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "afbec7fff4928c273a1f1bb14dfdfdf62688a193",
      "tree": "e5cc1e5273e98abf3195fba488a43ee3ec24f859",
      "parents": [
        "9dec3c4d306b09b31331e475e895bb9674e16d81"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 08 21:11:17 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 16 17:22:39 2008 -0400"
      },
      "message": "[PATCH] dup_fd() - part 3\n\nmerge alloc_files() into dup_fd(), leave setting newf-\u003efdt until the end\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9dec3c4d306b09b31331e475e895bb9674e16d81",
      "tree": "a4755dd7f368d78cfe24696b7e469b41562f1aea",
      "parents": [
        "02afc6267f6d55d47aba9fcafdbd1b7230d2294a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 08 21:02:45 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 16 17:22:33 2008 -0400"
      },
      "message": "[PATCH] dup_fd() part 2\n\nuse alloc_fdtable() instead of expand_files(), get rid of pointless\ngrabbing newf-\u003efile_lock, kill magic in copy_fdtable() that used to\nbe there only to skip copying when called from dup_fd().\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "02afc6267f6d55d47aba9fcafdbd1b7230d2294a",
      "tree": "f8cd675baf512fa6f6d561a5bccc0447bec2ff8b",
      "parents": [
        "f52111b1546943545e67573c4dde1c7613ca33d3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 08 19:42:56 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 16 17:22:26 2008 -0400"
      },
      "message": "[PATCH] dup_fd() fixes, part 1\n\nMove the sucker to fs/file.c in preparation to the rest\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f52111b1546943545e67573c4dde1c7613ca33d3",
      "tree": "f8188dd12f7dc78f0f4c26702a5ba0ceea8199c7",
      "parents": [
        "f26a3988917913b3d11b2bd741601a2c64ab9204"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 08 18:19:16 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 16 17:22:20 2008 -0400"
      },
      "message": "[PATCH] take init_files to fs/file.c\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5c598b3428c372a1209597cee99a70da20625876",
      "tree": "2ab9df5d60471e28074e97dca3c97b8c37d626b3",
      "parents": [
        "2030a42cecd4dd1985a2ab03e25f3cd6106a5ca8"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Apr 27 20:04:15 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 01 13:08:57 2008 -0400"
      },
      "message": "[PATCH] fix sysctl_nr_open bugs\n\n* if luser with root sets it to something that is not a multiple of\n  BITS_PER_LONG, the system is screwed.\n* if it gets decreased at the wrong time, we can get expand_files()\n  returning success and _not_ increasing the size of table as asked.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9f3acc3140444a900ab280de942291959f0f615d",
      "tree": "0d7f3f9698071ff90fb9a127a4c6e86e1c37c945",
      "parents": [
        "a2dcb44c3c5a8151d2d9f6ac8ad0789efcdbe184"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Apr 24 07:44:08 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 01 13:08:16 2008 -0400"
      },
      "message": "[PATCH] split linux/file.h\n\nInitial splitoff of the low-level stuff; taken to fdtable.h\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9cfe015aa424b3c003baba3841a60dd9b5ad319b",
      "tree": "5575e06efcf91018f860f2db43979e8e91aba1c3",
      "parents": [
        "774ed22c21ab95d582dfff38560f11cf290baeb4"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Wed Feb 06 01:37:16 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:06 2008 -0800"
      },
      "message": "get rid of NR_OPEN and introduce a sysctl_nr_open\n\nNR_OPEN (historically set to 1024*1024) actually forbids processes to open\nmore than 1024*1024 handles.\n\nUnfortunatly some production servers hit the not so \u0027ridiculously high\nvalue\u0027 of 1024*1024 file descriptors per process.\n\nChanging NR_OPEN is not considered safe because of vmalloc space potential\nexhaust.\n\nThis patch introduces a new sysctl (/proc/sys/fs/nr_open) wich defaults to\n1024*1024, so that admins can decide to change this limit if their workload\nneeds it.\n\n[akpm@linux-foundation.org: export it for sparc64]\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "01b2d93ca4c495f056471189ac6c4e6ac4cbbccb",
      "tree": "86aa1aabae8207e693e31ee68b526376388a36a3",
      "parents": [
        "31fccf7fe4097e62f038bdfe8f4f68ecaea8ebe7"
      ],
      "author": {
        "name": "Vadim Lobanov",
        "email": "vlobanov@speakeasy.net",
        "time": "Fri Dec 22 01:10:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 22 08:55:50 2006 -0800"
      },
      "message": "[PATCH] fdtable: Provide free_fdtable() wrapper\n\nChristoph Hellwig has expressed concerns that the recent fdtable changes\nexpose the details of the RCU methodology used to release no-longer-used\nfdtable structures to the rest of the kernel.  The trivial patch below\naddresses these concerns by introducing the appropriate free_fdtable()\ncalls, which simply wrap the release RCU usage.  Since free_fdtable() is a\none-liner, it makes sense to promote it to an inline helper.\n\nSigned-off-by: Vadim Lobanov \u003cvlobanov@speakeasy.net\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5466b456ed6748e0bfe02831e570004d4c04c1d7",
      "tree": "90afd9e5142edb8f9a6facee7258ed2c556a6d9b",
      "parents": [
        "4fd45812cbe875a620c86a096a5d46c742694b7e"
      ],
      "author": {
        "name": "Vadim Lobanov",
        "email": "vlobanov@speakeasy.net",
        "time": "Sun Dec 10 02:21:22 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sun Dec 10 09:57:22 2006 -0800"
      },
      "message": "[PATCH] fdtable: Implement new pagesize-based fdtable allocator\n\nThis patch provides an improved fdtable allocation scheme, useful for\nexpanding fdtable file descriptor entries.  The main focus is on the fdarray,\nas its memory usage grows 128 times faster than that of an fdset.\n\nThe allocation algorithm sizes the fdarray in such a way that its memory usage\nincreases in easy page-sized chunks. The overall algorithm expands the allowed\nsize in powers of two, in order to amortize the cost of invoking vmalloc() for\nlarger allocation sizes. Namely, the following sizes for the fdarray are\nconsidered, and the smallest that accommodates the requested fd count is\nchosen:\n\n    pagesize / 4\n    pagesize / 2\n    pagesize      \u003c- memory allocator switch point\n    pagesize * 2\n    pagesize * 4\n    ...etc...\n\nUnlike the current implementation, this allocation scheme does not require a\nloop to compute the optimal fdarray size, and can be done in efficient\nstraightline code.\n\nFurthermore, since the fdarray overflows the pagesize boundary long before any\nof the fdsets do, it makes sense to optimize run-time by allocating both\nfdsets in a single swoop.  Even together, they will still be, by far, smaller\nthan the fdarray.  The fdtable-\u003eopen_fds is now used as the anchor for the\nfdset memory allocation.\n\nSigned-off-by: Vadim Lobanov \u003cvlobanov@speakeasy.net\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4fd45812cbe875a620c86a096a5d46c742694b7e",
      "tree": "8d2c99caa718da6cda87229076adf708494ff251",
      "parents": [
        "bbea9f69668a3d0cf9feba15a724cd02896f8675"
      ],
      "author": {
        "name": "Vadim Lobanov",
        "email": "vlobanov@speakeasy.net",
        "time": "Sun Dec 10 02:21:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sun Dec 10 09:57:22 2006 -0800"
      },
      "message": "[PATCH] fdtable: Remove the free_files field\n\nAn fdtable can either be embedded inside a files_struct or standalone (after\nbeing expanded).  When an fdtable is being discarded after all RCU references\nto it have expired, we must either free it directly, in the standalone case,\nor free the files_struct it is contained within, in the embedded case.\n\nCurrently the free_files field controls this behavior, but we can get rid of\nit entirely, as all the necessary information is already recorded.  We can\ndistinguish embedded and standalone fdtables using max_fds, and if it is\nembedded we can divine the relevant files_struct using container_of().\n\nSigned-off-by: Vadim Lobanov \u003cvlobanov@speakeasy.net\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bbea9f69668a3d0cf9feba15a724cd02896f8675",
      "tree": "bc58506e4daba4a04309181a5501ae4eb5424783",
      "parents": [
        "f3d19c90fb117a5f080310a4592929aa8e1ad8e9"
      ],
      "author": {
        "name": "Vadim Lobanov",
        "email": "vlobanov@speakeasy.net",
        "time": "Sun Dec 10 02:21:12 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Sun Dec 10 09:57:22 2006 -0800"
      },
      "message": "[PATCH] fdtable: Make fdarray and fdsets equal in size\n\nCurrently, each fdtable supports three dynamically-sized arrays of data: the\nfdarray and two fdsets.  The code allows the number of fds supported by the\nfdarray (fdtable-\u003emax_fds) to differ from the number of fds supported by each\nof the fdsets (fdtable-\u003emax_fdset).\n\nIn practice, it is wasteful for these two sizes to differ: whenever we hit a\nlimit on the smaller-capacity structure, we will reallocate the entire fdtable\nand all the dynamic arrays within it, so any delta in the memory used by the\nlarger-capacity structure will never be touched at all.\n\nRather than hogging this excess, we shouldn\u0027t even allocate it in the first\nplace, and keep the capacities of the fdarray and the fdsets equal.  This\npatch removes fdtable-\u003emax_fdset.  As an added bonus, most of the supporting\ncode becomes simpler.\n\nSigned-off-by: Vadim Lobanov \u003cvlobanov@speakeasy.net\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "593be07ae8f6f4a1b1b98813fabb155328f8bc0c",
      "tree": "570686c676986d79ff0868f88c499a8b8fc1d3b4",
      "parents": [
        "e59e2ae2c29700117a54e85c106017c24837119f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Dec 06 20:36:01 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:32 2006 -0800"
      },
      "message": "[PATCH] file: kill unnecessary timer in fdtable_defer\n\nfree_fdtable_rc() schedules timer to reschedule fddef-\u003ewq if\nschedule_work() on it returns 0.  However, schedule_work() guarantees that\nthe target work is executed at least once after the scheduling regardless\nof its return value.  0 return simply means that the work was already\npending and thus no further action was required.\n\nAnother problem is that it used contant \u00275\u0027 as @expires argument to\nmod_timer().\n\nKill unnecessary fddef-\u003etimer.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "65f27f38446e1976cc98fd3004b110fedcddd189",
      "tree": "68f8be93feae31dfa018c22db392a05546b63ee1",
      "parents": [
        "365970a1ea76d81cb1ad2f652acb605f06dae256"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Nov 22 14:55:48 2006 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Nov 22 14:55:48 2006 +0000"
      },
      "message": "WorkStruct: Pass the work_struct pointer instead of context data\n\nPass the work_struct pointer to the work function rather than context data.\nThe work function can use container_of() to work out the data.\n\nFor the cases where the container of the work_struct may go away the moment the\npending bit is cleared, it is made possible to defer the release of the\nstructure by deferring the clearing of the pending bit.\n\nTo make this work, an extra flag is introduced into the management side of the\nwork_struct.  This governs auto-release of the structure upon execution.\n\nOrdinarily, the work queue executor would release the work_struct for further\nscheduling or deallocation by clearing the pending bit prior to jumping to the\nwork function.  This means that, unless the driver makes some guarantee itself\nthat the work_struct won\u0027t go away, the work function may not access anything\nelse in the work_struct or its container lest they be deallocated..  This is a\nproblem if the auxiliary data is taken away (as done by the last patch).\n\nHowever, if the pending bit is *not* cleared before jumping to the work\nfunction, then the work function *may* access the work_struct and its container\nwith no problems.  But then the work function must itself release the\nwork_struct by calling work_release().\n\nIn most cases, automatic release is fine, so this is the default.  Special\ninitiators exist for the non-auto-release case (ending in _NAR).\n\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "327dcaadc0bc08ad081aa8e36b6ec7ad7aa45e30",
      "tree": "68bec9183fcee79370e076244be347dd20d5dd9f",
      "parents": [
        "74d392aaabfc890cc1f0e80fc5ff13e5d3bcf4c9"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Sep 29 02:01:44 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:25 2006 -0700"
      },
      "message": "[PATCH] expand_fdtable(): remove pointless unlock+lock\n\nThis unlock/lock on a super-unlikely path isn\u0027t worth the kernel text.\n\nCc: Vadim Lobanov \u003cvlobanov@speakeasy.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "74d392aaabfc890cc1f0e80fc5ff13e5d3bcf4c9",
      "tree": "e70c15452798ac7745d9f9f0f8bb732286d77784",
      "parents": [
        "3706baa8b1ba0d71d52fd0c656752a6495f6364a"
      ],
      "author": {
        "name": "Vadim Lobanov",
        "email": "vlobanov@speakeasy.net",
        "time": "Fri Sep 29 02:01:43 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:25 2006 -0700"
      },
      "message": "[PATCH] Clean up expand_fdtable() and expand_files()\n\nPerform a code cleanup against the expand_fdtable() and expand_files()\nfunctions inside fs/file.c.  It aims to make the flow of code within these\nfunctions simpler and easier to understand, via added comments and modest\nrefactoring.\n\nSigned-off-by: Vadim Lobanov \u003cvlobanov@speakeasy.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8b0e330b7720a206339887044fa275bf537a5264",
      "tree": "f76b1e82f09988aef047a1d8b2636bee93eab92e",
      "parents": [
        "07563c711fbc25389e58ab9c9f0b9de2fce56760"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed Sep 27 01:51:02 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:19 2006 -0700"
      },
      "message": "[PATCH] alloc_fdtable() cleanup\n\nfree_fdset(NULL, ...) is legal.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a29b0b74e73b66674d20a170e463fe9032f2272a",
      "tree": "4fe1000e079fe22496e933b5f2a0933177b08589",
      "parents": [
        "ec572e3f87c02a6dd5be25841dc482a52356947f"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed Jul 12 09:03:08 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jul 12 12:52:55 2006 -0700"
      },
      "message": "[PATCH] alloc_fdtable() expansion fix\n\nWe\u0027re supposed to go the next power of two if nfds\u003d\u003dnr.\n\nOf `nr\u0027, not of `nfsd\u0027.\n\nSpotted by Rene Scharfe \u003crene.scharfe@lsrfire.ath.cx\u003e\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d579091b4385e9386e244622d593fe064aa8e8e7",
      "tree": "b1fc0f3fef38d7580dc6bdf3b1842534126deda6",
      "parents": [
        "abf75a5033d4da7b8a7e92321d74021d1fcfb502"
      ],
      "author": {
        "name": "Kirill Korotaev",
        "email": "dev@openvz.org",
        "time": "Wed Jul 12 09:03:05 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jul 12 12:52:54 2006 -0700"
      },
      "message": "[PATCH] fix fdset leakage\n\nWhen found, it is obvious.  nfds calculated when allocating fdsets is\nrewritten by calculation of size of fdtable, and when we are unlucky, we\ntry to free fdsets of wrong size.\n\nFound due to OpenVZ resource management (User Beancounters).\n\nSigned-off-by: Alexey Kuznetsov \u003ckuznet@ms2.inr.ac.ru\u003e\nSigned-off-by: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "92eb7a2f28d551acedeb5752263267a64b1f5ddf",
      "tree": "e77b0dee5598df8f44a6f57783a3344e2e4e98c1",
      "parents": [
        "38e0e8c0550eaed1af48ec5ad9ddb8a25e8b04ae"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Mon Jul 10 04:45:31 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 10 13:24:25 2006 -0700"
      },
      "message": "[PATCH] fix weird logic in alloc_fdtable()\n\nThere\u0027s a fairly obvious infinite loop in there.\n\nAlso, use roundup_pow_of_two() rather than open-coding stuff.\n\nCc: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0a945022778f100115d0cb6234eb28fc1b15ccaf",
      "tree": "85df4b5f7dd8bf59557091379c59b23b09115bf6",
      "parents": [
        "631d6747e1d877a4baa924cb373b8b9511a53e5e"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Mar 28 01:56:37 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:05 2006 -0800"
      },
      "message": "[PATCH] for_each_possible_cpu: fixes for generic part\n\nreplaces for_each_cpu with for_each_possible_cpu().\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0c9e63fd38a2fb2181668a0cdd622a3c23cfd567",
      "tree": "8fdb91603347b1da2e83a095ebcaab44b2c3c237",
      "parents": [
        "d8733c2956968a01394a4d2a9e97a8b431a78776"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Thu Mar 23 03:00:12 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:09 2006 -0800"
      },
      "message": "[PATCH] Shrinks sizeof(files_struct) and better layout\n\n1) Reduce the size of (struct fdtable) to exactly 64 bytes on 32bits\n   platforms, lowering kmalloc() allocated space by 50%.\n\n2) Reduce the size of (files_struct), using a special 32 bits (or\n   64bits) embedded_fd_set, instead of a 1024 bits fd_set for the\n   close_on_exec_init and open_fds_init fields.  This save some ram (248\n   bytes per task) as most tasks dont open more than 32 files.  D-Cache\n   footprint for such tasks is also reduced to the minimum.\n\n3) Reduce size of allocated fdset.  Currently two full pages are\n   allocated, that is 32768 bits on x86 for example, and way too much.  The\n   minimum is now L1_CACHE_BYTES.\n\nUP and SMP should benefit from this patch, because most tasks will touch\nonly one cache line when open()/close() stdin/stdout/stderr (0/1/2),\n(next_fd, close_on_exec_init, open_fds_init, fd_array[0 ..  2] being in the\nsame cache line)\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "88a2a4ac6b671a4b0dd5d2d762418904c05f4104",
      "tree": "8c30052a0d7fadec37c785a42a71b28d0a9c5fcf",
      "parents": [
        "cef5076987dd545ac74f4efcf1c962be8eac34b0"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Sat Feb 04 23:27:36 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Feb 05 11:06:51 2006 -0800"
      },
      "message": "[PATCH] percpu data: only iterate over possible CPUs\n\npercpu_data blindly allocates bootmem memory to store NR_CPUS instances of\ncpudata, instead of allocating memory only for possible cpus.\n\nAs a preparation for changing that, we need to convert various 0 -\u003e NR_CPUS\nloops to use for_each_cpu().\n\n(The above only applies to users of asm-generic/percpu.h.  powerpc has gone it\nalone and is presently only allocating memory for present CPUs, so it\u0027s\ncurrently corrupting memory).\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Jens Axboe \u003caxboe@suse.de\u003e\nCc: Anton Blanchard \u003canton@samba.org\u003e\nAcked-by: William Irwin \u003cwli@holomorphy.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0b175a7e68c2f51555820efb0a01681e3419c1bc",
      "tree": "6dc0dd21b9aaad86f6a94c594c7705ee5441c5aa",
      "parents": [
        "c7e43c78ae4d8630c418ce3495787b995e61a580"
      ],
      "author": {
        "name": "Dipankar Sarma",
        "email": "dipankar@in.ibm.com",
        "time": "Thu Sep 15 00:48:42 2005 +0530"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 14 12:38:26 2005 -0700"
      },
      "message": "[PATCH] Fix the fdtable freeing in the case of vmalloced fdset/arrays\n\nNoted by David Miller:\n\n  \"The bug is that free_fd_array() takes a \"num\" argument, but when\n   calling it from __free_fdtable() we\u0027re instead passing in the size in\n   bytes (ie.  \"num * sizeof(struct file *)\").\"\n\nYes it is a bug. I think I messed it up while merging newer\nchanges with an older version where I was using size in bytes\nto optimize.\n\nSigned-off-by: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ab2af1f5005069321c5d130f09cce577b03f43ef",
      "tree": "73a70ba486f522cd9eeeef376ede2b5a1c1b473b",
      "parents": [
        "6e72ad2c581de121cc7e772469e2a8f6b1fd4379"
      ],
      "author": {
        "name": "Dipankar Sarma",
        "email": "dipankar@in.ibm.com",
        "time": "Fri Sep 09 13:04:13 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 13:57:55 2005 -0700"
      },
      "message": "[PATCH] files: files struct with RCU\n\nPatch to eliminate struct files_struct.file_lock spinlock on the reader side\nand use rcu refcounting rcuref_xxx api for the f_count refcounter.  The\nupdates to the fdtable are done by allocating a new fdtable structure and\nsetting files-\u003efdt to point to the new structure.  The fdtable structure is\nprotected by RCU thereby allowing lock-free lookup.  For fd arrays/sets that\nare vmalloced, we use keventd to free them since RCU callbacks can\u0027t sleep.  A\nglobal list of fdtable to be freed is not scalable, so we use a per-cpu list.\nIf keventd is already handling the current cpu\u0027s work, we use a timer to defer\nqueueing of that work.\n\nSince the last publication, this patch has been re-written to avoid using\nexplicit memory barriers and use rcu_assign_pointer(), rcu_dereference()\npremitives instead.  This required that the fd information is kept in a\nseparate structure (fdtable) and updated atomically.\n\nSigned-off-by: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "badf16621c1f9d1ac753be056fce11b43d6e0be5",
      "tree": "3fdf833fdf2e3d3a439090743539680449ec3428",
      "parents": [
        "c0dfb2905126e9e94edebbce8d3e05001301f52d"
      ],
      "author": {
        "name": "Dipankar Sarma",
        "email": "dipankar@in.ibm.com",
        "time": "Fri Sep 09 13:04:10 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 13:57:55 2005 -0700"
      },
      "message": "[PATCH] files: break up files struct\n\nIn order for the RCU to work, the file table array, sets and their sizes must\nbe updated atomically.  Instead of ensuring this through too many memory\nbarriers, we put the arrays and their sizes in a separate structure.  This\npatch takes the first step of putting the file table elements in a separate\nstructure fdtable that is embedded withing files_struct.  It also changes all\nthe users to refer to the file table using files_fdtable() macro.  Subsequent\napplciation of RCU becomes easier after this.\n\nSigned-off-by: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\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"
    }
  ]
}
