)]}'
{
  "log": [
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "d246ab307d1d003c80fe279897dea22bf52b6e41",
      "tree": "1a927f0ec75cf8148bc4428a8b663843c067ad52",
      "parents": [
        "cb25797d451dc774d9dbc402a65f16a0e32199fe"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Thu Jun 18 13:12:06 2009 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Jun 22 14:34:29 2009 -0700"
      },
      "message": "ocfs2/trivial: Wrap ocfs2_sysfile_cluster_lock_key within define.\n\nActually ocfs2_sysfile_cluster_lock_key is only used if we enable\nCONFIG_DEBUG_LOCK_ALLOC. Wrap it so that we can avoid a building\nwarning.\nfs/ocfs2/sysfile.c:53: warning: ‘ocfs2_sysfile_cluster_lock_key’\ndefined but not used\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "cb25797d451dc774d9dbc402a65f16a0e32199fe",
      "tree": "95957b5ae9a72c3971bd44efadf82a5b06a6e579",
      "parents": [
        "9a7aa12f3911853a3574d47d567b81a2a5df7208"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Jun 04 15:26:50 2009 +0200"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Jun 22 14:34:26 2009 -0700"
      },
      "message": "ocfs2: Add lockdep annotations\n\nAdd lockdep support to OCFS2. The support also covers all of the cluster\nlocks except for open locks, journal locks, and local quotafile locks. These\nare special because they are acquired for a node, not for a particular process\nand lockdep cannot deal with such type of locking.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "5fa0613ea58a80f69852b242337121bd39dc798e",
      "tree": "21170694624428a8903efc6cba843fd10de93c64",
      "parents": [
        "53fc622b9e829c8e632e45ef8c14f054388759c1"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Jan 11 00:11:45 2008 +0100"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Jan 25 15:05:44 2008 -0800"
      },
      "message": "ocfs2: Silence false lockdep warnings\n\nCreate separate lockdep lock classes for system file\u0027s i_mutexes. They are\nused to guard allocations and similar things and thus rank differently\nthan i_mutex of a regular file or directory.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "be94d11704ef79030fd2e6a0c41b4a7f65f9e860",
      "tree": "10b060625c464db127210acc00e8aa80b43ce6f3",
      "parents": [
        "0bfbbf62a8b5a129ba2c689283bfece80a601aba"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Sep 11 15:22:06 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Oct 12 11:54:38 2007 -0700"
      },
      "message": "ocfs2: Provide convenience function for ino lookup\n\nA couple paths which needed to just match a parent dir + name pair to an\ninode number were a bit messy because they had to deal with\nocfs2_find_files_on_disk() which returns a larger number of values. Provide\na convenience function, ocfs2_lookup_ino_from_name() which internalizes all\nthe extra accounting.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nReviewed-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "24c19ef40474c3930597f31ae233dc06319bd881",
      "tree": "e05b1cf72435d25bf47e67b206aa376bbea33b7d",
      "parents": [
        "f9e2d82e6395cfa0802446b54b63cc412089d82c"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Sep 22 17:28:19 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Sep 24 13:50:46 2006 -0700"
      },
      "message": "ocfs2: Remove i_generation from inode lock names\n\nOCFS2 puts inode meta data in the \"lock value block\" provided by the DLM.\nTypically, i_generation is encoded in the lock name so that a deleted inode\non and a new one in the same block don\u0027t share the same lvb.\n\nUnfortunately, that scheme means that the read in ocfs2_read_locked_inode()\nis potentially thrown away as soon as the meta data lock is taken - we\ncannot encode the lock name without first knowing i_generation, which\nrequires a disk read.\n\nThis patch encodes i_generation in the inode meta data lvb, and removes the\nvalue from the inode meta data lock name. This way, the read can be covered\nby a lock, and at the same time we can distinguish between an up to date and\na stale LVB.\n\nThis will help cold-cache stat(2) performance in particular.\n\nSince this patch changes the protocol version, we take the opportunity to do\na minor re-organization of two of the LVB fields.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "80c05846f604bab6d61e9732c262420ee9f5f358",
      "tree": "3fcd80cec6e3a3a1e56abaff0a559817dbcb95a2",
      "parents": [
        "d680efe9d8fe0eb99d9dd063a4def6b362cdb40d"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Sep 08 14:43:18 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Sep 24 13:50:43 2006 -0700"
      },
      "message": "ocfs2: Add dentry tracking API\n\nReplace the dentry vote mechanism with a cluster lock which covers a set\nof dentries. This allows us to force d_delete() only on nodes which actually\ncare about an unlink.\n\nEvery node that does a -\u003elookup() gets a read only lock on the dentry, until\nan unlink during which the unlinking node, will request an exclusive lock,\nforcing the other nodes who care about that dentry to d_delete() it. The\neffect is that we retain a very lightweight -\u003ed_revalidate(), and at the\nsame time get to make large improvements to the average case performance of\nthe ocfs2 unlink and rename operations.\n\nThis patch adds the higher level API and the dentry manipulation code.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "ebdec83ba46c123fe3bfdcaacf62d0dfe8fe4187",
      "tree": "acd18f3170c1de8295375cadb0a33fa23066524e",
      "parents": [
        "b4c7f538508adcde7a0a5162faec0b2ab19b90bd"
      ],
      "author": {
        "name": "Eric Sesterhenn / snakebyte",
        "email": "snakebyte@gmx.de",
        "time": "Fri Jan 27 10:32:52 2006 +0100"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Feb 03 13:54:22 2006 -0800"
      },
      "message": "[PATCH] BUG_ON() Conversion in fs/ocfs2/\n\nthis changes if() BUG(); constructs to BUG_ON() which is\ncleaner, contains unlikely() and can better optimized away.\n\nSigned-off-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "ccd979bdbce9fba8412beb3f1de68a9d0171b12c",
      "tree": "c50ed941849ce06ccadd4ce27599b3ef9fdbe2ae",
      "parents": [
        "8df08c89c668e1bd922a053fdb5ba1fadbecbb38"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Dec 15 14:31:24 2005 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Jan 03 11:45:47 2006 -0800"
      },
      "message": "[PATCH] OCFS2: The Second Oracle Cluster Filesystem\n\nThe OCFS2 file system module.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nSigned-off-by: Kurt Hackel \u003ckurt.hackel@oracle.com\u003e\n"
    }
  ]
}
