)]}'
{
  "log": [
    {
      "commit": "31583d6acf940d2951bc8716557b06d9de5a0c4b",
      "tree": "607aef385b0998f0cb7ff63b05407afed5182840",
      "parents": [
        "ee37ba7a4212c7420f12e6a2ad8a3966649ede7a",
        "f740f5ca056f0a4eff3abdf272a8a4ba3965d57d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 19 17:43:04 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 19 17:43:04 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block:\n  Fix kernel-doc parameter name typo in blk-settings.c:\n  block: rename CONFIG_LBD to CONFIG_LBDAF\n  block: Fix bounce_pfn setting\n  hd: stop defining MAJOR_NR\n"
    },
    {
      "commit": "90c699a9ee4be165966d40f1837909ccb8890a68",
      "tree": "ff136ce7b73c7d7bbf5eb4241d01cb3b930d3566",
      "parents": [
        "3a02c8e8142f7f133d4c6e72bc3e1d830e6b8b9e"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Fri Jun 19 08:08:50 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Jun 19 08:08:50 2009 +0200"
      },
      "message": "block: rename CONFIG_LBD to CONFIG_LBDAF\n\nFollow-up to \"block: enable by default support for large devices\nand files on 32-bit archs\".\n\nRename CONFIG_LBD to CONFIG_LBDAF to:\n- allow update of existing [def]configs for \"default y\" change\n- reflect that it is used also for large files support nowadays\n\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "210ad6aedb332e73167ece5af9bd47f0da8c2aca",
      "tree": "29e463655148987f3bce2510d94e36da7dd07176",
      "parents": [
        "9c64daff9d5afb102dfe64a26829e26725538e58"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jun 08 15:22:25 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 17 00:36:35 2009 -0400"
      },
      "message": "ext4: avoid unnecessary spinlock in critical POSIX ACL path\n\nIf a filesystem supports POSIX ACL\u0027s, the VFS layer expects the filesystem\nto do POSIX ACL checks on any files not owned by the caller, and it does\nthis for every single pathname component that it looks up.\n\nThat obviously can be pretty expensive if the filesystem isn\u0027t careful\nabout it, especially with locking. That\u0027s doubly sad, since the common\ncase tends to be that there are no ACL\u0027s associated with the files in\nquestion.\n\next4 already caches the ACL data so that it doesn\u0027t have to look it up\nover and over again, but it does so by taking the inode-\u003ei_lock spinlock\non every lookup. Which is a noticeable overhead even if it\u0027s a private\nlock, especially on CPU\u0027s where the serialization is expensive (eg Intel\nNetburst aka \u0027P4\u0027).\n\nFor the special case of not actually having any ACL\u0027s, all that locking is\nunnecessary. Even if somebody else were to be changing the ACL\u0027s on\nanother CPU, we simply don\u0027t care - if we\u0027ve seen a NULL ACL, we might as\nwell use it.\n\nSo just load the ACL speculatively without any locking, and if it was\nNULL, just use it. If it\u0027s non-NULL (either because we had a cached\nentry, or because the cache hasn\u0027t been filled in at all), it means that\nwe\u0027ll need to get the lock and re-load it properly.\n\n(This commit was ported from a patch originally authored by Linus for\next3.)\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4159175058987cb68aefd0e9eec2598b795363b4",
      "tree": "452a3ef5f8f2ae4c79095519078383fe766d69ab",
      "parents": [
        "de9a55b841132f7ae097f6e31ccebad2d5030cf5"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jun 15 03:41:23 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jun 15 03:41:23 2009 -0400"
      },
      "message": "ext4: Don\u0027t update ctime for non-extent-mapped inodes\n\nThe VFS handles updating ctime, so we don\u0027t need to update the inode\u0027s\nctime in ext4_splace_branch() to update the direct or indirect blocks.\nThis was harmless when we did this in ext3, but in ext4, thanks to\ndelayed allocation, updating the ctime in ext4_splice_branch() can\ncause the ctime to mysteriously jump when the blocks are finally\nallocated.\n\nThanks to Björn Steinbrink for pointing out this problem on the git\nmailing list.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "de9a55b841132f7ae097f6e31ccebad2d5030cf5",
      "tree": "9b66c7c68bff923a62d4c2b04114e22a8fa524e1",
      "parents": [
        "0610b6e99939828b77eec020ead0e1f44cba38ca"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Jun 14 17:45:34 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Jun 14 17:45:34 2009 -0400"
      },
      "message": "ext4: Fix up whitespace issues in fs/ext4/inode.c\n\nThis is a pure cleanup patch.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0610b6e99939828b77eec020ead0e1f44cba38ca",
      "tree": "ede610c64a0456a43618e500c577b35e462f8953",
      "parents": [
        "11013911daea4820147ae6d7094dd7c6894e8651"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jun 15 03:45:05 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jun 15 03:45:05 2009 -0400"
      },
      "message": "ext4: Fix 64-bit block type problem on 32-bit platforms\n\nThe function ext4_mb_free_blocks() was using an \"unsigned long\" to\npass a block number; this will cause 64-bit block numbers to get\ntruncated on x86 and other 32-bit platforms.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReviewed-by: Eric Sandeen \u003csandeen@redhat.com\u003e\n"
    },
    {
      "commit": "11013911daea4820147ae6d7094dd7c6894e8651",
      "tree": "f8e9f9d2058e0dfc826d4df3d88a7eb18a56b3f3",
      "parents": [
        "f157a4aa98a18bd3817a72bea90d48494e2586e7"
      ],
      "author": {
        "name": "Andreas Dilger",
        "email": "adilger@sun.com",
        "time": "Sat Jun 13 11:45:35 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Jun 13 11:45:35 2009 -0400"
      },
      "message": "ext4: teach the inode allocator to use a goal inode number\n\nEnhance the inode allocator to take a goal inode number as a\nparemeter; if it is specified, it takes precedence over Orlov or\nparent directory inode allocation algorithms.\n\nThe extents migration function uses the goal inode number so that the\nextent trees allocated the migration function use the correct flex_bg.\nIn the future, the goal inode functionality will also be used to\nallocate an adjacent inode for the extended attributes.\n\nAlso, for testing purposes the goal inode number can be specified via\n/sys/fs/{dev}/inode_goal.  This can be useful for testing inode\nallocation beyond 2^32 blocks on very large filesystems.\n\nSigned-off-by: Andreas Dilger \u003cadilger@sun.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f157a4aa98a18bd3817a72bea90d48494e2586e7",
      "tree": "105547639a67296b4ea7acdc35c9e65ee2a85fd8",
      "parents": [
        "8a8a2050c844d9de224ff591e91bda3f77bd6eda"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Jun 13 11:09:42 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Jun 13 11:09:42 2009 -0400"
      },
      "message": "ext4: Use a hash of the topdir directory name for the Orlov parent group\n\nInstead of using a random number to determine the goal parent grop for\nthe Orlov top directories, use a hash of the directory name.  This\nallows for repeatable results when trying to benchmark filesystem\nlayout algorithms.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "4ab2f15b7f709c3626a7eed075a7225b4c775c7e",
      "tree": "bfefc592c4c2eb176162134c615132e75f810486",
      "parents": [
        "bc0b0d6d69ee9022f18ae264e62beb30ddeb322a"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Jun 13 10:09:36 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Jun 13 10:09:36 2009 -0400"
      },
      "message": "ext4: move the abort flag from s_mount_opts to s_mount_flags\n\nWe\u0027re running out of space in the mount options word, and\nEXT4_MOUNT_ABORT isn\u0027t really a mount option, but a run-time flag.  So\nmove it to become EXT4_MF_FS_ABORTED in s_mount_flags.\n\nAlso remove bogus ext2_fs.h / ext4.h simultaneous #include protection,\nwhich can never happen.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "bc0b0d6d69ee9022f18ae264e62beb30ddeb322a",
      "tree": "fb1d04af657b6de21fa441c1d14fc296f32c723e",
      "parents": [
        "7f4520cc6242780ce720aa440ad4b391f998b558"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Jun 13 10:09:48 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Jun 13 10:09:48 2009 -0400"
      },
      "message": "ext4: update the s_last_mounted field in the superblock\n\nThis field can be very helpful when a system administrator is trying\nto sort through large numbers of block devices or filesystem images.\nWhat is stored in this field can be ambiguous if multiple filesystem\nnamespaces are in play; what we store in practice is the mountpoint\ninterpreted by the process\u0027s namespace which first opens a file in the\nfilesystem.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7f4520cc6242780ce720aa440ad4b391f998b558",
      "tree": "c8f1d99e019f2e29a967851031f4a60bf7ab1467",
      "parents": [
        "748de6736c1e482e111f9d1b5a5d5b1787600cad"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Jun 13 10:09:41 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Jun 13 10:09:41 2009 -0400"
      },
      "message": "ext4: change s_mount_opt to be an unsigned int\n\nWe can only fit 32 options in s_mount_opt because an unsigned long is\n32-bits on a x86 machine.  So use an unsigned int to save space on\n64-bit platforms.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "748de6736c1e482e111f9d1b5a5d5b1787600cad",
      "tree": "9e5bd6085cd0eea0453c2a8bbce1422f291f059f",
      "parents": [
        "8b0f9e8f78bd0a65fa001bf18f2c47eef2893a10"
      ],
      "author": {
        "name": "Akira Fujita",
        "email": "a-fujita@rs.jp.nec.com",
        "time": "Wed Jun 17 19:24:03 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Jun 17 19:24:03 2009 -0400"
      },
      "message": "ext4: online defrag -- Add EXT4_IOC_MOVE_EXT ioctl\n\nThe EXT4_IOC_MOVE_EXT exchanges the blocks between orig_fd and donor_fd,\nand then write the file data of orig_fd to donor_fd.\next4_mext_move_extent() is the main fucntion of ext4 online defrag,\nand this patch includes all functions related to ext4 online defrag.\n\nSigned-off-by: Akira Fujita \u003ca-fujita@rs.jp.nec.com\u003e\nSigned-off-by: Takashi Sato \u003ct-sato@yk.jp.nec.com\u003e\nSigned-off-by: Kazuya Mio \u003ck-mio@sx.jp.nec.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "337eb00a2c3a421999c39c94ce7e33545ee8baa7",
      "tree": "d9b780d095b638b1d8fa23841ff70347cf5daa08",
      "parents": [
        "4195f73d1329e49727bcceb028e58cb38376c2b0"
      ],
      "author": {
        "name": "Alessio Igor Bogani",
        "email": "abogani@texware.it",
        "time": "Tue May 12 15:10:54 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:11 2009 -0400"
      },
      "message": "Push BKL down into -\u003eremount_fs()\n\n[xfs, btrfs, capifs, shmem don\u0027t need BKL, exempt]\n\nSigned-off-by: Alessio Igor Bogani \u003cabogani@texware.it\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ebc1ac164560a241d9bf1b7519062910c3f90a01",
      "tree": "db17fd3043b15f8269cce2c2d00213814022fc30",
      "parents": [
        "01ba687577647beef6c5f2ea59bfb56fac9fcde2"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon May 11 23:35:03 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:09 2009 -0400"
      },
      "message": "-\u003ewrite_super lock_super pushdown\n\nPush down lock_super into -\u003ewrite_super instances and remove it from the\ncaller.\n\nFollowing filesystem don\u0027t need -\u003es_lock in -\u003ewrite_super and are skipped:\n\n * bfs, nilfs2 - no other uses of s_lock and have internal locks in\n\t-\u003ewrite_super\n * ext2 - uses BKL in ext2_write_super and has internal calls without s_lock\n * reiserfs - no other uses of s_lock as has reiserfs_write_lock (BKL) in\n \t-\u003ewrite_super\n * xfs - no other uses of s_lock and uses internal lock (buffer lock on\n\tsuperblock buffer) to serialize -\u003ewrite_super.  Also xfs_fs_write_super\n\tis superflous and will go away in the next merge window\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bbd6851a3213a525128473e978b692ab6ac11aba",
      "tree": "8ebddebadd8992871ab98456187cb00849a82058",
      "parents": [
        "6cfd0148425e528b859b26e436b01f23f6926224"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed May 06 10:43:07 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:08 2009 -0400"
      },
      "message": "Push lock_super() into the -\u003eremount_fs() of filesystems that care about it\n\nNote that since we can\u0027t run into contention between remount_fs and write_super\n(due to exclusion on s_umount), we have to care only about filesystems that\ntouch lock_super() on their own.  Out of those ext3, ext4, hpfs, sysv and ufs\ndo need it; fat doesn\u0027t since its -\u003eremount_fs() only accesses assign-once\ndata (basically, it\u0027s \"we have no atime on directories and only have atime on\nfiles for vfat; force nodiratime and possibly noatime into *flags\").\n\n[folded a build fix from hch]\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6cfd0148425e528b859b26e436b01f23f6926224",
      "tree": "60e3257053554ff198fe5825e6f12a00c3b4422a",
      "parents": [
        "a9e220f8322e2b0e0b8903fe00265461cffad3f0"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue May 05 15:40:36 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:07 2009 -0400"
      },
      "message": "push BKL down into -\u003eput_super\n\nMove BKL into -\u003eput_super from the only caller.  A couple of\nfilesystems had trivial enough -\u003eput_super (only kfree and NULLing of\ns_fs_info + stuff in there) to not get any locking: coda, cramfs, efs,\nhugetlbfs, omfs, qnx4, shmem, all others got the full treatment.  Most\nof them probably don\u0027t need it, but I\u0027d rather sort that out individually.\nPreferably after all the other BKL pushdowns in that area.\n\n[AV: original used to move lock_super() down as well; these changes are\nremoved since we don\u0027t do lock_super() at all in generic_shutdown_super()\nnow]\n[AV: fuse, btrfs and xfs are known to need no damn BKL, exempt]\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a9e220f8322e2b0e0b8903fe00265461cffad3f0",
      "tree": "b3be7d58b8eb9fd810636223f0458191ec1b9d75",
      "parents": [
        "62c6943b4b1e818aea60c11c5a68a50785b83119"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue May 05 22:10:44 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:07 2009 -0400"
      },
      "message": "No need to do lock_super() for exclusion in generic_shutdown_super()\n\nWe can\u0027t run into contention on it.  All other callers of lock_super()\neither hold s_umount (and we have it exclusive) or hold an active\nreference to superblock in question, which prevents the call of\ngeneric_shutdown_super() while the reference is held.  So we can\nreplace lock_super(s) with get_fs_excl() in generic_shutdown_super()\n(and corresponding change for unlock_super(), of course).\n\nSince ext4 expects s_lock held for its put_super, take lock_super()\ninto it.  The rest of filesystems do not care at all.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8c85e125124a473d6f3e9bb187b0b84207f81d91",
      "tree": "d883424a156c00c55193e46567efdffddb6ef6b9",
      "parents": [
        "517bfae28353e996160518add4d00033d3886e61"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Apr 28 18:00:26 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:06 2009 -0400"
      },
      "message": "remove -\u003ewrite_super call in generic_shutdown_super\n\nWe just did a full fs writeout using sync_filesystem before, and if\nthat\u0027s not enough for the filesystem it can perform it\u0027s own writeout\nin -\u003eput_super, which many filesystems already do.\n\nMove a call to foofs_write_super into every foofs_put_super for now to\nguarantee identical behaviour until it\u0027s cleaned up by the individual\nfilesystem maintainers.\n\nExceptions:\n\n - affs already has identical copy \u0026 pasted code at the beginning of\n   affs_put_super so no need to do it twice.\n - xfs does the right thing without it and I have changes pending for\n   the xfs tree touching this are so I don\u0027t really need conflicts\n   here..\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c9059598ea8981d02356eead3188bf7fa4d717b8",
      "tree": "03e73b20a30e988da7c6a3e0ad93b2dc5843274d",
      "parents": [
        "0a33f80a8373eca7f4bea3961d1346c3815fa5ed",
        "b0fd271d5fba0b2d00888363f3869e3f9b26caa9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 10:52:27 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 11:10:35 2009 -0700"
      },
      "message": "Merge branch \u0027for-2.6.31\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.31\u0027 of git://git.kernel.dk/linux-2.6-block: (153 commits)\n  block: add request clone interface (v2)\n  floppy: fix hibernation\n  ramdisk: remove long-deprecated \"ramdisk\u003d\" boot-time parameter\n  fs/bio.c: add missing __user annotation\n  block: prevent possible io_context-\u003erefcount overflow\n  Add serial number support for virtio_blk, V4a\n  block: Add missing bounce_pfn stacking and fix comments\n  Revert \"block: Fix bounce limit setting in DM\"\n  cciss: decode unit attention in SCSI error handling code\n  cciss: Remove no longer needed sendcmd reject processing code\n  cciss: change SCSI error handling routines to work with interrupts enabled.\n  cciss: separate error processing and command retrying code in sendcmd_withirq_core()\n  cciss: factor out fix target status processing code from sendcmd functions\n  cciss: simplify interface of sendcmd() and sendcmd_withirq()\n  cciss: factor out core of sendcmd_withirq() for use by SCSI error handling code\n  cciss: Use schedule_timeout_uninterruptible in SCSI error handling code\n  block: needs to set the residual length of a bidi request\n  Revert \"block: implement blkdev_readpages\"\n  block: Fix bounce limit setting in DM\n  Removed reference to non-existing file Documentation/PCI/PCI-DMA-mapping.txt\n  ...\n\nManually fix conflicts with tracing updates in:\n\tblock/blk-sysfs.c\n\tdrivers/ide/ide-atapi.c\n\tdrivers/ide/ide-cd.c\n\tdrivers/ide/ide-floppy.c\n\tdrivers/ide/ide-tape.c\n\tinclude/trace/events/block.h\n\tkernel/trace/blktrace.c\n"
    },
    {
      "commit": "a41f20716975910d9beb90b7efc61107901492b8",
      "tree": "99d3987296660884b998be4d2308d38ca84670a6",
      "parents": [
        "0eab928221bac8895a0b494a16a8810002bd8645"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Wed Jun 10 14:22:55 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Jun 10 14:22:55 2009 -0400"
      },
      "message": "ext4: Avoid corrupting the uninitialized bit in the extent during truncate\n\nThe unitialized bit was not properly getting preserved in in an extent\nwhich is partially truncated because the it was geting set to the\nvalue of the first extent to be removed or truncated as part of the\ntruncate operation, and if there are multiple extents are getting\nremoved or modified as part of the truncate operation, it is only the\nlast extent which will might be partially truncated, and its\nuninitalized bit is not necessarily the same as the first extent to be\ntruncated.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0eab928221bac8895a0b494a16a8810002bd8645",
      "tree": "733ca0ee831fffb3fd2c96b6715250e79e7a24fa",
      "parents": [
        "9aee2286071c23c535fe9928eec1a26e0bcf256d"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jun 09 09:54:40 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jun 09 09:54:40 2009 -0400"
      },
      "message": "ext4: Don\u0027t treat a truncation of a zero-length file as replace-via-truncate\n\nIf a non-existent file is opened via O_WRONLY|O_CREAT|O_TRUNC, there\u0027s\nno need to treat this as a true file truncation, so we shouldn\u0027t\nactivate the replace-via-truncate hueristic.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "9aee2286071c23c535fe9928eec1a26e0bcf256d",
      "tree": "e0518acaa75c1399ffcf67ca74a54d5a9488296b",
      "parents": [
        "f8514083cd61daef12fba5ef883ad9352c450428"
      ],
      "author": {
        "name": "Toshiyuki Okajima",
        "email": "toshi.okajima@jp.fujitsu.com",
        "time": "Mon Jun 08 12:41:35 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jun 08 12:41:35 2009 -0400"
      },
      "message": "ext4: fix dx_map_entry to support 256k directory blocks\n\nThe dx_map_entry structure doesn\u0027t support over 64KB block size by\ncurrent usage of its member(\"offs\"). Because \"offs\" treats an offset\nof copies of the ext4_dir_entry_2 structure as is. This member size is\n16 bits. But real offset for over 64KB(256KB) block size needs 18\nbits. However, real offset keeps 4 byte boundary, so lower 2 bits is\nnot used.\n\nTherefore, we do the following to fix this limitation:\nFor \"store\": \n\twe divide the real offset by 4 and then store this result to \"offs\" \n\tmember.\nFor \"use\":\n\twe multiply \"offs\" member by 4 and then use this result \n\tas real offset.\n\nSigned-off-by: Toshiyuki Okajima \u003ctoshi.okajima@jp.fujitsu.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f8514083cd61daef12fba5ef883ad9352c450428",
      "tree": "46cbf0c28ea112229c3ee9209750c8017f1b9385",
      "parents": [
        "1938a150c25bf7c2c47182e753a1038945b70b0e"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Fri Jun 05 00:56:49 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jun 05 00:56:49 2009 -0400"
      },
      "message": "ext4: truncate the file properly if we fail to copy data from userspace\n\nIn generic_perform_write if we fail to copy the user data we don\u0027t\nupdate the inode-\u003ei_size.  We should truncate the file in the above\ncase so that we don\u0027t have blocks allocated outside inode-\u003ei_size.  Add\nthe inode to orphan list in the same transaction as block allocation\nThis ensures that if we crash in between the recovery would do the\ntruncate.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCC:  Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "1938a150c25bf7c2c47182e753a1038945b70b0e",
      "tree": "cab711b2868d719c6f460a75387acf84f6b37576",
      "parents": [
        "b31e15527a9bb71b6a11a425d17ce139a62f5af5"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Fri Jun 05 01:00:26 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jun 05 01:00:26 2009 -0400"
      },
      "message": "ext4: Avoid leaking blocks after a block allocation failure\n\nWe should add inode to the orphan list in the same transaction\nas block allocation.  This ensures that if we crash after a failed\nblock allocation and before we do a vmtruncate we don\u0027t leak block\n(ie block marked as used in bitmap but not claimed by the inode).\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCC:  Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "b31e15527a9bb71b6a11a425d17ce139a62f5af5",
      "tree": "3b8fdb014e3b960b27369643de9ad1213ec2cbba",
      "parents": [
        "03f5d8bcf094a5e3b501bd2ae1553656efa8d1be"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Thu Jun 04 17:36:36 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Jun 04 17:36:36 2009 -0400"
      },
      "message": "ext4: Change all super.c messages to print the device\n\nThis patch changes ext4 super.c to include the device name with all \nwarning/error messages, by using a new utility function ext4_msg. \nIt\u0027s a rather large patch, but very mechanic. I left debug printks\nalone.\n\nThis is a straightforward port of a patch which Andi Kleen did for\next3.\n\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "03f5d8bcf094a5e3b501bd2ae1553656efa8d1be",
      "tree": "04644e9008e7357fd87f14fee6404b7c306bc3e9",
      "parents": [
        "0b8e58a140cae2ba1c4a21ccae7c6c3c939c51f9"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Jun 09 00:17:05 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jun 09 00:17:05 2009 -0400"
      },
      "message": "ext4: Get rid of EXTEND_DISKSIZE flag of ext4_get_blocks_handle()\n\nGet rid of EXTEND_DISKSIZE flag of ext4_get_blocks_handle(). This\nseems to be a relict from some old days and setting disksize in this\nfunction does not make much sense.  Currently it was set only by\next4_getblk().  Since the parameter has some effect only if create \u003d\u003d\n1, it is easy to check by grepping through the sources that the three\ncallers which end up calling ext4_getblk() with create \u003d\u003d 1\n(ext4_append, ext4_quota_write, ext4_mkdir) do the right thing and set\ndisksize themselves.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0b8e58a140cae2ba1c4a21ccae7c6c3c939c51f9",
      "tree": "70fc974b7f4b258a3cf0a64a825dbebc9e1f1150",
      "parents": [
        "bfcd3555af478dbf04c87adc9bb1a739d0a6ccff"
      ],
      "author": {
        "name": "Andreas Dilger",
        "email": "adilger@sun.com",
        "time": "Wed Jun 03 17:59:28 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Jun 03 17:59:28 2009 -0400"
      },
      "message": "ext4: super.c whitespace cleanup\n\nCleanup of whitespace and formatting.  Initially driven by confusing indents\nfor the ext4_{block,inode}_bitmap() et. al. helper routines, but figured I\u0027d\ncleanup some other 80-column wrapping and other indenting problems at the\nsame time.\n\nSigned-off-by: Andreas Dilger \u003cadilger@sun.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "88b6edd17c62b7d346d21f4087893ce7d4ef828a",
      "tree": "e6c80d48f184861c965a58bd88fd3a023b65a1c9",
      "parents": [
        "759d427aa5a9d88a81afd11817cdeb40aea85234"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 25 11:50:39 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 25 11:50:39 2009 -0400"
      },
      "message": "ext4: Clean up calls to ext4_get_group_desc()\n\nIf the caller isn\u0027t planning on modifying the block group descriptors,\nthere\u0027s no need to pass in a pointer to a struct buffer_head.  Nuking\nthis saves a tiny amount of CPU time and stack space usage.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "759d427aa5a9d88a81afd11817cdeb40aea85234",
      "tree": "8e8316ed77c9ee21cce9058d5b477c0e7cf4462b",
      "parents": [
        "0f7ee7c17241915fdaff49d1a36f5aafd80a7dce"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 25 11:51:00 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 25 11:51:00 2009 -0400"
      },
      "message": "ext4: remove unused function __ext4_write_dirty_metadata\n\nThe __ext4_write_dirty_metadata() function was introduced by commit\n0390131b, \"ext4: Allow ext4 to run without a journal\", but nothing\never used the function, either then or since.  So let\u0027s remove it and\nsave a bit of space.\n\nCc: Frank Mayhar \u003cfmayhar@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "e1defc4ff0cf57aca6c5e3ff99fa503f5943c1f1",
      "tree": "d60d15a082171c58ac811d547d51a9c3119f23e3",
      "parents": [
        "9bd7de51ee8537094656149eaf45338cadb7d7d4"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Fri May 22 17:17:49 2009 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 22 23:22:54 2009 +0200"
      },
      "message": "block: Do away with the notion of hardsect_size\n\nUntil now we have had a 1:1 mapping between storage device physical\nblock size and the logical block sized used when addressing the device.\nWith SATA 4KB drives coming out that will no longer be the case.  The\nsector size will be 4KB but the logical block size will remain\n512-bytes.  Hence we need to distinguish between the physical block size\nand the logical ditto.\n\nThis patch renames hardsect_size to logical_block_size.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "f68301656b5f5d2de104f2687add6beeb8f3c3b9",
      "tree": "b5f559c14d81031f7f0c43c229625bdc808e0163",
      "parents": [
        "0568c518937ee3a9b6a94d18bae9c150fe5d6832"
      ],
      "author": {
        "name": "Manish Katiyar",
        "email": "mkatiyar@gmail.com",
        "time": "Sun May 17 23:52:44 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 17 23:52:44 2009 -0400"
      },
      "message": "ext4: Fix memory leak in ext4_fill_super() in case of a failed mount\n\nSigned-off-by: Manish Katiyar \u003cmkatiyar@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0568c518937ee3a9b6a94d18bae9c150fe5d6832",
      "tree": "b6392f24142e9199a7a0b34e29ac2f6c82a221d7",
      "parents": [
        "6fd058f7791087648c683eb8572edf3be3c4c23c"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 17 23:31:23 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 17 23:31:23 2009 -0400"
      },
      "message": "ext4: down i_data_sem only for read when walking tree for fiemap\n\nNot sure why I put this in as down_write originally; all we are\ndoing is walking the tree, nothing will change under us and\nconcurrent reads should be no problem.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "6fd058f7791087648c683eb8572edf3be3c4c23c",
      "tree": "0d80791532d2d022c91f20013003716eaf0afb40",
      "parents": [
        "2ac3b6e00acb46406c993d57921f86a594aafe08"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 17 15:38:01 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 17 15:38:01 2009 -0400"
      },
      "message": "ext4: Add a comprehensive block validity check to ext4_get_blocks()\n\nTo catch filesystem bugs or corruption which could lead to the\nfilesystem getting severly damaged, this patch adds a facility for\ntracking all of the filesystem metadata blocks by contiguous regions\nin a red-black tree.  This allows quick searching of the tree to\nlocate extents which might overlap with filesystem metadata blocks.\n\nThis facility is also used by the multi-block allocator to assure that\nit is not allocating blocks out of the system zone, as well as by the\nroutines used when reading indirect blocks and extents information\nfrom disk to make sure their contents are valid.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "2ec0ae3acec47f628179ee95fe2c4da01b5e9fc4",
      "tree": "f8cf43b7d3840c405dac1db3974466a2d755919a",
      "parents": [
        "2a8964d63d50dd2d65d71d342bc7fb6ef4117614"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 15 09:07:28 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 15 09:07:28 2009 -0400"
      },
      "message": "ext4: Fix race in ext4_inode_info.i_cached_extent\n\nIf two CPU\u0027s simultaneously call ext4_ext_get_blocks() at the same\ntime, there is nothing protecting the i_cached_extent structure from\nbeing used and updated at the same time.  This could potentially cause\nthe wrong location on disk to be read or written to, including\npotentially causing the corruption of the block group descriptors\nand/or inode table.\n\nThis bug has been in the ext4 code since almost the very beginning of\next4\u0027s development.  Fortunately once the data is stored in the page\ncache cache, ext4_get_blocks() doesn\u0027t need to be called, so trying to\nreplicate this problem to the point where we could identify its root\ncause was *extremely* difficult.  Many thanks to Kevin Shanahan for\nworking over several months to be able to reproduce this easily so we\ncould finally nail down the cause of the corruption.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReviewed-by: \"Aneesh Kumar K.V\" \u003caneesh.kumar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "2a8964d63d50dd2d65d71d342bc7fb6ef4117614",
      "tree": "7dd80d63afd9adab61ba0695ac3e0c95485dc2ed",
      "parents": [
        "33b9817e2ae097c7b8d256e3510ac6c54fc6d9d0"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Thu May 14 17:05:39 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu May 14 17:05:39 2009 -0400"
      },
      "message": "ext4: Clear the unwritten buffer_head flag after the extent is initialized\n\nThe BH_Unwritten flag indicates that the buffer is allocated on disk\nbut has not been written; that is, the disk was part of a persistent\npreallocation area.  That flag should only be set when a get_blocks()\nfunction is looking up a inode\u0027s logical to physical block mapping.\n\nWhen ext4_get_blocks_wrap() is called with create\u003d1, the uninitialized\nextent is converted into an initialized one, so the BH_Unwritten flag\nis no longer appropriate.  Hence, we need to make sure the\nBH_Unwritten is not left set, since the combination of BH_Mapped and\nBH_Unwritten is not allowed; among other things, it will result ext4\u0027s\nget_block() to be called over and over again during the write_begin\nphase of write(2).\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "2ac3b6e00acb46406c993d57921f86a594aafe08",
      "tree": "51f8a245caa53776fb9617973742ffc81023e007",
      "parents": [
        "2fa3cdfb319055fd8b25abdafa413e16f00ad493"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu May 14 13:57:08 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu May 14 13:57:08 2009 -0400"
      },
      "message": "ext4: Clean up ext4_get_blocks() so it does not depend on bh_result-\u003eb_state\n\nThe ext4_get_blocks() function was depending on the value of\nbh_result-\u003eb_state as an input parameter to decide whether or not\nupdate the delalloc accounting statistics by calling\next4_da_update_reserve_space().  We now use a separate flag,\nEXT4_GET_BLOCKS_UPDATE_RESERVE_SPACE, to requests this update, so that\nall callers of ext4_get_blocks() can clear map_bh.b_state before\ncalling ext4_get_blocks() without worrying about any consistency\nissues.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "2fa3cdfb319055fd8b25abdafa413e16f00ad493",
      "tree": "c85e56fa92eecc163a85084d11aef356a686c9b9",
      "parents": [
        "a2dc52b5d1d8cc280b3e795abf1c80ac8c49f30c"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu May 14 09:29:45 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu May 14 09:29:45 2009 -0400"
      },
      "message": "ext4: Merge ext4_da_get_block_write() into mpage_da_map_blocks()\n\nThe static function ext4_da_get_block_write() was only used by\nmpage_da_map_blocks().  So to simplify the code, merge that function\ninto mpage_da_map_blocks().\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "33b9817e2ae097c7b8d256e3510ac6c54fc6d9d0",
      "tree": "3de27ab9a089fb53503fdcc2746e396ee9fb78d0",
      "parents": [
        "9c1ee184a30394e54165fa4c15923cabd952c106"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Tue May 12 14:40:37 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 12 14:40:37 2009 -0400"
      },
      "message": "ext4: Use a fake block number for delayed new buffer_head\n\nUse a very large unsigned number (~0xffff) as as the fake block number\nfor the delayed new buffer. The VFS should never try to write out this\nnumber, but if it does, this will make it obvious.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "9c1ee184a30394e54165fa4c15923cabd952c106",
      "tree": "77fee66ccc5e4aec3aeff7c7d641691b116be091",
      "parents": [
        "091bf7624d1c90cec9e578a18529f615213ff847"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Wed May 13 18:36:58 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed May 13 18:36:58 2009 -0400"
      },
      "message": "ext4: Fix sub-block zeroing for writes into preallocated extents\n\nWe need to mark the buffer_head mapping preallocated space as new\nduring write_begin. Otherwise we don\u0027t zero out the page cache content\nproperly for a partial write. This will cause file corruption with\npreallocation.\n\nNow that we mark the buffer_head new we also need to have a valid\nbuffer_head blocknr so that unmap_underlying_metadata() unmaps the\ncorrect block.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a2dc52b5d1d8cc280b3e795abf1c80ac8c49f30c",
      "tree": "2f425d897dfdab9f2a5997f9801c6ccbea7c1323",
      "parents": [
        "b920c75502cb2c48654ef196d647c8eb81ab608a"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 12 13:51:29 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 12 13:51:29 2009 -0400"
      },
      "message": "ext4: Add BUG_ON debugging checks to noalloc_get_block_write()\n\nEnforce that noalloc_get_block_write() is only called to map one block\nat a time, and that it always is successful in finding a mapping for\ngiven an inode\u0027s logical block block number if it is called with\ncreate \u003d\u003d 1.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "b920c75502cb2c48654ef196d647c8eb81ab608a",
      "tree": "73105b8a1212001a3636d83b3f8e9e554e048170",
      "parents": [
        "c21770573319922e3f3fcb331cfaa290c49f1c81"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu May 14 00:54:29 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu May 14 00:54:29 2009 -0400"
      },
      "message": "ext4: Add documentation to the ext4_*get_block* functions\n\nThis adds more documentation to various internal functions in\nfs/ext4/inode.c, most notably ext4_ind_get_blocks(),\next4_da_get_block_write(), ext4_da_get_block_prep(),\next4_normal_get_block_write().\n\nIn addition, the static function ext4_normal_get_block_write() has\nbeen renamed noalloc_get_block_write(), since it is used in many\nplaces far beyond ext4_normal_writepage().\n\nPlenty of warnings have been added to the noalloc_get_block_write()\nfunction, since the way it is used is amazingly fragile.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c21770573319922e3f3fcb331cfaa290c49f1c81",
      "tree": "ee21ebb2d73d4d3b19d7e391e7accf00704371d9",
      "parents": [
        "12b7ac176831df1aa58a787e67c3e5d698b30163"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu May 14 00:58:52 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu May 14 00:58:52 2009 -0400"
      },
      "message": "ext4: Define a new set of flags for ext4_get_blocks()\n\nThe functions ext4_get_blocks(), ext4_ext_get_blocks(), and\next4_ind_get_blocks() used an ad-hoc set of integer variables used as\nboolean flags passed in as arguments.  Use a single flags parameter\nand a setandard set of bitfield flags instead.  This saves space on\nthe call stack, and it also makes the code a bit more understandable.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "12b7ac176831df1aa58a787e67c3e5d698b30163",
      "tree": "d8d3ab93fd28d5b84efff0b5c247da74c84788e0",
      "parents": [
        "e4d996ca806e93dddb5d76c0d3d859b494c559f6"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu May 14 00:57:44 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu May 14 00:57:44 2009 -0400"
      },
      "message": "ext4: Rename ext4_get_blocks_wrap() to be ext4_get_blocks()\n\nAnother function rename for clarity\u0027s sake.  The _wrap prefix simply\nconfuses people, and didn\u0027t add much people trying to follow the code\npaths.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "e4d996ca806e93dddb5d76c0d3d859b494c559f6",
      "tree": "dee33d8bb77bcd5ef5bebeab04d7fe95e3cb4dc5",
      "parents": [
        "f888e652d758bfe0c04c209b72a05972daeba386"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 12 00:25:28 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 12 00:25:28 2009 -0400"
      },
      "message": "ext4: Rename ext4_get_blocks_handle() to be ext4_ind_get_blocks()\n\nThe static function ext4_get_blocks_handle() is badly named.  Of\n*course* it takes a handle.  Since its counterpart for extent-based\nfile is ext4_ext_get_blocks(), rename it to be ext4_ind_get_blocks().\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f888e652d758bfe0c04c209b72a05972daeba386",
      "tree": "5d593d7ce0f4e58cf2c049b8635e55f3b5a0d415",
      "parents": [
        "bc8e67409ccdcff72c3f1656b1fb1aad7ff396db"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 12 00:21:29 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 12 00:21:29 2009 -0400"
      },
      "message": "ext4: Simplify function signature for ext4_da_get_block_write() \n\nThe function ext4_da_get_block_write() is called in exactly one write,\nand the last argument, create, is always 1.  Remove it to simplify the\ncode slightly.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "bc8e67409ccdcff72c3f1656b1fb1aad7ff396db",
      "tree": "2a766e3c7bc938b697499aa7d5a20f2f468b5a2f",
      "parents": [
        "955ce5f5be67dfe0d1d096b543af33fe8a1ce3dd"
      ],
      "author": {
        "name": "Vincent Minet",
        "email": "vincent@vincent-minet.net",
        "time": "Fri May 15 08:33:18 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 15 08:33:18 2009 -0400"
      },
      "message": "ext4: Fix spinlock assertions on UP systems\n\nOn UP systems without DEBUG_SPINLOCK, ext4_is_group_locked always fails\nwhich triggers a BUG_ON() call.\nThis patch fixes it by using assert_spin_locked instead.\n\nSigned-off-by: Vincent Minet \u003cvincent@vincent-minet.net\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "955ce5f5be67dfe0d1d096b543af33fe8a1ce3dd",
      "tree": "68b0bdbef1594a3e43c1ef28ae8e096b40a06ae4",
      "parents": [
        "eefd7f03b86b8a319890e7fac5a6fcc7f8694b76"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Sat May 02 20:35:09 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat May 02 20:35:09 2009 -0400"
      },
      "message": "ext4: Convert ext4_lock_group to use sb_bgl_lock\n\nWe have sb_bgl_lock() and ext4_group_info.bb_state\nbit spinlock to protech group information. The later is only\nused within mballoc code. Consolidate them to use sb_bgl_lock().\nThis makes the mballoc.c code much simpler and also avoid\nconfusion with two locks protecting same info.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "eefd7f03b86b8a319890e7fac5a6fcc7f8694b76",
      "tree": "d8dd02626d522926b828042f87c0850d42f86d2e",
      "parents": [
        "c9877b205f6ce7943bb95281342f4001cc1c00ec"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat May 02 19:05:37 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat May 02 19:05:37 2009 -0400"
      },
      "message": "ext4: fix the length returned by fiemap for an unallocated extent\n\nIf the file\u0027s blocks have not yet been allocated because of delayed\nallocation, the length of the extent returned by fiemap is incorrect.\nThis commit fixes this bug.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c9877b205f6ce7943bb95281342f4001cc1c00ec",
      "tree": "2556179d7591d8fa7e770e3f2be15a467fe59a6e",
      "parents": [
        "19ba0559f9ce104171ab16706893ce01f03ef116"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Fri May 01 23:32:06 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 01 23:32:06 2009 -0400"
      },
      "message": "ext4: fix for fiemap last-block test\n\nCarl Henrik Lunde reported and debugged this; the test for the\nlast allocated block was comparing bytes to blocks in this test:\n\n\tif (logical + length - 1 \u003d\u003d EXT_MAX_BLOCK ||\n\t    ext4_ext_next_allocated_block(path) \u003d\u003d EXT_MAX_BLOCK)\n\t\tflags |\u003d FIEMAP_EXTENT_LAST;\n\nso any extent which ended right at 4G was stopping the extent\nwalk.  Just replacing these values with the extent block \u0026\nlength should fix it.\n\nAlso give blksize_bits a saner type, and reverse the order \nof the tests to make the more likely case tested first.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nReported-by: Carl Henrik Lunde \u003cchlunde@ping.uio.no\u003e\nTested-by: Carl Henrik Lunde \u003cchlunde@ping.uio.no\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "abc8746eb91fb01e8d411896f80f7687c0d8372e",
      "tree": "b339a559ed8f33b4fe64b5fba5d7684b05d2e071",
      "parents": [
        "f40339031b04279c3fdde7ac5fe97db33b2a7694"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Sat May 02 22:54:32 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat May 02 22:54:32 2009 -0400"
      },
      "message": "ext4: hook fiemap operation for directories\n\nAdd fiemap callback for directories\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f40339031b04279c3fdde7ac5fe97db33b2a7694",
      "tree": "62b565c12488c63e620e5686304c16ed3434b735",
      "parents": [
        "bb23c20a851a5038b255a3c0d0aa56093c1da3f8"
      ],
      "author": {
        "name": "Curt Wohlgemuth",
        "email": "curtw@google.com",
        "time": "Fri May 01 20:27:20 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 01 20:27:20 2009 -0400"
      },
      "message": "ext4: Make the length of the mb_history file tunable\n\nIn memory-constrained systems with many partitions, the ~68K for each\npartition for the mb_history buffer can be excessive.\n\nThis patch adds a new mount option, mb_history_length, as well as a\nway of setting the default via a module parameter (or via a sysfs\nparameter in /sys/module/ext4/parameter/default_mb_history_length).\nIf the mb_history_length is set to zero, the mb_history facility is\ndisabled entirely.\n\nSigned-off-by: Curt Wohlgemuth \u003ccurtw@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "bb23c20a851a5038b255a3c0d0aa56093c1da3f8",
      "tree": "257211bf2bf5ffd53fe24b0528928ca4d3f2ecba",
      "parents": [
        "596397b77c895d0fa3674f579c94ad5ea88ef01d"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 01 19:44:44 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 01 19:44:44 2009 -0400"
      },
      "message": "ext4: Move fs/ext4/group.h into ext4.h\n\nMove the function prototypes in group.h into ext4.h so they are all\ndefined in one place.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "596397b77c895d0fa3674f579c94ad5ea88ef01d",
      "tree": "bd4f9916556b4d5bc59ee4b5171248df44e2c5c4",
      "parents": [
        "ca0faba0e8ac844dc0279825eb8db876b5962ea5"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 01 13:49:15 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 01 13:49:15 2009 -0400"
      },
      "message": "ext4: Move fs/ext4/namei.h into ext4.h\n\nThe fs/ext4/namei.h header file had only a single function\ndeclaration, and should have never been a standalone file.  Move it\ninto ext4.h, where should have been from the beginning.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "ca0faba0e8ac844dc0279825eb8db876b5962ea5",
      "tree": "186acf88dda5958f44ec80349778f815cb172895",
      "parents": [
        "d444c3c38189b3f18337a213855ac1c07af4e2d9"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 03 16:33:44 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 03 16:33:44 2009 -0400"
      },
      "message": "ext4: Move the ext4_sb.h header file into ext4.h\n\nThere is no longer a reason for a separate ext4_sb.h header file, so\nmove it into ext4.h just to make life easier for developers to find\nthe relevant data structures and typedefs.  Should also speed up\ncompiles slightly, too.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d444c3c38189b3f18337a213855ac1c07af4e2d9",
      "tree": "180b83e442c9ab72e1553a19140e3f1169806d28",
      "parents": [
        "75507efb1372b6acf1aa6bf00ebd49ce196fd994"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 01 13:44:33 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 01 13:44:33 2009 -0400"
      },
      "message": "ext4: Move the ext4_i.h header file into ext4.h\n\nThere is no longer a reason for a separate ext4_i.h header file, so\nmove it into ext4.h just to make life easier for developers to find\nthe relevant data structures and typedefs.  Should also speed up\ncompiles slightly, too.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "75507efb1372b6acf1aa6bf00ebd49ce196fd994",
      "tree": "ed2455cbd29b444e8cfc1651b51c6d7a34b6b01f",
      "parents": [
        "32ed5058ce90024efcd811254b4b1de0468099df"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 01 12:58:36 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 01 12:58:36 2009 -0400"
      },
      "message": "ext4: Don\u0027t avoid using BLOCK_UNINIT block groups in mballoc\n\nBy avoiding the use of not-yet-used block groups (i.e., block groups\nwith the BLOCK_UNINIT flag), mballoc had a tendency to create large\nfiles with large non-contiguous gaps.  In addition avoiding the use of\nnew block groups had a tendency to push regular file data into the\nfirst block group in a flex_bg group, which slows down the speed of\ne2fsck pass 2, since it has a tendency to seek much more.  For\nexample:\n\n               Before Patch                       After Patch\n              Time in seconds                   Time in seconds\n            Real /  User/  Sys   MB/s      Real /  User/  Sys    MB/s\nPass 1      8.52 / 2.21 / 0.46  20.43      8.84 / 4.97 / 1.11   19.68\nPass 2     21.16 / 1.02 / 1.86  11.30      6.54 / 1.77 / 1.78   36.39\nPass 3      0.01 / 0.00 / 0.00 139.00      0.01 / 0.01 / 0.00  128.90\nPass 4      0.16 / 0.15 / 0.00   0.00      0.17 / 0.17 / 0.00    0.00\nPass 5      2.52 / 1.99 / 0.09   0.79      2.31 / 1.78 / 0.06    0.86\nTotal      32.40 / 5.11 / 2.49  12.81     17.99 / 8.75 / 2.98   23.01\n\nThis was on a sample 80 gig root filesystem which was approximately\n50% full.  Note the improved e2fsck pass 2 performance, by over a\nfactor of 3, due to a decreased number of seeks.  (The total amount of\nI/O in pass 2 was unchanged; the layout of the directory blocks was\nsimply much better from e2fsck\u0027s\u0027s perspective.)\n\nOther changes as a result of this patch on this sample filesystem:\n\n                             Before Patch    After Patch\n# of non-contig files           762             779\n# of non-contig directories     571             570\n# of BLOCK_UNINIT bg\u0027s          307             293\n# of INODE_UNINIT bg\u0027s          503             503\n\nOut of 640 block groups, of which 333 were in use, this patch caused\nan extra 14 block groups to be utilized.  The number of non-contiguous\nfiles did go up slightly, but when measured against the 99.9% of the\nfiles (603,154) which were contiguously allocated, this is pretty\ninsignificant.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Andreas Dilger \u003cadilger@sun.com\u003e\n"
    },
    {
      "commit": "8b0f9e8f78bd0a65fa001bf18f2c47eef2893a10",
      "tree": "f97cd42eb0cf5c20e260c34c0a082c9b7ee6a621",
      "parents": [
        "96159f25112595386c56e09eca90284e85e7ecbf"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Apr 27 17:33:23 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Apr 27 17:33:23 2009 -0400"
      },
      "message": "ext4: avoid unnecessary spinlock in critical POSIX ACL path\n\nIf a filesystem supports POSIX ACL\u0027s, the VFS layer expects the filesystem\nto do POSIX ACL checks on any files not owned by the caller, and it does\nthis for every single pathname component that it looks up.\n\nThat obviously can be pretty expensive if the filesystem isn\u0027t careful\nabout it, especially with locking. That\u0027s doubly sad, since the common\ncase tends to be that there are no ACL\u0027s associated with the files in\nquestion.\n\next4 already caches the ACL data so that it doesn\u0027t have to look it up\nover and over again, but it does so by taking the inode-\u003ei_lock spinlock\non every lookup. Which is a noticeable overhead even if it\u0027s a private\nlock, especially on CPU\u0027s where the serialization is expensive (eg Intel\nNetburst aka \u0027P4\u0027).\n\nFor the special case of not actually having any ACL\u0027s, all that locking is\nunnecessary. Even if somebody else were to be changing the ACL\u0027s on\nanother CPU, we simply don\u0027t care - if we\u0027ve seen a NULL ACL, we might as\nwell use it.\n\nSo just load the ACL speculatively without any locking, and if it was\nNULL, just use it. If it\u0027s non-NULL (either because we had a cached\nentry, or because the cache hasn\u0027t been filled in at all), it means that\nwe\u0027ll need to get the lock and re-load it properly.\n\n(This commit was ported from a patch originally authored by Linus for\next3.)\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "9bffad1ed2a003a355ed1b42424a0ae3575275ed",
      "tree": "9016e7b0e04a0e5319680f9e1f89fc1abb13c765",
      "parents": [
        "879c5e6b7cb4c689d08ca9b2e353d8ab3dc425d5"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Jun 17 11:48:11 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Jun 17 11:48:11 2009 -0400"
      },
      "message": "ext4: convert instrumentation from markers to tracepoints\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "32ed5058ce90024efcd811254b4b1de0468099df",
      "tree": "0054cc5c385b4ba02abd95a761ccb01b453ba05f",
      "parents": [
        "3b9d4ed26680771295d904a6b83e88e620780893"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Apr 25 22:53:39 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Apr 25 22:53:39 2009 -0400"
      },
      "message": "ext4: Replace lock/unlock_super() with an explicit lock for resizing\n    \nUse a separate lock to protect s_groups_count and the other block\ngroup descriptors which get changed via an on-line resize operation,\nso we can stop overloading the use of lock_super().\n    \nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "3b9d4ed26680771295d904a6b83e88e620780893",
      "tree": "905b0e95697839c446c86250cf38dd256f5e846a",
      "parents": [
        "a63c9eb2ce6f5028da90f282798232c4f398ceb8"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Apr 25 22:54:04 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Apr 25 22:54:04 2009 -0400"
      },
      "message": "ext4: Replace lock/unlock_super() with an explicit lock for the orphan list\n\nUse a separate lock to protect the orphan list, so we can stop\noverloading the use of lock_super().\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a63c9eb2ce6f5028da90f282798232c4f398ceb8",
      "tree": "3b32193dfc80a3925f5ea5a6545765f5176a6f2d",
      "parents": [
        "114e9fc90703bd6aac0229fb559e97caa6c49770"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 01 01:59:42 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 01 01:59:42 2009 -0400"
      },
      "message": "ext4: ext4_mark_recovery_complete() doesn\u0027t need to use lock_super\n\nThe function ext4_mark_recovery_complete() is called from two call\npaths: either (a) while mounting the filesystem, in which case there\u0027s\nno danger of any other CPU calling write_super() until the mount is\ncompleted, and (b) while remounting the filesystem read-write, in\nwhich case the fs core has already locked the superblock.  This also\nallows us to take out a very vile unlock_super()/lock_super() pair in\next4_remount().\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "114e9fc90703bd6aac0229fb559e97caa6c49770",
      "tree": "722343de92b421c252a9e33b0e5e44955115080a",
      "parents": [
        "8df9675f8b498d0bfa1f0b5b06f56bf1ff366dd5"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Apr 25 15:48:07 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Apr 25 15:48:07 2009 -0400"
      },
      "message": "ext4: Remove outdated comment about lock_super()\n\next4_fill_super() is no longer called by read_super(), and it is no\nlonger called with the superblock locked.  The\nunlock_super()/lock_super() is no longer present, so this comment is\nentirely superfluous.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "8df9675f8b498d0bfa1f0b5b06f56bf1ff366dd5",
      "tree": "38fd56a82049f50b4d774af47b9d39f116071755",
      "parents": [
        "9ca92389c5312a51e819c15c762f0abdc7f3129b"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 01 08:50:38 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 01 08:50:38 2009 -0400"
      },
      "message": "ext4: Avoid races caused by on-line resizing and SMP memory reordering\n\nExt4\u0027s on-line resizing adds a new block group and then, only at the\nlast step adjusts s_groups_count.  However, it\u0027s possible on SMP\nsystems that another CPU could see the updated the s_group_count and\nnot see the newly initialized data structures for the just-added block\ngroup.  For this reason, it\u0027s important to insert a SMP read barrier\nafter reading s_groups_count and before reading any (for example) the\nnew block group descriptors allowed by the increased value of\ns_groups_count.\n\nUnfortunately, we rather blatently violate this locking protocol\ndocumented in fs/ext4/resize.c.  Fortunately, (1) on-line resizes\nhappen relatively rarely, and (2) it seems rare that the filesystem\ncode will immediately try to use just-added block group before any\nmemory ordering issues resolve themselves.  So apparently problems\nhere are relatively hard to hit, since ext3 has been vulnerable to the\nsame issue for years with no one apparently complaining.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "9ca92389c5312a51e819c15c762f0abdc7f3129b",
      "tree": "0f99256a5632614134573283853c577676cb1b99",
      "parents": [
        "7234ab2a55e77784b44cf2d862136d9e41b8d98a"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 01 12:52:25 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 01 12:52:25 2009 -0400"
      },
      "message": "ext4: Use separate super_operations structure for no_journal filesystems\n\nBy using a separate super_operations structure for filesystems that\nhave and don\u0027t have journals, we can simply ext4_write_super() ---\nwhich is only needed when no journal is present --- and ext4_freeze(),\next4_unfreeze(), and ext4_sync_fs(), which are only needed when the\njournal is present.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7234ab2a55e77784b44cf2d862136d9e41b8d98a",
      "tree": "cad3f1ee096243529125b3d6a028cc1426773b9c",
      "parents": [
        "e2d670523c6c4ccb0fca9f3ab1b8f066d9aa57d6"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Apr 30 21:24:04 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Apr 30 21:24:04 2009 -0400"
      },
      "message": "ext4: Fix and simplify s_dirt handling\n\nThe s_dirt flag wasn\u0027t completely handled correctly, but it didn\u0027t\nreally matter when journalling was enabled.  It turns out that when\next4 runs without a journal, we don\u0027t clear s_dirt in places where we\nshould have, with the result that the high-level write_super()\nfunction was writing the superblock when it wasn\u0027t necessary.\n\nSo we fix this by making ext4_commit_super() clear the s_dirt flag,\nand removing many of the other places where s_dirt is manipulated.\nWhen journalling is enabled, the s_dirt flag might be left set more\noften, but s_dirt really doesn\u0027t matter when journalling is enabled.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "e2d670523c6c4ccb0fca9f3ab1b8f066d9aa57d6",
      "tree": "648f9a29142831ded24fd92d22d3add5c3190185",
      "parents": [
        "f7c439504ccba0cca43271e651013ab97a221c62"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 01 00:33:44 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 01 00:33:44 2009 -0400"
      },
      "message": "ext4: Simplify ext4_commit_super()\u0027s function signature\n\nThe ext4_commit_super() function took both a struct super_block * and\na struct ext4_super_block *, but the struct ext4_super_block can be\nderived from the struct super_block.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f7c439504ccba0cca43271e651013ab97a221c62",
      "tree": "35f2489b2503bdc9273435e8b433ac58b8a1f276",
      "parents": [
        "c5ca7c7636fa689a9746b6032f83aa7fffec31c6"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Apr 24 23:31:59 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Apr 24 23:31:59 2009 -0400"
      },
      "message": "ext4: Use is_power_of_2() for clarity\n\nSigned-off-by: Robert P. J. Day \u003crpjday@crashcourse.ca\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c5ca7c7636fa689a9746b6032f83aa7fffec31c6",
      "tree": "eebbdd1d477b5062148ee61c9e1bf1d4da3e9e05",
      "parents": [
        "29fa89d088941d79765d60f22d5ccdd6b8696e11"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Apr 27 22:48:48 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Apr 27 22:48:48 2009 -0400"
      },
      "message": "ext4: Fallback to vmalloc if kmalloc can\u0027t allocate s_flex_groups array\n\nFor very large filesystems, the s_flex_groups array can get quite big.\nFor example, a filesystem that can be resized up to 16TB will have\n8192 flex groups (assuming the default flex_bg size of 16), so the\narray is 96k, which is *very* marginal for kmalloc().  On the other\nhand, a 160GB filesystem without the resize_inode feature will only\nrequire 960 bytes.  So we try to allocate the array first using\nkmalloc(), and if that fails, we\u0027ll try to use vmalloc() instead.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "29fa89d088941d79765d60f22d5ccdd6b8696e11",
      "tree": "3fbe031eec140c03dafa11f2416c4f6e3826f21d",
      "parents": [
        "8fb0e342481c4d80040670fec915f0b9c7c6499a"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Tue May 12 16:30:27 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 12 16:30:27 2009 -0400"
      },
      "message": "ext4: Mark the unwritten buffer_head as mapped during write_begin\n\nSetting BH_Unwritten buffer_heads as BH_Mapped avoids multiple\n(unnecessary) calls to get_block() during the call to the write(2)\nsystem call.  Setting BH_Unwritten buffer heads as BH_Mapped requires\nthat the writepages() functions can handle BH_Unwritten buffer_heads.\n\nAfter this commit, things work as follows:\n\next4_ext_get_block() returns unmapped, unwritten, buffer head when\ncalled with create \u003d 0 for prealloc space. This makes sure we handle\nthe read path and non-delayed allocation case correctly.  Even though\nthe buffer head is marked unmapped we have valid b_blocknr and b_bdev\nvalues in the buffer_head.\n\next4_da_get_block_prep() called for block resrevation will now return\nmapped, unwritten, new buffer_head for prealloc space. This avoids\nmultiple calls to get_block() for write to same offset. By making such\nbuffers as BH_New, we also assure that sub-block zeroing of buffered\nwrites happens correctly.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "79ffab34391933ee3b95dac7f25c0478fa2f8f1e",
      "tree": "8bc139928e172ef2ebd38e01f97dc01f886d8526",
      "parents": [
        "9fa7eb283c5cdc2b0f4a8cfe6387ed82e5e9a3d3"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Wed May 13 15:13:42 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed May 13 15:13:42 2009 -0400"
      },
      "message": "ext4: Properly initialize the buffer_head state\n\nThese struct buffer_heads are allocated on the stack (and hence are\ninitialized with stack garbage).  They are only used to call a\nget_blocks() function, so that\u0027s mostly OK, but b_state must be\ninitialized to be 0 so we don\u0027t have any unexpected BH_* flags set by\naccident, such as BH_Unwritten or BH_Delay.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c4b5a614316c505922a522b2e35ba05ea3e08a7c",
      "tree": "8b76988940551726ef05d311e02a06bb61464274",
      "parents": [
        "a9e817425dc0baede8ebe5fbc9984a640257432b"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Apr 24 18:45:35 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Apr 24 18:45:35 2009 -0400"
      },
      "message": "ext4: Do not try to validate extents on special files\n\nThe EXTENTS_FL flag should never be set on special files, but if it\nis, don\u0027t bother trying to validate that the extents tree is valid,\nsince only files, directories, and non-fast symlinks will ever have an\nextent data structure.  We perhaps should flag the filesystem as being\ncorrupted if we see a special file (named pipes, device nodes, Unix\ndomain sockets, etc.) with the EXTENTS_FL flag, but e2fsck doesn\u0027t\ncurrently check this case, so we\u0027ll just ignore this for now, since\nit\u0027s harmless.\n\nWithout this fix, a special device with the extents flag is flagged as\nan error by the kernel, so it is impossible to access or delete the\ninode, but e2fsck doesn\u0027t see it as a problem, leading to\nconfused/frustrated users.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a9e817425dc0baede8ebe5fbc9984a640257432b",
      "tree": "ff59f9cc8dcee908f58a136554323d8c8fbfcca8",
      "parents": [
        "485c26ec70f823f2a9cf45982b724893e53a859e"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Apr 24 16:11:18 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Apr 24 16:11:18 2009 -0400"
      },
      "message": "ext4: Ignore i_file_acl_high unless EXT4_FEATURE_INCOMPAT_64BIT is present\n\nDon\u0027t try to look at i_file_acl_high unless the INCOMPAT_64BIT feature\nbit is set.  The field is normally zero, but older versions of e2fsck\ndidn\u0027t automatically check to make sure of this, so in the spirit of\n\"be liberal in what you accept\", don\u0027t look at i_file_acl_high unless\nwe are using a 64-bit filesystem.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "485c26ec70f823f2a9cf45982b724893e53a859e",
      "tree": "545ee089625b9b4131773eb26c57a51889deda78",
      "parents": [
        "0c8454f56623505a99463405fd7d5664adfbb094"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Apr 24 13:43:20 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Apr 24 13:43:20 2009 -0400"
      },
      "message": "ext4: Fix softlockup caused by illegal i_file_acl value in on-disk inode\n\nIf the block containing external extended attributes (which is stored\nin i_file_acl and i_file_acl_high) is larger than the on-disk\nfilesystem, the process which tried to access the extended attributes\nwill endlessly issue kernel printks complaining that\n\"__find_get_block_slow() failed\", locking up that CPU until the system\nis forcibly rebooted.\n\nSo when we read in the inode, make sure the i_file_acl value is legal,\nand if not, flag the filesystem as being corrupted.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a4277bf122e907e4fec509fc0bd9bf5fde30b14e",
      "tree": "b359e8b0f7895acda1d6331332e69ea5b14d5f0d",
      "parents": [
        "6ae85d6db4871d8dbcb5cc0e9056f97f1ca07061",
        "b5451f7b2694b04d9f912f6cf09db1729f291996"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 24 08:37:40 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 24 08:37:40 2009 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:\n  ext4: Fix potential inode allocation soft lockup in Orlov allocator\n  ext4: Make the extent validity check more paranoid\n  jbd: use SWRITE_SYNC_PLUG when writing synchronous revoke records\n  jbd2: use SWRITE_SYNC_PLUG when writing synchronous revoke records\n  ext4: really print the find_group_flex fallback warning only once\n"
    },
    {
      "commit": "b5451f7b2694b04d9f912f6cf09db1729f291996",
      "tree": "a1221f12730bc54357fc7600de2b5fbcce97cac3",
      "parents": [
        "e84a26ce178345498a7eca0590852bcc36f1092f"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Apr 22 21:00:36 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Apr 22 21:00:36 2009 -0400"
      },
      "message": "ext4: Fix potential inode allocation soft lockup in Orlov allocator\n\nIf the Orlov allocator is having trouble finding an appropriate block\ngroup, the fallback code could loop forever, causing a soft lockup\nwarning in find_group_orlov():\n\nBUG: soft lockup - CPU#0 stuck for 61s! [cp:11728]\n     ...\nPid: 11728, comm: cp Not tainted (2.6.30-rc1-dirty #77) Lenovo          \nEIP: 0060:[\u003cc021650e\u003e] EFLAGS: 00000246 CPU: 0\nEIP is at ext4_get_group_desc+0x54/0x9d\n    ...\nCall Trace:\n [\u003cc0218021\u003e] find_group_orlov+0x2ee/0x334\n [\u003cc0120a5f\u003e] ? sched_clock+0x8/0xb\n [\u003cc02188e3\u003e] ext4_new_inode+0x2cf/0xb1a\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "e84a26ce178345498a7eca0590852bcc36f1092f",
      "tree": "dcd2f95c9f73ffb8d2020fe89bb1c30785e0fa78",
      "parents": [
        "38d726d153cfe5efe5fe22d28d36ab382dda3a5c"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Apr 22 20:52:25 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Apr 22 20:52:25 2009 -0400"
      },
      "message": "ext4: Make the extent validity check more paranoid\n\nInstead of just checking that the extent block number is greater or\nequal than s_first_data_block, make sure it it is not pointing into\nthe block group descriptors, since that is clearly wrong.  This helps\nprevent filesystem from getting very badly corrupted in case an extent\nblock is corrupted.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "226e7dabf5534722944adefbad01970bd38bb7ae",
      "tree": "569375339adae68e4773406de0640522158ff12e",
      "parents": [
        "4d1f9fdb6177a9bdecf26976337dd39abcc8edbc"
      ],
      "author": {
        "name": "Nikanth Karthikesan",
        "email": "knikanth@suse.de",
        "time": "Wed Apr 15 10:36:16 2009 +0530"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 15 12:10:13 2009 +0200"
      },
      "message": "ext4: Remove code handling bio_alloc failure with __GFP_WAIT\n\nRemove code handling bio_alloc failure with __GFP_WAIT.\nGFP_NOIO implies __GFP_WAIT.\n\nSigned-off-by: Nikanth Karthikesan \u003cknikanth@suse.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "6b82f3cb2d480b7714eb0ff61aee99c22160389e",
      "tree": "31eea4876e8ceb93f8641082128b4a8ccd944e0b",
      "parents": [
        "b0cbc861a3c05e634520b049b5cc27ad6febb51f"
      ],
      "author": {
        "name": "Chuck Ebbert",
        "email": "cebbert@redhat.com",
        "time": "Tue Apr 14 07:37:40 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Apr 14 07:37:40 2009 -0400"
      },
      "message": "ext4: really print the find_group_flex fallback warning only once\n\nMissing braces caused the warning to print more than once.\n\nSigned-Off-By: Chuck Ebbert \u003ccebbert@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0f2ddca66d70c8ccba7486cf2d79c6b60e777abd",
      "tree": "7d58c31ab30ba2b9e94780008a2083ac87f80db5",
      "parents": [
        "e44543b83bf4ab84dc6bd5b88158c78b1ed1c208"
      ],
      "author": {
        "name": "From: Thiemo Nagel",
        "email": "thiemo.nagel@ph.tum.de",
        "time": "Tue Apr 07 14:07:47 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Apr 07 14:07:47 2009 -0400"
      },
      "message": "ext4: check block device size on mount\n\nSigned-off-by: Thiemo Nagel \u003cthiemo.nagel@ph.tum.de\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "e44543b83bf4ab84dc6bd5b88158c78b1ed1c208",
      "tree": "c55b92d612db9175125ca0edc33af3ff6dcc16d3",
      "parents": [
        "f73953c0656f2db9073c585c4df2884a8ecd101e"
      ],
      "author": {
        "name": "Thiemo Nagel",
        "email": "thiemo.nagel@ph.tum.de",
        "time": "Sat Apr 04 23:30:44 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Apr 04 23:30:44 2009 -0400"
      },
      "message": "ext4: Fix off-by-one-error in ext4_valid_extent_idx()\n\nSigned-off-by: Thiemo Nagel \u003cthiemo.nagel@ph.tum.de\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f73953c0656f2db9073c585c4df2884a8ecd101e",
      "tree": "3771470edbc40318c553468265151f4f2e27004e",
      "parents": [
        "e0724bf6e4a1f2e678d2b2aab01cae22e17862f0"
      ],
      "author": {
        "name": "Thiemo Nagel",
        "email": "thiemo.nagel@ph.tum.de",
        "time": "Tue Apr 07 18:46:47 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Apr 07 18:46:47 2009 -0400"
      },
      "message": "ext4: Fix big-endian problem in __ext4_check_blockref()\n\nCommit fe2c8191 introduced a regression on big-endian system, because\nthe checks to make sure block references in non-extent inodes are\nvalid failed to use le32_to_cpu().\n\nReported-by: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nSigned-off-by: Thiemo Nagel \u003cthiemo.nagel@ph.tum.de\u003e\nTested-by: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\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": "8fe74cf053de7ad2124a894996f84fa890a81093",
      "tree": "77dcd8fbf33ce53a3821942233962fb28c6f2848",
      "parents": [
        "c2eb2fa6d2b6fe122d3479ec5b28d978418b2698",
        "ced117c73edc917e96dea7cca98c91383f0792f7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 21:09:10 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 21:09:10 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  Remove two unneeded exports and make two symbols static in fs/mpage.c\n  Cleanup after commit 585d3bc06f4ca57f975a5a1f698f65a45ea66225\n  Trim includes of fdtable.h\n  Don\u0027t crap into descriptor table in binfmt_som\n  Trim includes in binfmt_elf\n  Don\u0027t mess with descriptor table in load_elf_binary()\n  Get rid of indirect include of fs_struct.h\n  New helper - current_umask()\n  check_unsafe_exec() doesn\u0027t care about signal handlers sharing\n  New locking/refcounting for fs_struct\n  Take fs_struct handling to new file (fs/fs_struct.c)\n  Get rid of bumping fs_struct refcount in pivot_root(2)\n  Kill unsharing fs_struct in __set_personality()\n"
    },
    {
      "commit": "395d73413c5656c6d7706ae91dcb441f9b7e3074",
      "tree": "7fadabe996f70d7918583fa2312d4fad19397fcb",
      "parents": [
        "c226fd659fa7b6a7b038df5ae6856a68514bacde",
        "06705bff9114531a997a7d0c2520bea0f2927410"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 10:57:49 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 10:57:49 2009 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (33 commits)\n  ext4: Regularize mount options\n  ext4: fix locking typo in mballoc which could cause soft lockup hangs\n  ext4: fix typo which causes a memory leak on error path\n  jbd2: Update locking coments\n  ext4: Rename pa_linear to pa_type\n  ext4: add checks of block references for non-extent inodes\n  ext4: Check for an valid i_mode when reading the inode from disk\n  ext4: Use WRITE_SYNC for commits which are caused by fsync()\n  ext4: Add auto_da_alloc mount option\n  ext4: Use struct flex_groups to calculate get_orlov_stats()\n  ext4: Use atomic_t\u0027s in struct flex_groups\n  ext4: remove /proc tuning knobs\n  ext4: Add sysfs support\n  ext4: Track lifetime disk writes\n  ext4: Fix discard of inode prealloc space with delayed allocation.\n  ext4: Automatically allocate delay allocated blocks on rename\n  ext4: Automatically allocate delay allocated blocks on close\n  ext4: add EXT4_IOC_ALLOC_DA_BLKS ioctl\n  ext4: Simplify delalloc code by removing mpage_da_writepages()\n  ext4: Save stack space by removing fake buffer heads\n  ...\n"
    },
    {
      "commit": "c2ec175c39f62949438354f603f4aa170846aabb",
      "tree": "f2c9bf1bec2deabe2d3a5092405b027637b6ead3",
      "parents": [
        "c2fdf3a9b2d52842808a8e551b53b55dd9b45030"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Mar 31 15:23:21 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:14 2009 -0700"
      },
      "message": "mm: page_mkwrite change prototype to match fault\n\nChange the page_mkwrite prototype to take a struct vm_fault, and return\nVM_FAULT_xxx flags.  There should be no functional change.\n\nThis makes it possible to return much more detailed error information to\nthe VM (and also can provide more information eg.  virtual_address to the\ndriver, which might be important in some special cases).\n\nThis is required for a subsequent fix.  And will also make it easier to\nmerge page_mkwrite() with fault() in future.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCc: Artem Bityutskiy \u003cdedekind@infradead.org\u003e\nCc: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ce3b0f8d5c2203301fc87f3aaaed73e5819e2a48",
      "tree": "ab952affafe18e604f6aaf6b13315b9435588e60",
      "parents": [
        "f1191b50ec11c8e2ca766d6d99eb5bb9d2c084a3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Mar 29 19:08:22 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 31 23:00:26 2009 -0400"
      },
      "message": "New helper - current_umask()\n\ncurrent-\u003efs-\u003eumask is what most of fs_struct users are doing.\nPut that into a helper function.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "692105b8ac5bcd75dc65f6a8f10bdbd0f0f34dcf",
      "tree": "e079cea0948d250e5411befe0c5cca7c97bcf860",
      "parents": [
        "877d03105d04b2c13e241130277fa69c8d2564f0"
      ],
      "author": {
        "name": "Matt LaPlante",
        "email": "kernel1@cyberdogtech.com",
        "time": "Mon Jan 26 11:12:25 2009 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Mar 30 15:22:01 2009 +0200"
      },
      "message": "trivial: fix typos/grammar errors in Kconfig texts\n\nSigned-off-by: Matt LaPlante \u003ckernel1@cyberdogtech.com\u003e\nAcked-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "06705bff9114531a997a7d0c2520bea0f2927410",
      "tree": "f7bef499cd491c8171db45da5b02c168655d4236",
      "parents": [
        "e7c9e3e99adf6c49c5d593a51375916acc039d1e"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Mar 28 10:59:57 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Mar 28 10:59:57 2009 -0400"
      },
      "message": "ext4: Regularize mount options\n\nAdd support for using the mount options \"barrier\" and \"nobarrier\", and\n\"auto_da_alloc\" and \"noauto_da_alloc\", which is more consistent than\n\"barrier\u003d\u003c0|1\u003e\" or \"auto_da_alloc\u003d\u003c0|1\u003e\".  Most other ext3/ext4 mount\noptions use the foo/nofoo naming convention.  We allow the old forms\nof these mount options for backwards compatibility.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "e7c9e3e99adf6c49c5d593a51375916acc039d1e",
      "tree": "a0aef22aed6ff8362a9816d8780db4584bc06ffa",
      "parents": [
        "a7b19448ddbdc34b2b8fedc048ba154ca798667b"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Mar 27 19:43:21 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Mar 27 19:43:21 2009 -0400"
      },
      "message": "ext4: fix locking typo in mballoc which could cause soft lockup hangs\n\nSmatch (http://repo.or.cz/w/smatch.git/) complains about the locking in\next4_mb_add_n_trim() from fs/ext4/mballoc.c\n\n  4438          list_for_each_entry_rcu(tmp_pa, \u0026lg-\u003elg_prealloc_list[order],\n  4439                                                  pa_inode_list) {\n  4440                  spin_lock(\u0026tmp_pa-\u003epa_lock);\n  4441                  if (tmp_pa-\u003epa_deleted) {\n  4442                          spin_unlock(\u0026pa-\u003epa_lock);\n  4443                          continue;\n  4444                  }\n\nBrown paper bag time...\n\nReported-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nReviewed-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nReviewed-by: Aneesh Kumar K.V \u003caneesh.kumar@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "a7b19448ddbdc34b2b8fedc048ba154ca798667b",
      "tree": "0a2fb9d4fb875b95f9cfd6ee4789da7e2aad09ad",
      "parents": [
        "86db97c87f744364d5889ca8a4134ca2048b8f83"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Fri Mar 27 19:42:54 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Mar 27 19:42:54 2009 -0400"
      },
      "message": "ext4: fix typo which causes a memory leak on error path\n\nThis was found by smatch (http://repo.or.cz/w/smatch.git/)\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "cc0fb9ad7dbc5a149f4957a0dd6d65881d3d385b",
      "tree": "cbcf88bcd2306acba7d08e1c8e6ea87b76d3eb25",
      "parents": [
        "fe2c8191faa29d7a09f4962198f6dfab973ceec4"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Fri Mar 27 17:16:58 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Mar 27 17:16:58 2009 -0400"
      },
      "message": "ext4: Rename pa_linear to pa_type\n\nImpact: code cleanup\n\nThis patch rename pa_linear to pa_type and add MB_INODE_PA\nand MB_GROUP_PA to indicate inode and group prealloc space.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nReviewed-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "fe2c8191faa29d7a09f4962198f6dfab973ceec4",
      "tree": "ed1b9cf3997fb6e90bf889f028d27e1d3e5f2b63",
      "parents": [
        "563bdd61fe4dbd6b58cf7eb06f8d8f14479ae1dc"
      ],
      "author": {
        "name": "Thiemo Nagel",
        "email": "thiemo.nagel@ph.tum.de",
        "time": "Tue Mar 31 08:36:10 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Mar 31 08:36:10 2009 -0400"
      },
      "message": "ext4: add checks of block references for non-extent inodes\n\nCheck block references in the inode and indorect blocks for non-extent\ninodes to make sure they are valid, and flag an error if they are\ninvalid.\n\nSigned-off-by: Thiemo Nagel \u003cthiemo.nagel@ph.tum.de\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "563bdd61fe4dbd6b58cf7eb06f8d8f14479ae1dc",
      "tree": "a0b768373b06f5c86757076d7de3502c589c4d5c",
      "parents": [
        "7058548cd50e5bda8db086bb2e5c1d82f746d047"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Mar 26 00:06:19 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Mar 26 00:06:19 2009 -0400"
      },
      "message": "ext4: Check for an valid i_mode when reading the inode from disk\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a269eb18294d35874c53311acc2cd0b5ef477ce5",
      "tree": "4da256ba45385688bd7f1e8b638ce76f884c8313",
      "parents": [
        "81a052273998f94b098945c4c313e05246956eb2"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Jan 26 17:04:39 2009 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Mar 26 02:18:36 2009 +0100"
      },
      "message": "ext4: Use lowercase names of quota functions\n\nUse lowercase names of quota functions instead of old uppercase ones.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nAcked-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nCC: linux-ext4@vger.kernel.org\n"
    },
    {
      "commit": "60e58e0f30e723464c2a7d34b71b8675566c572d",
      "tree": "2797ae1bccdad12d53c989a6dccea1c8ffd2bce3",
      "parents": [
        "643d00ccc311664188c8209bf8b596a30e139c3a"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Thu Jan 22 18:13:05 2009 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Mar 26 02:18:34 2009 +0100"
      },
      "message": "ext4: quota reservation for delayed allocation\n\nUses quota reservation/claim/release to handle quota properly for delayed\nallocation in the three steps: 1) quotas are reserved when data being copied\nto cache when block allocation is defered 2) when new blocks are allocated.\nreserved quotas are converted to the real allocated quota, 2) over-booked\nquotas for metadata blocks are released back.\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nAcked-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "edf7245362f7b8b8c76c4a6cad3604bf80884848",
      "tree": "e5a78aeac197c945e1ef6c1321b3ec5dd78378e7",
      "parents": [
        "a219ce3748bbc596cec85c44754b3f6b994f1e1d"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Jan 12 19:05:26 2009 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Mar 26 02:18:34 2009 +0100"
      },
      "message": "ext4: Remove unnecessary quota functions\n\next4_dquot_initialize() and ext4_dquot_drop() is no longer\nneeded because of modified quota locking.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "d33a1976fbee1ee321d6f014333d8f03a39d526c",
      "tree": "9cc0de162cd0cba81d08ea1d0e505be6b2d54361",
      "parents": [
        "8d03c7a0c550e7ab24cadcef5e66656bfadec8b9"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Mon Mar 16 23:25:40 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Mar 16 23:25:40 2009 -0400"
      },
      "message": "ext4: fix bb_prealloc_list corruption due to wrong group locking\n\nThis is for Red Hat bug 490026: EXT4 panic, list corruption in\next4_mb_new_inode_pa\n\next4_lock_group(sb, group) is supposed to protect this list for\neach group, and a common code flow to remove an album is like\nthis:\n\n    ext4_get_group_no_and_offset(sb, pa-\u003epa_pstart, \u0026grp, NULL);\n    ext4_lock_group(sb, grp);\n    list_del(\u0026pa-\u003epa_group_list);\n    ext4_unlock_group(sb, grp);\n\nso it\u0027s critical that we get the right group number back for\nthis prealloc context, to lock the right group (the one \nassociated with this pa) and prevent concurrent list manipulation.\n\nhowever, ext4_mb_put_pa() passes in (pa-\u003epa_pstart - 1) with a \ncomment, \"-1 is to protect from crossing allocation group\".\n\nThis makes sense for the group_pa, where pa_pstart is advanced\nby the length which has been used (in ext4_mb_release_context()),\nand when the entire length has been used, pa_pstart has been\nadvanced to the first block of the next group.\n\nHowever, for inode_pa, pa_pstart is never advanced; it\u0027s just\nset once to the first block in the group and not moved after\nthat.  So in this case, if we subtract one in ext4_mb_put_pa(),\nwe are actually locking the *previous* group, and opening the\nrace with the other threads which do not subtract off the extra\nblock.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "afd4672dc7610b7feef5190168aa917cc2e417e4",
      "tree": "53a3aa709232b00473c8da70b792b350150956ff",
      "parents": [
        "7d39db14a42cbd719c7515b9da8f85a2eb6a0633"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Mar 16 23:12:23 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Mar 16 23:12:23 2009 -0400"
      },
      "message": "ext4: Add auto_da_alloc mount option\n\nAdd a mount option which allows the user to disable automatic\nallocation of blocks whose allocation by delayed allocation when the\nfile was originally truncated or when the file is renamed over an\nexisting file.  This feature is intended to save users from the\neffects of naive application writers, but it reduces the effectiveness\nof the delayed allocation code.  This mount option disables this\nsafety feature, which may be desirable for prodcutions systems where\nthe risk of unclean shutdowns or unexpected system crashes is low.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "8d03c7a0c550e7ab24cadcef5e66656bfadec8b9",
      "tree": "1fce7a08eb712e9b895ca39786e6f5bef1e632f7",
      "parents": [
        "2842c3b5449f31470b61db716f1926b594fb6156"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Sat Mar 14 11:51:46 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Mar 14 11:51:46 2009 -0400"
      },
      "message": "ext4: fix bogus BUG_ONs in in mballoc code\n\nThiemo Nagel reported that:\n\n# dd if\u003d/dev/zero of\u003dimage.ext4 bs\u003d1M count\u003d2\n# mkfs.ext4 -v -F -b 1024 -m 0 -g 512 -G 4 -I 128 -N 1 \\\n  -O large_file,dir_index,flex_bg,extent,sparse_super image.ext4\n# mount -o loop image.ext4 mnt/\n# dd if\u003d/dev/zero of\u003dmnt/file\n\noopsed, with a BUG_ON in ext4_mb_normalize_request because\nsize \u003d\u003d EXT4_BLOCKS_PER_GROUP\n\nIt appears to me (esp. after talking to Andreas) that the BUG_ON\nis bogus; a request of exactly EXT4_BLOCKS_PER_GROUP should\nbe allowed, though larger sizes do indicate a problem.\n\nFix that an another (apparently rare) codepath with a similar check.\n\nReported-by: Thiemo Nagel \u003cthiemo.nagel@ph.tum.de\u003e\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "2842c3b5449f31470b61db716f1926b594fb6156",
      "tree": "d32d76a498621a00d961273a15a6e70b7f9db78d",
      "parents": [
        "395a87bfefbc400011417e9eaae33169f9f036c0"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Mar 12 12:20:01 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Mar 12 12:20:01 2009 -0400"
      },
      "message": "ext4: Print the find_group_flex() warning only once\n\nThis is a short-term warning, and even printk_ratelimit() can result\nin too much noise in system logs.  So only print it once as a warning.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    }
  ],
  "next": "395a87bfefbc400011417e9eaae33169f9f036c0"
}
