)]}'
{
  "log": [
    {
      "commit": "03f4d804a1b4748885dc4613a4afe10089a731c8",
      "tree": "f2d7be9a0205496f14d61e6a8fe62277e653fab8",
      "parents": [
        "311b9549ed2bb0f2c2257781c3e88cb00505e80e"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Apr 15 22:16:24 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:40 2010 +0200"
      },
      "message": "jbd: Provide function to check whether transaction will issue data barrier\n\nProvide a function which returns whether a transaction with given tid\nwill send a barrier to the filesystem device. The function will be used\nby ext3 to detect whether fsync needs to send a separate barrier or not.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "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": "c7e8d4d6dceeb6fd236991f590d3fa6f97c59874",
      "tree": "79404097d7e2a94bf642ba427252dd662937f0f9",
      "parents": [
        "e1f5c67a1994312300ebc41195e6f5bea2f6c065"
      ],
      "author": {
        "name": "Christoph Egger",
        "email": "siccegge@stud.informatik.uni-erlangen.de",
        "time": "Fri Feb 05 14:13:33 2010 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:20 2010 +0100"
      },
      "message": "jbd[2]: remove references to BUFFER_DEBUG\n\nCONFIG_BUFFER_DEBUG seems to have been removed from the documentation\nsomewhere around 2.4.15 and seemingly hasn\u0027t been available even\nlonger. It is, however, still referenced at one place from the jbd\ncode (one is a copy of the other header). Time to clean it up\n\nSigned-off-by: Christoph Egger \u003csiccegge@stud.informatik.uni-erlangen.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "4fefce9abaeef0d6ec45e06a882db23a65135272",
      "tree": "c4e543fd3f42d7586b85b3a10944ae70aa362b1e",
      "parents": [
        "a4255e4c1c41f906488ae4d3fa328a66695cf200"
      ],
      "author": {
        "name": "H Hartley Sweeten",
        "email": "hartleys@visionengravers.com",
        "time": "Tue Sep 22 16:48:02 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:58 2009 -0700"
      },
      "message": "jbd.h: bitfields should be unsigned\n\nbitfields should be unsigned.\n\nThis fixes sparse noise:\n  error: dubious one-bit signed bitfield\n\nSigned-off-by: H Hartley Sweeten \u003chsweeten@visionengravers.com\u003e\nCc: Jan Kara \u003cjack@ucw.cz\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9c28cbccec66a5ca292c6659bf5a0fe0c8459fa7",
      "tree": "d43540ca30413ac8b3717e29f15ccbbe789a76c5",
      "parents": [
        "19003c18e9b41f5c3aeb81c92356f90958e1f22f"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Aug 03 19:21:00 2009 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Sep 16 17:44:10 2009 +0200"
      },
      "message": "jbd: Journal block numbers can ever be only 32-bit use unsigned int for them\n\nIt does not make sense to store block number for journal as unsigned long\nsince they can be only 32-bit (because of on-disk format limitation). So\nchange in-memory structures and variables to use unsigned int instead.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "38d726d153cfe5efe5fe22d28d36ab382dda3a5c",
      "tree": "f5403a0abb0ac7e8bbdd12403a70d4151559e778",
      "parents": [
        "67c457a8c378a006a34d92f9bd3078a80a92f250"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Apr 14 10:10:47 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Apr 14 10:10:47 2009 -0400"
      },
      "message": "jbd: use SWRITE_SYNC_PLUG when writing synchronous revoke records\n\nThe revoke records must be written using the same way as the rest of\nthe blocks during the commit process; that is, either marked as\nsynchronous writes or as asynchornous writes.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "811158b147a503fbdf9773224004ffd32002d1fe",
      "tree": "0a11dcfefe721bfc38ea9f1f4a238822dbae0dda",
      "parents": [
        "4e76c5ccd5ac9bd003467d3bb0f49b18572dd4cd",
        "b26e0ed4936b743b693a4cc1413561fa3e4eaf65"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 15:24:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 15:24:35 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (28 commits)\n  trivial: Update my email address\n  trivial: NULL noise: drivers/mtd/tests/mtd_*test.c\n  trivial: NULL noise: drivers/media/dvb/frontends/drx397xD_fw.h\n  trivial: Fix misspelling of \"Celsius\".\n  trivial: remove unused variable \u0027path\u0027 in alloc_file()\n  trivial: fix a pdlfush -\u003e pdflush typo in comment\n  trivial: jbd header comment typo fix for JBD_PARANOID_IOFAIL\n  trivial: wusb: Storage class should be before const qualifier\n  trivial: drivers/char/bsr.c: Storage class should be before const qualifier\n  trivial: h8300: Storage class should be before const qualifier\n  trivial: fix where cgroup documentation is not correctly referred to\n  trivial: Give the right path in Documentation example\n  trivial: MTD: remove EOL from MODULE_DESCRIPTION\n  trivial: Fix typo in bio_split()\u0027s documentation\n  trivial: PWM: fix of #endif comment\n  trivial: fix typos/grammar errors in Kconfig texts\n  trivial: Fix misspelling of firmware\n  trivial: cgroups: documentation typo and spelling corrections\n  trivial: Update contact info for Jochen Hein\n  trivial: fix typo \"resgister\" -\u003e \"register\"\n  ...\n"
    },
    {
      "commit": "0cbfdc8648115b2e8451ae9122311d01d2722005",
      "tree": "c7d99761fe74927a06a5c30700f1b3f4938e8758",
      "parents": [
        "39db4b8dd16b6d3b56fd3155f309e0eec8481c9a"
      ],
      "author": {
        "name": "Kazuo Moriwaka",
        "email": "moriwaka@redhat.com",
        "time": "Tue Mar 03 13:01:23 2009 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Mar 30 15:22:03 2009 +0200"
      },
      "message": "trivial: jbd header comment typo fix for JBD_PARANOID_IOFAIL\n\njbd header comment typo fix.\n\nSigned-off-by: Kazuo Moriwaka \u003cmoriwaka@redhat.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "512a004382f2c60d5c4f855476ba965adc00250c",
      "tree": "e0ecfce01aab892a415b95d6d4c8c5a8bd033a49",
      "parents": [
        "a64c8610bd3b753c6aff58f51c04cdf0ae478c18"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Mar 27 22:14:27 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Mar 27 22:14:27 2009 -0400"
      },
      "message": "ext3: Use WRITE_SYNC for commits which are caused by fsync()\n\nIf a commit is triggered by fsync(), set a flag indicating the journal\nblocks associated with the transaction should be flushed out using\nWRITE_SYNC.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "3eabdb76a03bbe8f556162738c264dbfb24cff6a",
      "tree": "a4940267505971e7738ea2231834e6633d79cbdc",
      "parents": [
        "65a67bd2644bef225ee318dde76016a4697218fa"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Thu Jan 15 13:51:01 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 15 16:39:37 2009 -0800"
      },
      "message": "jbd: fix missing kernel-doc\n\nFix jbd header file kernel-doc notation:\n\nWarning(linux-2.6.28-git13//include/linux/jbd.h:823): No description found for parameter \u0027j_average_commit_time\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f420d4dc4272fd223986762df2ad06056ddebada",
      "tree": "2ae50476e901dc5c2e5d189d44785e27234bcce9",
      "parents": [
        "ef8b646183868b2d042fa6cde0eef2a31263ff85"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "jbacik@redhat.com",
        "time": "Wed Jan 07 18:07:24 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:00 2009 -0800"
      },
      "message": "jbd: improve fsync batching\n\nThere is a flaw with the way jbd handles fsync batching.  If we fsync() a\nfile and we were not the last person to run fsync() on this fs then we\nautomatically sleep for 1 jiffie in order to wait for new writers to join\ninto the transaction before forcing the commit.  The problem with this is\nthat with really fast storage (ie a Clariion) the time it takes to commit\na transaction to disk is way faster than 1 jiffie in most cases, so\nsleeping means waiting longer with nothing to do than if we just committed\nthe transaction and kept going.  Ric Wheeler noticed this when using\nfs_mark with more than 1 thread, the throughput would plummet as he added\nmore threads.\n\nThis patch attempts to fix this problem by recording the average time in\nnanoseconds that it takes to commit a transaction to disk, and what time\nwe started the transaction.  If we run an fsync() and we have been running\nfor less time than it takes to commit the transaction to disk, we sleep\nfor the delta amount of time and then commit to disk.  We acheive\nsub-jiffie sleeping using schedule_hrtimeout.  This means that the wait\ntime is auto-tuned to the speed of the underlying disk, instead of having\nthis static timeout.  I weighted the average according to somebody\u0027s\ncomments (Andreas Dilger I think) in order to help normalize random\noutliers where we take way longer or way less time to commit than the\naverage.  I also have a min() check in there to make sure we don\u0027t sleep\nlonger than a jiffie in case our storage is super slow, this was requested\nby Andrew.\n\nI unfortunately do not have access to a Clariion, so I had to use a\nramdisk to represent a super fast array.  I tested with a SATA drive with\nbarrier\u003d1 to make sure there was no regression with local disks, I tested\nwith a 4 way multipathed Apple Xserve RAID array and of course the\nramdisk.  I ran the following command\n\nfs_mark -d /mnt/ext3-test -s 4096 -n 2000 -D 64 -t $i\n\nwhere $i was 2, 4, 8, 16 and 32.  I mkfs\u0027ed the fs each time.  Here are my\nresults\n\ntype\tthreads\t\twith patch\twithout patch\nsata\t2\t\t24.6\t\t26.3\nsata\t4\t\t49.2\t\t48.1\nsata\t8\t\t70.1\t\t67.0\nsata\t16\t\t104.0\t\t94.1\nsata\t32\t\t153.6\t\t142.7\n\nxserve\t2\t\t246.4\t\t222.0\nxserve\t4\t\t480.0\t\t440.8\nxserve\t8\t\t829.5\t\t730.8\nxserve\t16\t\t1172.7\t\t1026.9\nxserve\t32\t\t1816.3\t\t1650.5\n\nramdisk\t2\t\t2538.3\t\t1745.6\nramdisk\t4\t\t2942.3\t\t661.9\nramdisk\t8\t\t2882.5\t\t999.8\nramdisk\t16\t\t2738.7\t\t1801.9\nramdisk\t32\t\t2541.9\t\t2394.0\n\nSigned-off-by: Josef Bacik \u003cjbacik@redhat.com\u003e\nCc: Andreas Dilger \u003cadilger@sun.com\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: Ric Wheeler \u003crwheeler@redhat.com\u003e\nCc: \u003clinux-ext4@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": "4afe978530702c934dfdb11f54073136818b2119",
      "tree": "5f7fb9539b46c0b390157f55c84017e14b7f605c",
      "parents": [
        "66f50ee3cee4c9d98eea0add6f439e6e5e0ca4a5"
      ],
      "author": {
        "name": "Hidehiro Kawai",
        "email": "hidehiro.kawai.ez@hitachi.com",
        "time": "Wed Oct 22 14:15:00 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 08:55:01 2008 -0700"
      },
      "message": "jbd: fix error handling for checkpoint io\n\nWhen a checkpointing IO fails, current JBD code doesn\u0027t check the error\nand continue journaling.  This means latest metadata can be lost from both\nthe journal and filesystem.\n\nThis patch leaves the failed metadata blocks in the journal space and\naborts journaling in the case of log_do_checkpoint().  To achieve this, we\nneed to do:\n\n1. don\u0027t remove the failed buffer from the checkpoint list where in\n   the case of __try_to_free_cp_buf() because it may be released or\n   overwritten by a later transaction\n2. log_do_checkpoint() is the last chance, remove the failed buffer\n   from the checkpoint list and abort the journal\n3. when checkpointing fails, don\u0027t update the journal super block to\n   prevent the journaled contents from being cleaned.  For safety,\n   don\u0027t update j_tail and j_tail_sequence either\n4. when checkpointing fails, notify this error to the ext3 layer so\n   that ext3 don\u0027t clear the needs_recovery flag, otherwise the\n   journaled contents are ignored and cleaned in the recovery phase\n5. if the recovery fails, keep the needs_recovery flag\n6. prevent cleanup_journal_tail() from being called between\n   __journal_drop_transaction() and journal_abort() (a race issue\n   between journal_flush() and __log_wait_for_space()\n\nSigned-off-by: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: \u003clinux-ext4@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": "0e4fb5e283870757024294bc4567a7c59d936f0b",
      "tree": "162263fe9e712124d3df886ca57d8db752a3237d",
      "parents": [
        "46d01a225e694f1a4343beea44f1e85105aedd7e"
      ],
      "author": {
        "name": "Hidehiro Kawai",
        "email": "hidehiro.kawai.ez@hitachi.com",
        "time": "Sat Oct 18 20:27:57 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:37 2008 -0700"
      },
      "message": "ext3: add an option to control error handling on file data\n\nIf the journal doesn\u0027t abort when it gets an IO error in file data blocks,\nthe file data corruption will spread silently.  Because most of\napplications and commands do buffered writes without fsync(), they don\u0027t\nnotice the IO error.  It\u0027s scary for mission critical systems.  On the\nother hand, if the journal aborts whenever it gets an IO error in file\ndata blocks, the system will easily become inoperable.  So this patch\nintroduces a filesystem option to determine whether it aborts the journal\nor just call printk() when it gets an IO error in file data.\n\nIf you mount a ext3 fs with data_err\u003dabort option, it aborts on file data\nwrite error.  If you mount it with data_err\u003dignore, it doesn\u0027t abort, just\ncall printk().  data_err\u003dignore is the default.\n\nSigned-off-by: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nCc: Jan Kara \u003cjack@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d5c003b4d1690e666dbab02bc8e705947baa848c",
      "tree": "868edee78b635698429173a95ac4215b932f0155",
      "parents": [
        "8e9c7716c138fa82d919bfe1115ec8c938e90918"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Oct 15 22:01:24 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:30 2008 -0700"
      },
      "message": "include: replace __FUNCTION__ with __func__\n\n__FUNCTION__ is gcc-specific, use __func__\n\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": "5a6483feb0c5193519625d0ea8c4254364d423cc",
      "tree": "2235220e522882ac5872937fa43d3d1b188c1f4e",
      "parents": [
        "cb688371e27880d86c42323826846d1cd7caad8f"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Tue Feb 26 10:00:17 2008 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "willy@linux.intel.com",
        "time": "Fri Apr 18 22:16:54 2008 -0400"
      },
      "message": "include: Remove unnecessary inclusions of asm/semaphore.h\n\nNone of these files use any of the functionality promised by\nasm/semaphore.h.  It\u0027s possible that they (or some user of them) rely\non it dragging in some unrelated header file, but I can\u0027t build all\nthese files, so we\u0027ll have to fix any build failures as they come up.\n\nSigned-off-by: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\n"
    },
    {
      "commit": "a6b91919e0881a0d0a4ae5211d5c879a8c7ca92b",
      "tree": "148aabc0a92a297f9220174435e822f30c951215",
      "parents": [
        "5366dc9fd1cb74023790a8edf29e4fe42c886dcf"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Wed Mar 19 17:01:00 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 19 18:53:36 2008 -0700"
      },
      "message": "fs: fix kernel-doc notation warnings\n\nFix kernel-doc notation warnings in fs/.\n\nWarning(mmotm-2008-0314-1449//fs/super.c:560): missing initial short description on line:\n *\tmark_files_ro\nWarning(mmotm-2008-0314-1449//fs/locks.c:1277): missing initial short description on line:\n *\tlease_get_mtime\nWarning(mmotm-2008-0314-1449//fs/locks.c:1277): missing initial short description on line:\n *\tlease_get_mtime\nWarning(mmotm-2008-0314-1449//fs/namei.c:1368): missing initial short description on line:\n * lookup_one_len:  filesystem helper to lookup single pathname component\nWarning(mmotm-2008-0314-1449//fs/buffer.c:3221): missing initial short description on line:\n * bh_uptodate_or_lock: Test whether the buffer is uptodate\nWarning(mmotm-2008-0314-1449//fs/buffer.c:3240): missing initial short description on line:\n * bh_submit_read: Submit a locked buffer for reading\nWarning(mmotm-2008-0314-1449//fs/fs-writeback.c:30): missing initial short description on line:\n * writeback_acquire: attempt to get exclusive writeback access to a device\nWarning(mmotm-2008-0314-1449//fs/fs-writeback.c:47): missing initial short description on line:\n * writeback_in_progress: determine whether there is writeback in progress\nWarning(mmotm-2008-0314-1449//fs/fs-writeback.c:58): missing initial short description on line:\n * writeback_release: relinquish exclusive writeback access against a device.\nWarning(mmotm-2008-0314-1449//include/linux/jbd.h:351): contents before sections\nWarning(mmotm-2008-0314-1449//include/linux/jbd.h:561): contents before sections\nWarning(mmotm-2008-0314-1449//fs/jbd/transaction.c:1935): missing initial short description on line:\n * void journal_invalidatepage()\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d8fd66aaea7fe3e4f1ea044a563f129e3b9f05ff",
      "tree": "ab50efee030dc2caff1fd1ae1f94fcb13f5bb635",
      "parents": [
        "e1d7ae24a23f1f366d6c5408f1ad11db69a748c6"
      ],
      "author": {
        "name": "Olaf Hering",
        "email": "olaf@aepfle.de",
        "time": "Wed Feb 06 01:40:19 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:21 2008 -0800"
      },
      "message": "jbd.h: hide kernel only code\n\nMove a few kernel-only things into __KERNEL__.\n\nSigned-off-by: Olaf Hering \u003colaf@aepfle.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "533083836fd55ca67ce35ab3d914b74ec1a5b9a8",
      "tree": "5dffe25ff6d049be33ffe6b3d0135cae45eb2a72",
      "parents": [
        "e86e14385d8473a71809ff5c2be4b06867af4b5e"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Wed Feb 06 01:40:12 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:20 2008 -0800"
      },
      "message": "make jbd/journal.c:__journal_abort_hard() static\n\n__journal_abort_hard() can now become static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@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": "d4beaf4ab5f89496f2bcf67db62ad95d99bfeff6",
      "tree": "ae6d005199017e9a0ade169fd69cb73d6c0ac88f",
      "parents": [
        "369b8f5a70402d9fe77006cd0044c8a3fcd08430"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Dec 04 23:45:27 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Dec 05 09:21:20 2007 -0800"
      },
      "message": "jbd: Fix assertion failure in fs/jbd/checkpoint.c\n\nBefore we start committing a transaction, we call\n__journal_clean_checkpoint_list() to cleanup transaction\u0027s written-back\nbuffers.\n\nIf this call happens to remove all of them (and there were already some\nbuffers), __journal_remove_checkpoint() will decide to free the transaction\nbecause it isn\u0027t (yet) a committing transaction and soon we fail some\nassertion - the transaction really isn\u0027t ready to be freed :).\n\nWe change the check in __journal_remove_checkpoint() to free only a\ntransaction in T_FINISHED state.  The locking there is subtle though (as\neverywhere in JBD ;().  We use j_list_lock to protect the check and a\nsubsequent call to __journal_drop_transaction() and do the same in the end\nof journal_commit_transaction() which is the only place where a transaction\ncan get to T_FINISHED state.\n\nProbably I\u0027m too paranoid here and such locking is not really necessary -\ncheckpoint lists are processed only from log_do_checkpoint() where a\ntransaction must be already committed to be processed or from\n__journal_clean_checkpoint_list() where kjournald itself calls it and thus\ntransaction cannot change state either.  Better be safe if something\nchanges in future...\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: \u003clinux-ext4@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": "c2a9159cdd8b334a0dfaf69d8b07cd57b5272baa",
      "tree": "5a1d45afd49cd11d488173f6351bcfe432c2139a",
      "parents": [
        "1c099244485ff8bb93c2cd41304a445adc7f54e6"
      ],
      "author": {
        "name": "Jose R. Santos",
        "email": "jrs@us.ibm.com",
        "time": "Thu Oct 18 23:39:22 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:35 2007 -0700"
      },
      "message": "jbd: config_jbd_debug cannot create /proc entry\n\nThe jbd-debug file used to be located in /proc/sys/fs/jbd-debug, but\ncreate_proc_entry() does not do lookups on file names that are more that\none directory deep.  This causes the entry creation to fail and hence, no\nproc file is created.\n\nInstead of fixing this on procfs might as well move the jbd2-debug file to\ndebugfs which would be the preferred location for this kind of tunable.\nThe new location is now /sys/kernel/debug/jbd/jbd-debug.\n\n[akpm@linux-foundation.org: zillions of cleanups]\nSigned-off-by: Jose R. Santos \u003cjrs@us.ibm.com\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: \u003clinux-ext4@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": "1c099244485ff8bb93c2cd41304a445adc7f54e6",
      "tree": "f507d266b76162bdee29ce1f0d32296fb0ca46ab",
      "parents": [
        "8c3478a523a48470eb11a23f01249250684677d9"
      ],
      "author": {
        "name": "Chris Snook",
        "email": "csnook@redhat.com",
        "time": "Thu Oct 18 23:39:21 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:34 2007 -0700"
      },
      "message": "jbd: remove printk() from J_ASSERT macros\n\nRemove printk from J_ASSERT to preserve registers during BUG.\n\nSigned-off-by: Chris Snook \u003ccsnook@redhat.com\u003e\nCc: \"Stephen C. Tweedie\" \u003csct@redhat.com\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a5005da204289ce01ca37be59e902100ef247a4d",
      "tree": "4f754d5936a3b8b2d462a343bdd2342967170ac8",
      "parents": [
        "af1e76d6b3f37cb89d9192eaf83588adaf4728eb"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Tue Oct 16 18:38:25 2007 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 17 18:49:57 2007 -0400"
      },
      "message": "JBD: replace jbd_kmalloc with kmalloc directly\n\nThis patch cleans up jbd_kmalloc and replace it with kmalloc directly\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\n"
    },
    {
      "commit": "c089d490dfbf53bc0893dc9ef57cf3ee6448314d",
      "tree": "8faffea3bdcfdd48ce175ac92d5088ced4f1c969",
      "parents": [
        "d85714d81cc0408daddb68c10f7fd69eafe7c213"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Tue Oct 16 18:38:25 2007 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 17 18:49:56 2007 -0400"
      },
      "message": "JBD: JBD slab allocation cleanups\n\nJBD: Replace slab allocations with page allocations\n\nJBD allocate memory for committed_data and frozen_data from slab. However\nJBD should not pass slab pages down to the block layer. Use page allocator pages instead. This will also prepare JBD for the large blocksize patchset.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\n"
    },
    {
      "commit": "e6716b87d5c9edf19c711212785cd30c6ec21868",
      "tree": "0059d64ffe0828252b3639ead94a47122eb9f135",
      "parents": [
        "fd39c86b3d8910fbafe41207135c1d72bc895614"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Mon Oct 15 17:30:19 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 15 17:56:36 2007 -0700"
      },
      "message": "docbook: fix filesystems content\n\nFix filesystems docbook warnings.\n\nWarning(linux-2.6.23-git8//fs/debugfs/file.c:241): No description found for parameter \u0027name\u0027\nWarning(linux-2.6.23-git8//fs/debugfs/file.c:241): No description found for parameter \u0027mode\u0027\nWarning(linux-2.6.23-git8//fs/debugfs/file.c:241): No description found for parameter \u0027parent\u0027\nWarning(linux-2.6.23-git8//fs/debugfs/file.c:241): No description found for parameter \u0027value\u0027\nWarning(linux-2.6.23-git8//include/linux/jbd.h:404): No description found for parameter \u0027h_lockdep_map\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "34a3d1e83708702ac6cb872215e68cd07dae298b",
      "tree": "bed36f9a4b64a98676776ccff820b7897b1dcb74",
      "parents": [
        "523b44cff279c42c79f7bda709e2fefc30f20a59"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Oct 11 22:11:12 2007 +0200"
      },
      "committer": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Oct 11 22:11:12 2007 +0200"
      },
      "message": "lockdep: annotate journal_start()\n\nOn Fri, 2007-07-13 at 02:05 -0700, Andrew Morton wrote:\n\n\u003e Except lockdep doesn\u0027t know about journal_start(), which has ranking\n\u003e requirements similar to a semaphore.  \n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d394e122bc1adba0f3eb1ebec1cedb8a8c524741",
      "tree": "3dec0f71b7c2b5f910013ccbeaadd9427737dc4b",
      "parents": [
        "8487f2e4067839ad3d009c240d51b682264320ae"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Wed Dec 06 20:38:26 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:40 2006 -0800"
      },
      "message": "[PATCH] make fs/jbd/transaction.c:__journal_temp_unlink_buffer() static\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "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": "f71b2f10f56802075d67c5710cd9f1816382d720",
      "tree": "a0a85e3827d70fc0b2b9bfe771c9e35c32c83559",
      "parents": [
        "4efd587bf9f9a97608b1fcecc78a4a046c37e9b1"
      ],
      "author": {
        "name": "Dave Kleikamp",
        "email": "shaggy@austin.ibm.com",
        "time": "Fri Sep 29 01:58:39 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:03 2006 -0700"
      },
      "message": "[PATCH] JBD: Make journal_brelse_array() static\n\nIt\u0027s always good to make symbols static when we can, and this also eliminates\nthe need to rename the function in jbd2\n\nSuggested by Eric Sandeen.\n\nSigned-off-by: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nCc: Eric Sandeen \u003csandeen@sandeen.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e9ad5620bfb901df8a7a2603c88689ededeecaf1",
      "tree": "82a2b22e1b7401b98fc2f201b8df2db05764332a",
      "parents": [
        "7543fc7b3abfee8c6cd6349ebd5e5fde02fac984"
      ],
      "author": {
        "name": "Dave Kleikamp",
        "email": "shaggy@austin.ibm.com",
        "time": "Wed Sep 27 01:49:35 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:10 2006 -0700"
      },
      "message": "[PATCH] ext3: More whitespace cleanups\n\nMore white space cleanups in preparation of cloning ext4 from ext3.\nRemoving spaces that precede a tab.\n\nSigned-off-by: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "37ed322290eb6d5cf2ab33915793ed4219eae1d6",
      "tree": "bd6e122b7af0b4c6a71bca21972cea3d124262b4",
      "parents": [
        "eee194e76c681dbdbf5024b889fda1181b66ef57"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "esandeen@redhat.com",
        "time": "Wed Sep 27 01:49:31 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:09 2006 -0700"
      },
      "message": "[PATCH] JBD: 16T fixes\n\nThese are a few places I\u0027ve found in jbd that look like they may not be\n16T-safe, or consistent with the use of unsigned longs for block\ncontainers.  Problems here would be somewhat hard to hit, would require\njournal blocks past the 8T boundary, which would not be terribly common.\nStill, should fix.\n\n(some of these have come from the ext4 work on jbd as well).\n\nI think there\u0027s one more possibility that the wrap() function may not be\nsafe IF your last block in the journal butts right up against the 232 block\nboundary, but that seems like a VERY remote possibility, and I\u0027m not\nworrying about it at this point.\n\nSigned-off-by: Eric Sandeen \u003cesandeen@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ae6ddcc5f24d6b06ae9231dc128904750a4155e0",
      "tree": "93c6e20b513f39b616af101dabe9b756f7300d0d",
      "parents": [
        "e7ab8d65055e9b9dfc131d0467cfc5a8368d7ee4"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Wed Sep 27 01:49:27 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:09 2006 -0700"
      },
      "message": "[PATCH] ext3 and jbd cleanup: remove whitespace\n\nRemove whitespace from ext3 and jbd, before we clone ext4.\n\nSigned-off-by: Mingming Cao\u003ccmm@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ea817398e68dfa25612229fda7fc74580cf915fb",
      "tree": "f511458f277c30b74e26bed69fe9d36dd2fe857c",
      "parents": [
        "4c4d50f7b39cc58f1064b93a61ad617451ae41df"
      ],
      "author": {
        "name": "Badari Pulavarty",
        "email": "pbadari@us.ibm.com",
        "time": "Sun Aug 27 01:23:52 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Aug 27 11:01:32 2006 -0700"
      },
      "message": "[PATCH] Manage jbd allocations from its own slabs\n\nJBD currently allocates commit and frozen buffers from slabs.  With\nCONFIG_SLAB_DEBUG, its possible for an allocation to cross the page\nboundary causing IO problems.\n\nhttps://bugzilla.redhat.com/bugzilla/show_bug.cgi?id\u003d200127\n\nSo, instead of allocating these from regular slabs - manage allocation from\nits own slabs and disable slab debug for these slabs.\n\n[akpm@osdl.org: cleanups]\nSigned-off-by: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "78ce89c92bc6eaf5933b5664bff64253a7103bd7",
      "tree": "edaadf283127c1a74bfe3aa7b165c1cf45d14347",
      "parents": [
        "cdaad343b561cdeb38b0578bb038eb5e87ed5551"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Jun 23 02:06:05 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:43:08 2006 -0700"
      },
      "message": "[PATCH] JBD: split checkpoint lists\n\nSplit the checkpoint list of the transaction into two lists.  In the first\nlist we keep the buffers that need to be submitted for IO.  In the second\nlist are kept buffers that were already submitted and we just have to wait\nfor the IO to complete.  This should simplify a handling of checkpoint\nlists a bit and can eventually be also a performance gain.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: \"Stephen C. Tweedie\" \u003csct@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2ff28e22bdb8727fbc7d7889807bc5a73aae56c5",
      "tree": "f7418aa963d729bf9fe8bd44d6c9b6e424a6c6bf",
      "parents": [
        "3978d7179d3849848df8a37dd0a5acc20bcb8750"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sun Mar 26 01:37:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:56:55 2006 -0800"
      },
      "message": "[PATCH] Make address_space_operations-\u003einvalidatepage return void\n\nThe return value of this function is never used, so let\u0027s be honest and\ndeclare it as void.\n\nSome places where invalidatepage returned 0, I have inserted comments\nsuggesting a BUG_ON.\n\n[akpm@osdl.org: JBD BUG fix]\n[akpm@osdl.org: rework for git-nfs]\n[akpm@osdl.org: don\u0027t go BUG in block_invalidate_page()]\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nAcked-by: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e3df18983ea090a2e00dd5c2c6167bb431a0e0a2",
      "tree": "99f7944da7c8c85eed6738c1ef9f357f7dcae928",
      "parents": [
        "1d9b7d97d6661edb44ce08f17e47c66d4ac20e34"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sat Mar 25 03:06:53 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:50 2006 -0800"
      },
      "message": "[PATCH] jbd: embed j_commit_timer in journal struct\n\nThe kjournald timer is currently on the kernel thread\u0027s stack and the journal\nstructure points at it.  Save a pointer hop by moving the timer into the\njournal structure.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2c68ee754c40099c59828e59618a54726f76126a",
      "tree": "b656a0caa9b31749b5b6f9a3f7a1f3ffc482552c",
      "parents": [
        "f24075bd0c1cd1cc2cf86d394f960aa0401de573"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Thu Mar 23 03:00:35 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:12 2006 -0800"
      },
      "message": "[PATCH] sem2mutex: jbd, j_checkpoint_mutex\n\nSemaphore to mutex conversion.\n\nThe conversion was generated via scripts, and the result was validated\nautomatically via a script as well.\n\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7c8903f6373f9abecf060bad53ca36bc4ac037f2",
      "tree": "473644b1f2999e3e516cd4f55a3535d9bb29595d",
      "parents": [
        "be5efffb762fa4a7b9a7a45ebf34b13e3bf5a2d8"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Feb 14 13:53:03 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 14 16:09:34 2006 -0800"
      },
      "message": "[PATCH] jbd: revert checkpoint list changes\n\nThis patch reverts commit f93ea411b73594f7d144855fd34278bcf34a9afc:\n  [PATCH] jbd: split checkpoint lists\n\nThis broke journal_flush() for OCFS2, which is its method of being sure\nthat metadata is sent to disk for another node.\n\nAnd two related commits 8d3c7fce2d20ecc3264c8d8c91ae3beacdeaed1b and\n43c3e6f5abdf6acac9b90c86bf03f995bf7d3d92 with the subjects:\n  [PATCH] jbd: log_do_checkpoint fix\n  [PATCH] jbd: remove_transaction fix\n\nThese seem to be incremental bugfixes on the original patch and as such are\nno longer needed.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: Jan Kara \u003cjack@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1b8623545b42c03eb92e51b28c84acf4b8ba00a3",
      "tree": "071045ad9c60d2697292c523c77322a70a248fb9",
      "parents": [
        "92118c739df879497b8cc5a2eb3a9dc255f01b20"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 15 01:07:03 2005 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Feb 07 20:56:35 2006 -0500"
      },
      "message": "[PATCH] remove bogus asm/bug.h includes.\n\nA bunch of asm/bug.h includes are both not needed (since it will get\npulled anyway) and bogus (since they are done too early).  Removed.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "fe1dcbc4f311c2e6c23b33c0fa8572461618ab3e",
      "tree": "189e935ff275bba20629e46e2832bd523acf6cff",
      "parents": [
        "bc5e483da61eb5ab8d24b4a919fb512e5886d02c"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sat Feb 04 23:27:54 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Feb 05 11:06:53 2006 -0800"
      },
      "message": "[PATCH] jbd: fix transaction batching\n\nBen points out that:\n\n  When writing files out using O_SYNC, jbd\u0027s 1 jiffy delay results in a\n  significant drop in throughput as the disk sits idle.  The patch below\n  results in a 4-5x performance improvement (from 6.5MB/s to ~24-30MB/s on my\n  IDE test box) when writing out files using O_SYNC.\n\nSo optimise the batching code by omitting it entirely if the process which is\ndoing a sync write is the same as the one which did the most recent sync\nwrite.  If that\u0027s true, we\u0027re unlikely to get any other processes joining the\ntransaction.\n\n(Has been in -mm for ages - it took me a long time to get on to performance\ntesting it)\n\nNumbers, on write-cache-disabled IDE:\n\n/usr/bin/time -p synctest -n 10 -uf -t 1 -p 1 dir-name\n\nUnpatched:\n\t40 seconds\nPatched:\n\t35 seconds\nBatching disabled:\n\t35 seconds\n\nThis is the problematic single-process-doing-fsync case.  With multiple\nfsyncing processes the numbers are AFACIT unaltered by the patch.\n\nAside: performance testing and instrumentation shows that the transaction\nbatching almost doesn\u0027t help (testing with synctest -n 1 -uf -t 100 -p 10\ndir-name on non-writeback-caching IDE).  This is because by the time one\nprocess is running a synchronous commit, a bunch of other processes already\nhave a transaction handle open, so they\u0027re all going to batch into the same\ntransaction anyway.\n\nThe batching seems to offer maybe 5-10% speedup with this workload, but I\u0027m\npretty sure it was more important than that when it was first developed 4-odd\nyears ago...\n\nCc: \"Stephen C. Tweedie\" \u003csct@redhat.com\u003e\nCc: Benjamin LaHaise \u003cbcrl@kvack.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f93ea411b73594f7d144855fd34278bcf34a9afc",
      "tree": "50419ba9250be6f923470b4eff73370512c00267",
      "parents": [
        "6fe2e70bbed3995d930f39452fb6ce3be7dc47dc"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Jan 06 00:19:55 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:59 2006 -0800"
      },
      "message": "[PATCH] jbd: split checkpoint lists\n\nSplit the checkpoint list of the transaction into two lists.  In the first\nlist we keep the buffers that need to be submitted for IO.  In the second\nlist are kept buffers that were already submitted and we just have to wait\nfor the IO to complete.  This should simplify a handling of checkpoint\nlists a bit and can eventually be also a performance gain.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1778d55edb62753a92b979fa57072c2e1ff3d062",
      "tree": "ff9ddfae066d2fd97625c3c9c554aa42528507c9",
      "parents": [
        "ac3461ad632e86e7debd871776683c05ef3ba4c6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 22 21:58:37 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 22 21:58:37 2005 -0800"
      },
      "message": "compat-ioctl.c: fix compile with no CONFIG_JBD\n\nThe ext3 compat-ioctl translation wants to translate data structures\nthat \u003clinux/jbd.h\u003e only declared when CONFIG_JBD was enabled.\n\nSo make \u003clinux/jbd.h\u003e play nicely even when we don\u0027t actually end up\nusing it.\n\nAcked-by: Andrew Morton \u003cakpm@osdl.org\u003e\nAcked-by: Jeffrey Hundstad \u003cjeffrey.hundstad@mnsu.edu\u003e\nAcked-by: Zan Lynx \u003czlynx@acm.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6c8bec6d5f24b01c53b792b06a645e78d482020d",
      "tree": "d394d7d77087c02f84f84a27d3e9933d9c096bed",
      "parents": [
        "2500e7abc8f606d87b2590f205dac080640b6b04"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Mon Nov 07 01:01:04 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:55 2005 -0800"
      },
      "message": "[PATCH] jbd doc: fix some kernel-doc warnings\n\nAdd structure fields kernel-doc for 2 fields in struct journal_s.\n\nWarning(/var/linsrc/linux-2614-rc4//include/linux/jbd.h:808): No description found for parameter \u0027j_wbuf\u0027\nWarning(/var/linsrc/linux-2614-rc4//include/linux/jbd.h:808): No description found for parameter \u0027j_wbufsize\u0027\n\nConvert fs/jbd/recovery.c non-static functions to kernel-doc format.\n\nfs/jbd/recovery.c doesn\u0027t export any symbols, so it should use\n!I instead of !E to eliminate this warning message:\n\nWarning(/var/linsrc/linux-2614-rc4//fs/jbd/recovery.c): no structured comments found\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "27496a8c67bef4d789d8e3c8317ca35813a507ae",
      "tree": "fe99a34fe5a800e41af61853e7444ddddf45d014",
      "parents": [
        "7d877f3bda870ab5f001bd92528654471d5966b3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 21 03:20:48 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 28 08:16:47 2005 -0700"
      },
      "message": "[PATCH] gfp_t: fs/*\n\n - -\u003ereleasepage() annotated (s/int/gfp_t), instances updated\n - missing gfp_t in fs/* added\n - fixed misannotation from the original sweep caught by bitwise checks:\n   XFS used __nocast both for gfp_t and for flags used by XFS allocator.\n   The latter left with unsigned int __nocast; we might want to add a\n   different type for those but for now let\u0027s leave them alone.  That,\n   BTW, is a case when __nocast use had been actively confusing - it had\n   been used in the same code for two different and similar types, with\n   no way to catch misuses.  Switch of gfp_t to bitwise had caught that\n   immediately...\n\nOne tricky bit is left alone to be dealt with later - mapping-\u003eflags is\na mix of gfp_t and error indications.  Left alone for now.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dd0fc66fb33cd610bc1a5db8a5e232d34879b4d7",
      "tree": "51f96a9db96293b352e358f66032e1f4ff79fafb",
      "parents": [
        "3b0e77bd144203a507eb191f7117d2c5004ea1de"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Fri Oct 07 07:46:04 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 08 15:00:57 2005 -0700"
      },
      "message": "[PATCH] gfp flags annotations - part 1\n\n - added typedef unsigned int __nocast gfp_t;\n\n - replaced __nocast uses for gfp flags with gfp_t - it gives exactly\n   the same warnings as far as sparse is concerned, doesn\u0027t change\n   generated code (from gcc point of view we replaced unsigned int with\n   typedef) and documents what\u0027s going on far better.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fb1c8f93d869b34cacb8b8932e2b83d96a19d720",
      "tree": "a006d078aa02e421a7dc4793c335308204859d36",
      "parents": [
        "4327edf6b8a7ac7dce144313947995538842d8fd"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Sep 10 00:25:56 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:21 2005 -0700"
      },
      "message": "[PATCH] spinlock consolidation\n\nThis patch (written by me and also containing many suggestions of Arjan van\nde Ven) does a major cleanup of the spinlock code.  It does the following\nthings:\n\n - consolidates and enhances the spinlock/rwlock debugging code\n\n - simplifies the asm/spinlock.h files\n\n - encapsulates the raw spinlock type and moves generic spinlock\n   features (such as -\u003ebreak_lock) into the generic code.\n\n - cleans up the spinlock code hierarchy to get rid of the spaghetti.\n\nMost notably there\u0027s now only a single variant of the debugging code,\nlocated in lib/spinlock_debug.c.  (previously we had one SMP debugging\nvariant per architecture, plus a separate generic one for UP builds)\n\nAlso, i\u0027ve enhanced the rwlock debugging facility, it will now track\nwrite-owners.  There is new spinlock-owner/CPU-tracking on SMP builds too.\nAll locks have lockup detection now, which will work for both soft and hard\nspin/rwlock lockups.\n\nThe arch-level include files now only contain the minimally necessary\nsubset of the spinlock code - all the rest that can be generalized now\nlives in the generic headers:\n\n include/asm-i386/spinlock_types.h       |   16\n include/asm-x86_64/spinlock_types.h     |   16\n\nI have also split up the various spinlock variants into separate files,\nmaking it easier to see which does what. The new layout is:\n\n   SMP                         |  UP\n   ----------------------------|-----------------------------------\n   asm/spinlock_types_smp.h    |  linux/spinlock_types_up.h\n   linux/spinlock_types.h      |  linux/spinlock_types.h\n   asm/spinlock_smp.h          |  linux/spinlock_up.h\n   linux/spinlock_api_smp.h    |  linux/spinlock_api_up.h\n   linux/spinlock.h            |  linux/spinlock.h\n\n/*\n * here\u0027s the role of the various spinlock/rwlock related include files:\n *\n * on SMP builds:\n *\n *  asm/spinlock_types.h: contains the raw_spinlock_t/raw_rwlock_t and the\n *                        initializers\n *\n *  linux/spinlock_types.h:\n *                        defines the generic type and initializers\n *\n *  asm/spinlock.h:       contains the __raw_spin_*()/etc. lowlevel\n *                        implementations, mostly inline assembly code\n *\n *   (also included on UP-debug builds:)\n *\n *  linux/spinlock_api_smp.h:\n *                        contains the prototypes for the _spin_*() APIs.\n *\n *  linux/spinlock.h:     builds the final spin_*() APIs.\n *\n * on UP builds:\n *\n *  linux/spinlock_type_up.h:\n *                        contains the generic, simplified UP spinlock type.\n *                        (which is an empty structure on non-debug builds)\n *\n *  linux/spinlock_types.h:\n *                        defines the generic type and initializers\n *\n *  linux/spinlock_up.h:\n *                        contains the __raw_spin_*()/etc. version of UP\n *                        builds. (which are NOPs on non-debug, non-preempt\n *                        builds)\n *\n *   (included on UP-non-debug builds:)\n *\n *  linux/spinlock_api_up.h:\n *                        builds the _spin_*() APIs.\n *\n *  linux/spinlock.h:     builds the final spin_*() APIs.\n */\n\nAll SMP and UP architectures are converted by this patch.\n\narm, i386, ia64, ppc, ppc64, s390/s390x, x64 was build-tested via\ncrosscompilers.  m32r, mips, sh, sparc, have not been tested yet, but should\nbe mostly fine.\n\nFrom: Grant Grundler \u003cgrundler@parisc-linux.org\u003e\n\n  Booted and lightly tested on a500-44 (64-bit, SMP kernel, dual CPU).\n  Builds 32-bit SMP kernel (not booted or tested).  I did not try to build\n  non-SMP kernels.  That should be trivial to fix up later if necessary.\n\n  I converted bit ops atomic_hash lock to raw_spinlock_t.  Doing so avoids\n  some ugly nesting of linux/*.h and asm/*.h files.  Those particular locks\n  are well tested and contained entirely inside arch specific code.  I do NOT\n  expect any new issues to arise with them.\n\n If someone does ever need to use debug/metrics with them, then they will\n  need to unravel this hairball between spinlocks, atomic ops, and bit ops\n  that exist only because parisc has exactly one atomic instruction: LDCW\n  (load and clear word).\n\nFrom: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\n\n   ia64 fix\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjanv@infradead.org\u003e\nSigned-off-by: Grant Grundler \u003cgrundler@parisc-linux.org\u003e\nCc: Matthew Wilcox \u003cwilly@debian.org\u003e\nSigned-off-by: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nSigned-off-by: Mikael Pettersson \u003cmikpe@csd.uu.se\u003e\nSigned-off-by: Benoit Boissinot \u003cbenoit.boissinot@ens-lyon.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "022a4a7bbdefdedc2706a13c81c832d8c3173c6d",
      "tree": "e7bf4f08f02c35b39769a5c2aeeea020c055de99",
      "parents": [
        "202e5979af4d91c7ca05892641131dee22653259"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue Sep 06 15:16:41 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:19 2005 -0700"
      },
      "message": "[PATCH] fs/jbd/: cleanups\n\nThis patch contains the following cleanups:\n- make needlessly global functions static\n- journal.c: remove the unused global function __journal_internal_check\n             and move the check to journal_init\n- remove the following write-only global variable:\n  - journal.c: current_journal\n- remove the following unneeded EXPORT_SYMBOL:\n  - journal.c: journal_recover\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nAcked-by: Andreas Dilger \u003cadilger@clusterfs.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
