)]}'
{
  "log": [
    {
      "commit": "0edeb71dc9133bfb505d3bf59642e07cd936613e",
      "tree": "bcb68e2676d9bba1e4e4e28fb1ba8d382caf26eb",
      "parents": [
        "b82e384c7bb9a19036b4daf58fa216df7cd48aa0"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Mon Oct 31 17:30:44 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Oct 31 17:30:44 2011 -0400"
      },
      "message": "ext4: Create helper function for EXT4_IO_END_UNWRITTEN and i_aiodio_unwritten\n\nEXT4_IO_END_UNWRITTEN flag set and the increase of i_aiodio_unwritten\nshould be done simultaneously since ext4_end_io_nolock always clear\nthe flag and decrease the counter in the same time.\n\nWe have found some bugs that the flag is set while leaving\ni_aiodio_unwritten unchanged(commit 32c80b32c053d). So this patch just tries\nto create a helper function to wrap them to avoid any future bug.\nThe idea is inspired by Eric.\n\nCc: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "b82e384c7bb9a19036b4daf58fa216df7cd48aa0",
      "tree": "42bde122000b3bf3adf7eaa0328e0fdafdb3b5fd",
      "parents": [
        "4e298021216727cc27017c5032ade86167c66256"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Oct 31 10:56:32 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Oct 31 10:56:32 2011 -0400"
      },
      "message": "ext4: optimize locking for end_io extent conversion\n\nNow that we are doing the locking correctly, we need to grab the\ni_completed_io_lock() twice per end_io.  We can clean this up by\nremoving the structure from the i_complted_io_list, and use this as\nthe locking mechanism to prevent ext4_flush_completed_IO() racing\nagainst ext4_end_io_work(), instead of clearing the\nEXT4_IO_END_UNWRITTEN in io-\u003eflag.\n\nIn addition, if the ext4_convert_unwritten_extents() returns an error,\nwe no longer keep the end_io structure on the linked list.  This\ndoesn\u0027t help, because it tends to lock up the file system and wedges\nthe system.  That\u0027s one way to call attention to the problem, but it\ndoesn\u0027t help the overall robustness of the system.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "4e298021216727cc27017c5032ade86167c66256",
      "tree": "e50ab2e0747252c200773fc3e2a5bd885f85a30c",
      "parents": [
        "d73d5046a72467d4510825b99e2269e09ad80e15"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Oct 30 18:41:19 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Oct 30 18:41:19 2011 -0400"
      },
      "message": "ext4: remove unnecessary call to waitqueue_active()\n\nThe usage of waitqueue_active() is not necessary, and introduces (I\nbelieve) a hard-to-hit race.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d73d5046a72467d4510825b99e2269e09ad80e15",
      "tree": "4ac8b5729e1aeffe8348557a7f77da1791c268cc",
      "parents": [
        "6d6a435190bdf2e04c9465cde5bdc3ac68cf11a4"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Sun Oct 30 18:26:08 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Oct 30 18:26:08 2011 -0400"
      },
      "message": "ext4: Use correct locking for ext4_end_io_nolock()\n\nWe must hold i_completed_io_lock when manipulating anything on the\ni_completed_io_list linked list.  This includes io-\u003elock, which we\nwere checking in ext4_end_io_nolock().\n\nSo move this check to ext4_end_io_work().  This also has the bonus of\navoiding extra work if it is already done without needing to take the\nmutex.\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "6d6a435190bdf2e04c9465cde5bdc3ac68cf11a4",
      "tree": "d20f0dc543e58f424f782ba70648c88b7fb0f3e5",
      "parents": [
        "e7b319e39776bd0e9c0c7855b023dafed2c93d27"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Sat Oct 29 10:15:35 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Oct 29 10:15:35 2011 -0400"
      },
      "message": "ext4: fix race in xattr block allocation path\n\nCeph users reported that when using Ceph on ext4, the filesystem\nwould often become corrupted, containing inodes with incorrect\ni_blocks counters.\n\nI managed to reproduce this with a very hacked-up \"streamtest\"\nbinary from the Ceph tree.\n\nCeph is doing a lot of xattr writes, to out-of-inode blocks.\nThere is also another thread which does sync_file_range and close,\nof the same files.  The problem appears to happen due to this race:\n\nsync/flush thread               xattr-set thread\n-----------------               ----------------\n\ndo_writepages                   ext4_xattr_set\next4_da_writepages              ext4_xattr_set_handle\nmpage_da_map_blocks             ext4_xattr_block_set\n        set DELALLOC_RESERVE\n                                ext4_new_meta_blocks\n                                        ext4_mb_new_blocks\n                                                if (!i_delalloc_reserved_flag)\n                                                        vfs_dq_alloc_block\next4_get_blocks\n\tdown_write(i_data_sem)\n        set i_delalloc_reserved_flag\n\t...\n\tup_write(i_data_sem)\n                                        if (i_delalloc_reserved_flag)\n                                                vfs_dq_alloc_block_nofail\n\n\nIn other words, the sync/flush thread pops in and sets\ni_delalloc_reserved_flag on the inode, which makes the xattr thread\nthink that it\u0027s in a delalloc path in ext4_new_meta_blocks(),\nand add the block for a second time, after already having added\nit once in the !i_delalloc_reserved_flag case in ext4_mb_new_blocks\n\nThe real problem is that we shouldn\u0027t be using the DELALLOC_RESERVED\nstate flag, and instead we should be passing\nEXT4_GET_BLOCKS_DELALLOC_RESERVE down to ext4_map_blocks() instead of\nusing an inode state flag.  We\u0027ll fix this for now with using\ni_data_sem to prevent this race, but this is really not the right way\nto fix things.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "e7b319e39776bd0e9c0c7855b023dafed2c93d27",
      "tree": "f8b52990697e2111baf7fd3f5c92ab17c62024b3",
      "parents": [
        "02dc62fba89eaee0157752c5f1ba811ef3156e00"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Sat Oct 29 09:39:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Oct 29 09:39:51 2011 -0400"
      },
      "message": "ext4: trace punch_hole correctly in ext4_ext_map_blocks\n\nWhen ext4_ext_map_blocks() is called by punch_hole, trace should\ntrace blocks punched out.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "02dc62fba89eaee0157752c5f1ba811ef3156e00",
      "tree": "d1f8ba664676570fbd6354a8299b0703901a760d",
      "parents": [
        "81fdbb4a8d34242f0ed048395c4ddc910f1dffbe"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Sat Oct 29 09:29:11 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Oct 29 09:29:11 2011 -0400"
      },
      "message": "ext4: clean up AGGRESSIVE_TEST code\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "81fdbb4a8d34242f0ed048395c4ddc910f1dffbe",
      "tree": "1c7d4050d953d24388e1f0f35e48b8d08fa0bd64",
      "parents": [
        "5cb81dabcc28863e7d04e6fd9ede154bd8459c14"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Sat Oct 29 09:23:38 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Oct 29 09:23:38 2011 -0400"
      },
      "message": "ext4: move variables to their scope\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5cb81dabcc28863e7d04e6fd9ede154bd8459c14",
      "tree": "704df9fffdc243449dc5eba697cec133162ee1bf",
      "parents": [
        "fba90ffee813e2425feb9a57c532b3d297af18c3"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Sat Oct 29 09:05:00 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Oct 29 09:05:00 2011 -0400"
      },
      "message": "ext4: fix quota accounting during migration\n\nThe tmp_inode should have same uid/gid as the original inode.\nOtherwise new metadata blocks will be accounted to wrong quota-id,\nwhich will result in a quota leak after the inode migration is\ncompleted.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "fba90ffee813e2425feb9a57c532b3d297af18c3",
      "tree": "d208361cfec8a3a5a1bbebb90d7f50f6707d99ec",
      "parents": [
        "6cdbb0effc2f511ced23e46f2117e4b31d3d4a50"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Sat Oct 29 09:03:00 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Oct 29 09:03:00 2011 -0400"
      },
      "message": "ext4: migrate cleanup\n\nThis patch cleanup code a bit, actual logic not changed\n- Move current block pointer to migrate_structure, let\u0027s all\n  walk info will be in one structure.\n- Get rid of usless null ind-block ptr checks, caller already\n  does that check.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "6cdbb0effc2f511ced23e46f2117e4b31d3d4a50",
      "tree": "a440c35498abfd171b619a398f1cee1b62be8219",
      "parents": [
        "80e675f906db54eb1ce3a9555cee5f45b5b72ab2"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Oct 29 08:24:18 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Oct 29 08:24:18 2011 -0400"
      },
      "message": "fs: optimize out 16 bytes worth of padding in struct inode\n\nRearrange the fields in struct inode so that on an x86_64 system,\nfields that require 8-byte alignment don\u0027t end up causing 4-byte holes\nin the structure.  It reduces the size of struct inode from 568 bytes\nto 552 bytes.\n\nAlso move the fields protected by i_lock (i_blocks, i_bytes, and\ni_size) into the same cache line as i_lock.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "80e675f906db54eb1ce3a9555cee5f45b5b72ab2",
      "tree": "b9bd012caf69c479a946b467c051f505caa1f593",
      "parents": [
        "6f91bc5fda82d2c49b4f7fb29424cf6a3c7574bc"
      ],
      "author": {
        "name": "Eric Gouriou",
        "email": "egouriou@google.com",
        "time": "Thu Oct 27 11:52:18 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 27 11:52:18 2011 -0400"
      },
      "message": "ext4: optimize memmmove lengths in extent/index insertions\n\next4_ext_insert_extent() (respectively ext4_ext_insert_index())\nwas using EXT_MAX_EXTENT() (resp. EXT_MAX_INDEX()) to determine\nhow many entries needed to be moved beyond the insertion point.\nIn practice this means that (320 - I) * 24 bytes were memmove()\u0027d\nwhen I is the insertion point, rather than (#entries - I) * 24 bytes.\n\nThis patch uses EXT_LAST_EXTENT() (resp. EXT_LAST_INDEX()) instead\nto only move existing entries. The code flow is also simplified\nslightly to highlight similarities and reduce code duplication in\nthe insertion logic.\n\nThis patch reduces system CPU consumption by over 25% on a 4kB\nsynchronous append DIO write workload when used with the\npre-2.6.39 x86_64 memmove() implementation. With the much faster\n2.6.39 memmove() implementation we still see a decrease in\nsystem CPU usage between 2% and 7%.\n\nNote that the ext_debug() output changes with this patch, splitting\nsome log information between entries. Users of the ext_debug() output\nshould note that the \"move %d\" units changed from reporting the number\nof bytes moved to reporting the number of entries moved.\n\nSigned-off-by: Eric Gouriou \u003cegouriou@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "6f91bc5fda82d2c49b4f7fb29424cf6a3c7574bc",
      "tree": "e5670070f007c4ad5300e93a4e36fa9a802e2bd9",
      "parents": [
        "446066724c3629664e29942a00b0aee0d6b1663a"
      ],
      "author": {
        "name": "Eric Gouriou",
        "email": "egouriou@google.com",
        "time": "Thu Oct 27 11:43:23 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 27 11:43:23 2011 -0400"
      },
      "message": "ext4: optimize ext4_ext_convert_to_initialized()\n\nThis patch introduces a fast path in ext4_ext_convert_to_initialized()\nfor the case when the conversion can be performed by transferring\nthe newly initialized blocks from the uninitialized extent into\nan adjacent initialized extent. Doing so removes the expensive\ninvocations of memmove() which occur during extent insertion and\nthe subsequent merge.\n\nIn practice this should be the common case for clients performing\nappend writes into files pre-allocated via\nfallocate(FALLOC_FL_KEEP_SIZE). In such a workload performed via\ndirect IO and when using a suboptimal implementation of memmove()\n(x86_64 prior to the 2.6.39 rewrite), this patch reduces kernel CPU\nconsumption by 32%.\n\nTwo new trace points are added to ext4_ext_convert_to_initialized()\nto offer visibility into its operations. No exit trace point has\nbeen added due to the multiplicity of return points. This can be\nrevisited once the upstream cleanup is backported.\n\nSigned-off-by: Eric Gouriou \u003cegouriou@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "446066724c3629664e29942a00b0aee0d6b1663a",
      "tree": "277cae3f42649cdd32b4841949e74c5cf9212f1f",
      "parents": [
        "44705754610dbc63503bc7679ff9d9f84978a76f"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Oct 27 04:38:18 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 27 04:38:18 2011 -0400"
      },
      "message": "jdb/jbd2: factor out common functions from the jbd[2] header files\n\nThe state bits and the lock functions of jbd and jbd2 are\nidentical.  Share them.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "44705754610dbc63503bc7679ff9d9f84978a76f",
      "tree": "b3b58dbc315562ef16f5382ef2212106e7ce6938",
      "parents": [
        "b3ff05690845911cc40387176f0bc5a7af9ef3ff"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Thu Oct 27 04:05:13 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 27 04:05:13 2011 -0400"
      },
      "message": "jbd2: fix build when CONFIG_BUG is not enabled\n\nFix build error when CONFIG_BUG is not enabled:\n\nfs/jbd2/transaction.c:1175:3: error: implicit declaration of function \u0027__WARN\u0027\n\nby changing __WARN() to WARN_ON(), as suggested by\nArnaud Lacombe \u003clacombar@gmail.com\u003e.\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Arnaud Lacombe \u003clacombar@gmail.com\u003e\n"
    },
    {
      "commit": "b3ff05690845911cc40387176f0bc5a7af9ef3ff",
      "tree": "9ed6230ae4616d67d85aed9e9b8dc6477642312c",
      "parents": [
        "0a10da73e1fa6fb9b45f1166011ff3b04c27c010"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Wed Oct 26 11:08:39 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 26 11:08:39 2011 -0400"
      },
      "message": "ext4: don\u0027t check io-\u003eflag when setting EXT4_STATE_DIO_UNWRITTEN inode state\n\nWhen we want to convert the unitialized extent in direct write, we can\neither do it in ext4_end_io_nolock(AIO case) or in\next4_ext_direct_IO(non AIO case) and EXT4_I(inode)-\u003ecur_aio_dio is a\nguard for ext4_ext_map_blocks to find the right case.  In e9e3bcecf,\nwe mistakenly change it by:\n\n-\t\t\tif (io)\n+\t\t\tif (io \u0026\u0026 !(io-\u003eflag \u0026 EXT4_IO_END_UNWRITTEN)) {\n \t\t\t\tio-\u003eflag \u003d EXT4_IO_END_UNWRITTEN;\n-\t\t\telse\n+\t\t\t\tatomic_inc(\u0026EXT4_I(inode)-\u003ei_aiodio_unwritten);\n+\t\t\t} else\n \t\t\t\text4_set_inode_state(inode,\n \t\t\t\t\t\t     EXT4_STATE_DIO_UNWRITTEN);\n\nSo now if we map 2 blocks, and the first one set the\nEXT_IO_END_UNWRITTEN, the 2nd mapping will set inode state because of\nthe check for the flag. This is wrong.\n\nCc: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0a10da73e1fa6fb9b45f1166011ff3b04c27c010",
      "tree": "d72a254eb5a9b983e60f6c8b6b1807c0139f123f",
      "parents": [
        "b051d8dc4e1f011e1b0543a875f5861be5d90222"
      ],
      "author": {
        "name": "Robin Dong",
        "email": "sanbai@taobao.com",
        "time": "Wed Oct 26 08:48:54 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 26 08:48:54 2011 -0400"
      },
      "message": "ext4: fix a wrong comment in __mb_check_buddy()\n\nThe comment says the bit should be 0, but the after code assert the\nbit to be 1.  This makes people confused, so fix it.\n\nSigned-off-by: Robin Dong \u003csanbai@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "b051d8dc4e1f011e1b0543a875f5861be5d90222",
      "tree": "3995e217a162f4d1882f6111ac2f1a8dca64c211",
      "parents": [
        "66a83cde47deb4e8874539326e12e88ed82158d3"
      ],
      "author": {
        "name": "Robin Dong",
        "email": "sanbai@taobao.com",
        "time": "Wed Oct 26 05:30:30 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 26 05:30:30 2011 -0400"
      },
      "message": "ext4: remove unused variable in mb_find_extent()\n\nThe variable \u0027ord\u0027 in function mb_find_extent() is redundant, so\nremove it.\n\nSigned-off-by: Robin Dong \u003csanbai@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "66a83cde47deb4e8874539326e12e88ed82158d3",
      "tree": "1edcff9e419358784db22b81a82c231f6aebe25f",
      "parents": [
        "ebbe027797f67d34708ccfabdb129886d549f9ce"
      ],
      "author": {
        "name": "Robin Dong",
        "email": "sanbai@taobao.com",
        "time": "Wed Oct 26 05:29:21 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 26 05:29:21 2011 -0400"
      },
      "message": "ext4: remove unused variable in ext4_mb_generate_from_pa()\n\nThe variable \u0027count\u0027 in function ext4_mb_generate_from_pa() looks\nuseless, so remove it.\n\nSigned-off-by: Robin Dong \u003csanbai@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "ebbe027797f67d34708ccfabdb129886d549f9ce",
      "tree": "0195f72d056bc00abd71fce86ce3d6507e1abe76",
      "parents": [
        "fcbb5515825f1bb20b7a6f75ec48bee61416f879"
      ],
      "author": {
        "name": "Robin Dong",
        "email": "sanbai@taobao.com",
        "time": "Wed Oct 26 05:14:27 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 26 05:14:27 2011 -0400"
      },
      "message": "ext4: use stream-alloc when mb_group_prealloc set to zero\n\nThe kernel will crash on \n\next4_mb_mark_diskspace_used:\n\tBUG_ON(ac-\u003eac_b_ex.fe_len \u003c\u003d 0);\n\nafter we set /sys/fs/ext4/sda/mb_group_prealloc to zero and create new files in an ext4 filesystem.\n\nThe reason is: ac_b_ex.fe_len also set to zero(mb_group_prealloc) in ext4_mb_normalize_group_request\nbecause the ac_flags contains EXT4_MB_HINT_GROUP_ALLOC.\n\nI think when someone set mb_group_prealloc to zero, it means DO NOT USE GROUP PREALLOCATION,\nso we should set alloc-strategy to STREAM in this case.\n\nSigned-off-by: Robin Dong \u003csanbai@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "fcbb5515825f1bb20b7a6f75ec48bee61416f879",
      "tree": "1fbb172370314beb24129edb3d5e481d22bf7c76",
      "parents": [
        "6f8ff537266ee5396c920fb0c842a21df3055ff3"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Wed Oct 26 05:00:19 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 26 05:00:19 2011 -0400"
      },
      "message": "ext4: let ext4_page_mkwrite stop started handle in failure\n\nThe started journal handle should be stopped in failure case.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "6f8ff537266ee5396c920fb0c842a21df3055ff3",
      "tree": "a024979a4e8f718289e9bf36fc165b96b68d6209",
      "parents": [
        "f85b287a01237857a50c93868231f7e831581a27"
      ],
      "author": {
        "name": "Curt Wohlgemuth",
        "email": "curtw@google.com",
        "time": "Wed Oct 26 04:38:59 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 26 04:38:59 2011 -0400"
      },
      "message": "ext4: handle NULL p_ext in ext4_ext_next_allocated_block()\n\nIn ext4_ext_next_allocated_block(), the path[depth] might\nhave a p_ext that is NULL -- see ext4_ext_binsearch().  In\nsuch a case, dereferencing it will crash the machine.\n\nThis patch checks for p_ext \u003d\u003d NULL in\next4_ext_next_allocated_block() before dereferencinging it.\n\nTested using a hand-crafted an inode with eh_entries \u003d\u003d 0 in\nan extent block, verified that running FIEMAP on it crashes\nwithout this patch, works fine with it.\n\nSigned-off-by: Curt Wohlgemuth \u003ccurtw@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f85b287a01237857a50c93868231f7e831581a27",
      "tree": "370cc4ce183e6321192ddd60b2a1e056932a235d",
      "parents": [
        "665436175c3ca9d35f135e1ba6bdd63745cff08a"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Wed Oct 26 03:42:36 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 26 03:42:36 2011 -0400"
      },
      "message": "ext4: error handling fix in ext4_ext_convert_to_initialized()\n\nWhen allocated is unsigned it breaks the error handling at the end\nof the function when we call:\n\tallocated \u003d ext4_split_extent(...);\n\tif (allocated \u003c 0)\n\t\terr \u003d allocated;\n\nI\u0027ve made it a signed int instead of unsigned.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "665436175c3ca9d35f135e1ba6bdd63745cff08a",
      "tree": "79202f22b3b3f9dc4fc71e2b7e34d056c0f5ee5c",
      "parents": [
        "909a4cf1ffe4b875c87abf38239a9bfd25167e0c"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Wed Oct 26 03:32:07 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 26 03:32:07 2011 -0400"
      },
      "message": "ext4: use ext4_reserve_inode_write in ext4_xattr_set_handle\n\next4_mark_iloc_dirty() says:\n\n * The caller must have previously called ext4_reserve_inode_write().\n * Give this, we know that the caller already has write access to iloc-\u003ebh.\n\next4_xattr_set_handle, however, just open-codes it.  May as well use\nthe helper function for consistency.\n\nNo bug here, just tidiness.\n\n(Note: on cleanup path, ext4_reserve_inode_write sets\nthe bh to NULL if it returns an error, and brelse() of \na null bh is handled gracefully).\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "909a4cf1ffe4b875c87abf38239a9bfd25167e0c",
      "tree": "f29e8150d7f4b840b1cc6cd143a3d957604116b9",
      "parents": [
        "cf8039036a6e9c5f7144841925f212a957faf1aa"
      ],
      "author": {
        "name": "Andreas Dilger",
        "email": "adilger@whamcloud.com",
        "time": "Wed Oct 26 03:22:31 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 26 03:22:31 2011 -0400"
      },
      "message": "ext4: avoid setting directory i_nlink to zero\n\nIf a directory with more than EXT4_LINK_MAX subdirectories, the nlink\ncount is set to 1.  Subsequently, if any subdirectories are deleted,\next4_dec_count() decrements the i_nlink count, which may go to 0\ntemporarily before being incremented back to 1.\n\nWhile this is done under i_mutex, which prevents races for directory\nand inode operations that check i_nlink, the temporary i_nlink \u003d\u003d 0\ncase is exposed to userspace via stat() and similar calls that do not\nhold i_mutex.\n\nInstead, change the code to not decrement i_nlink count for any\ndirectories that do not already have i_nlink larger than 2.\n\nReported-by: Cliff White \u003ccliffw@whamcloud.com\u003e\nReviewed-by: Johann Lombardi \u003cjohann@whamcloud.com\u003e\nSigned-off-by: Andreas Dilger \u003cadilger@whamcloud.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "cf8039036a6e9c5f7144841925f212a957faf1aa",
      "tree": "660c82cd18b64ba27d84edd13336ac42efc04040",
      "parents": [
        "a4e5d88b1b24827f4f6a3cba43228936a67d81ba"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Tue Oct 25 09:18:41 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Oct 25 09:18:41 2011 -0400"
      },
      "message": "ext4: prevent stack overrun in ext4_file_open\n\nIn ext4_file_open, the filesystem records the mountpoint of the first\nfile that is opened after mounting the filesystem.  It does this by\nallocating a 64-byte stack buffer, calling d_path() to grab the mount\npoint through which this file was accessed, and then memcpy()ing 64\nbytes into the superblock\u0027s s_last_mounted field, starting from the\nreturn value of d_path(), which is stored as \"cp\".  However, if cp \u003e\nbuf (which it frequently is since path components are prepended\nstarting at the end of buf) then we can end up copying stack data into\nthe superblock.\n\nWriting stack variables into the superblock doesn\u0027t sound like a great\nidea, so use strlcpy instead.  Andi Kleen suggested using strlcpy\ninstead of strncpy.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a4e5d88b1b24827f4f6a3cba43228936a67d81ba",
      "tree": "0f5b0309f290f5fc23478794c6f4adcd7c18896a",
      "parents": [
        "750c9c47a5f9daa88333ac435a1afe4d4b428230"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Tue Oct 25 08:15:12 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Oct 25 08:15:12 2011 -0400"
      },
      "message": "ext4: update EOFBLOCKS flag on fallocate properly\n\nEOFBLOCK_FL should be updated if called w/o FALLOCATE_FL_KEEP_SIZE\nCurrently it happens only if new extent was allocated.\n\nTESTCASE:\nfallocate test_file -n -l4096\nfallocate test_file -l4096\nLast fallocate cmd has updated size, but keept EOFBLOCK_FL set. And\nfsck will complain about that.\n\nAlso remove ping pong in ext4_fallocate() in case of new extents,\nwhere ext4_ext_map_blocks() clear EOFBLOCKS bit, and later\next4_falloc_update_inode() restore it again.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "750c9c47a5f9daa88333ac435a1afe4d4b428230",
      "tree": "5782bce0abf292317f0f8a176c23d1dca822a985",
      "parents": [
        "1939dd84b3f52e9c8d1b46dffae2058f16a3ff6a"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Tue Oct 25 05:35:05 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Oct 25 05:35:05 2011 -0400"
      },
      "message": "ext4: remove messy logic from ext4_ext_rm_leaf\n\n- Both callers(truncate and punch_hole) already aligned left end point\n  so we no longer need split logic here.\n- Remove dead duplicated code.\n- Call ext4_ext_dirty only after we have updated eh_entries, otherwise\n  we\u0027ll loose entries update. Regression caused by d583fb87a3ff0\n  266\u0027th testcase in xfstests (http://patchwork.ozlabs.org/patch/120872)\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "1939dd84b3f52e9c8d1b46dffae2058f16a3ff6a",
      "tree": "f1b30614ea4c4e991abb279c9d7d181e207c7148",
      "parents": [
        "45dc63e7d8412546567399b94caeb683af58843e"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Sat Oct 22 01:26:05 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Oct 22 01:26:05 2011 -0400"
      },
      "message": "ext4: cleanup ext4_ext_grow_indepth code\n\nCurrently code make an impression what grow procedure is very complicated\nand some mythical paths, blocks are involved. But in fact grow in depth\nit relatively simple procedure:\n 1) Just create new meta block and copy root data to that block.\n 2) Convert root from extent to index if old depth \u003d\u003d 0\n 3) Update root block pointer\n\nThis patch does:\n - Reorganize code to make it more self explanatory\n - Do not pass path parameter to new_meta_block() in order to\n   provoke allocation from inode\u0027s group because top-level block\n   should site closer to it\u0027s inode, but not to leaf data block.\n\n   [ This happens anyway, due to logic in mballoc; we should drop\n     the path parameter from new_meta_block() entirely.  -- tytso ]\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "45dc63e7d8412546567399b94caeb683af58843e",
      "tree": "62362154d15ef26f8fe0d206004b2b6e247e3c79",
      "parents": [
        "8de49e674a1133ab8998914a6e933ceb4b5f4b07"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Oct 20 20:07:23 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 20 20:07:23 2011 -0400"
      },
      "message": "ext4: Allow quota file use root reservation\n\nQuota file is fs\u0027s metadata, so it is reasonable  to permit use\nroot resevation if necessary. This patch fix 265\u0027th xfstest failure\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "8de49e674a1133ab8998914a6e933ceb4b5f4b07",
      "tree": "19d7d5de54b166f0d4e0ea9f57d6bcf0b451e52b",
      "parents": [
        "09e0834fb0ce1ea2a63885177015bd5d7d2bc22d"
      ],
      "author": {
        "name": "Kazuya Mio",
        "email": "k-mio@sx.jp.nec.com",
        "time": "Thu Oct 20 19:23:08 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 20 19:23:08 2011 -0400"
      },
      "message": "ext4: fix the deadlock in mpage_da_map_and_submit()\n\nIf ext4_jbd2_file_inode() in mpage_da_map_and_submit() fails due to\njournal abort, this function returns to caller without unlocking the\npage.  It leads to the deadlock, and the patch fixes this issue by\ncalling mpage_da_submit_io().\n\nSigned-off-by: Kazuya Mio \u003ck-mio@sx.jp.nec.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "09e0834fb0ce1ea2a63885177015bd5d7d2bc22d",
      "tree": "52f8efc4bd21cc93d27cfb9071decc6996065071",
      "parents": [
        "ee90d57e20bd4749dda3b14397392b18b89dc3ef"
      ],
      "author": {
        "name": "Akira Fujita",
        "email": "a-fujita@rs.jp.nec.com",
        "time": "Thu Oct 20 18:56:10 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 20 18:56:10 2011 -0400"
      },
      "message": "ext4: fix deadlock in ext4_ordered_write_end()\n\nIf ext4_jbd2_file_inode() in ext4_ordered_write_end() fails for some\nreasons, this function returns to caller without unlocking the page.\nIt leads to the deadlock, and the patch fixes this issue.\n\nSigned-off-by: Akira Fujita \u003ca-fujita@rs.jp.nec.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "ee90d57e20bd4749dda3b14397392b18b89dc3ef",
      "tree": "907a2b9e6d96b5dc98037568775e04d0c0131dde",
      "parents": [
        "e6705f7c255d1ffae7cd161d0b657296f4dd62fd"
      ],
      "author": {
        "name": "H Hartley Sweeten",
        "email": "hartleys@visionengravers.com",
        "time": "Tue Oct 18 11:01:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Oct 18 11:01:51 2011 -0400"
      },
      "message": "ext4: quiet sparse noise about plain integer as NULL pointer\n\nThe third parameter to ext4_free_blocks is a struct buffer_head *.  This\nparameter should be NULL not 0.\n\nThis quiets the sparse noise:\n\nwarning: Using plain integer as NULL pointer\n\nSigned-off-by: H Hartley Sweeten \u003chsweeten@visionengravers.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "e6705f7c255d1ffae7cd161d0b657296f4dd62fd",
      "tree": "3c604c5c4b5221f794714aa9c8e926726bbb8c6e",
      "parents": [
        "e0cbee3e14195ef07b8ab6ff30930fb93d2e510a"
      ],
      "author": {
        "name": "H Hartley Sweeten",
        "email": "hartleys@visionengravers.com",
        "time": "Tue Oct 18 10:59:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Oct 18 10:59:51 2011 -0400"
      },
      "message": "ext4: add __user decoration to calls of copy_{from,to}_user()\n\nThis quiets the sparse noise:\n\nwarning: incorrect type in argument 2 (different address spaces)\n   expected void const [noderef] \u003casn:1\u003e*from\n   got struct fstrim_range *\u003cnoident\u003e\nwarning: incorrect type in argument 1 (different address spaces)\n   expected void [noderef] \u003casn:1\u003e*to\n   got struct fstrim_range *\u003cnoident\u003e\n\nSigned-off-by: H Hartley Sweeten \u003chsweeten@visionengravers.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "e0cbee3e14195ef07b8ab6ff30930fb93d2e510a",
      "tree": "c1bdcede0da0bbc1f06b3335d5c35ebc8011e72b",
      "parents": [
        "1bce63d1a2a2c8929442b79acd4eab2e3db10a0b"
      ],
      "author": {
        "name": "H Hartley Sweeten",
        "email": "hartleys@visionengravers.com",
        "time": "Tue Oct 18 10:57:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Oct 18 10:57:51 2011 -0400"
      },
      "message": "ext4: functions should not be declared extern\n\nThe function declarations in ext4.h are already marked extern, so it\u0027s\nnot necessary to do so in the .c files.\n\nThis quiets the sparse noise:\n\nwarning: function \u0027ext4_flush_completed_IO\u0027 with external linkage has definition\nwarning: function \u0027ext4_init_inode_table\u0027 with external linkage has definition\n\nSigned-off-by: H Hartley Sweeten \u003chsweeten@visionengravers.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "1bce63d1a2a2c8929442b79acd4eab2e3db10a0b",
      "tree": "2dfdd7f28440bca2ba5932c708f541c8a6a21d06",
      "parents": [
        "f6f96fdb8c2779f9bd8ed7b0b08405b4439c982b"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Tue Oct 18 10:55:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Oct 18 10:55:51 2011 -0400"
      },
      "message": "ext4: add block plug for .writepages\n\nAdd block plug for ext4 .writepages. Though ext4 .writepages\nalready handles request merge very well, block plug is still\nhelpful to reduce block lock contention.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f6f96fdb8c2779f9bd8ed7b0b08405b4439c982b",
      "tree": "310c22fa079a169a824910bd3c3b13464a22c12c",
      "parents": [
        "bdfc230f33a9dab316dcb6be4696ae59e1562e3c"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Tue Oct 18 10:53:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Oct 18 10:53:51 2011 -0400"
      },
      "message": "ext4: Fix comparison endianness problem in MMP initialization\n\nAs part of startup, the MMP initialization code does this:\n\nmmp-\u003emmp_seq \u003d seq \u003d cpu_to_le32(mmp_new_seq());\n\nNext, mmp-\u003emmp_seq is written out to disk, a delay happens, and then\nthe MMP block is read back in and the sequence value is tested:\n\nif (seq !\u003d le32_to_cpu(mmp-\u003emmp_seq)) {\n\t/* fail the mount */\n\nOn a LE system such as x86, the *le32* functions do nothing and this\nworks.  Unfortunately, on a BE system such as ppc64, this comparison\nbecomes:\n\nif (cpu_to_le32(new_seq) !\u003d le32_to_cpu(cpu_to_le32(new_seq)) {\n\t/* fail the mount */\n\nExcept for a few palindromic sequence numbers, this test always causes\nthe mount to fail, which makes MMP filesystems generally unmountable\non ppc64.  The attached patch fixes this situation.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "bdfc230f33a9dab316dcb6be4696ae59e1562e3c",
      "tree": "6e5d3d17ed45f78b6597c42648cd57e0b4520103",
      "parents": [
        "215fc6af739d2dfdcad5496248d0d6302eb8a604"
      ],
      "author": {
        "name": "Nikitas Angelinas",
        "email": "nikitasangelinas@gmail.com",
        "time": "Tue Oct 18 10:51:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Oct 18 10:51:51 2011 -0400"
      },
      "message": "ext4: MMP: fix error message rate-limiting logic in kmmpd\n\nCurrent logic would print an error message only once, and then\n\u0027failed_writes\u0027 would stay at 1.  Rework the loop to increment\n\u0027failed_writes\u0027 and print the error message every\ns_mmp_update_interval * 60 seconds, as intended according to the\ncomment.\n\nSigned-off-by: Nikitas Angelinas \u003cnikitas_angelinas@xyratex.com\u003e\nSigned-off-by: Andrew Perepechko \u003candrew_perepechko@xyratex.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nAcked-by: Andreas Dilger \u003cadilger@dilger.ca\u003e\n"
    },
    {
      "commit": "215fc6af739d2dfdcad5496248d0d6302eb8a604",
      "tree": "919d11683117ec90b623792f475f09017db1f45a",
      "parents": [
        "f472e02669073e4f1a388142bafa0f806fae841c"
      ],
      "author": {
        "name": "Nikitas Angelinas",
        "email": "nikitasangelinas@gmail.com",
        "time": "Tue Oct 18 10:49:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Oct 18 10:49:51 2011 -0400"
      },
      "message": "ext4: MMP: kmmpd should use nodename from init_uts_ns.name, not sysname\n\nsysname holds \"Linux\" by default, i.e. what appears when doing a \"uname\n-s\"; nodename should be used to print the machine\u0027s hostname, i.e. what\nis returned when doing a \"uname -n\" or \"hostname\", and what\ngethostname(2)/sethostname(2) manipulate, in order to notify the\nadministrator of the node which is contending to mount the filesystem.\n\nAcked-by: Andreas Dilger \u003cadilger@dilger.ca\u003e\nSigned-off-by: Nikitas Angelinas \u003cnikitas_angelinas@xyratex.com\u003e\nSigned-off-by: Andrew Perepechko \u003candrew_perepechko@xyratex.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f472e02669073e4f1a388142bafa0f806fae841c",
      "tree": "766f26be99c1ffa5d3f0c93e233a60cc52e74094",
      "parents": [
        "d44651d0f922b7aaeddd9fc04f2f5700a65983dd"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Mon Oct 17 10:13:46 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Oct 17 10:13:46 2011 -0400"
      },
      "message": "ext4: avoid stamping on other memories in ext4_ext_insert_index()\n\nAdd a sanity check to make sure ix hasn\u0027t gone beyond the valid bounds\nof the extent block.\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d44651d0f922b7aaeddd9fc04f2f5700a65983dd",
      "tree": "31387f8acab384d3211903d0abe6232fd7117fe6",
      "parents": [
        "6ee3b2122431fc75015c6114d4749de76422452b"
      ],
      "author": {
        "name": "Fabrice Jouhaud",
        "email": "yargil@free.fr",
        "time": "Sat Oct 08 16:26:03 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Oct 08 16:26:03 2011 -0400"
      },
      "message": "ext4: fix ext4 so it works without CONFIG_PROC_FS\n\nThis fixes a bug which was introduced in dd68314ccf3fb.  The problem\ncame from the test of the return value of proc_mkdir which is always\nfalse without procfs, and this would initialization of ext4.\n\nSigned-off-by: Fabrice Jouhaud \u003cyargil@free.fr\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "6ee3b2122431fc75015c6114d4749de76422452b",
      "tree": "f2e81738f94cde81d1e567e1597f8ce5b97dd0c2",
      "parents": [
        "7fd59c83b05dc1b8af2be4d991ee376f782cd8b0"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Sat Oct 08 16:08:34 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Oct 08 16:08:34 2011 -0400"
      },
      "message": "ext4: use le32_to_cpu for ext4_extent_idx.ei_block in ext4_ext_search_left()\n\next4_extent_idx.e_block is __le32, so use le32_to_cpu() in\next4_ext_search_left().\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7fd59c83b05dc1b8af2be4d991ee376f782cd8b0",
      "tree": "0d320a397b687f822167749afbb11d89d9f21a66",
      "parents": [
        "df3ab17072c31fbd394614711772682f0a956a2c"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Sat Oct 08 15:56:35 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Oct 08 15:56:35 2011 -0400"
      },
      "message": "ext4: remove the obsolete/broken EXT4_IOC_WAIT_FOR_READONLY ioctl\n\nThere are no users of the EXT4_IOC_WAIT_FOR_READONLY ioctl, and it is\nalso broken.  No one sets the set_ro_timer, no one wakes up us and our\nstate is set to TASK_INTERRUPTIBLE not RUNNING.  So remove it.\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "df3ab17072c31fbd394614711772682f0a956a2c",
      "tree": "bb9aa8d05dcbb6de15b79c0afd8c79a854a3d345",
      "parents": [
        "4113c4caa4f355b8ff8b7ff0510c29c9d00d30b3"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Sat Oct 08 15:53:49 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Oct 08 15:53:49 2011 -0400"
      },
      "message": "ext4: fix the comment describing ext4_ext_search_right()\n\nThe comment describing what ext4_ext_search_right() does is incorrect.\nWe return 0 in *phys when *logical is the \u0027largest\u0027 allocated block,\nnot smallest.  \n\nFix a few other typos while we\u0027re at it.\n\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\n"
    },
    {
      "commit": "4113c4caa4f355b8ff8b7ff0510c29c9d00d30b3",
      "tree": "b978be1044d72ab78739edd441385253f6c932ac",
      "parents": [
        "af909a57fde821627282204ba43f27331342bf26"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Sat Oct 08 14:34:47 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Oct 08 14:34:47 2011 -0400"
      },
      "message": "ext4: remove deprecated oldalloc\n\nFor a long time now orlov is the default block allocator in the\next4. It performs better than the old one and no one seems to claim\notherwise so we can safely drop it and make oldalloc and orlov mount\noption deprecated.\n\nThis is a part of the effort to reduce number of ext4 options hence the\ntest matrix.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "af909a57fde821627282204ba43f27331342bf26",
      "tree": "69780ac48b0e572b19771991f989dd9c04bd8f78",
      "parents": [
        "dcf2d804ed6ffe5e942b909ed5e5b74628be6ee4"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Oct 08 14:01:08 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Oct 08 14:01:08 2011 -0400"
      },
      "message": "ext4: documentation: remove acl and user_xattr mount options\n\nAcl and user_xattr mount options are no longer needed since those\nfeatures are enabled by default if configured in (seee commit\nea6633369458992241599c9d9ebadffaeddec164). We can not easily deprecate\nmount options itself (since it is probably too early), but we can\nremove it from documentation first.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "dcf2d804ed6ffe5e942b909ed5e5b74628be6ee4",
      "tree": "a15433ea17d943116c809c1a847e45a387120f19",
      "parents": [
        "7aa0baeaba4afc4fbed7aad2812a1116e6b0adcd"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Thu Oct 06 12:10:11 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 06 12:10:11 2011 -0400"
      },
      "message": "ext4: Free resources in some error path in ext4_fill_super\n\nSome of the error path in ext4_fill_super don\u0027t release the\nresouces properly. So this patch just try to release them\nin the right way.\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7aa0baeaba4afc4fbed7aad2812a1116e6b0adcd",
      "tree": "a7237b599107d0adf137c465734d4b67ad83d6dd",
      "parents": [
        "5356f2615cd558c57a1f7d7528d1ad4de3640d96"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Thu Oct 06 10:22:28 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 06 10:22:28 2011 -0400"
      },
      "message": "ext4: Free resources in ext4_mb_init()\u0027s error paths\n\nIn commit 79a77c5ac, we move ext4_mb_init_backend after the allocation\nof s_locality_group to avoid memory leak in error path, but there are\nstill some other error paths in ext4_mb_init that need to do the same\nwork. So this patch adds all the error patch for ext4_mb_init. And all\nthe pointers are reset to NULL in case the caller may double free them.\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5356f2615cd558c57a1f7d7528d1ad4de3640d96",
      "tree": "e3590bf14d9a21c4eb365105886382bfb1131b95",
      "parents": [
        "d8990240d8c911064447f8aa5a440f9345a6d692"
      ],
      "author": {
        "name": "Aditya Kali",
        "email": "adityakali@google.com",
        "time": "Fri Sep 09 19:20:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:20:51 2011 -0400"
      },
      "message": "ext4: attempt to fix race in bigalloc code path\n\nCurrently, there exists a race between delayed allocated writes and\nthe writeback when bigalloc feature is in use. The race was because we\nwanted to determine what blocks in a cluster are under delayed\nallocation and we were using buffer_delayed(bh) check for it. But, the\nwriteback codepath clears this bit without any synchronization which\nresulted in a race and an ext4 warning similar to:\n\nEXT4-fs (ram1): ext4_da_update_reserve_space: ino 13, used 1 with only 0\n\t\treserved data blocks\n\nThe race existed in two places.\n(1) between ext4_find_delalloc_range() and ext4_map_blocks() when called from\n    writeback code path.\n(2) between ext4_find_delalloc_range() and ext4_da_get_block_prep() (where\n    buffer_delayed(bh) is set.\n\nTo fix (1), this patch introduces a new buffer_head state bit -\nBH_Da_Mapped.  This bit is set under the protection of\nEXT4_I(inode)-\u003ei_data_sem when we have actually mapped the delayed\nallocated blocks during the writeout time. We can now reliably check\nfor this bit inside ext4_find_delalloc_range() to determine whether\nthe reservation for the blocks have already been claimed or not.\n\nTo fix (2), it was necessary to set buffer_delay(bh) under the\nprotection of i_data_sem.  So, I extracted the very beginning of\next4_map_blocks into a new function - ext4_da_map_blocks() - and\nperformed the required setting of bh_delay bit and the quota\nreservation under the protection of i_data_sem.  These two fixes makes\nthe checking of buffer_delay(bh) and buffer_da_mapped(bh) consistent,\nthus removing the race.\n\nTested: I was able to reproduce the problem by running \u0027dd\u0027 and\n\u0027fsync\u0027 in parallel. Also, xfstests sometimes used to reproduce this\nrace. After the fix both my test and xfstests were successful and no\nrace (warning message) was observed.\n\nGoogle-Bug-Id: 4997027\n\nSigned-off-by: Aditya Kali \u003cadityakali@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "d8990240d8c911064447f8aa5a440f9345a6d692",
      "tree": "c12cda27583eb9616d91ec38fdfd79c6eb490bd5",
      "parents": [
        "df55c99dc8ee4c3c886a5edc8a4aa6b131c95afc"
      ],
      "author": {
        "name": "Aditya Kali",
        "email": "adityakali@google.com",
        "time": "Fri Sep 09 19:18:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:18:51 2011 -0400"
      },
      "message": "ext4: add some tracepoints in ext4/extents.c\n\nThis patch adds some tracepoints in ext4/extents.c and updates a tracepoint in\next4/inode.c.\n\nTested: Built and ran the kernel and verified that these tracepoints work.\nAlso ran xfstests.\n\nSigned-off-by: Aditya Kali \u003cadityakali@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n    \n\n"
    },
    {
      "commit": "df55c99dc8ee4c3c886a5edc8a4aa6b131c95afc",
      "tree": "6e5ea5a435659fa2dee7410f0b0196bdaf3a2054",
      "parents": [
        "e7d5f3156e6827970f75ab27ad7eb0155826eb0b"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:16:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:16:51 2011 -0400"
      },
      "message": "ext4: rename ext4_has_free_blocks() to ext4_has_free_clusters()\n\nRename the function so it is more clear what is going on.  Also rename\nthe various variables so it\u0027s clearer what\u0027s happening.\n\nAlso fix a missing blocks to cluster conversion when reading the\nnumber of reserved blocks for root.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "e7d5f3156e6827970f75ab27ad7eb0155826eb0b",
      "tree": "7eab0a0660052e4a3fe1bba57a869138fb29e7f4",
      "parents": [
        "cff1dfd767d1ee3c773fd8b57fe310957e5f8abb"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:14:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:14:51 2011 -0400"
      },
      "message": "ext4: rename ext4_claim_free_blocks() to ext4_claim_free_clusters()\n\nThis function really claims a number of free clusters, not blocks, so\nrename it so it\u0027s clearer what\u0027s going on.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "cff1dfd767d1ee3c773fd8b57fe310957e5f8abb",
      "tree": "ace05de33bb5d1e2062724818d57d89eae66004f",
      "parents": [
        "5dee54372c1ea15ab482b959634cda8c01b042bd"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:12:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:12:51 2011 -0400"
      },
      "message": "ext4: rename ext4_free_blocks_after_init() to ext4_free_clusters_after_init()\n\nThis function really returns the number of clusters after initializing\nan uninitalized block bitmap has been initialized.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5dee54372c1ea15ab482b959634cda8c01b042bd",
      "tree": "512da0144f6a9f86b5817569d0521b60cddee4c9",
      "parents": [
        "021b65bb1e4e4b625c80bbb82651e5e155721ef3"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:10:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:10:51 2011 -0400"
      },
      "message": "ext4: rename ext4_count_free_blocks() to ext4_count_free_clusters()\n\nThis function really counts the free clusters reported in the block\ngroup descriptors, so rename it to reduce confusion.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "021b65bb1e4e4b625c80bbb82651e5e155721ef3",
      "tree": "e1826a0ec395ac2acf46c43113f2c6a64a5165d0",
      "parents": [
        "6f16b60690ba04cf476480a6f19b204e4b95b4a6"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:08:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:08:51 2011 -0400"
      },
      "message": "ext4: Rename ext4_free_blks_{count,set}() to refer to clusters\n\nThe field bg_free_blocks_count_{lo,high} in the block group\ndescriptor has been repurposed to hold the number of free clusters for\nbigalloc functions.  So rename the functions so it makes it easier to\nread and audit the block allocation and block freeing code.\n\nNote: at this point in bigalloc development we doesn\u0027t support\nonline resize, so this also makes it really obvious all of the places\nwe need to fix up to add support for online resize.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "6f16b60690ba04cf476480a6f19b204e4b95b4a6",
      "tree": "dbb3efd3912e0a81ea8f439deb561bfc9fc2a9bd",
      "parents": [
        "7b415bf60f6afb0499fd3dc0ee33444f54e28567"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:06:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:06:51 2011 -0400"
      },
      "message": "ext4: enable mounting bigalloc as read/write\n\nNow that we have implemented all of the changes needed for bigalloc,\nwe can finally enable it!\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7b415bf60f6afb0499fd3dc0ee33444f54e28567",
      "tree": "9c64fef2b8d60ce64865af6e4c2cc6008026e28c",
      "parents": [
        "27baebb849d46d901e756e6502b0a65a62e43771"
      ],
      "author": {
        "name": "Aditya Kali",
        "email": "adityakali@google.com",
        "time": "Fri Sep 09 19:04:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:04:51 2011 -0400"
      },
      "message": "ext4: Fix bigalloc quota accounting and i_blocks value\n\nWith bigalloc changes, the i_blocks value was not correctly set (it was still\nset to number of blocks being used, but in case of bigalloc, we want i_blocks\nto represent the number of clusters being used). Since the quota subsystem sets\nthe i_blocks value, this patch fixes the quota accounting and makes sure that\nthe i_blocks value is set correctly.\n\nSigned-off-by: Aditya Kali \u003cadityakali@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "27baebb849d46d901e756e6502b0a65a62e43771",
      "tree": "ed72a295f62656beb29038358d99902b55b3438f",
      "parents": [
        "f975d6bcc7a698a10cc755115e27d3612dcfe322"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:02:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:02:51 2011 -0400"
      },
      "message": "ext4: tune mballoc\u0027s default group prealloc size for bigalloc file systems\n\nThe default group preallocation size had been previously set to 512\nblocks/clusters, regardless of the block/cluster size.  This is\nprobably too big for large cluster sizes.  So adjust the default so\nthat it is 2 megabytes or 32 clusters, whichever is larger.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f975d6bcc7a698a10cc755115e27d3612dcfe322",
      "tree": "859f688a1962209ef535ca79cf31433c7bc57135",
      "parents": [
        "24aaa8ef4e2b5764ada1fc69787e2fbd4f6276e5"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:00:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:00:51 2011 -0400"
      },
      "message": "ext4: teach ext4_statfs() to deal with clusters if bigalloc is enabled\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "24aaa8ef4e2b5764ada1fc69787e2fbd4f6276e5",
      "tree": "7f83cc8e52b5f2edc5d89d2d1808d0972831f9bf",
      "parents": [
        "5704265188ffe4290ed73b3cb685206c3ed8209d"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:58:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:58:51 2011 -0400"
      },
      "message": "ext4: convert the free_blocks field in s_flex_groups to be free_clusters\n\nConvert the free_blocks to be free_clusters to make the final revised\nbigalloc changes easier to read/understand.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n\n"
    },
    {
      "commit": "5704265188ffe4290ed73b3cb685206c3ed8209d",
      "tree": "6bc51bea59625b2a7c8e4b74bbb66884371f74dd",
      "parents": [
        "0aa060000e83ca3d09ddc446a7174fb0820d99bc"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:56:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:56:51 2011 -0400"
      },
      "message": "ext4: convert s_{dirty,free}blocks_counter to s_{dirty,free}clusters_counter\n\nConvert the percpu counters s_dirtyblocks_counter and\ns_freeblocks_counter in struct ext4_super_info to be\ns_dirtyclusters_counter and s_freeclusters_counter.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0aa060000e83ca3d09ddc446a7174fb0820d99bc",
      "tree": "c80077aed7b1df852d556965e2b36d3c956cdabe",
      "parents": [
        "4d33b1ef10995d7ba6191d67456202c697a92a32"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:54:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:54:51 2011 -0400"
      },
      "message": "ext4: teach ext4_ext_truncate() about the bigalloc feature\n\nWhen we are truncating (as opposed unlinking) a file, we need to worry\nabout partial truncates of a file, especially in the light of sparse\nfiles.  The changes here make sure that arbitrary truncates of sparse\nfiles works correctly.  Yeah, it\u0027s messy.\n\nNote that these functions will need to be revisted when the punch\nioctl is integrated --- in fact this commit will probably have merge\nconflicts with the punch changes which Allison Henders and the IBM LTC\nhave been working on.  I will need to fix this up when either patch\nhits mainline.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "4d33b1ef10995d7ba6191d67456202c697a92a32",
      "tree": "3e47753f9ac48e9f4c80dac0b69bce9fb4ac6f52",
      "parents": [
        "84130193e0e6568dfdfb823f0e1e19aec80aff6e"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:52:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:52:51 2011 -0400"
      },
      "message": "ext4: teach ext4_ext_map_blocks() about the bigalloc feature\n\nIf we need to allocate a new block in ext4_ext_map_blocks(), the\nfunction needs to see if the cluster has already been allocated.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "84130193e0e6568dfdfb823f0e1e19aec80aff6e",
      "tree": "799534ea6cd551ba346e32da2ee2f363851a3257",
      "parents": [
        "53accfa9f819c80056db6f03f9c5cfa4bcba1ed8"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:50:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:50:51 2011 -0400"
      },
      "message": "ext4: teach ext4_free_blocks() about bigalloc and clusters\n\nThe ext4_free_blocks() function now has two new flags that indicate\nwhether a partial cluster at the beginning or the end of the block\nextents should be freed or not.  That will be up the caller (i.e.,\ntruncate), who can figure out whether partial clusters at the\nbeginning or the end of a block range can be freed.\n\nWe also have to update the ext4_mb_free_metadata() and\nrelease_blocks_on_commit() machinery to be cluster-based, since it is\nused by ext4_free_blocks().\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "53accfa9f819c80056db6f03f9c5cfa4bcba1ed8",
      "tree": "a68dcd8ea8d286e07d31d4541311819a0082f78c",
      "parents": [
        "3212a80a58062056bb922811071062be58d8fee1"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:48:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:48:51 2011 -0400"
      },
      "message": "ext4: teach mballoc preallocation code about bigalloc clusters\n\nIn most of mballoc.c, we do everything in units of clusters, since the\nblock allocation bitmaps and buddy bitmaps are all denominated in\nclusters.  The one place where we do deal with absolute block numbers\nis in the code that handles the preallocation regions, since in the\ncase of inode-based preallocation regions, the start of the\npreallocation region can\u0027t be relative to the beginning of the group.\n\nSo this adds a bit of complexity, where pa_pstart and pa_lstart are\nblock numbers, while pa_free, pa_len, and fe_len are denominated in\nunits of clusters.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "3212a80a58062056bb922811071062be58d8fee1",
      "tree": "0ae97cdc351f18e9090c8b33505eabe59c3da21c",
      "parents": [
        "d5b8f31007a93777cfb0603b665858fb7aebebfc"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:46:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:46:51 2011 -0400"
      },
      "message": "ext4: convert block group-relative offsets to use clusters\n\nCertain parts of the ext4 code base, primarily in mballoc.c, use a\nblock group number and offset from the beginning of the block group.\nThis offset is invariably used to index into the allocation bitmap, so\nchange the offset to be denominated in units of clusters.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d5b8f31007a93777cfb0603b665858fb7aebebfc",
      "tree": "19d9dfed9314132302b8e3036a2ada26f9809036",
      "parents": [
        "fd034a84e1ea5c8c8d159cd2089c32e792c269b0"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:44:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:44:51 2011 -0400"
      },
      "message": "ext4: bigalloc changes to block bitmap initialization functions\n\nAdd bigalloc support to ext4_init_block_bitmap() and\next4_free_blocks_after_init().\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "fd034a84e1ea5c8c8d159cd2089c32e792c269b0",
      "tree": "5992d541a005137a57a44921fd1be6311ee841d2",
      "parents": [
        "49f7f9af4bb4d7972f3a35a74877937fec9f622d"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:42:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:42:51 2011 -0400"
      },
      "message": "ext4: split out ext4_free_blocks_after_init()\n\nThe function ext4_free_blocks_after_init() used to be a #define of\next4_init_block_bitmap().  This actually made it difficult to\nunderstand how the function worked, and made it hard make changes to\nsupport clusters.  So as an initial cleanup, I\u0027ve separated out the\nfunctionality of initializing block bitmap from calculating the number\nof free blocks in the new block group.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "49f7f9af4bb4d7972f3a35a74877937fec9f622d",
      "tree": "19ef79ae359e6524a1d8d9d303005c9e5dbf813c",
      "parents": [
        "7137d7a48e2213eb1f6d6529da14c2ed3706b795"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:40:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:40:51 2011 -0400"
      },
      "message": "ext4: factor out block group accounting into functions\n\nThis makes it easier to understand how ext4_init_block_bitmap() works,\nand it will assist when we split out ext4_free_blocks_after_init() in\nthe next commit.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7137d7a48e2213eb1f6d6529da14c2ed3706b795",
      "tree": "7c5c164dc1e505129fefcac5c61b208fa1180a90",
      "parents": [
        "bab08ab9646288f1b0b72a7aaeecdff94bd62c18"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:38:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:38:51 2011 -0400"
      },
      "message": "ext4: convert instances of EXT4_BLOCKS_PER_GROUP to EXT4_CLUSTERS_PER_GROUP\n\nChange the places in fs/ext4/mballoc.c where EXT4_BLOCKS_PER_GROUP are\nused to indicate the number of bits in a block bitmap (which is really\na cluster allocation bitmap in bigalloc file systems).  There are\nstill some places in the ext4 codebase where usage of\nEXT4_BLOCKS_PER_GROUP needs to be audited/fixed, in code paths that\naren\u0027t used given the initial restricted assumptions for bigalloc.\nThese will need to be fixed before we can relax those restrictions.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "bab08ab9646288f1b0b72a7aaeecdff94bd62c18",
      "tree": "e301377f1ce9093a44b2cfb331439e15d79789ed",
      "parents": [
        "281b59959707dfae03ce038cdf231bf4904e170c"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:36:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:36:51 2011 -0400"
      },
      "message": "ext4: enforce bigalloc restrictions (e.g., no online resizing, etc.)\n\nAt least initially if the bigalloc feature is enabled, we will not\nsupport non-extent mapped inodes, online resizing, online defrag, or\nthe FITRIM ioctl.  This simplifies the initial implementation.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "281b59959707dfae03ce038cdf231bf4904e170c",
      "tree": "3a6b36d060a41b19351c29c51d079149cae7511c",
      "parents": [
        "7c2e70879fc0949b4220ee61b7c4553f6976a94d"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:34:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:34:51 2011 -0400"
      },
      "message": "ext4: read-only support for bigalloc file systems\n\nThis adds supports for bigalloc file systems.  It teaches the mount\ncode just enough about bigalloc superblock fields that it will mount\nthe file system without freaking out that the number of blocks per\ngroup is too big.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7c2e70879fc0949b4220ee61b7c4553f6976a94d",
      "tree": "5eea688d4ca50ec27e9cf59144f257e1683cfeb7",
      "parents": [
        "02fac1297eb3f471a27368271aadd285548297b0"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:28:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:28:51 2011 -0400"
      },
      "message": "ext4: add ext4-specific kludge to avoid an oops after the disk disappears\n\nThe del_gendisk() function uninitializes the disk-specific data\nstructures, including the bdi structure, without telling anyone\nelse.  Once this happens, any attempt to call mark_buffer_dirty()\n(for example, by ext4_commit_super), will cause a kernel OOPS.\n\nFix this for now until we can fix things in an architecturally correct\nway.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "02fac1297eb3f471a27368271aadd285548297b0",
      "tree": "d0008f0aa889dba759cb780e8e805b30953083cf",
      "parents": [
        "189e868fa8fdca702eb9db9d8afc46b5cb9144c9"
      ],
      "author": {
        "name": "Allison Henderson",
        "email": "achender@linux.vnet.ibm.com",
        "time": "Tue Sep 06 21:53:01 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Sep 06 21:53:01 2011 -0400"
      },
      "message": "ext4: fix partial page writes\n\nWhile running extended fsx tests to verify the preceeding patches,\na similar bug was also found in the write operation\n\nWhen ever a write operation begins or ends in a hole,\nor extends EOF, the partial page contained in the hole\nor beyond EOF needs to be zeroed out.\n\nTo correct this the new ext4_discard_partial_page_buffers_no_lock\nroutine is used to zero out the partial page, but only for buffer\nheads that are already unmapped.\n\nSigned-off-by: Allison Henderson \u003cachender@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "189e868fa8fdca702eb9db9d8afc46b5cb9144c9",
      "tree": "5b226cfe59cc9351b9d870a5c31cdfe4f5544652",
      "parents": [
        "decbd919f4bb9cb698486880c026c4104b13d3c3"
      ],
      "author": {
        "name": "Allison Henderson",
        "email": "achender@linux.vnet.ibm.com",
        "time": "Tue Sep 06 21:49:44 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Sep 06 21:49:44 2011 -0400"
      },
      "message": "ext4: fix fsx truncate failure\n\nWhile running extended fsx tests to verify the first\ntwo patches, a similar bug was also found in the\ntruncate operation.\n\nThis bug happens because the truncate routine only zeros\nthe unblock aligned portion of the last page.  This means\nthat the block aligned portions of the page appearing after\ni_size are left unzeroed, and the buffer heads still mapped.\n\nThis bug is corrected by using ext4_discard_partial_page_buffers\nin the truncate routine to zero the partial page and unmap\nthe buffer headers.\n\nSigned-off-by: Allison Henderson \u003cachender@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "decbd919f4bb9cb698486880c026c4104b13d3c3",
      "tree": "0181b9bcb627531ddd0601b751f6b968e28cdc9a",
      "parents": [
        "d2159fb7b8bac12684aabdf41d84b56da9f5c062"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Sep 06 02:37:06 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Sep 06 02:37:06 2011 -0400"
      },
      "message": "ext4: only call ext4_jbd2_file_inode when an inode has been extended\n\nIn delayed allocation mode, it\u0027s important to only call\next4_jbd2_file_inode when the file has been extended.  This is\nnecessary to avoid a race which first got introduced in commit\n678aaf481, but which was made much more common with the introduction\nof the \"punch hole\" functionality.  (Especially when dioread_nolock\nwas enabled; when I could reliably reproduce this problem with\nxfstests #74.)\n\nThe race is this: If while trying to writeback a delayed allocation\ninode, there is a need to map delalloc blocks, and we run out of space\nin the journal, *and* at the same time the inode is already on the\ncommitting transaction\u0027s t_inode_list (because for example while doing\nthe punch hole operation, ext4_jbd2_file_inode() is called), then the\ncommit operation will wait for the inode to finish all of its pending\nwritebacks by calling filemap_fdatawait(), but since that inode has\none or more pages with the PageWriteback flag set, the commit\noperation will wait forever, and the so the writeback of the inode can\nnever take place, and the kjournald thread and the writeback thread\nend up waiting for each other --- forever.\n\nIt\u0027s important at this point to recall why an inode is placed on the\nt_inode_list; it is to provide the data\u003dordered guarantees that we\ndon\u0027t end up exposing stale data.  In the case where we are truncating\nor punching a hole in the inode, there is no possibility that stale\ndata could be exposed in the first place, so we don\u0027t need to put the\ninode on the t_inode_list!\n\nThe right long-term fix is to get rid of data\u003dordered mode altogether,\nand only update the extent tree or indirect blocks after the data has\nbeen written.  Until then, this change will also avoid some\nunnecessary waiting in the commit operation.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Allison Henderson \u003cachender@linux.vnet.ibm.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "d2159fb7b8bac12684aabdf41d84b56da9f5c062",
      "tree": "32c061d113405936a3dc37ad47018b88393c1e66",
      "parents": [
        "9ea7a0df63630ad8197716cd313ea66e28906fc0"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Sun Sep 04 10:20:14 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Sep 04 10:20:14 2011 -0400"
      },
      "message": "jbd2: use gfp_t instead of int\n\nThis silences some Sparse warnings:\nfs/jbd2/transaction.c:135:69: warning: incorrect type in argument 2 (different base types)\nfs/jbd2/transaction.c:135:69:    expected restricted gfp_t [usertype] flags\nfs/jbd2/transaction.c:135:69:    got int [signed] gfp_mask\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "9ea7a0df63630ad8197716cd313ea66e28906fc0",
      "tree": "2f9cb8bb3f4c709aa666c7863b496f2757b261fb",
      "parents": [
        "56889787cfa77dfd96f0b3a3e6a4f26c2e4a5134"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Sep 04 10:18:14 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Sep 04 10:18:14 2011 -0400"
      },
      "message": "jbd2: add debugging information to jbd2_journal_dirty_metadata()\n\nAdd debugging information in case jbd2_journal_dirty_metadata() is\ncalled with a buffer_head which didn\u0027t have\njbd2_journal_get_write_access() called on it, or if the journal_head\nhas the wrong transaction in it.  In addition, return an error code.\nThis won\u0027t change anything for ocfs2, which will BUG_ON() the non-zero\nexit code.\n\nFor ext4, the caller of this function is ext4_handle_dirty_metadata(),\nand on seeing a non-zero return code, will call __ext4_journal_stop(),\nwhich will print the function and line number of the (buggy) calling\nfunction and abort the journal.  This will allow us to recover instead\nof bug halting, which is better from a robustness and reliability\npoint of view.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "56889787cfa77dfd96f0b3a3e6a4f26c2e4a5134",
      "tree": "5fb1be2d593fae0bb1a566397c58dc4f7ce010f2",
      "parents": [
        "2be4751b21ae1cacb002da48cfc5bf6743fee8c1"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Sep 03 18:22:38 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Sep 03 18:22:38 2011 -0400"
      },
      "message": "ext4: improve handling of conflicting mount options\n\nIf the user explicitly specifies conflicting mount options for\ndelalloc or dioread_nolock and data\u003djournal, fail the mount, instead\nof printing a warning and continuing (since many user\u0027s won\u0027t look at\ndmesg and notice the warning).\n\nAlso, print a single warning that data\u003djournal implies that delayed\nallocation is not on by default (since it\u0027s not supported), and\nfurthermore that O_DIRECT is not supported.  Improve the text in\nDocumentation/filesystems/ext4.txt so this is clear there as well.\n\nSimilarly, if the dioread_nolock mount option is specified when the\nfile system block size !\u003d PAGE_SIZE, fail the mount instead of\nprinting a warning message and ignoring the mount option.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "2be4751b21ae1cacb002da48cfc5bf6743fee8c1",
      "tree": "4a7ce445a963d54c572f1216b90bdef2df91cdeb",
      "parents": [
        "ba06208a1315ab2d2217e09c79582b886c9f629e"
      ],
      "author": {
        "name": "Allison Henderson",
        "email": "achender@linux.vnet.ibm.com",
        "time": "Sat Sep 03 11:56:52 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Sep 03 11:56:52 2011 -0400"
      },
      "message": "ext4: fix 2nd xfstests 127 punch hole failure\n\nThis patch fixes a second punch hole bug found by xfstests 127.\n\nThis bug happens because punch hole needs to flush the pages\nof the hole to avoid race conditions.  But if the end of the\nhole is in the same page as i_size, the buffer heads beyond\ni_size need to be unmapped and the page needs to be zeroed\nafter it is flushed.\n\nTo correct this, the new ext4_discard_partial_page_buffers\nroutine is used to zero and unmap the partial page\nbeyond i_size if the end of the hole appears in the same\npage as i_size.\n\nThe code has also been optimized to set the end of the hole\nto the page after i_size if the specified hole exceeds i_size,\nand the code that flushes the pages has been simplified.\n\nSigned-off-by: Allison Henderson \u003cachender@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "ba06208a1315ab2d2217e09c79582b886c9f629e",
      "tree": "08410f6be28c6811aa17b1cde65cc31e79e01e83",
      "parents": [
        "4e96b2dbbf1d7e81f22047a50f862555a6cb87cb"
      ],
      "author": {
        "name": "Allison Henderson",
        "email": "achender@linux.vnet.ibm.com",
        "time": "Sat Sep 03 11:55:59 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Sep 03 11:55:59 2011 -0400"
      },
      "message": "ext4: fix xfstests 75, 112, 127 punch hole failure\n\nThis patch addresses a bug found by xfstests 75, 112, 127\nwhen blocksize \u003d 1k\n\nThis bug happens because the punch hole code only zeros\nout non block aligned regions of the page.  This means that if the\nblocks are smaller than a page, then the block aligned regions of\nthe page inside the hole are left un-zeroed, and their buffer heads\nare still mapped.  This bug is corrected by using\next4_discard_partial_page_buffers to properly zero the partial page\nat the head and tail of the hole, and unmap the corresponding buffer\nheads\n\nThis patch also addresses a bug reported by Lukas while working on a\nnew patch to add discard support for loop devices using punch hole.\nThe bug happened because of the first and last block number\nneeded to be cast to a larger data type before calculating the\nbyte offset, but since now we only need the byte offsets of the\npages, we no longer even need to be calculating the byte offsets\nof the blocks.  The code to do the block offset calculations is\nremoved in this patch.\n\nSigned-off-by: Allison Henderson \u003cachender@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "4e96b2dbbf1d7e81f22047a50f862555a6cb87cb",
      "tree": "1f9c1d6712d1d16d3c6d04635019d2d1774c54d4",
      "parents": [
        "5930ea643805feb50a2f8383ae12eb6f10935e49"
      ],
      "author": {
        "name": "Allison Henderson",
        "email": "achender@linux.vnet.ibm.com",
        "time": "Sat Sep 03 11:51:09 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Sep 03 11:51:09 2011 -0400"
      },
      "message": "ext4: Add new ext4_discard_partial_page_buffers routines\n\nThis patch adds two new routines: ext4_discard_partial_page_buffers\nand ext4_discard_partial_page_buffers_no_lock.\n\nThe ext4_discard_partial_page_buffers routine is a wrapper\nfunction to ext4_discard_partial_page_buffers_no_lock.\nThe wrapper function locks the page and passes it to\next4_discard_partial_page_buffers_no_lock.\nCalling functions that already have the page locked can call\next4_discard_partial_page_buffers_no_lock directly.\n\nThe ext4_discard_partial_page_buffers_no_lock function\nzeros a specified range in a page, and unmaps the\ncorresponding buffer heads.  Only block aligned regions of the\npage will have their buffer heads unmapped.  Unblock aligned regions\nwill be mapped if needed so that they can be updated with the\npartial zero out.  This function is meant to\nbe used to update a page and its buffer heads to be zeroed\nand unmapped when the corresponding blocks have been released\nor will be released.\n\nThis routine is used in the following scenarios:\n* A hole is punched and the non page aligned regions\n  of the head and tail of the hole need to be discarded\n\n* The file is truncated and the partial page beyond EOF needs\n  to be discarded\n\n* The end of a hole is in the same page as EOF.  After the\n  page is flushed, the partial page beyond EOF needs to be\n  discarded.\n\n* A write operation begins or ends inside a hole and the partial\n  page appearing before or after the write needs to be discarded\n\n* A write operation extends EOF and the partial page beyond EOF\n  needs to be discarded\n\nThis function takes a flag EXT4_DISCARD_PARTIAL_PG_ZERO_UNMAPPED\nwhich is used when a write operation begins or ends in a hole.\nWhen the EXT4_DISCARD_PARTIAL_PG_ZERO_UNMAPPED flag is used, only\nbuffer heads that are already unmapped will have the corresponding\nregions of the page zeroed.\n\nSigned-off-by: Allison Henderson \u003cachender@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5930ea643805feb50a2f8383ae12eb6f10935e49",
      "tree": "9052dd47da0d9d6796342a07ebffe0329647b9cb",
      "parents": [
        "f9287c1f2d329f4d78a3bbc9cf0db0ebae6f146a"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Aug 31 12:02:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Aug 31 12:02:51 2011 -0400"
      },
      "message": "ext4: call ext4_handle_dirty_metadata with correct inode in ext4_dx_add_entry\n\next4_dx_add_entry manipulates bh2 and frames[0].bh, which are two buffer_heads\nthat point to directory blocks assigned to the directory inode.  However, the\nfunction calls ext4_handle_dirty_metadata with the inode of the file that\u0027s\nbeing added to the directory, not the directory inode itself.  Therefore,\ncorrect the code to dirty the directory buffers with the directory inode, not\nthe file inode.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "f9287c1f2d329f4d78a3bbc9cf0db0ebae6f146a",
      "tree": "a7bb496f63a0b65e8edbdc72b596f64dd9ecc1b6",
      "parents": [
        "bcaa992975041e40449be8c010c26192b8c8b409"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Wed Aug 31 12:00:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Aug 31 12:00:51 2011 -0400"
      },
      "message": "ext4: ext4_mkdir should dirty dir_block with newly created directory inode\n\next4_mkdir calls ext4_handle_dirty_metadata with dir_block and the inode \"dir\".\nUnfortunately, dir_block belongs to the newly created directory (which is\n\"inode\"), not the parent directory (which is \"dir\").  Fix the incorrect\nassociation.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "bcaa992975041e40449be8c010c26192b8c8b409",
      "tree": "fc6db16042c92641dc8179b504033cb9cf73e744",
      "parents": [
        "84ebd795613488992b273220c2937d575d27d2a9"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Wed Aug 31 11:58:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Aug 31 11:58:51 2011 -0400"
      },
      "message": "ext4: ext4_rename should dirty dir_bh with the correct directory\n\nWhen ext4_rename performs a directory rename (move), dir_bh is a\nbuffer that is modified to update the \u0027..\u0027 link in the directory being\nmoved (old_inode).  However, ext4_handle_dirty_metadata is called with\nthe old parent directory inode (old_dir) and dir_bh, which is\nincorrect because dir_bh does not belong to the parent inode.  Fix\nthis error.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "84ebd795613488992b273220c2937d575d27d2a9",
      "tree": "102201c078c73d911f0a1eb656ee057fe2806489",
      "parents": [
        "1cd9f0976aa4606db8d6e3dc3edd0aca8019372a"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Aug 31 11:56:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Aug 31 11:56:51 2011 -0400"
      },
      "message": "ext4: fake direct I/O mode for data\u003djournal\n\nCurrently attempts to open a file with O_DIRECT in data\u003djournal mode\ncauses the open to fail with -EINVAL.  This makes it very hard to test\ndata\u003djournal mode.  So we will let the open succeed, but then always\nfall back to O_DSYNC buffered writes.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "1cd9f0976aa4606db8d6e3dc3edd0aca8019372a",
      "tree": "3928541b60787c1add5120bb34a4016529de3d6b",
      "parents": [
        "8c0bec2151a47906bf779c6715a10ce04453ab77"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Aug 31 11:54:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Aug 31 11:54:51 2011 -0400"
      },
      "message": "ext2,ext3,ext4: don\u0027t inherit APPEND_FL or IMMUTABLE_FL for new inodes\n\nThis doesn\u0027t make much sense, and it exposes a bug in the kernel where\nattempts to create a new file in an append-only directory using\nO_CREAT will fail (but still leave a zero-length file).  This was\ndiscovered when xfstests #79 was generalized so it could run on all\nfile systems.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc:stable@kernel.org\n"
    },
    {
      "commit": "8c0bec2151a47906bf779c6715a10ce04453ab77",
      "tree": "0165e80ba408b5db1e9e2adf9264bf4186b06768",
      "parents": [
        "fcb8ce5cfe30ca9ca5c9a79cdfe26d1993e65e0c"
      ],
      "author": {
        "name": "Jiaying Zhang",
        "email": "jiayingz@google.com",
        "time": "Wed Aug 31 11:50:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Aug 31 11:50:51 2011 -0400"
      },
      "message": "ext4: remove i_mutex lock in ext4_evict_inode to fix lockdep complaining\n\nThe i_mutex lock and flush_completed_IO() added by commit 2581fdc810\nin ext4_evict_inode() causes lockdep complaining about potential\ndeadlock in several places.  In most/all of these LOCKDEP complaints\nit looks like it\u0027s a false positive, since many of the potential\ncircular locking cases can\u0027t take place by the time the\next4_evict_inode() is called; but since at the very least it may mask\nreal problems, we need to address this.\n\nThis change removes the flush_completed_IO() and i_mutex lock in\next4_evict_inode().  Instead, we take a different approach to resolve\nthe software lockup that commit 2581fdc810 intends to fix.  Rather\nthan having ext4-dio-unwritten thread wait for grabing the i_mutex\nlock of an inode, we use mutex_trylock() instead, and simply requeue\nthe work item if we fail to grab the inode\u0027s i_mutex lock.\n\nThis should speed up work queue processing in general and also\nprevents the following deadlock scenario: During page fault,\nshrink_icache_memory is called that in turn evicts another inode B.\nInode B has some pending io_end work so it calls ext4_ioend_wait()\nthat waits for inode B\u0027s i_ioend_count to become zero.  However, inode\nB\u0027s ioend work was queued behind some of inode A\u0027s ioend work on the\nsame cpu\u0027s ext4-dio-unwritten workqueue.  As the ext4-dio-unwritten\nthread on that cpu is processing inode A\u0027s ioend work, it tries to\ngrab inode A\u0027s i_mutex lock.  Since the i_mutex lock of inode A is\nstill hold before the page fault happened, we enter a deadlock.\n\nSigned-off-by: Jiaying Zhang \u003cjiayingz@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "fcb8ce5cfe30ca9ca5c9a79cdfe26d1993e65e0c",
      "tree": "a57bc2d9a58e26144c30645e148d9b00242738f4",
      "parents": [
        "8f6544edb2c7a7464fbbce1d86a4de414dc0cf95"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 22 11:42:53 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 22 11:42:53 2011 -0700"
      },
      "message": "Linux 3.1-rc3\n"
    },
    {
      "commit": "8f6544edb2c7a7464fbbce1d86a4de414dc0cf95",
      "tree": "5030e903106465b36e769ea04d4dfe2b91b22949",
      "parents": [
        "4762e252f4afc6909edb0babe9c25f126afedcaa",
        "fe4c51b22080691792d3e28d86acb4d4ccb7e8e8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 22 11:26:56 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 22 11:26:56 2011 -0700"
      },
      "message": "Merge branch \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  perf tools: Add group event scheduling option to perf record/stat\n  MAINTAINERS: Fix list of perf events source files\n  perf tools: Fix build against newer glibc\n  perf tools: Fix error handling of unknown events\n  perf evlist: Fix missing event name init for default event\n  perf list: Fix exit value\n"
    },
    {
      "commit": "4762e252f4afc6909edb0babe9c25f126afedcaa",
      "tree": "f4d68be15b2c5887f98894996899e9e3f191ce4c",
      "parents": [
        "3210d190dcb717c328d74f8c3f69ec717d665b40",
        "60c5f08e154fd235056645e050f2cd5671b19125"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 22 11:25:44 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 22 11:25:44 2011 -0700"
      },
      "message": "Merge branch \u0027stable/bug.fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen\n\n* \u0027stable/bug.fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:\n  xen/tracing: Fix tracing config option properly\n  xen: Do not enable PV IPIs when vector callback not present\n  xen/x86: replace order-based range checking of M2P table by linear one\n  xen: xen-selfballoon.c needs more header files\n"
    },
    {
      "commit": "60c5f08e154fd235056645e050f2cd5671b19125",
      "tree": "af2d81268cb83fd1f7fffedfbb9eddf91a8d53d1",
      "parents": [
        "3c05c4bed4ccce3f22f6d7899b308faae24ad198"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy.fitzhardinge@citrix.com",
        "time": "Thu Aug 11 13:17:20 2011 -0700"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Mon Aug 22 11:28:33 2011 -0400"
      },
      "message": "xen/tracing: Fix tracing config option properly\n\nSteven Rostedt says we should use CONFIG_EVENT_TRACING.\n\nCc:Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\n"
    },
    {
      "commit": "3c05c4bed4ccce3f22f6d7899b308faae24ad198",
      "tree": "1ba50aca8583443ca5228d2a536e32a71f8d1097",
      "parents": [
        "ccbcdf7cf1b5f6c6db30d84095b9c6c53043af55"
      ],
      "author": {
        "name": "Stefano Stabellini",
        "email": "stefano.stabellini@eu.citrix.com",
        "time": "Wed Aug 17 15:15:00 2011 +0200"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Mon Aug 22 11:28:09 2011 -0400"
      },
      "message": "xen: Do not enable PV IPIs when vector callback not present\n\nFix regression for HVM case on older (\u003c4.1.1) hypervisors caused by\n\n  commit 99bbb3a84a99cd04ab16b998b20f01a72cfa9f4f\n  Author: Stefano Stabellini \u003cstefano.stabellini@eu.citrix.com\u003e\n  Date:   Thu Dec 2 17:55:10 2010 +0000\n\n    xen: PV on HVM: support PV spinlocks and IPIs\n\nThis change replaced the SMP operations with event based handlers without\ntaking into account that this only works when the hypervisor supports\ncallback vectors. This causes unexplainable hangs early on boot for\nHVM guests with more than one CPU.\n\nBugLink: http://bugs.launchpad.net/bugs/791850\n\nCC: stable@kernel.org\nSigned-off-by: Stefan Bader \u003cstefan.bader@canonical.com\u003e\nSigned-off-by: Stefano Stabellini \u003cstefano.stabellini@eu.citrix.com\u003e\nTested-and-Reported-by: Stefan Bader \u003cstefan.bader@canonical.com\u003e\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\n"
    },
    {
      "commit": "3210d190dcb717c328d74f8c3f69ec717d665b40",
      "tree": "4fbdbc85beea494165dc4bc8866f77051a730762",
      "parents": [
        "6719db6a23d4b7f1e5052eedae394135e3aef9c1",
        "aaff12039ffd812d0c8bbff50b87b6f1f09bec3e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 21 18:13:19 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 21 18:13:19 2011 -0700"
      },
      "message": "Merge branch \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6\n\n* \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:\n  firewire: core: handle ack_busy when fetching the Config ROM\n"
    },
    {
      "commit": "6719db6a23d4b7f1e5052eedae394135e3aef9c1",
      "tree": "2faf96d69696df0edfc0ab4d8f0c980ee0b89986",
      "parents": [
        "c063d8a60fc912ae198f054608ad461a69dc9a19"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Sat Aug 20 08:29:51 2011 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 21 07:02:00 2011 -0700"
      },
      "message": "Btrfs: fix 64 bit divide problem\n\nThis fixes a regression introduced by commit cdcb725c05fe (\"Btrfs: check\nif there is enough space for balancing smarter\").  We can\u0027t do 64-bit\ndivides on 32-bit architectures.\n\nIn cases where we need to divide/multiply by 2 we should just left/right\nshift respectively, and in cases where theres N number of devices use\ndo_div.  Also make the counters u64 to match up with rw_devices.\nThanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nAcked-and-tested-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c063d8a60fc912ae198f054608ad461a69dc9a19",
      "tree": "fb7804322f0fa7880b073a5b2a4f2bd1a01ee5c0",
      "parents": [
        "79058c4b9ed82415d0690ce6d520252741653486",
        "dccaf33fa37a1bc5d651baeb3bfeb6becb86597b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 21 06:59:41 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 21 06:59:41 2011 -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: flush any pending end_io requests before DIO reads w/dioread_nolock\n  ext4: fix nomblk_io_submit option so it correctly converts uninit blocks\n  ext4: Resolve the hang of direct i/o read in handling EXT4_IO_END_UNWRITTEN.\n  ext4: call ext4_ioend_wait and ext4_flush_completed_IO in ext4_evict_inode\n  ext4: Fix ext4_should_writeback_data() for no-journal mode\n"
    },
    {
      "commit": "79058c4b9ed82415d0690ce6d520252741653486",
      "tree": "b7857545498725b321306dbaa27c80bb35ccc41a",
      "parents": [
        "47c08f3107270e5a439bc0106a308f7c48c9621d",
        "de75577c8c3ab733f808c65e1a9d55882efde68e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 21 06:59:02 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 21 06:59:02 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:\n  ALSA: sound/aoa/fabrics/layout.c: remove unneeded kfree\n  ALSA: hda - Fix error check from snd_hda_get_conn_index() in patch_cirrus.c\n  ALSA: hda - Don\u0027t spew too many ELD errors\n  ALSA: usb-audio - Fix missing mixer dB information\n  ALSA: hda - Add \"PCM\" volume to vmaster slave list\n  ALSA: hda - Fix duplicated capture-volume creation for ALC268 models\n  ALSA: ac97: Add HP Compaq dc5100 SFF(PT003AW) to Headphone Jack Sense whitelist\n  ALSA: snd_usb_caiaq: track submitted output urbs\n"
    },
    {
      "commit": "47c08f3107270e5a439bc0106a308f7c48c9621d",
      "tree": "d003f7337671bd240da4a463cc6fe1f6fb163e55",
      "parents": [
        "bed8cad9593974a46de5c8aa3d2ee7c49c17182f"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Sat Aug 20 11:49:43 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 20 18:02:32 2011 -0700"
      },
      "message": "pci: fix new kernel-doc warning in pci.c\n\nFix new kernel-doc warning in pci.c:\n\n  Warning(drivers/pci/pci.c:3259): No description found for parameter \u0027mps\u0027\n  Warning(drivers/pci/pci.c:3259): Excess function parameter \u0027rq\u0027 description in \u0027pcie_set_mps\u0027\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nCc: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "de75577c8c3ab733f808c65e1a9d55882efde68e",
      "tree": "09c9b6f77ecb2c8e4bdd823c8748606cddf8f3d0",
      "parents": [
        "1b004d03d8670bdd871e0f297ed20bc510e404de"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Sat Aug 20 08:12:41 2011 +0200"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Sat Aug 20 09:27:04 2011 +0200"
      },
      "message": "ALSA: sound/aoa/fabrics/layout.c: remove unneeded kfree\n\nThe label outnodev is only used when kzalloc has not yet taken place or has\nfailed, so there is no need for the call for kfree under this label.\n\nA simplified version of the semantic match that finds this problem is as\nfollows: (http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\nidentifier x;\nexpression E1!\u003d0,E2,E3,E4;\nstatement S;\niterator I;\n@@\n\n(\nif (...) { ... when !\u003d kfree(x)\n               when !\u003d x \u003d E3\n               when !\u003d E3 \u003d x\n*  return ...;\n }\n... when !\u003d x \u003d E2\n    when !\u003d I(...,x,...) S\nif (...) { ... when !\u003d x \u003d E4\n kfree(x); ... return ...; }\n)\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    },
    {
      "commit": "1b004d03d8670bdd871e0f297ed20bc510e404de",
      "tree": "ad1df1f55b8b3a004907ceada35c1c185b35461e",
      "parents": [
        "b6acf013bdc6f6ff9643030add85832d44034a28"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Sat Aug 20 09:19:59 2011 +0200"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Sat Aug 20 09:24:54 2011 +0200"
      },
      "message": "ALSA: hda - Fix error check from snd_hda_get_conn_index() in patch_cirrus.c\n\nsnd_hda_get_conn_index() returns a negative value while the current code\nstores it in an unsigned int.  It must be stored in a signed integer.\n\nReported-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n"
    }
  ],
  "next": "b6acf013bdc6f6ff9643030add85832d44034a28"
}
