)]}'
{
  "log": [
    {
      "commit": "e05b6b524bd5c5c2bae1b64a7cbe08d46d57a6fe",
      "tree": "e5b5a7dbc57ccf8f6e425b7cb77249fdc534baca",
      "parents": [
        "fa1ff1e02fee908dfdc3f92902d39acc38041e4c"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Mon Apr 28 02:16:15 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:45 2008 -0700"
      },
      "message": "ext3: replace remaining __FUNCTION__ occurrences\n\n__FUNCTION__ is gcc-specific, use __func__\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.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": "0b23076988b44b2c165e060248345de6f2337387",
      "tree": "f707484c03bf148eac8c51b92b3c1eaa44996792",
      "parents": [
        "5b9a499d77e9dd39c9e6611ea10c56a31604f274"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Apr 28 02:16:12 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:44 2008 -0700"
      },
      "message": "ext3: fix update of mtime and ctime on rename\n\nMake ext3 update mtime and ctime of the directory into which we move file even\nif the directory entry already exists.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\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": "33575f8ffe99bf9e381161ccd76b39079c0aa92f",
      "tree": "d5a60b89243bf1964a2feaf80e0ea576b3a14762",
      "parents": [
        "e0e369a7dd39894465b6501a9492173e8104a19b"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Mon Apr 28 02:16:08 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:44 2008 -0700"
      },
      "message": "ext3: check ext3_journal_get_write_access() errors\n\nCheck ext3_journal_get_write_access() errors.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.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": "473043dcee1874aab99f66b0362b344618eb3790",
      "tree": "bc329501ec6cd0d31dfe11d4587347093dca4ccf",
      "parents": [
        "52fcf7032935b33158e3998ed399cac97447ab8d"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Feb 07 00:15:36 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:27 2008 -0800"
      },
      "message": "iget: stop EXT3 from using iget() and read_inode()\n\nStop the EXT3 filesystem from using iget() and read_inode().  Replace\next3_read_inode() with ext3_iget(), and call that instead of iget().\next3_iget() then uses iget_locked() directly and returns a proper error code\ninstead of an inode in the event of an error.\n\next3_fill_super() returns any error incurred when getting the root inode\ninstead of EINVAL.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e1d7ae24a23f1f366d6c5408f1ad11db69a748c6",
      "tree": "07da7753933ca5fac3c9af4eddb8973eff9675cd",
      "parents": [
        "859cb93679929edb88642414bf37789ea263bc47"
      ],
      "author": {
        "name": "Mariusz Kozlowski",
        "email": "m.kozlowski@tuxland.pl",
        "time": "Wed Feb 06 01:40:18 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:21 2008 -0800"
      },
      "message": "ext3: remove unused code from ext3_find_entry()\n\nSigned-off-by: Mariusz Kozlowski \u003cm.kozlowski@tuxland.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7c06a8dc64a2d1884bd19b4c6353d9267ae4e3e1",
      "tree": "67afad25e4de3139d3b993e22327096c3e015013",
      "parents": [
        "dbaf4c024a657175f43b5091c4fab8b9f0e17078"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Nov 14 17:00:19 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Nov 14 18:45:43 2007 -0800"
      },
      "message": "Fix 64KB blocksize in ext3 directories\n\nWith 64KB blocksize, a directory entry can have size 64KB which does not\nfit into 16 bits we have for entry lenght.  So we store 0xffff instead and\nconvert value when read from / written to disk.  The patch also converts\nsome places to use ext3_next_entry() when we are changing them anyway.\n\n[akpm@linux-foundation.org: coding-style cleanups]\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": "059590f495f9c6e89cb018b9e612c3eec2336109",
      "tree": "89f86070d05fc3c153a0f6a506ac315ef87cba3a",
      "parents": [
        "a9c62a18a291499d15a370d08771e781fbaf91e6"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Tue Oct 16 23:30:23 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:43:01 2007 -0700"
      },
      "message": "ext3: remove #ifdef CONFIG_EXT3_INDEX\n\nCONFIG_EXT3_INDEX is not an exposed config option in the kernel, and it is\nunconditionally defined in ext3_fs.h.  tune2fs is already able to turn off\ndir indexing, so at this point it\u0027s just cluttering up the code.  Remove\nit.\n\nSigned-off-by: Eric Sandeen \u003csandeen@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": "ef2b02d3e617cb0400eedf2668f86215e1b0e6af",
      "tree": "d6d65ea9ad201645dab91383dc6e0928c2069024",
      "parents": [
        "e42601973b1bce1d2987f82159c1ebeaccc6b310"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Tue Sep 18 22:46:42 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Sep 19 11:24:18 2007 -0700"
      },
      "message": "ext34: ensure do_split leaves enough free space in both blocks\n\nThe do_split() function for htree dir blocks is intended to split a leaf\nblock to make room for a new entry.  It sorts the entries in the original\nblock by hash value, then moves the last half of the entries to the new\nblock - without accounting for how much space this actually moves.  (IOW,\nit moves half of the entry *count* not half of the entry *space*).  If by\nchance we have both large \u0026 small entries, and we move only the smallest\nentries, and we have a large new entry to insert, we may not have created\nenough space for it.\n\nThe patch below stores each record size when calculating the dx_map, and\nthen walks the hash-sorted dx_map, calculating how many entries must be\nmoved to more evenly split the existing entries between the old block and\nthe new block, guaranteeing enough space for the new entry.\n\nThe dx_map \"offs\" member is reduced to u16 so that the overall map size\ndoes not change - it is temporarily stored at the end of the new block, and\nif it grows too large it may be overwritten.  By making offs and size both\nu16, we won\u0027t grow the map size.\n\nAlso add a few comments to the functions involved.\n\nThis fixes the testcase reported by hooanon05@yahoo.co.jp on the\nlinux-ext4 list, \"ext3 dir_index causes an error\"\n\nThanks to Andreas Dilger for discussing the problem \u0026 solution with me.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Andreas Dilger \u003cadilger@clusterfs.com\u003e\nTested-by: Junjiro Okajima \u003chooanon05@yahoo.co.jp\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nCc: \u003cstable@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": "3d82abae9523c33d4a16fdfdfd2bdde316d7b56a",
      "tree": "e0059b667ac7ef765814a2ee9587f9e89015b387",
      "parents": [
        "e67aa27a6179c287983c6c525beb5320f5cd1672"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Tue Sep 18 22:46:38 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Sep 19 11:24:18 2007 -0700"
      },
      "message": "dir_index: error out instead of BUG on corrupt dx dirs\n\nConvert asserts (BUGs) in dx_probe from bad on-disk data to recoverable\nerrors with helpful warnings.  With help catching other asserts from Duane\nGriffin \u003cduaneg@dghda.com\u003e\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nAcked-by: Duane Griffin \u003cduaneg@dghda.com\u003e\nAcked-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nCc: \u003cstable@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": "a6c15c2b0fbfd5c0a84f5f0e1e3f20f85d2b8692",
      "tree": "87af8336e669c8e63fda7d57b0650b5a806f77ff",
      "parents": [
        "9f7dd93de07420b423336d5d0028959e94778ddb"
      ],
      "author": {
        "name": "Vasily Averin",
        "email": "vvs@sw.ru",
        "time": "Sun Jul 15 23:40:46 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:46 2007 -0700"
      },
      "message": "ext3/ext4: orphan list corruption due bad inode\n\nAfter ext3 orphan list check has been added into ext3_destroy_inode()\n(please see my previous patch) the following situation has been detected:\n\n EXT3-fs warning (device sda6): ext3_unlink: Deleting nonexistent file (37901290), 0\n Inode 00000101a15b7840: orphan list check failed!\n 00000773 6f665f00 74616d72 00000573 65725f00 06737270 66000000 616d726f\n...\n Call Trace: [\u003cffffffff80211ea9\u003e] ext3_destroy_inode+0x79/0x90\n  [\u003cffffffff801a2b16\u003e] sys_unlink+0x126/0x1a0\n  [\u003cffffffff80111479\u003e] error_exit+0x0/0x81\n  [\u003cffffffff80110aba\u003e] system_call+0x7e/0x83\n\nFirst messages said that unlinked inode has i_nlink\u003d0, then ext3_unlink()\nadds this inode into orphan list.\n\nSecond message means that this inode has not been removed from orphan list.\n Inode dump has showed that i_fop \u003d \u0026bad_file_ops and it can be set in\nmake_bad_inode() only.  Then I\u0027ve found that ext3_read_inode() can call\nmake_bad_inode() without any error/warning messages, for example in the\nfollowing case:\n\n...\n        if (inode-\u003ei_nlink \u003d\u003d 0) {\n                if (inode-\u003ei_mode \u003d\u003d 0 ||\n                    !(EXT3_SB(inode-\u003ei_sb)-\u003es_mount_state \u0026 EXT3_ORPHAN_FS)) {\n                        /* this inode is deleted */\n                        brelse (bh);\n                        goto bad_inode;\n...\n\nBad inode can live some time, ext3_unlink can add it to orphan list, but\next3_delete_inode() do not deleted this inode from orphan list.  As result\nwe can have orphan list corruption detected in ext3_destroy_inode().\n\nHowever it is not clear for me how to fix this issue correctly.\n\nAs far as i see is_bad_inode() is called after iget() in all places\nexcluding ext3_lookup() and ext3_get_parent().  I believe it makes sense to\nadd bad inode check to these functions too and call iput if bad inode\ndetected.\n\nSigned-off-by:\tVasily Averin \u003cvvs@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e63340ae6b6205fef26b40a75673d1c9c0c8bb90",
      "tree": "8d3212705515edec73c3936bb9e23c71d34a7b41",
      "parents": [
        "04c9167f91e309c9c4ea982992aa08e83b2eb42e"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue May 08 00:28:08 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:07 2007 -0700"
      },
      "message": "header cleaning: don\u0027t include smp_lock.h when not used\n\nRemove includes of \u003clinux/smp_lock.h\u003e where it is not used/needed.\nSuggested by Al Viro.\n\nBuilds cleanly on x86_64, i386, alpha, ia64, powerpc, sparc,\nsparc64, and arm (all 59 defconfigs).\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": "fedee54d8f12cdfde299f181fec5c62b0c647ad6",
      "tree": "815a5de82d0c242bb1e6a012a237d0715c3b08af",
      "parents": [
        "753e9c5cd9b123156152c66c816f751954b15e53"
      ],
      "author": {
        "name": "Dmitriy Monakhov",
        "email": "dmonakhov@sw.ru",
        "time": "Tue May 08 00:25:34 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:01 2007 -0700"
      },
      "message": "ext3: dirindex error pointer issues\n\n- ext3_dx_find_entry() exit with out setting proper error pointer\n\n- do_split() exit with out setting proper error pointer\n  it is realy painful because many callers contain folowing code:\n\n          de \u003d do_split(handle,dir, \u0026bh, frame, \u0026hinfo, \u0026retval);\n          if (!(de))\n                       return retval;\n          \u003c\u003c\u003c WOW retval wasn\u0027t changed by do_split(), so caller failed\n          \u003c\u003c\u003c but return SUCCESS :)\n\n- Rearrange do_split() error path. Current error path is realy ugly, all\n  this up and down jump stuff doesn\u0027t make code easy to understand.\n\n[dmonakhov@sw.ru: fix annoying fake error messages]\nSigned-off-by: Monakhov Dmitriy \u003cdmonakhov@openvz.org\u003e\nCc: Andreas Dilger \u003cadilger@clusterfs.com\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nSigned-off-by: Monakhov Dmitriy \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "754661f143e70d66eae6c48532ca245aa05dec0e",
      "tree": "c3ed0f7f96061931e497ed92d2b21294756b4831",
      "parents": [
        "9c2e08c592cd357a8330c34def1e8ecfdcf53275"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Mon Feb 12 00:55:38 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:46 2007 -0800"
      },
      "message": "[PATCH] mark struct inode_operations const 1\n\nMany struct inode_operations in the kernel can be \"const\".  Marking them const\nmoves these to the .rodata section, which avoids false sharing with potential\ndirty data.  In addition it\u0027ll catch accidental writes at compile time to\nthese shared resources.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "731b9a549882c76189baafccbd068d5785ea2a82",
      "tree": "0393399e3dccd93f78595f6e503ae098758c9811",
      "parents": [
        "2988a7740dc0dd9a0cb56576e8fe1d777dff0db3"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Sat Feb 10 01:46:16 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Feb 11 10:51:34 2007 -0800"
      },
      "message": "[PATCH] remove ext[34]_inc_count and _dec_count\n\n- Naming is confusing, ext3_inc_count manipulates i_nlink not i_count\n- handle argument passed in is not used\n- ext3 and ext4 already call inc_nlink and dec_nlink directly in other places\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2988a7740dc0dd9a0cb56576e8fe1d777dff0db3",
      "tree": "9c1b67be5d16a24d5c613ecb8e3804c7ff3994da",
      "parents": [
        "967bb77c69e3bc44dd1128a8b503a205cce3fd4a"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Sat Feb 10 01:46:16 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Feb 11 10:51:34 2007 -0800"
      },
      "message": "[PATCH] return ENOENT from ext3_link when racing with unlink\n\nReturn -ENOENT from ext[34]_link if we\u0027ve raced with unlink and i_nlink is\n0.  Doing otherwise has the potential to corrupt the orphan inode list,\nbecause we\u0027d wind up with an inode with a non-zero link count on the list,\nand it will never get properly cleaned up \u0026 removed from the orphan list\nbefore it is freed.\n\n[akpm@osdl.org: build fix]\nSigned-off-by: Eric Sandeen \u003csandeen@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": "fe21a69389165b9641a8d0b89e00a71c4e5f5d59",
      "tree": "69680eba96fa96884edea6af2d6e060b90a2cc37",
      "parents": [
        "c29c6934304a05781c9bd1611bd98870689f34e7"
      ],
      "author": {
        "name": "Josef \"Jeff\" Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Fri Dec 08 02:36:38 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:41 2006 -0800"
      },
      "message": "[PATCH] ext3: change uses of f_{dentry, vfsmnt} to use f_path\n\nChange all the uses of f_{dentry,vfsmnt} to f_path.{dentry,mnt} in the ext3\nfilesystem.\n\nSigned-off-by: Josef \"Jeff\" Sipek \u003cjsipek@cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "40b851348fe9bf49c26025b34261d25142269b60",
      "tree": "dae334f455fecbcb070ddd4b8e8b220159014652",
      "parents": [
        "59287c0913cc9a6c75712a775f6c1c1ef418ef3b"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Wed Dec 06 20:36:26 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:33 2006 -0800"
      },
      "message": "[PATCH] handle ext3 directory corruption better\n\nI\u0027ve been using Steve Grubb\u0027s purely evil \"fsfuzzer\" tool, at\nhttp://people.redhat.com/sgrubb/files/fsfuzzer-0.4.tar.gz\n\nBasically it makes a filesystem, splats some random bits over it, then\ntries to mount it and do some simple filesystem actions.\n\nAt best, the filesystem catches the corruption gracefully.  At worst,\nthings spin out of control.\n\nAs you might guess, we found a couple places in ext3 where things spin out\nof control :)\n\nFirst, we had a corrupted directory that was never checked for\nconsistency...  it was corrupt, and pointed to another bad \"entry\" of\nlength 0.  The for() loop looped forever, since the length of\next3_next_entry(de) was 0, and we kept looking at the same pointer over and\nover and over and over...  I modeled this check and subsequent action on\nwhat is done for other directory types in ext3_readdir...\n\n(adding this check adds some computational expense; I am testing a followup\npatch to reduce the number of times we check and re-check these directory\nentries, in all cases.  Thanks for the idea, Andreas).\n\nNext we had a root directory inode which had a corrupted size, claimed to\nbe \u003e 200M on a 4M filesystem.  There was only really 1 block in the\ndirectory, but because the size was so large, readdir kept coming back for\nmore, spewing thousands of printk\u0027s along the way.\n\nPer Andreas\u0027 suggestion, if we\u0027re in this read error condition and we\u0027re\ntrying to read an offset which is greater than i_blocks worth of bytes,\nstop trying, and break out of the loop.\n\nWith these two changes fsfuzz test survives quite well on ext3.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ce71ec36840368b877fb63bd14c8e67ab62d08b1",
      "tree": "55ea3caaa339881dfd66d787b3dbbb964825d07a",
      "parents": [
        "17ff785691503f63ec648df82a7fdaece7695561"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Sat Sep 30 23:29:06 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 01 00:39:30 2006 -0700"
      },
      "message": "[PATCH] r/o bind mounts: monitor zeroing of i_nlink\n\nSome filesystems, instead of simply decrementing i_nlink, simply zero it\nduring an unlink operation.  We need to catch these in addition to the\ndecrement operations.\n\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d8c76e6f45c111c32a4b3e50a2adc9210737b0d8",
      "tree": "25521b59d48c6d8c9aec1af54dbe5008ad4b215b",
      "parents": [
        "9a53c3a783c2fa9b969628e65695c11c3e51e673"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Sat Sep 30 23:29:04 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 01 00:39:30 2006 -0700"
      },
      "message": "[PATCH] r/o bind mount prepwork: inc_nlink() helper\n\nThis is mostly included for parity with dec_nlink(), where we will have some\nmore hooks.  This one should stay pretty darn straightforward for now.\n\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9a53c3a783c2fa9b969628e65695c11c3e51e673",
      "tree": "5a6115e18ee105246d46e3db3d5b07749d232f5b",
      "parents": [
        "aab520e2f6c80160cabd187a8d0292d1cec8ff68"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Sat Sep 30 23:29:03 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 01 00:39:30 2006 -0700"
      },
      "message": "[PATCH] r/o bind mounts: unlink: monitor i_nlink\n\nWhen a filesystem decrements i_nlink to zero, it means that a write must be\nperformed in order to drop the inode from the filesystem.\n\nWe\u0027re shortly going to have keep filesystems from being remounted r/o between\nthe time that this i_nlink decrement and that write occurs.\n\nSo, add a little helper function to do the decrements.  We\u0027ll tie into it in a\nbit to note when i_nlink hits zero.\n\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "caa38fb0f481a3cb732b115cb59bfa6b59b6daaf",
      "tree": "c68f069f58748813e9195b6205936846aba2e43e",
      "parents": [
        "5404bc7a87b9949cf61e0174b21f80e73239ab25"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Sun Jul 23 01:41:26 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Sat Sep 30 20:29:42 2006 +0200"
      },
      "message": "[PATCH] ext3: make meta data reads use READ_META\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\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": "eee194e76c681dbdbf5024b889fda1181b66ef57",
      "tree": "bbefd2b2da5a49dcf8057e182f35c044445111e9",
      "parents": [
        "41f04d852e359582518f950d12b2287766613022"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "esandeen@redhat.com",
        "time": "Wed Sep 27 01:49:30 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:09 2006 -0700"
      },
      "message": "[PATCH] ext3: inode numbers are unsigned long\n\nThis is primarily format string fixes, with changes to ialloc.c where large\ninode counts could overflow, and also pass around journal_inum as an\nunsigned long, just to be pedantic about it....\n\nSigned-off-by: Eric Sandeen \u003cesandeen@redhat.com\u003e\nCc: 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": "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": "2ccb48ebb4de139eef4fcefd5f2bb823cb0d81b9",
      "tree": "e06a83c7306e143175a87df2328b45e1ef34da5b",
      "parents": [
        "f712c0c7e1796f92e45e4de144e247816d974b8f"
      ],
      "author": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Sun Jul 30 03:03:01 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 31 13:28:36 2006 -0700"
      },
      "message": "[PATCH] ext3: avoid triggering ext3_error on bad NFS file handle\n\nThe inode number out of an NFS file handle gets passed eventually to\next3_get_inode_block() without any checking.  If ext3_get_inode_block()\nallows it to trigger an error, then bad filehandles can have unpleasant\neffect - ext3_error() will usually cause a forced read-only remount, or a\npanic if `errors\u003dpanic\u0027 was used.\n\nSo remove the call to ext3_error there and put a matching check in\next3/namei.c where inode numbers are read off storage.\n\n[akpm@osdl.org: fix off-by-one error]\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nCc: \u003cstable@kernel.org\u003e\nCc: \"Stephen C. Tweedie\" \u003csct@redhat.com\u003e\nCc: 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": "92eeccd8badbfebe12383b6e5326b27dc707601d",
      "tree": "b3d96a855685ec96f4fa0ee4419b0f6efdb977ae",
      "parents": [
        "0710d36a0fd5db3176369397f0fc49db32a63507"
      ],
      "author": {
        "name": "Johann Lombardi",
        "email": "johann.lombardi@bull.net",
        "time": "Sun Jun 25 05:48:33 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:01:15 2006 -0700"
      },
      "message": "[PATCH] ext3: cleanup dead code in ext3_add_entry()\n\nThe variables nlen and rlen are defined/initialized but not used in\next3_add_entry().\n\nSigned-off-by: Johann Lombardi \u003cjohann.lombardi@bull.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0adb25d2e71ab047423d6fc63d5d184590d0a66f",
      "tree": "0fd00ea22c07c88c3f24085cbf89f0a272f56697",
      "parents": [
        "8bd0ee93fef9733c72fef1817330b3ee2b71cf9d"
      ],
      "author": {
        "name": "Kirill Korotaev",
        "email": "dev@openvz.org",
        "time": "Sat Mar 11 03:27:13 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 11 09:19:34 2006 -0800"
      },
      "message": "[PATCH] ext3: ext3_symlink should use GFP_NOFS allocations inside\n\nThis patch fixes illegal __GFP_FS allocation inside ext3 transaction in\next3_symlink().  Such allocation may re-enter ext3 code from\ntry_to_free_pages.  But JBD/ext3 code keeps a pointer to current journal\nhandle in task_struct and, hence, is not reentrable.\n\nThis bug led to \"Assertion failure in journal_dirty_metadata()\" messages.\n\nhttp://bugzilla.openvz.org/show_bug.cgi?id\u003d115\n\nSigned-off-by: Andrey Savochkin \u003csaw@saw.sw.com.sg\u003e\nSigned-off-by: Kirill Korotaev \u003cdev@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ba7fe369875075c3b0def9887afb7a44fa88175e",
      "tree": "2b1052b698a66b67e981fbdea526c4b09df65ede",
      "parents": [
        "082a05c6f02e00982dd42ddae434fbc806a822e5"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Sat Jan 14 13:21:08 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Jan 14 18:27:10 2006 -0800"
      },
      "message": "[PATCH] ext3: remove d_splice_alias NULL check from ext3_lookup\n\nRemove redundant NULL check in ext3_lookup() as d_splice_alias() can take NULL\ninode as input.\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9f40668d7d14d4d16cedc2104bfb63a43584dacf",
      "tree": "1afa0f60acfcfb89e460feca6ea4d5686b192915",
      "parents": [
        "25ab7cd84eebdc1869d236029ada3a7b403de8ba"
      ],
      "author": {
        "name": "Glauber de Oliveira Costa",
        "email": "glommer@br.ibm.com",
        "time": "Sun Jan 08 01:03:22 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:56 2006 -0800"
      },
      "message": "[PATCH] ext3: remove trailing newlines from ext3_warning() calls\n\nRemove the trailing newlines in calls to ext3_warning().  This function\nalready adds a trailing newline to the end of messages.\n\nSigned-off-by: Glauber de Oliveira Costa \u003cglommer@br.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "381be25458524f9bcec5bf1e40c82d1ebb408475",
      "tree": "dc6ea4d6cf0ef93b8cb5103d53caea6333b129cc",
      "parents": [
        "1a80ba88273097933f93b1f40537337416798c70"
      ],
      "author": {
        "name": "Ben Dooks",
        "email": "ben@fluff.org.uk",
        "time": "Sun Oct 30 15:02:56 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:25 2005 -0800"
      },
      "message": "[PATCH] ext3: sparse fixes\n\nFix warnings from sparse due to un-declared functions that should either\nhave a header file or have been declared static\n\n fs/ext2/bitmap.c:14:15: warning: symbol \u0027ext2_count_free\u0027 was not declared. Should it be static?\n fs/ext2/namei.c:92:15: warning: symbol \u0027ext2_get_parent\u0027 was not declared. Should it be static?\n fs/ext3/bitmap.c:15:15: warning: symbol \u0027ext3_count_free\u0027 was not declared. Should it be static?\n fs/ext3/namei.c:1013:15: warning: symbol \u0027ext3_get_parent\u0027 was not declared. Should it be static?\n fs/ext3/xattr.c:214:1: warning: symbol \u0027ext3_xattr_block_get\u0027 was not declared. Should it be static?\n fs/ext3/xattr.c:358:1: warning: symbol \u0027ext3_xattr_block_list\u0027 was not declared. Should it be static?\n fs/ext3/xattr.c:630:1: warning: symbol \u0027ext3_xattr_block_find\u0027 was not declared. Should it be static?\n fs/ext3/xattr.c:863:1: warning: symbol \u0027ext3_xattr_ibody_find\u0027 was not declared. Should it be static?\n\nSigned-off-by: Ben Dooks \u003cben-linux@fluff.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1f54587bea84a35125c95e19b98c2f464c50871b",
      "tree": "42f2467d6892be821271a2257e1259922bdafd45",
      "parents": [
        "4e5117ba0af4582b6ec9164874f719d7f3f1eb2b"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Jun 23 22:01:04 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Fri Jun 24 00:05:20 2005 -0700"
      },
      "message": "[PATCH] quota: ext3: Improve quota credit estimates\n\nUse improved credits estimates for quota operations.  Also reserve a space\nfor a quota operation in a transaction only if filesystem was mounted with\nsome quota options.\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": "acfa1823d33859b0db77701726c9ca5ccc6e6f25",
      "tree": "356c2edeed8e8a505ed03c6f9d04dc659e84d341",
      "parents": [
        "d6e711448137ca3301512cec41a2c2ce852b3d0a"
      ],
      "author": {
        "name": "Andreas Dilger",
        "email": "adilger@clusterfs.com",
        "time": "Thu Jun 23 00:09:45 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:26 2005 -0700"
      },
      "message": "[PATCH] Support for dx directories in ext3_get_parent (NFSD)\n\nHenrik Grubbstrom noted:\n\nThe 2.6.10 ext3_get_parent attempts to use ext3_find_entry to look up the\nentry \"..\", which fails for dx directories since \"..\" is not present in the\ndirectory hash table.  The patch below solves this by looking up the dotdot\nentry in the dx_root block.\n\nTypical symptoms of the above bug are intermittent claims by nfsd that\nfiles or directories are missing on exported ext3 filesystems.\n\ncf https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id\u003d3D150759 and\nhttps://bugzilla.redhat.com/bugzilla/show_bug.cgi?id\u003d3D144556\n\next3_get_parent() is IMHO the wrong place to fix this bug as it introduces\na lot of internals from htree into that function.  Instead, I think this\nshould be fixed in ext3_find_entry() as in the below patch.  This has the\nadded advantage that it works for any callers of ext3_find_entry() and not\njust ext3_lookup_parent().\n\nSigned-off-by: Andreas Dilger \u003cadilger@clusterfs.com\u003e\nSigned-off-by: Henrik Grubbstrom \u003cgrubba@grubba.org\u003e\nCc: \u003cext2-devel@lists.sourceforge.net\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"
    }
  ]
}
