)]}'
{
  "log": [
    {
      "commit": "1fd36adcd98c14d2fd97f545293c488775cb2823",
      "tree": "c13ab1934a15aebe0d81601d910ce5a3c6fa2c6f",
      "parents": [
        "1dce27c5aa6770e9d195f2bb7db1db3d4dde5591"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Feb 16 17:49:54 2012 +0000"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Sun Feb 19 10:30:57 2012 -0800"
      },
      "message": "Replace the fd_sets in struct fdtable with an array of unsigned longs\n\nReplace the fd_sets in struct fdtable with an array of unsigned longs and then\nuse the standard non-atomic bit operations rather than the FD_* macros.\n\nThis:\n\n (1) Removes the abuses of struct fd_set:\n\n     (a) Since we don\u0027t want to allocate a full fd_set the vast majority of the\n     \t time, we actually, in effect, just allocate a just-big-enough array of\n     \t unsigned longs and cast it to an fd_set type - so why bother with the\n     \t fd_set at all?\n\n     (b) Some places outside of the core fdtable handling code (such as\n     \t SELinux) want to look inside the array of unsigned longs hidden inside\n     \t the fd_set struct for more efficient iteration over the entire set.\n\n (2) Eliminates the use of FD_*() macros in the kernel completely.\n\n (3) Permits the __FD_*() macros to be deleted entirely where not exposed to\n     userspace.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nLink: http://lkml.kernel.org/r/20120216174954.23314.48147.stgit@warthog.procyon.org.uk\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1dce27c5aa6770e9d195f2bb7db1db3d4dde5591",
      "tree": "4ad3ffeee95cb5b10e047b7cb9bdbb48cfc734e0",
      "parents": [
        "8b3d1cda4f5ff0d7c2ae910ea8fd03493996912f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Feb 16 17:49:42 2012 +0000"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Sun Feb 19 10:30:52 2012 -0800"
      },
      "message": "Wrap accesses to the fd_sets in struct fdtable\n\nWrap accesses to the fd_sets in struct fdtable (for recording open files and\nclose-on-exec flags) so that we can move away from using fd_sets since we\nabuse the fd_set structs by not allocating the full-sized structure under\nnormal circumstances and by non-core code looking at the internals of the\nfd_sets.\n\nThe first abuse means that use of FD_ZERO() on these fd_sets is not permitted,\nsince that cannot be told about their abnormal lengths.\n\nThis introduces six wrapper functions for setting, clearing and testing\nclose-on-exec flags and fd-is-open flags:\n\n\tvoid __set_close_on_exec(int fd, struct fdtable *fdt);\n\tvoid __clear_close_on_exec(int fd, struct fdtable *fdt);\n\tbool close_on_exec(int fd, const struct fdtable *fdt);\n\tvoid __set_open_fd(int fd, struct fdtable *fdt);\n\tvoid __clear_open_fd(int fd, struct fdtable *fdt);\n\tbool fd_is_open(int fd, const struct fdtable *fdt);\n\nNote that I\u0027ve prepended \u0027__\u0027 to the names of the set/clear functions because\nthey require the caller to hold a lock to use them.\n\nNote also that I haven\u0027t added wrappers for looking behind the scenes at the\nthe array.  Possibly that should exist too.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nLink: http://lkml.kernel.org/r/20120216174942.23314.1364.stgit@warthog.procyon.org.uk\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "60063497a95e716c9a689af3be2687d261f115b4",
      "tree": "6ce0d68db76982c53df46aee5f29f944ebf2c320",
      "parents": [
        "148817ba092f9f6edd35bad3c6c6b8e8f90fe2ed"
      ],
      "author": {
        "name": "Arun Sharma",
        "email": "asharma@fb.com",
        "time": "Tue Jul 26 16:09:06 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:47 2011 -0700"
      },
      "message": "atomic: use \u003clinux/atomic.h\u003e\n\nThis allows us to move duplicated code in \u003casm/atomic.h\u003e\n(atomic_inc_not_zero() for now) to \u003clinux/atomic.h\u003e\n\nSigned-off-by: Arun Sharma \u003casharma@fb.com\u003e\nReviewed-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d8bf4ca9ca9576548628344c9725edd3786e90b1",
      "tree": "df338f50a5af6bc3651bd863b79fa91e6b1e9e20",
      "parents": [
        "eb032b9837a958e21ca000358a5bde5e17192ddb"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Fri Jul 08 14:39:41 2011 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Jul 08 22:21:58 2011 +0200"
      },
      "message": "rcu: treewide: Do not use rcu_read_lock_held when calling rcu_dereference_check\n\nSince ca5ecddf (rcu: define __rcu address space modifier for sparse)\nrcu_dereference_check use rcu_read_lock_held as a part of condition\nautomatically so callers do not have to do that as well.\n\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "4d2deb40b20c2608486598364e63e37b09a9ac2f",
      "tree": "cf61f5492623fa69ddc9a0573b50d52b002c2f85",
      "parents": [
        "d2c2486bc8e185548490e8edbc84d185de9eaff1"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Feb 24 20:01:56 2010 +0100"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Aug 19 17:18:03 2010 -0700"
      },
      "message": "kernel: __rcu annotations\n\nThis adds annotations for RCU operations in core kernel components\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "3a3527b6461b1298cc53ce72f336346739297ac8",
      "tree": "30bea5dd7163f13d6c962888feaf53f50ead4cce",
      "parents": [
        "cc77b4db0017dab014ad7ea3d297e10f5b5bf028",
        "a53f4b61a76a7e95139b8e8abba02e9bfe87a58a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 09:23:07 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 09:23:07 2010 -0700"
      },
      "message": "Merge branch \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  Revert \"net: Make accesses to -\u003ebr_port safe for sparse RCU\"\n  mce: convert to rcu_dereference_index_check()\n  net: Make accesses to -\u003ebr_port safe for sparse RCU\n  vfs: add fs.h to define struct file\n  lockdep: Add an in_workqueue_context() lockdep-based test function\n  rcu: add __rcu API for later sparse checking\n  rcu: add an rcu_dereference_index_check()\n  tree/tiny rcu: Add debug RCU head objects\n  mm: remove all rcu head initializations\n  fs: remove all rcu head initializations, except on_stack initializations\n  powerpc: remove all rcu head initializations\n"
    },
    {
      "commit": "844b9a8707f1fcf0482e0c52f44a555e799ccda6",
      "tree": "c9c095c123c2988b014e39b461eb04411b3a197d",
      "parents": [
        "9d51a6b2487724e8713cd2794cf09ffeee5f6932"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Tue Jul 20 13:24:34 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 20 16:25:41 2010 -0700"
      },
      "message": "vfs: fix RCU-lockdep false positive due to /proc\n\nIf a single-threaded process does a file-descriptor operation, and some\nother process accesses that same file descriptor via /proc, the current\nrcu_dereference_check_fdtable() can give a false-positive RCU-lockdep\nsplat due to the reference count being increased by the /proc access after\nthe reference-count check in fget_light() but before the check in\nrcu_dereference_check_fdtable().\n\nThis commit prevents this false positive by checking for a single-threaded\nprocess.  To avoid #include hell, this commit uses the wrapper for\nthread_group_empty(current) defined by rcu_my_thread_group_empty()\nprovided in a separate commit.\n\nLocated-by: Miles Lane \u003cmiles.lane@gmail.com\u003e\nLocated-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2c666df80764389886110c942a7916ba9622583d",
      "tree": "9284d7ef4001bc2e2a2f162f3111e819e2aadd07",
      "parents": [
        "a25909a4d4a29e272f953e12595bf2f04a292dbd"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Thu Apr 29 20:48:47 2010 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Jun 14 16:37:27 2010 -0700"
      },
      "message": "vfs: add fs.h to define struct file\n\nThe sparse RCU-pointer annotations require definition of the\nunderlying type of any pointer passed to rcu_dereference() and friends.\nSo fcheck_files() needs \"struct file\" to be defined, so include fs.h.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\n"
    },
    {
      "commit": "af61b96b4f68f7ab25ebf34fed275fabf64f2edc",
      "tree": "a24d5f4645f5eafcbef8cdc01e1ced247f2f8920",
      "parents": [
        "7dc52157982ab771f40e3c0b7dc55b954c3c2d19"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon Feb 22 17:04:53 2010 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 25 10:34:49 2010 +0100"
      },
      "message": "vfs: Abstract rcu_dereference_check for files-fdtable use\n\nCreate an rcu_dereference_check_fdtable() that encapsulates the\nrcu_dereference_check() condition for fcheck_files() use.  This\nhas the beneficial side-effect of getting rid of a very long\nline.\n\nSuggested-by: Peter Zijlstra \u003cpeterz@infradead.org\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\nLKML-Reference: \u003c1266887105-1528-9-git-send-email-paulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\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": "21e5445928af0d80f7cf803a77f2b65e9e147890",
      "tree": "e7785152e3e22ebd7bf2c9582db1e04acd4e56c5",
      "parents": [
        "76791ab2d5e00c1eef728a8df4347ba133760fb8"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 25 16:29:05 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 03 12:13:03 2009 +0200"
      },
      "message": "kmemtrace, fs: fix linux/fdtable.h header file dependencies\n\nImpact: cleanup\n\nWe want to remove percpu.h from rcupdate.h (for upcoming kmemtrace\nchanges), but this is not possible currently without breaking the\nbuild because fdtable.h has an implicit include file dependency: it\nuses __init does not include init.h.\n\nThis can cause build failures on non-x86 architectures:\n\n /home/mingo/tip/include/linux/fdtable.h:66: error: expected \u0027\u003d\u0027, \u0027,\u0027,\n \u0027;\u0027, \u0027asm\u0027 or \u0027__attribute__\u0027 before \u0027files_defer_init\u0027\n make[2]: *** [fs/locks.o] Error 1\n\nWe got this header included indirectly via rcupdate.h\u0027s percpu.h\ninclusion - but if that is not there the build will break.\n\nFix it.\n\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nCc: paulmck@linux.vnet.ibm.com\nLKML-Reference: \u003c1237898630.25315.83.camel@penberg-laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b6b3fdead251d432f32f2cfce2a893ab8a658110",
      "tree": "358885c529fd14d0cc404a454088329533db379e",
      "parents": [
        "fd659fd6275d3426d7967da1f0e3638bbbd2fedb"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Wed Dec 10 09:35:45 2008 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 31 18:07:42 2008 -0500"
      },
      "message": "filp_cachep can be static in fs/file_table.c\n\nInstead of creating the \"filp\" kmem_cache in vfs_caches_init(),\nwe can do it a litle be later in files_init(), so that filp_cachep\nis static to fs/file_table.c\n\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\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": "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"
    }
  ]
}
