)]}'
{
  "log": [
    {
      "commit": "55f335a8857db2ee22c068e7ab7141fc79928296",
      "tree": "7e04667573f87a6970b6804940ef8fcb4bb6ca3b",
      "parents": [
        "7420a8c0de8d99b201aeeab6fed16ca95ebf55a5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:17:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:17:02 2010 -0700"
      },
      "message": "fasync: Fix placement of FASYNC flag comment\n\nIn commit f7347ce4ee7c (\"fasync: re-organize fasync entry insertion to\nallow it under a spinlock\") Arnd took an earlier patch of mine that had\nthe comment about the FASYNC flag above the wrong function.\n\nWhen the fasync_add_entry() function was split to introduce the new\nfasync_insert_entry() helper function, the code that actually cares\nabout the FASYNC bit moved to that new helper.\n\nSo just move the comment to the right point.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f7347ce4ee7c65415f84be915c018473e7076f31",
      "tree": "613ce14f088ad00bdbc77cdfb686a40a4851180f",
      "parents": [
        "c5b1f0d92c36851aca09ac6c7c0c4f9690ac14f3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 12:38:12 2010 -0400"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Oct 27 22:06:17 2010 +0200"
      },
      "message": "fasync: re-organize fasync entry insertion to allow it under a spinlock\n\nYou currently cannot use \"fasync_helper()\" in an atomic environment to\ninsert a new fasync entry, because it will need to allocate the new\n\"struct fasync_struct\".\n\nYet fcntl_setlease() wants to call this under lock_flocks(), which is in\nthe process of being converted from the BKL to a spinlock.\n\nIn order to fix this, this abstracts out the actual fasync list\ninsertion and the fasync allocations into functions of their own, and\nteaches fs/locks.c to pre-allocate the fasync_struct entry.  That way\nthe actual list insertion can happen while holding the required\nspinlock.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n[bfields@redhat.com: rebase on top of my changes to Arnd\u0027s patch]\nTested-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "3ab04d5cf9736b7a4e9dfcf28285d8663b01aa0e",
      "tree": "1e8a52d0c2592d6d4a14d988dbf55331cc07fd24",
      "parents": [
        "3399446632739fcd05fd8b272b476a69c6e6d14a"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@suse.de",
        "time": "Thu Sep 09 16:38:12 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 18:57:25 2010 -0700"
      },
      "message": "vfs: take O_NONBLOCK out of the O_* uniqueness test\n\nO_NONBLOCK on parisc has a dual value:\n\n#define O_NONBLOCK\t000200004 /* HPUX has separate NDELAY \u0026 NONBLOCK */\n\nIt is caught by the O_* bits uniqueness check and leads to a parisc\ncompile error.  The fix would be to take O_NONBLOCK out.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@suse.de\u003e\nCc: Jamie Lokier \u003cjamie@shareable.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "454eedb8901da895fb602998fa588cd62875d07d",
      "tree": "8ac0f8fead7c689dec077fb43efe3dbe3eab2e29",
      "parents": [
        "58939473bacf08e7e7346673c6d70bc367bd091a"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Aug 10 18:01:29 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:02 2010 -0700"
      },
      "message": "vfs: O_* bit numbers uniqueness check\n\nThe O_* bit numbers are defined in 20+ arch/*, and can silently overlap.\nAdd a compile time check to ensure the uniqueness as suggested by David\nMiller.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: Roland Dreier \u003crdreier@cisco.com\u003e\nCc: Jamie Lokier \u003cjamie@shareable.org\u003e\nCc: Andreas Schwab \u003cschwab@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f4985dc714d7ab1920c5aa502b7f4073fa1b4177",
      "tree": "4e8385c3d0c95f02623f5712a875742664701822",
      "parents": [
        "fb967ecc584c20c74a007de749ca597068b0fcac"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Jun 29 15:05:42 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 29 15:29:32 2010 -0700"
      },
      "message": "fs/fcntl.c:kill_fasync_rcu() fa_lock must be IRQ-safe\n\nFix a lockdep-splat-causing regression introduced by commit 989a2979205d\n(\"fasync: RCU and fine grained locking\").\n\nkill_fasync() can be called from both process and hard-irq context, so\nfa_lock must be taken with IRQs disabled.\n\nAddresses https://bugzilla.kernel.org/show_bug.cgi?id\u003d16230\n\nReported-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nReported-by: Dominik Brodowski \u003clinux@dominikbrodowski.net\u003e\nTested-by: Dominik Brodowski \u003clinux@dominikbrodowski.net\u003e\nCc: Maciej Rutecki \u003cmaciej.rutecki@gmail.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5b54470daded19d83ea2bbf5f6bc12662942cd63",
      "tree": "93ac73e7eba1231c863903cd814d12f4cb935b1e",
      "parents": [
        "7d683a09990ff095a91b6e724ecee0ff8733274a"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Thu Jun 03 12:35:42 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 04 17:16:28 2010 -0400"
      },
      "message": "fcntl: return -EFAULT if copy_to_user fails\n\ncopy_to_user() returns the number of bytes remaining, but we want to\nreturn -EFAULT.\n\tret \u003d fcntl(fd, F_SETOWN_EX, NULL);\nWith the original code ret would be 8 here.\n\nV2: Takuya Yoshikawa pointed out a similar issue in f_getown_ex()\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ee9a3607fb03e804ddf624544105f4e34260c380",
      "tree": "ce41b6e0fa10982a306f6c142a92dbf3c9961284",
      "parents": [
        "b492e95be0ae672922f4734acf3f5d35c30be948",
        "d515e86e639890b33a09390d062b0831664f04a2"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 21 21:27:26 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 21 21:27:26 2010 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-2.6.35\n\nConflicts:\n\tfs/ext3/fsync.c\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "35f3d14dbbc58447c61e38a162ea10add6b31dc7",
      "tree": "3e03cd540b7dcdac82195c4e76862c0ce6daaaf0",
      "parents": [
        "3d42b3612891baecf709d93f28655a6882a65d41"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu May 20 10:43:18 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 21 21:12:40 2010 +0200"
      },
      "message": "pipe: add support for shrinking and growing pipes\n\nThis patch adds F_GETPIPE_SZ and F_SETPIPE_SZ fcntl() actions for\ngrowing and shrinking the size of a pipe and adjusts pipe.c and splice.c\n(and relay and network splice) usage to work with these larger (or smaller)\npipes.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "989a2979205dd34269382b357e6d4b4b6956b889",
      "tree": "2f504e9f4d8d418dd8fb2d042b076c1318232360",
      "parents": [
        "e5700aff144fbbba46be40049f0c55fb57283777"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Apr 14 09:55:35 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Apr 21 16:19:29 2010 -0700"
      },
      "message": "fasync: RCU and fine grained locking\n\nkill_fasync() uses a central rwlock, candidate for RCU conversion, to\navoid cache line ping pongs on SMP.\n\nfasync_remove_entry() and fasync_add_entry() can disable IRQS on a short\nsection instead during whole list scan.\n\nUse a spinlock per fasync_struct to synchronize kill_fasync_rcu() and\nfasync_{remove|add}_entry(). This spinlock is IRQ safe, so sock_fasync()\ndoesnt need its own implementation and can use fasync_helper(), to\nreduce code size and complexity.\n\nWe can remove __kill_fasync() direct use in net/socket.c, and rename it\nto kill_fasync_rcu().\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "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": "80e1e823989ec44d8e35bdfddadbddcffec90424",
      "tree": "ad6fd35a0130bc47b082135724834f7db5548c12",
      "parents": [
        "29275254caedfedce960cfe6df24b90cb04fe431"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Feb 07 10:11:23 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Feb 07 10:26:01 2010 -0800"
      },
      "message": "Fix race in tty_fasync() properly\n\nThis reverts commit 703625118069 (\"tty: fix race in tty_fasync\") and\ncommit b04da8bfdfbb (\"fnctl: f_modown should call write_lock_irqsave/\nrestore\") that tried to fix up some of the fallout but was incomplete.\n\nIt turns out that we really cannot hold \u0027tty-\u003ectrl_lock\u0027 over calling\n__f_setown, because not only did that cause problems with interrupt\ndisables (which the second commit fixed), it also causes a potential\nABBA deadlock due to lock ordering.\n\nThanks to Tetsuo Handa for following up on the issue, and running\nlockdep to show the problem.  It goes roughly like this:\n\n - f_getown gets filp-\u003ef_owner.lock for reading without interrupts\n   disabled, so an interrupt that happens while that lock is held can\n   cause a lockdep chain from f_owner.lock -\u003e sighand-\u003esiglock.\n\n - at the same time, the tty-\u003ectrl_lock -\u003e f_owner.lock chain that\n   commit 703625118069 introduced, together with the pre-existing\n   sighand-\u003esiglock -\u003e tty-\u003ectrl_lock chain means that we have a lock\n   dependency the other way too.\n\nSo instead of extending tty-\u003ectrl_lock over the whole __f_setown() call,\nwe now just take a reference to the \u0027pid\u0027 structure while holding the\nlock, and then release it after having done the __f_setown.  That still\nguarantees that \u0027struct pid\u0027 won\u0027t go away from under us, which is all\nwe really ever needed.\n\nReported-and-tested-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nAcked-by: Américo Wang \u003cxiyou.wangcong@gmail.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b04da8bfdfbbd79544cab2fadfdc12e87eb01600",
      "tree": "f45ce22866beb7d931b2b19ef2c08b8e03fd6d17",
      "parents": [
        "9a3cbe3265c7714e8ee423feb6e27a080af79608"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Jan 26 15:04:02 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 26 17:25:38 2010 -0800"
      },
      "message": "fnctl: f_modown should call write_lock_irqsave/restore\n\nCommit 703625118069f9f8960d356676662d3db5a9d116 exposed that f_modown()\nshould call write_lock_irqsave instead of just write_lock_irq so that\nbecause a caller could have a spinlock held and it would not be good to\nrenable interrupts.\n\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Tavis Ormandy \u003ctaviso@google.com\u003e\nCc: stable \u003cstable@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "53281b6d34d44308372d16acb7fb5327609f68b6",
      "tree": "e8c7ce5d7f39aa6b29c437e4e9729d47af484321",
      "parents": [
        "f42647acc4eab1befa9e290691ed7a40f9a7d3cc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 08:23:37 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 10:05:29 2009 -0800"
      },
      "message": "fasync: split \u0027fasync_helper()\u0027 into separate add/remove functions\n\nYes, the add and remove cases do share the same basic loop and the\nlocking, but the compiler can inline and then CSE some of the end result\nanyway.  And splitting it up makes the code way easier to follow,\nand makes it clearer exactly what the semantics are.\n\nIn particular, we must make sure that the FASYNC flag in file-\u003ef_flags\nexactly matches the state of \"is this file on any fasync list\", since\nnot only is that flag visible to user space (F_GETFL), but we also use\nthat flag to check whether we need to remove any fasync entries on file\nclose.\n\nWe got that wrong for the case of a mixed use of file locking (which\ntries to remove any fasync entries for file leases) and fasync.\n\nSplitting the function up also makes it possible to do some future\noptimizations without making the function even messier.  In particular,\nsince the FASYNC flag has to match the state of \"is this on a list\", we\ncan do the following future optimizations:\n\n - on remove, we don\u0027t even need to get the locks and traverse the list\n   if FASYNC isn\u0027t set, since we can know a priori that there is no\n   point (this is effectively the same optimization that we already do\n   in __fput() wrt removing fasync on file close)\n\n - on add, we can use the FASYNC flag to decide whether we are changing\n   an existing entry or need to allocate a new one.\n\nbut this is just the cleanup + fix for the FASYNC flag.\n\nAcked-by: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nTested-by: Tavis Ormandy \u003ctaviso@google.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "978b4053aefd422713f289f2a315ce2acba62018",
      "tree": "3cd4ce678526885c81264568220549f1d659875e",
      "parents": [
        "9ebd4eba761b624a6a6c9189335adeddcb1fa0e0"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Nov 17 14:06:24 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 17 17:40:33 2009 -0800"
      },
      "message": "fcntl: rename F_OWNER_GID to F_OWNER_PGRP\n\nThis is for consistency with various ioctl() operations that include the\nsuffix \"PGRP\" in their names, and also for consistency with PRIO_PGRP,\nused with setpriority() and getpriority().  Also, using PGRP instead of\nGID avoids confusion with the common abbreviation of \"group ID\".\n\nI\u0027m fine with anything that makes it more consistent, and if PGRP is what\nis the predominant abbreviation then I see no need to further confuse\nmatters by adding a third one.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ba0a6c9f6fceed11c6a99e8326f0477fe383e6b5",
      "tree": "5c9967735f19b7b3332de90cae2cdd6c4457d30c",
      "parents": [
        "06f1631a1671bce2d59d58cb1debdf23e1803ebf"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Sep 23 15:57:03 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:01 2009 -0700"
      },
      "message": "fcntl: add F_[SG]ETOWN_EX\n\nIn order to direct the SIGIO signal to a particular thread of a\nmulti-threaded application we cannot, like suggested by the manpage, put a\nTID into the regular fcntl(F_SETOWN) call.  It will still be send to the\nwhole process of which that thread is part.\n\nSince people do want to properly direct SIGIO we introduce F_SETOWN_EX.\n\nThe need to direct SIGIO comes from self-monitoring profiling such as with\nperf-counters.  Perf-counters uses SIGIO to notify that new sample data is\navailable.  If the signal is delivered to the same task that generated the\nnew sample it can augment that data by inspecting the task\u0027s user-space\nstate right after it returns from the kernel.  This is esp.  convenient\nfor interpreted or virtual machine driven environments.\n\nBoth F_SETOWN_EX and F_GETOWN_EX take a pointer to a struct f_owner_ex\nas argument:\n\nstruct f_owner_ex {\n\tint   type;\n\tpid_t pid;\n};\n\nWhere type is one of F_OWNER_TID, F_OWNER_PID or F_OWNER_GID.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReviewed-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nTested-by: stephane eranian \u003ceranian@googlemail.com\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "06f1631a1671bce2d59d58cb1debdf23e1803ebf",
      "tree": "d1c5cc02d8ceff4c50c098dce957ad63a09e84a5",
      "parents": [
        "4a30debfb778240a4b1767d4b0c5a5b25ab97160"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Sep 23 15:57:01 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:01 2009 -0700"
      },
      "message": "signals: send_sigio: use do_send_sig_info() to avoid check_kill_permission()\n\ngroup_send_sig_info()-\u003echeck_kill_permission() assumes that current is the\nsender and uses current_cred().\n\nThis is not true in send_sigio_to_task() case.  From the security pov the\nsender is not current, but the task which did fcntl(F_SETOWN), that is why\nwe have sigio_perm() which uses the right creds to check.\n\nFortunately, send_sigio() always sends either SEND_SIG_PRIV or\nSI_FROMKERNEL() signal, so check_kill_permission() does nothing.  But\nstill it would be tidier to avoid this bogus security check and save a\ncouple of cycles.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: stephane eranian \u003ceranian@googlemail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "405f55712dfe464b3240d7816cc4fe4174831be2",
      "tree": "96c425ea7fa8b31058b8f83a433c5e5265c8ebc7",
      "parents": [
        "f9fabcb58a6d26d6efde842d1703ac7cfa9427b6"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sat Jul 11 22:08:37 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 12 12:22:34 2009 -0700"
      },
      "message": "headers: smp_lock.h redux\n\n* Remove smp_lock.h from files which don\u0027t need it (including some headers!)\n* Add smp_lock.h to files which do need it\n* Make smp_lock.h include conditional in hardirq.h\n  It\u0027s needed only for one kernel_locked() usage which is under CONFIG_PREEMPT\n\n  This will make hardirq.h inclusion cheaper for every PREEMPT\u003dn config\n  (which includes allmodconfig/allyesconfig, BTW)\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8eeee4e2f04fc551f50c9d9847da2d73d7d33728",
      "tree": "c5b7a2c9b912369c82506f8363b8eb10538f5d8e",
      "parents": [
        "f83b1e616f2f68b56b09b2f5116591981fee0c1c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jun 17 00:27:10 2009 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 15:36:17 2009 -0700"
      },
      "message": "send_sigio_to_task: sanitize the usage of fown-\u003esignum\n\nsend_sigio_to_task() reads fown-\u003esignum several times, we can race with\nF_SETSIG which changes -\u003esignum lockless.  In theory, this can fool\nsecurity checks or we can call group_send_sig_info() with the wrong\n-\u003esi_signo which does not match \"int sig\".\n\nChange the code to cache -\u003esignum.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2f38d70fb4e97e7d00e12eaac45790cf6ebd7b22",
      "tree": "393a604669640635a33c1db179bd053d8b923252",
      "parents": [
        "b3fec0fe35a4ff048484f1408385a27695d4273b"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Jun 16 22:07:46 2009 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 14:19:00 2009 -0700"
      },
      "message": "shift current_cred() from __f_setown() to f_modown()\n\nShift current_cred() from __f_setown() to f_modown(). This reduces\nthe number of arguments and saves 48 bytes from fs/fcntl.o.\n\n[ Note: this doesn\u0027t clear euid/uid when pid is set to NULL.  But if\n  f_owner.pid \u003d\u003d NULL we never use f_owner.uid/euid.  Otherwise we\u0027d\n  have a bug anyway: we must not send signals if pid was reset to NULL.  ]\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2b79bc4f7ebbd5af3c8b867968f9f15602d5f802",
      "tree": "135f195357e108b1cc7b5ef0a09d1e32b79fcce0",
      "parents": [
        "fd18de50b9e7965f93d231e7390436fb8900c0e6"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon May 11 14:25:34 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 11 12:18:06 2009 -0700"
      },
      "message": "dup2: Fix return value with oldfd \u003d\u003d newfd and invalid fd\n\nThe return value of dup2 when oldfd \u003d\u003d newfd and the fd isn\u0027t valid is\nnot getting properly sign extended.  We end up with 4294967287 instead\nof -EBADF.\n\nI\u0027ve reproduced this on SLE11 (2.6.27.21), openSUSE Factory\n(2.6.29-rc5), and Ubuntu 9.04 (2.6.28).\n\nThis patch uses a signed int for the error value so it is properly\nextended.\n\nCommit 6c5d0512a091480c9f981162227fdb1c9d70e555 introduced this\nregression.\n\nReported-by: Jiri Dluhos \u003cjdluhos@novell.com\u003e\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4a6a4499693a419a20559c41e33a7bd70bf20a6f",
      "tree": "7a89d08f0b2f19e1b84b38869596c8a84ab6f583",
      "parents": [
        "996ff68d8b358885c1de82a45517c607999947c7"
      ],
      "author": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Fri Mar 27 12:24:31 2009 -0600"
      },
      "committer": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Mon Mar 30 08:00:24 2009 -0600"
      },
      "message": "Fix a lockdep warning in fasync_helper()\n\nLockdep gripes if file-\u003ef_lock is taken in a no-IRQ situation, since that\nis not always the case.  We don\u0027t really want to disable IRQs for every\nacquisition of f_lock; instead, just move it outside of fasync_lock.\n\nReported-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nReported-by: Larry Finger \u003cLarry.Finger@lwfinger.net\u003e\nReported-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Jonathan Corbet \u003ccorbet@lwn.net\u003e\n"
    },
    {
      "commit": "60aa49243d09afc873f082567d2e3c16634ced84",
      "tree": "bb7c8d9668b35a3aa4e90d0a62500ac9d3e67f7f",
      "parents": [
        "76398425bb06b07cc3a3b1ce169c67dc9d6874ed"
      ],
      "author": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Sun Feb 01 14:52:56 2009 -0700"
      },
      "committer": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Mon Mar 16 08:34:35 2009 -0600"
      },
      "message": "Rationalize fasync return values\n\nMost fasync implementations do something like:\n\n     return fasync_helper(...);\n\nBut fasync_helper() will return a positive value at times - a feature used\nin at least one place.  Thus, a number of other drivers do:\n\n     err \u003d fasync_helper(...);\n     if (err \u003c 0)\n             return err;\n     return 0;\n\nIn the interests of consistency and more concise code, it makes sense to\nmap positive return values onto zero where -\u003efasync() is called.\n\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Jonathan Corbet \u003ccorbet@lwn.net\u003e\n"
    },
    {
      "commit": "76398425bb06b07cc3a3b1ce169c67dc9d6874ed",
      "tree": "e6e1800edda88b5592617a950daacf2199587a33",
      "parents": [
        "db1dd4d376134eba0e08af523b61cc566a4ea1cd"
      ],
      "author": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Sun Feb 01 14:26:59 2009 -0700"
      },
      "committer": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Mon Mar 16 08:32:27 2009 -0600"
      },
      "message": "Move FASYNC bit handling to f_op-\u003efasync()\n\nRemoving the BKL from FASYNC handling ran into the challenge of keeping the\nsetting of the FASYNC bit in filp-\u003ef_flags atomic with regard to calls to\nthe underlying fasync() function.  Andi Kleen suggested moving the handling\nof that bit into fasync(); this patch does exactly that.  As a result, we\nhave a couple of internal API changes: fasync() must now manage the FASYNC\nbit, and it will be called without the BKL held.\n\nAs it happens, every fasync() implementation in the kernel with one\nexception calls fasync_helper().  So, if we make fasync_helper() set the\nFASYNC bit, we can avoid making any changes to the other fasync()\nfunctions - as long as those functions, themselves, have proper locking.\nMost fasync() implementations do nothing but call fasync_helper() - which\nhas its own lock - so they are easily verified as correct.  The BKL had\nalready been pushed down into the rest.\n\nThe networking code has its own version of fasync_helper(), so that code\nhas been augmented with explicit FASYNC bit handling.\n\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jonathan Corbet \u003ccorbet@lwn.net\u003e\n"
    },
    {
      "commit": "db1dd4d376134eba0e08af523b61cc566a4ea1cd",
      "tree": "8882c673abbaa5713511b7046493fa862b9140d1",
      "parents": [
        "684999149002dd046269666a390458e0acb38280"
      ],
      "author": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Fri Feb 06 15:25:24 2009 -0700"
      },
      "committer": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Mon Mar 16 08:32:27 2009 -0600"
      },
      "message": "Use f_lock to protect f_flags\n\nTraditionally, changes to struct file-\u003ef_flags have been done under BKL\nprotection, or with no protection at all.  This patch causes all f_flags\nchanges after file open/creation time to be done under protection of\nf_lock.  This allows the removal of some BKL usage and fixes a number of\nlongstanding (if microscopic) races.\n\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Jonathan Corbet \u003ccorbet@lwn.net\u003e\n"
    },
    {
      "commit": "a26eab2400f0477bfac0255600552394855016f7",
      "tree": "f5554eddf4928cc83e572c15c0b314daaa7cba66",
      "parents": [
        "3480b25743cb7404928d57efeaa3d085708b04c2"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:14:17 2009 +0100"
      },
      "committer": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:15:24 2009 +0100"
      },
      "message": "[CVE-2009-0029] System call wrappers part 15\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n"
    },
    {
      "commit": "cbacc2c7f066a1e01b33b0e27ae5efbf534bc2db",
      "tree": "90d1093131d2a3543a8b3b1f3364e7c6f4081a93",
      "parents": [
        "4a6908a3a050aacc9c3a2f36b276b46c0629ad91",
        "74192246910ff4fb95309ba1a683215644beeb62"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Dec 25 11:40:09 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Dec 25 11:40:09 2008 +1100"
      },
      "message": "Merge branch \u0027next\u0027 into for-linus\n"
    },
    {
      "commit": "218d11a8b071b23b76c484fd5f72a4fe3306801e",
      "tree": "6656f841973496b0717117f8031d22bea019fd00",
      "parents": [
        "f2f1fa78a155524b849edf359e42a3001ea652c0"
      ],
      "author": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Fri Dec 05 16:12:48 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 05 15:35:10 2008 -0800"
      },
      "message": "Fix a race condition in FASYNC handling\n\nChangeset a238b790d5f99c7832f9b73ac8847025815b85f7 (Call fasync()\nfunctions without the BKL) introduced a race which could leave\nfile-\u003ef_flags in a state inconsistent with what the underlying\ndriver/filesystem believes.  Revert that change, and also fix the same\nraces in ioctl_fioasync() and ioctl_fionbio().\n\nThis is a minimal, short-term fix; the real fix will not involve the\nBKL.\n\nReported-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: stable@kernel.org\nSigned-off-by: Jonathan Corbet \u003ccorbet@lwn.net\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c69e8d9c01db2adc503464993c358901c9af9de4",
      "tree": "bed94aaa9aeb7a7834d1c880f72b62a11a752c78",
      "parents": [
        "86a264abe542cfececb4df129bc45a0338d8cdb9"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:39:19 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:39:19 2008 +1100"
      },
      "message": "CRED: Use RCU to access another task\u0027s creds and to release a task\u0027s own creds\n\nUse RCU to access another task\u0027s creds and to release a task\u0027s own creds.\nThis means that it will be possible for the credentials of a task to be\nreplaced without another task (a) requiring a full lock to read them, and (b)\nseeing deallocated memory.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "86a264abe542cfececb4df129bc45a0338d8cdb9",
      "tree": "30152f04ba847f311028d5ca697f864c16c7ebb3",
      "parents": [
        "f1752eec6145c97163dbce62d17cf5d928e28a27"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:39:18 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:39:18 2008 +1100"
      },
      "message": "CRED: Wrap current-\u003ecred and a few other accessors\n\nWrap current-\u003ecred and a few other accessors to hide their actual\nimplementation.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "b6dff3ec5e116e3af6f537d4caedcad6b9e5082a",
      "tree": "9e76f972eb7ce9b84e0146c8e4126a3f86acb428",
      "parents": [
        "15a2460ed0af7538ca8e6c610fe607a2cd9da142"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:39:16 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:39:16 2008 +1100"
      },
      "message": "CRED: Separate task security context from task_struct\n\nSeparate the task security context from task_struct.  At this point, the\nsecurity data is temporarily embedded in the task_struct with two pointers\npointing to it.\n\nNote that the Alpha arch is altered as it refers to (E)UID and (E)GID in\nentry.S via asm-offsets.\n\nWith comment fixes Signed-off-by: Marc Dionne \u003cmarc.c.dionne@gmail.com\u003e\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "da9592edebceeba1b9301beafe80ec8b9c2db0ce",
      "tree": "00c110cd8ff6d211d76ab4868b6175096a38aad5",
      "parents": [
        "82ab8deda7fef36f067ccdeacc3b3caefc970f89"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:39:05 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:39:05 2008 +1100"
      },
      "message": "CRED: Wrap task credential accesses in the filesystem subsystem\n\nWrap access to task credentials so that they can be separated more easily from\nthe task_struct during the introduction of COW creds.\n\nChange most current-\u003e(|e|s|fs)[ug]id to current_(|e|s|fs)[ug]id().\n\nChange some task-\u003ee?[ug]id to task_e?[ug]id().  In some places it makes more\nsense to use RCU directly rather than a convenient wrapper; these will be\naddressed by later patches.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "1b7e190b4764ea3ca1080404dd593eae5230d2b3",
      "tree": "746fd04f54103c33927bf07e9df0cd79c9ab951d",
      "parents": [
        "1027abe8827b47f7e9c4ed6514fde3d44f79963c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 30 06:18:03 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Aug 01 11:25:24 2008 -0400"
      },
      "message": "[PATCH] clean dup2() up a bit\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\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": "6c5d0512a091480c9f981162227fdb1c9d70e555",
      "tree": "d9706cc3c26beacd588a9b976bb4384369a2b86d",
      "parents": [
        "4cc38a1b383f0c6c65a3fef4ff8144e8000e4ec3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 13:38:19 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:44 2008 -0400"
      },
      "message": "[PATCH] get rid of corner case in dup3() entirely\n\nSince Ulrich is OK with getting rid of dup3(fd, fd, flags) completely,\nto hell the damn thing goes.  Corner case for dup2() is handled in\nsys_dup2() (complete with -EBADF if dup2(fd, fd) is called with fd\nthat is not open), the rest is done in dup3().\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3c333937ee3be114b181c4861188cfe8f6a59697",
      "tree": "fda3bb122bb4c9c180ef41e5d142ac315dc7a576",
      "parents": [
        "58ec42b061bf5dad8fa0370a19966cfd96eaf80c"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Fri Jul 25 22:32:13 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:39 2008 -0400"
      },
      "message": "[PATCH] dup3 fix\n\nAl Viro notice one cornercase that the new dup3() code.  The dup2()\nfunction, as a special case, handles dup-ing to the same file\ndescriptor.  In this case the current dup3() code does nothing at\nall.  I.e., it ingnores the flags parameter.  This shouldn\u0027t happen,\nthe close-on-exec flag should be set if requested.\n\nIn case the O_CLOEXEC bit in the flags parameter is not set the\ndup3() function should behave in this respect identical to dup2().\nThis means dup3(fd, fd, 0) should not actively reset the c-o-e\nflag.\n\nThe patch below implements this minor change.\n\n[AV: credits to Artur Grabowski for bringing that up as potential subtle point\nin dup2() behaviour]\n\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "336dd1f70ff62d7dd8655228caed4c5bfc818c56",
      "tree": "1441b76ea5f08f44167f41867f3555ac53712ebb",
      "parents": [
        "a0998b50c3f0b8fdd265c63e0032f86ebe377dbf"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Wed Jul 23 21:29:29 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:28 2008 -0700"
      },
      "message": "flag parameters: dup2\n\nThis patch adds the new dup3 syscall.  It extends the old dup2 syscall by one\nparameter which is meant to hold a flag value.  Support for the O_CLOEXEC flag\nis added in this patch.\n\nThe following test must be adjusted for architectures other than x86 and\nx86-64 and in case the syscall numbers changed.\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n#include \u003cfcntl.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003ctime.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003csys/syscall.h\u003e\n\n#ifndef __NR_dup3\n# ifdef __x86_64__\n#  define __NR_dup3 292\n# elif defined __i386__\n#  define __NR_dup3 330\n# else\n#  error \"need __NR_dup3\"\n# endif\n#endif\n\nint\nmain (void)\n{\n  int fd \u003d syscall (__NR_dup3, 1, 4, 0);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"dup3(0) failed\");\n      return 1;\n    }\n  int coe \u003d fcntl (fd, F_GETFD);\n  if (coe \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if (coe \u0026 FD_CLOEXEC)\n    {\n      puts (\"dup3(0) set close-on-exec flag\");\n      return 1;\n    }\n  close (fd);\n\n  fd \u003d syscall (__NR_dup3, 1, 4, O_CLOEXEC);\n  if (fd \u003d\u003d -1)\n    {\n      puts (\"dup3(O_CLOEXEC) failed\");\n      return 1;\n    }\n  coe \u003d fcntl (fd, F_GETFD);\n  if (coe \u003d\u003d -1)\n    {\n      puts (\"fcntl failed\");\n      return 1;\n    }\n  if ((coe \u0026 FD_CLOEXEC) \u003d\u003d 0)\n    {\n      puts (\"dup3(O_CLOEXEC) set close-on-exec flag\");\n      return 1;\n    }\n  close (fd);\n\n  puts (\"OK\");\n\n  return 0;\n}\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nAcked-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nCc: \u003clinux-arch@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": "a238b790d5f99c7832f9b73ac8847025815b85f7",
      "tree": "2fd07ceeec7d56eb4af295488407b501c6d6fbb8",
      "parents": [
        "2db9f0a35a4e4ad7cee756a4e0dabb7c1c8b6c72"
      ],
      "author": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Fri Jun 20 09:12:01 2008 -0600"
      },
      "committer": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Wed Jul 02 15:06:28 2008 -0600"
      },
      "message": "Call fasync() functions without the BKL\n\nlock_kernel() calls have been pushed down into code which needs it, so\nthere is no need to take the BKL at this level anymore.\n\nThis work inspired and aided by Andi Kleen\u0027s unlocked_fasync() patches.\n\nAcked-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Jonathan Corbet \u003ccorbet@lwn.net\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": "f8f95702f0c4529b0f59488f4509608f0c160e77",
      "tree": "618c1ed56eb48da11189f1db9216dd92750c9812",
      "parents": [
        "3b1253880b7a9e6db54b943b2d40bcf2202f58ab"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Apr 23 20:38:10 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Apr 25 09:24:05 2008 -0400"
      },
      "message": "[PATCH] sanitize locate_fd()\n\n* \u0027file\u0027 argument is unused; lose it.\n* move setting flags from the caller (dupfd()) to locate_fd();\n  pass cloexec flag as new argument.  Note that files_fdtable()\n  that used to be in dupfd() isn\u0027t needed in the place in\n  locate_fd() where the moved code ends up - we know that -\u003efile_lock\n  hadn\u0027t been dropped since the last time we calculated fdt because\n  we can get there only if expand_files() returns 0 and it doesn\u0027t\n  drop/reacquire in that case.\n* move getting/dropping -\u003efile_lock into locate_fd().  Now the caller\n  doesn\u0027t need to do anything with files_struct *files anymore and\n  we can move that inside locate_fd() as well, killing the\n  struct files_struct * argument.\n\nAt that point locate_fd() is extremely similar to get_unused_fd_flags()\nand the next patches will merge those two.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "fc9b52cd8f5f459b88adcf67c47668425ae31a78",
      "tree": "c29924eaf60d2e73641bf11fa906a23fa81f46c9",
      "parents": [
        "75acb9cd2ef0bbb463098fdd40cbcdda79d45fa3"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Fri Feb 08 04:19:52 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:31 2008 -0800"
      },
      "message": "fs: remove fastcall, it is always empty\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Harvey Harrison \u003charvey.harrison@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": "6c5f3e7b43300508fe3947ff3cfff0f86043bb57",
      "tree": "9843b8897ec3357b09f62bb6423cd4753e1d4516",
      "parents": [
        "fea9d175545b38cb3e84569400419eb81bc90fa3"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Feb 08 04:19:20 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:29 2008 -0800"
      },
      "message": "Pidns: make full use of xxx_vnr() calls\n\nSome time ago the xxx_vnr() calls (e.g.  pid_vnr or find_task_by_vpid) were\n_all_ converted to operate on the current pid namespace.  After this each call\nlike xxx_nr_ns(foo, current-\u003ensproxy-\u003epid_ns) is nothing but a xxx_vnr(foo)\none.\n\nSwitch all the xxx_nr_ns() callers to use the xxx_vnr() calls where\nappropriate.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nReviewed-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b488893a390edfe027bae7a46e9af8083e740668",
      "tree": "c469a7f99ad01005a73011c029eb5e5d15454559",
      "parents": [
        "3eb07c8c8adb6f0572baba844ba2d9e501654316"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Thu Oct 18 23:40:14 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:40 2007 -0700"
      },
      "message": "pid namespaces: changes to show virtual ids to user\n\nThis is the largest patch in the set. Make all (I hope) the places where\nthe pid is shown to or get from user operate on the virtual pids.\n\nThe idea is:\n - all in-kernel data structures must store either struct pid itself\n   or the pid\u0027s global nr, obtained with pid_nr() call;\n - when seeking the task from kernel code with the stored id one\n   should use find_task_by_pid() call that works with global pids;\n - when showing pid\u0027s numerical value to the user the virtual one\n   should be used, but however when one shows task\u0027s pid outside this\n   task\u0027s namespace the global one is to be used;\n - when getting the pid from userspace one need to consider this as\n   the virtual one and use appropriate task/pid-searching functions.\n\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: nuther build fix]\n[akpm@linux-foundation.org: yet nuther build fix]\n[akpm@linux-foundation.org: remove unneeded casts]\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@openvz.org\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "22d2b35b200f76085c16a2e14ca30b58510fcbe7",
      "tree": "669ce98845b73c0a2e12b37beaa24aed8481e1d2",
      "parents": [
        "18796aa00243a594a2bd6733f1360aa38c3cd8f4"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Tue Oct 16 23:30:26 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:43:01 2007 -0700"
      },
      "message": "F_DUPFD_CLOEXEC implementation\n\nOne more small change to extend the availability of creation of file\ndescriptors with FD_CLOEXEC set.  Adding a new command to fcntl() requires\nno new system call and the overall impact on code size if minimal.\n\nIf this patch gets accepted we will also add this change to the next\nrevision of the POSIX spec.\n\nTo test the patch, use the following little program.  Adjust the value of\nF_DUPFD_CLOEXEC appropriately.\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n#include \u003cerrno.h\u003e\n#include \u003cfcntl.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003cstdlib.h\u003e\n#include \u003cunistd.h\u003e\n\n#ifndef F_DUPFD_CLOEXEC\n# define F_DUPFD_CLOEXEC 12\n#endif\n\nint\nmain (int argc, char *argv[])\n{\n  if  (argc \u003e 1)\n    {\n      if (fcntl (3, F_GETFD) \u003d\u003d 0)\n\t{\n\t  puts (\"descriptor not closed\");\n\t  exit (1);\n\t}\n      if (errno !\u003d EBADF)\n\t{\n\t  puts (\"error not EBADF\");\n\t  exit (1);\n\t}\n\n      exit (0);\n    }\n  int fd \u003d fcntl (STDOUT_FILENO, F_DUPFD_CLOEXEC, 0);\n  if (fd \u003d\u003d -1 \u0026\u0026 errno \u003d\u003d EINVAL)\n    {\n      puts (\"F_DUPFD_CLOEXEC not supported\");\n      return 0;\n    }\n  if (fd !\u003d 3)\n    {\n      puts (\"program called with descriptors other than 0,1,2\");\n      return 1;\n    }\n\n  execl (\"/proc/self/exe\", \"/proc/self/exe\", \"1\", NULL);\n  puts (\"execl failed\");\n  return 1;\n}\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "20c2df83d25c6a95affe6157a4c9cac4cf5ffaac",
      "tree": "415c4453d2b17a50abe7a3e515177e1fa337bd67",
      "parents": [
        "64fb98fc40738ae1a98bcea9ca3145b89fb71524"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jul 20 10:11:58 2007 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jul 20 10:11:58 2007 +0900"
      },
      "message": "mm: Remove slab destructors from kmem_cache_create().\n\nSlab destructors were no longer supported after Christoph\u0027s\nc59def9f222d44bb7e2f0a559f2906191a0862d7 change. They\u0027ve been\nBUGs for both slab and slub, and slob never supported them\neither.\n\nThis rips out support for the dtor pointer from kmem_cache_create()\ncompletely and fixes up every single callsite in the kernel (there were\nabout 224, not including the slab allocator definitions themselves,\nor the documentation references).\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "3bd858ab1c451725c07a805dcb315215dc85b86e",
      "tree": "5d49c4300e350d64fd81eb3230b81f754117e0c1",
      "parents": [
        "49c13b51a15f1ba9f6d47e26e4a3886c4f3931e2"
      ],
      "author": {
        "name": "Satyam Sharma",
        "email": "ssatyam@cse.iitk.ac.in",
        "time": "Tue Jul 17 15:00:08 2007 +0530"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 12:00:03 2007 -0700"
      },
      "message": "Introduce is_owner_or_cap() to wrap CAP_FOWNER use with fsuid check\n\nIntroduce is_owner_or_cap() macro in fs.h, and convert over relevant\nusers to it. This is done because we want to avoid bugs in the future\nwhere we check for only effective fsuid of the current task against a\nfile\u0027s owning uid, without simultaneously checking for CAP_FOWNER as\nwell, thus violating its semantics.\n[ XFS uses special macros and structures, and in general looked ...\nuntouchable, so we leave it alone -- but it has been looked over. ]\n\nThe (current-\u003efsuid !\u003d inode-\u003ei_uid) check in generic_permission() and\nexec_permission_lite() is left alone, because those operations are\ncovered by CAP_DAC_OVERRIDE and CAP_DAC_READ_SEARCH. Similarly operations\nfalling under the purview of CAP_CHOWN and CAP_LEASE are also left alone.\n\nSigned-off-by: Satyam Sharma \u003cssatyam@cse.iitk.ac.in\u003e\nCc: Al Viro \u003cviro@ftp.linux.org.uk\u003e\nAcked-by: Serge E. Hallyn \u003cserge@hallyn.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.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": "0f7fc9e4d03987fe29f6dd4aa67e4c56eb7ecb05",
      "tree": "51763269e44eb9bf4d0f8c529577489902850cf9",
      "parents": [
        "b65d34fd465f19fbe2f32f2205a9a06ca7c2bdeb"
      ],
      "author": {
        "name": "Josef \"Jeff\" Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Fri Dec 08 02:36:35 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:41 2006 -0800"
      },
      "message": "[PATCH] VFS: change struct file to use struct path\n\nThis patch changes struct file to use struct path instead of having\nindependent pointers to struct dentry and struct vfsmount, and converts all\nusers of f_{dentry,vfsmnt} in fs/ to use f_path.{dentry,mnt}.\n\nAdditionally, it adds two #define\u0027s to make the transition easier for users of\nthe f_dentry and f_vfsmnt.\n\nSigned-off-by: Josef \"Jeff\" Sipek \u003cjsipek@cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e18b890bb0881bbab6f4f1a6cd20d9c60d66b003",
      "tree": "4828be07e1c24781c264b42c5a75bcd968223c3f",
      "parents": [
        "441e143e95f5aa1e04026cb0aa71c801ba53982f"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:33:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:25 2006 -0800"
      },
      "message": "[PATCH] slab: remove kmem_cache_t\n\nReplace all uses of kmem_cache_t with struct kmem_cache.\n\nThe patch was generated using the following script:\n\n\t#!/bin/sh\n\t#\n\t# Replace one string by another in all the kernel sources.\n\t#\n\n\tset -e\n\n\tfor file in `find * -name \"*.c\" -o -name \"*.h\"|xargs grep -l $1`; do\n\t\tquilt add $file\n\t\tsed -e \"1,\\$s/$1/$2/g\" $file \u003e/tmp/$$\n\t\tmv /tmp/$$ $file\n\t\tquilt refresh\n\tdone\n\nThe script was run like this\n\n\tsh replace kmem_cache_t \"struct kmem_cache\"\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": "e94b1766097d53e6f3ccfb36c8baa562ffeda3fc",
      "tree": "93fa0a8ab84976d4e89c50768ca8b8878d642a0d",
      "parents": [
        "54e6ecb23951b195d02433a741c7f7cb0b796c78"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:33:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:24 2006 -0800"
      },
      "message": "[PATCH] slab: remove SLAB_KERNEL\n\nSLAB_KERNEL is an alias of GFP_KERNEL.\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": "43fa1adb9334bf4585cd53144eb5911488f85bc7",
      "tree": "64be64424e7db15e1872077f900870895ccac85b",
      "parents": [
        "a03fcb730b4fe7da14ca4405f23dbde717b1d2b9"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Oct 02 02:17:27 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:15 2006 -0700"
      },
      "message": "[PATCH] file: Add locking to f_getown\n\nThis has been needed for a long time, but now with the advent of a\nreference counted struct pid there are real consequences for getting this\nwrong.\n\nSomeone I think it was Oleg Nesterov pointed out that this construct was\nmissing locking, when I introduced struct pid.  After taking time to review\nthe locking construct already present I figured out which lock needs to be\ntaken.  The other paths that access f_owner.pid take either the f_owner\nread or the write lock.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "609d7fa9565c754428d2520cac2accc9052e1245",
      "tree": "1c5114ec3720166fe99ce3885e8767929a8a84e0",
      "parents": [
        "bde0d2c98bcfc9acc83ac79c33a6ac1335b95a92"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Oct 02 02:17:15 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:14 2006 -0700"
      },
      "message": "[PATCH] file: modify struct fown_struct to use a struct pid\n\nFile handles can be requested to send sigio and sigurg to processes.  By\ntracking the destination processes using struct pid instead of pid_t we make\nthe interface safe from all potential pid wrap around problems.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f6298aab2ebaa61de39931595f125bc1968905cc",
      "tree": "05389adf991958d0bf4227cd0bc140bdaab073e4",
      "parents": [
        "8abf6a4707cfb95ca552b882959c6f8ff9924270"
      ],
      "author": {
        "name": "Eric Sesterhenn",
        "email": "snakebyte@gmx.de",
        "time": "Sun Apr 02 13:37:19 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sun Apr 02 13:37:19 2006 +0200"
      },
      "message": "BUG_ON() Conversion in fs/fcntl.c\n\nthis changes if() BUG(); constructs to BUG_ON() which is\ncleaner and can better optimized away\n\nSigned-off-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "fa3536cc144c1298f2ed9416c33f3b77fa2cd37a",
      "tree": "5484541319b86ae7dac0def4db7925f7cc7008e7",
      "parents": [
        "878a9f30d7b13015f3aa4534d7877d985f150183"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Sun Mar 26 01:37:24 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:56:56 2006 -0800"
      },
      "message": "[PATCH] Use __read_mostly on some hot fs variables\n\nI discovered on oprofile hunting on a SMP platform that dentry lookups were\nslowed down because d_hash_mask, d_hash_shift and dentry_hashtable were in\na cache line that contained inodes_stat.  So each time inodes_stats is\nchanged by a cpu, other cpus have to refill their cache line.\n\nThis patch moves some variables to the __read_mostly section, in order to\navoid false sharing.  RCU dentry lookups can go full speed.\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": "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": "7d95c8f27d9be65bf160f1edaf653d33dfceb58c",
      "tree": "2e232ef2fccb1e6c81616bd9f3a56a0676549a8a",
      "parents": [
        "8b3e09e19932835fb77c63aaf3b1af6117e78871"
      ],
      "author": {
        "name": "dean gaudet",
        "email": "dean@arctic.org",
        "time": "Fri Feb 03 03:04:30 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Feb 03 08:32:07 2006 -0800"
      },
      "message": "[PATCH] fcntl F_SETFL and read-only IS_APPEND files\n\nThere is code in setfl() which attempts to preserve the O_APPEND flag on\nIS_APPEND files...  however IS_APPEND files could also be opened O_RDONLY\nand in that case setfl() should not require O_APPEND...\n\ncoreutils 5.93 tail -f attempts to set O_NONBLOCK even on regular files...\nunfortunately if you try this on an append-only log file the result is\nthis:\n\nfcntl64(3, F_GETFL)                     \u003d 0x8000 (flags O_RDONLY|O_LARGEFILE)\nfcntl64(3, F_SETFL, O_RDONLY|O_NONBLOCK|O_LARGEFILE) \u003d -1 EPERM (Operation not permitted)\n\nI offer up the patch below as one way of fixing the problem...  i\u0027ve tested\nit fixes the problem with tail -f but haven\u0027t really tested beyond that.\n\n(I also reported the coreutils bug upstream... it shouldn\u0027t fail imho...\n\u003chttps://savannah.gnu.org/bugs/index.php?func\u003ddetailitem\u0026item_id\u003d15473\u003e)\n\nSigned-off-by: dean gaudet \u003cdean@arctic.org\u003e\nCc: Al Viro \u003cviro@ftp.linux.org.uk\u003e\nAcked-by: 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": "858119e159384308a5dde67776691a2ebf70df0f",
      "tree": "f360768f999d51edc0863917ce0bf79e88c0ec4c",
      "parents": [
        "b0a9499c3dd50d333e2aedb7e894873c58da3785"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Sat Jan 14 13:20:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Jan 14 18:27:06 2006 -0800"
      },
      "message": "[PATCH] Unlinline a bunch of other functions\n\nRemove the \"inline\" keyword from a bunch of big functions in the kernel with\nthe goal of shrinking it by 30kb to 40kb\n\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Jeff Garzik \u003cjgarzik@pobox.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "16f7e0fe2ecc30f30652e8185e1772cdebe39109",
      "tree": "e668703267c7b02f1af3cc1581bb4366a5370fdd",
      "parents": [
        "c59ede7b78db329949d9cdcd7064e22d357560ef"
      ],
      "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] capable/capability.h (fs/)\n\nfs: Use \u003clinux/capability.h\u003e where capable() is used.\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nAcked-by: Tim Schmielau \u003ctim@physik3.uni-rostock.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "850d6fbe70c62a9792eac3e8ef34f2f09f209895",
      "tree": "e02e6bbfd670c7250134c894356d9599a35820bd",
      "parents": [
        "86174cdcb44c095ffd2e3ca69caa56244cf701d5"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sun Jan 08 01:03:29 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:57 2006 -0800"
      },
      "message": "[PATCH] sigio: cleanup, don\u0027t take tasklist twice\n\nThe only user of send_sigio_to_task() already holds tasklist_lock, so it is\nbetter not to send the signal via send_group_sig_info() (which takes\ntasklist recursively) but use group_send_sig_info().\n\nThe same change in send_sigurg()-\u003esend_sigurg_to_task().\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b835996f628eadb55c5fb222ba46fe9395bf73c7",
      "tree": "d63d80585d197e1ffc299af4a0034049790fb197",
      "parents": [
        "ab2af1f5005069321c5d130f09cce577b03f43ef"
      ],
      "author": {
        "name": "Dipankar Sarma",
        "email": "dipankar@in.ibm.com",
        "time": "Fri Sep 09 13:04:14 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 13:57:55 2005 -0700"
      },
      "message": "[PATCH] files: lock-free fd look-up\n\nWith the use of RCU in files structure, the look-up of files using fds can now\nbe lock-free.  The lookup is protected by rcu_read_lock()/rcu_read_unlock().\nThis patch changes the readers to use lock-free lookup.\n\nSigned-off-by: Maneesh Soni \u003cmaneesh@in.ibm.com\u003e\nSigned-off-by: Ravikiran Thirumalai \u003ckiran_th@gmail.com\u003e\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": "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": "c293621bbf678a3d85e3ed721c3921c8a670610d",
      "tree": "c72fc522cf3fd2d12f7fd716b7eb4db8d7fcaf52",
      "parents": [
        "3e5ea098446e19175fdee4c2c4ec9366b0217db4"
      ],
      "author": {
        "name": "Peter Staubach",
        "email": "staubach@redhat.com",
        "time": "Wed Jul 27 11:45:09 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jul 27 16:26:06 2005 -0700"
      },
      "message": "[PATCH] stale POSIX lock handling\n\nI believe that there is a problem with the handling of POSIX locks, which\nthe attached patch should address.\n\nThe problem appears to be a race between fcntl(2) and close(2).  A\nmultithreaded application could close a file descriptor at the same time as\nit is trying to acquire a lock using the same file descriptor.  I would\nsuggest that that multithreaded application is not providing the proper\nsynchronization for itself, but the OS should still behave correctly.\n\nSUS3 (Single UNIX Specification Version 3, read: POSIX) indicates that when\na file descriptor is closed, that all POSIX locks on the file, owned by the\nprocess which closed the file descriptor, should be released.\n\nThe trick here is when those locks are released.  The current code releases\nall locks which exist when close is processing, but any locks in progress\nare handled when the last reference to the open file is released.\n\nThere are three cases to consider.\n\nOne is the simple case, a multithreaded (mt) process has a file open and\nraces to close it and acquire a lock on it.  In this case, the close will\nrelease one reference to the open file and when the fcntl is done, it will\nrelease the other reference.  For this situation, no locks should exist on\nthe file when both the close and fcntl operations are done.  The current\nsystem will handle this case because the last reference to the open file is\nbeing released.\n\nThe second case is when the mt process has dup(2)\u0027d the file descriptor.\nThe close will release one reference to the file and the fcntl, when done,\nwill release another, but there will still be at least one more reference\nto the open file.  One could argue that the existence of a lock on the file\nafter the close has completed is okay, because it was acquired after the\nclose operation and there is still a way for the application to release the\nlock on the file, using an existing file descriptor.\n\nThe third case is when the mt process has forked, after opening the file\nand either before or after becoming an mt process.  In this case, each\nprocess would hold a reference to the open file.  For each process, this\ndegenerates to first case above.  However, the lock continues to exist\nuntil both processes have released their references to the open file.  This\nlock could block other lock requests.\n\nThe changes to release the lock when the last reference to the open file\naren\u0027t quite right because they would allow the lock to exist as long as\nthere was a reference to the open file.  This is too long.\n\nThe new proposed solution is to add support in the fcntl code path to\ndetect a race with close and then to release the lock which was just\nacquired when such as race is detected.  This causes locks to be released\nin a timely fashion and for the system to conform to the POSIX semantic\nspecification.\n\nThis was tested by instrumenting a kernel to detect the handling locks and\nthen running a program which generates case #3 above.  A dangling lock\ncould be reliably generated.  When the changes to detect the close/fcntl\nrace were added, a dangling lock could no longer be generated.\n\nCc: Matthew Wilcox \u003cwilly@debian.org\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7ed20e1ad521b5f5df61bf6559ae60738e393741",
      "tree": "90931724e45eaedb3445314e8b94e78253642395",
      "parents": [
        "e5bdd883a189243541e7a132385580703b049102"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "juhl-lkml@dif.dk",
        "time": "Sun May 01 08:59:14 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sun May 01 08:59:14 2005 -0700"
      },
      "message": "[PATCH] convert that currently tests _NSIG directly to use valid_signal()\n\nConvert most of the current code that uses _NSIG directly to instead use\nvalid_signal().  This avoids gcc -W warnings and off-by-one errors.\n\nSigned-off-by: Jesper Juhl \u003cjuhl-lkml@dif.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fc9c9ab22d5650977c417ef2032d02f455011b23",
      "tree": "27f9827f559cb732c78bb713e097c8a023e76768",
      "parents": [
        "4a534f93b371e8e6e87ae302757365f0f583e06b"
      ],
      "author": {
        "name": "Bharath Ramesh",
        "email": "bramesh@vt.edu",
        "time": "Sat Apr 16 15:25:41 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:25:41 2005 -0700"
      },
      "message": "[PATCH] AYSNC IO using singals other than SIGIO\n\nA question on sigwaitinfo based IO mechanism in multithreaded applications.\n\nI am trying to use RT signals to notify me of IO events using RT signals\ninstead of SIGIO in a multithreaded applications.  I noticed that there was\nsome discussion on lkml during november 1999 with the subject of the\ndiscussion as \"Signal driven IO\".  In the thread I noticed that RT signals\nwere being delivered to the worker thread.  I am running 2.6.10 kernel and\nI am trying to use the very same mechanism and I find that only SIGIO being\npropogated to the worker threads and RT signals only being propogated to\nthe main thread and not the worker threads where I actually want them to be\npropogated too.  On further inspection I found that the following patch\nwhich I have attached solves the problem.\n\nI am not sure if this is a bug or feature in the kernel.\n\n\nRoland McGrath \u003croland@redhat.com\u003e said:\n\nThis relates only to fcntl F_SETSIG, which is a Linux extension.  So there is\nno POSIX issue.  When changing various things like the normal SIGIO signalling\nto do group signals, I was concerned strictly with the POSIX semantics and\ngenerally avoided touching things in the domain of Linux inventions.  That\u0027s\nwhy I didn\u0027t change this when I changed the call right next to it.  There is\nno reason I can see that F_SETSIG-requested signals shouldn\u0027t use a group\nsignal like normal SIGIO does.  I\u0027m happy to ACK this patch, there is nothing\nwrong with its change to the semantics in my book.  But neither POSIX nor I\ncare a whit what F_SETSIG does.\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"
    }
  ]
}
