)]}'
{
  "log": [
    {
      "commit": "5a0dc7365c240795bf190766eba7a27600be3b3e",
      "tree": "614d5275640f4df89604f64e2cd47a438644226e",
      "parents": [
        "5b5ffa49d4bbb8ca4c41c094261660264f16bd20"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Tue Dec 13 22:29:12 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Dec 13 22:29:12 2011 -0500"
      },
      "message": "ext4: handle EOF correctly in ext4_bio_write_page()\n\nWe need to zero out part of a page which beyond EOF before setting uptodate,\notherwise, mapread or write will see non-zero data beyond EOF.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "5b5ffa49d4bbb8ca4c41c094261660264f16bd20",
      "tree": "98b3fb0f9b4afac37ce0c025ee9cca3991bee4eb",
      "parents": [
        "093e6e3666f47d29763a235b404c84ee47ba8bb0"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Tue Dec 13 22:13:42 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Dec 13 22:13:42 2011 -0500"
      },
      "message": "ext4: remove a wrong BUG_ON in ext4_ext_convert_to_initialized\n\nIf a file is fallocated on a hole, map-\u003em_lblk + map-\u003em_len may be greater\nthan ee_block + ee_len.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "093e6e3666f47d29763a235b404c84ee47ba8bb0",
      "tree": "a337f1415bf1c98b63fa5536c42b97059309b8d1",
      "parents": [
        "13a79a4741d37fda2fbafb953f0f301dc007928f"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Tue Dec 13 22:05:05 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Dec 13 22:05:05 2011 -0500"
      },
      "message": "ext4: correctly handle pages w/o buffers in ext4_discard_partial_buffers()\n\nIf a page has been read into memory and never been written, it has no\nbuffers, but we should handle the page in truncate or punch hole.\n\nVFS code of writing operations has handled holes correctly, so this\npatch removes the code handling holes in writing operations.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "13a79a4741d37fda2fbafb953f0f301dc007928f",
      "tree": "b88b5b99690738c278c48b180cbd1ab2821522f6",
      "parents": [
        "ea51d132dbf9b00063169c1159bee253d9649224"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Tue Dec 13 21:51:55 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Dec 13 21:51:55 2011 -0500"
      },
      "message": "ext4: avoid potential hang in mpage_submit_io() when blocksize \u003c pagesize\n\nIf there is an unwritten but clean buffer in a page and there is a\ndirty buffer after the buffer, then mpage_submit_io does not write the\ndirty buffer out.  As a result, da_writepages loops forever.\n\nThis patch fixes the problem by checking dirty flag.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "ea51d132dbf9b00063169c1159bee253d9649224",
      "tree": "c1c9f028e2efdb278e26d662fec2bc2ba2605f5d",
      "parents": [
        "fc6cb1cda5db7b2d24bf32890826214b857c728e"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Tue Dec 13 21:41:15 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Dec 13 21:41:15 2011 -0500"
      },
      "message": "ext4: avoid hangs in ext4_da_should_update_i_disksize()\n\nIf the pte mapping in generic_perform_write() is unmapped between\niov_iter_fault_in_readable() and iov_iter_copy_from_user_atomic(), the\n\"copied\" parameter to -\u003eend_write can be zero. ext4 couldn\u0027t cope with\nit with delayed allocations enabled. This skips the i_disksize\nenlargement logic if copied is zero and no new data was appeneded to\nthe inode.\n\n gdb\u003e bt\n #0  0xffffffff811afe80 in ext4_da_should_update_i_disksize (file\u003d0xffff88003f606a80, mapping\u003d0xffff88001d3824e0, pos\u003d0x1\\\n 08000, len\u003d0x1000, copied\u003d0x0, page\u003d0xffffea0000d792e8, fsdata\u003d0x0) at fs/ext4/inode.c:2467\n #1  ext4_da_write_end (file\u003d0xffff88003f606a80, mapping\u003d0xffff88001d3824e0, pos\u003d0x108000, len\u003d0x1000, copied\u003d0x0, page\u003d0\\\n xffffea0000d792e8, fsdata\u003d0x0) at fs/ext4/inode.c:2512\n #2  0xffffffff810d97f1 in generic_perform_write (iocb\u003d\u003cvalue optimized out\u003e, iov\u003d\u003cvalue optimized out\u003e, nr_segs\u003d\u003cvalue o\\\n ptimized out\u003e, pos\u003d0x108000, ppos\u003d0xffff88001e26be40, count\u003d\u003cvalue optimized out\u003e, written\u003d0x0) at mm/filemap.c:2440\n #3  generic_file_buffered_write (iocb\u003d\u003cvalue optimized out\u003e, iov\u003d\u003cvalue optimized out\u003e, nr_segs\u003d\u003cvalue optimized out\u003e, p\\\n os\u003d0x108000, ppos\u003d0xffff88001e26be40, count\u003d\u003cvalue optimized out\u003e, written\u003d0x0) at mm/filemap.c:2482\n #4  0xffffffff810db5d1 in __generic_file_aio_write (iocb\u003d0xffff88001e26bde8, iov\u003d0xffff88001e26bec8, nr_segs\u003d0x1, ppos\u003d0\\\n xffff88001e26be40) at mm/filemap.c:2600\n #5  0xffffffff810db853 in generic_file_aio_write (iocb\u003d0xffff88001e26bde8, iov\u003d0xffff88001e26bec8, nr_segs\u003d\u003cvalue optimi\\\n zed out\u003e, pos\u003d\u003cvalue optimized out\u003e) at mm/filemap.c:2632\n #6  0xffffffff811a71aa in ext4_file_write (iocb\u003d0xffff88001e26bde8, iov\u003d0xffff88001e26bec8, nr_segs\u003d0x1, pos\u003d0x108000) a\\\n t fs/ext4/file.c:136\n #7  0xffffffff811375aa in do_sync_write (filp\u003d0xffff88003f606a80, buf\u003d\u003cvalue optimized out\u003e, len\u003d\u003cvalue optimized out\u003e, \\\n ppos\u003d0xffff88001e26bf48) at fs/read_write.c:406\n #8  0xffffffff81137e56 in vfs_write (file\u003d0xffff88003f606a80, buf\u003d0x1ec2960 \u003cAddress 0x1ec2960 out of bounds\u003e, count\u003d0x4\\\n 000, pos\u003d0xffff88001e26bf48) at fs/read_write.c:435\n #9  0xffffffff8113816c in sys_write (fd\u003d\u003cvalue optimized out\u003e, buf\u003d0x1ec2960 \u003cAddress 0x1ec2960 out of bounds\u003e, count\u003d0x\\\n 4000) at fs/read_write.c:487\n #10 \u003csignal handler called\u003e\n #11 0x00007f120077a390 in __brk_reservation_fn_dmi_alloc__ ()\n #12 0x0000000000000000 in ?? ()\n gdb\u003e print offset\n $22 \u003d 0xffffffffffffffff\n gdb\u003e print idx\n $23 \u003d 0xffffffff\n gdb\u003e print inode-\u003ei_blkbits\n $24 \u003d 0xc\n gdb\u003e up\n #1  ext4_da_write_end (file\u003d0xffff88003f606a80, mapping\u003d0xffff88001d3824e0, pos\u003d0x108000, len\u003d0x1000, copied\u003d0x0, page\u003d0\\\n xffffea0000d792e8, fsdata\u003d0x0) at fs/ext4/inode.c:2512\n 2512                    if (ext4_da_should_update_i_disksize(page, end)) {\n gdb\u003e print start\n $25 \u003d 0x0\n gdb\u003e print end\n $26 \u003d 0xffffffffffffffff\n gdb\u003e print pos\n $27 \u003d 0x108000\n gdb\u003e print new_i_size\n $28 \u003d 0x108000\n gdb\u003e print ((struct ext4_inode_info *)((char *)inode-((int)(\u0026((struct ext4_inode_info *)0)-\u003evfs_inode))))-\u003ei_disksize\n $29 \u003d 0xd9000\n gdb\u003e down\n 2467            for (i \u003d 0; i \u003c idx; i++)\n gdb\u003e print i\n $30 \u003d 0xd44acbee\n\nThis is 100% reproducible with some autonuma development code tuned in\na very aggressive manner (not normal way even for knumad) which does\n\"exotic\" changes to the ptes. It wouldn\u0027t normally trigger but I don\u0027t\nsee why it can\u0027t happen normally if the page is added to swap cache in\nbetween the two faults leading to \"copied\" being zero (which then\nhangs in ext4). So it should be fixed. Especially possible with lumpy\nreclaim (albeit disabled if compaction is enabled) as that would\nignore the young bits in the ptes.\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "fc6cb1cda5db7b2d24bf32890826214b857c728e",
      "tree": "2f3226090a2da8bcde9d568598ffb3a1c7626fd3",
      "parents": [
        "b4611abfa98af8351bf32e8b9ecc9d3384931c37"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Dec 12 22:06:18 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Dec 12 22:06:18 2011 -0500"
      },
      "message": "ext4: display the correct mount option in /proc/mounts for [no]init_itable\n\n/proc/mounts was showing the mount option [no]init_inode_table when\nthe correct mount option that will be accepted by parse_options() is\n[no]init_itable.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "b4611abfa98af8351bf32e8b9ecc9d3384931c37",
      "tree": "a1ff17e10c37207e83bc602cf1fc8045d778c8a5",
      "parents": [
        "b5a7e97039a80fae673ccc115ce595d5b88fb4ee"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Mon Dec 12 11:00:56 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Dec 12 11:00:56 2011 -0500"
      },
      "message": "ext4: Fix crash due to getting bogus eh_depth value on big-endian systems\n\nCommit 1939dd84b3 (\"ext4: cleanup ext4_ext_grow_indepth code\") added a\nreference to ext4_extent_header.eh_depth, but forget to pass the value\nread through le16_to_cpu.  The result is a crash on big-endian\nmachines, such as this crash on a POWER7 server:\n\nattempt to access beyond end of device\nsda8: rw\u003d0, want\u003d776392648163376, limit\u003d168558560\nUnable to handle kernel paging request for data at address 0x6b6b6b6b6b6b6bcb\nFaulting instruction address: 0xc0000000001f5f38\ncpu 0x14: Vector: 300 (Data Access) at [c000001bd1aaecf0]\n    pc: c0000000001f5f38: .__brelse+0x18/0x60\n    lr: c0000000002e07a4: .ext4_ext_drop_refs+0x44/0x80\n    sp: c000001bd1aaef70\n   msr: 9000000000009032\n   dar: 6b6b6b6b6b6b6bcb\n dsisr: 40000000\n  current \u003d 0xc000001bd15b8010\n  paca    \u003d 0xc00000000ffe4600\n    pid   \u003d 19911, comm \u003d flush-8:0\nenter ? for help\n[c000001bd1aaeff0] c0000000002e07a4 .ext4_ext_drop_refs+0x44/0x80\n[c000001bd1aaf090] c0000000002e0c58 .ext4_ext_find_extent+0x408/0x4c0\n[c000001bd1aaf180] c0000000002e145c .ext4_ext_insert_extent+0x2bc/0x14c0\n[c000001bd1aaf2c0] c0000000002e3fb8 .ext4_ext_map_blocks+0x628/0x1710\n[c000001bd1aaf420] c0000000002b2974 .ext4_map_blocks+0x224/0x310\n[c000001bd1aaf4d0] c0000000002b7f2c .mpage_da_map_and_submit+0xbc/0x490\n[c000001bd1aaf5a0] c0000000002b8688 .write_cache_pages_da+0x2c8/0x430\n[c000001bd1aaf720] c0000000002b8b28 .ext4_da_writepages+0x338/0x670\n[c000001bd1aaf8d0] c000000000157280 .do_writepages+0x40/0x90\n[c000001bd1aaf940] c0000000001ea830 .writeback_single_inode+0xe0/0x530\n[c000001bd1aafa00] c0000000001eb680 .writeback_sb_inodes+0x210/0x300\n[c000001bd1aafb20] c0000000001ebc84 .__writeback_inodes_wb+0xd4/0x140\n[c000001bd1aafbe0] c0000000001ebfec .wb_writeback+0x2fc/0x3e0\n[c000001bd1aafce0] c0000000001ed770 .wb_do_writeback+0x2f0/0x300\n[c000001bd1aafdf0] c0000000001ed848 .bdi_writeback_thread+0xc8/0x340\n[c000001bd1aafed0] c0000000000c5494 .kthread+0xb4/0xc0\n[c000001bd1aaff90] c000000000021f48 .kernel_thread+0x54/0x70\n\nThis is due to getting ext_depth(inode) \u003d\u003d 0x101 and therefore running\noff the end of the path array in ext4_ext_drop_refs into following\nunallocated structures.\n\nThis fixes it by adding the necessary le16_to_cpu.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "b5a7e97039a80fae673ccc115ce595d5b88fb4ee",
      "tree": "b8533e2cb3fc30da051487257cd24af6edeea83e",
      "parents": [
        "dc47ce90c3a822cd7c9e9339fe4d5f61dcb26b50"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Dec 12 10:53:02 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Dec 12 10:53:02 2011 -0500"
      },
      "message": "ext4: fix ext4_end_io_dio() racing against fsync()\n\nWe need to make sure iocb-\u003eprivate is cleared *before* we put the\nio_end structure on i_completed_io_list.  Otherwise fsync() could\npotentially run on another CPU and free the iocb structure out from\nunder us.\n\nReported-by: Kent Overstreet \u003ckoverstreet@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "4c81f045c0bd2cbb78cc6446a4cd98038fe11a2e",
      "tree": "d294fc2e46351d7ceb7b8d8b343cb5e6aabbcc18",
      "parents": [
        "caca6a03d365883564885f2c1da3e88dcf65d139"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Nov 24 19:22:24 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Nov 24 19:22:24 2011 -0500"
      },
      "message": "ext4: fix racy use-after-free in ext4_end_io_dio()\n\next4_end_io_dio() queues io_end-\u003ework and then clears iocb-\u003eprivate;\nhowever, io_end-\u003ework calls aio_complete() which frees the iocb\nobject.  If that slab object gets reallocated, then ext4_end_io_dio()\ncan end up clearing someone else\u0027s iocb-\u003eprivate, this use-after-free\ncan cause a leak of a struct ext4_io_end_t structure.\n\nDetected and tested with slab poisoning.\n\n[ Note: Can also reproduce using 12 fio\u0027s against 12 file systems with the\n  following configuration file:\n\n  [global]\n  direct\u003d1\n  ioengine\u003dlibaio\n  iodepth\u003d1\n  bs\u003d4k\n  ba\u003d4k\n  size\u003d128m\n\n  [create]\n  filename\u003d${TESTDIR}\n  rw\u003dwrite\n\n  -- tytso ]\n\nGoogle-Bug-Id: 5354697\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReported-by: Kent Overstreet \u003ckoverstreet@google.com\u003e\nTested-by: Kent Overstreet \u003ckoverstreet@google.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "f8f5ed7c996ad9426847ce09b828d415cb19bc06",
      "tree": "ef5826a0b818ef6130c67da63a8bb8aa81b19dde",
      "parents": [
        "c292fe4aae5aa5c089633bc40342d27c8275306a",
        "6e58ad69efe9f4c91eb15f6bc365293414c397ce"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 21 12:11:37 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 21 12:11:37 2011 -0800"
      },
      "message": "Merge branch \u0027dev\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027dev\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:\n  ext4: fix up a undefined error in ext4_free_blocks in debugging code\n  ext4: add blk_finish_plug in error case of writepages.\n  ext4: Remove kernel_lock annotations\n  ext4: ignore journalled data options on remount if fs has no journal\n"
    },
    {
      "commit": "6e58ad69efe9f4c91eb15f6bc365293414c397ce",
      "tree": "06c1f88ed4448526234172a2ae9ad2458488920d",
      "parents": [
        "3c1fcb2c24519febd7ca9cf292fa5bdf513b601f"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Mon Nov 21 12:09:19 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Nov 21 12:09:19 2011 -0500"
      },
      "message": "ext4: fix up a undefined error in ext4_free_blocks in debugging code\n\nsbi is not defined, so let ext4_free_blocks use EXT4_SB(sb) instead\nwhen EXT4FS_DEBUG is defined.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\n"
    },
    {
      "commit": "3c1fcb2c24519febd7ca9cf292fa5bdf513b601f",
      "tree": "9be412cacdd7778fc5826efdda0d135570929991",
      "parents": [
        "2397256d6218e7bf5147a3b01dcc6aec20fd3916"
      ],
      "author": {
        "name": "Namjae Jeon",
        "email": "linkinjeon@gmail.com",
        "time": "Mon Nov 07 11:01:13 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Nov 07 11:01:13 2011 -0500"
      },
      "message": "ext4: add blk_finish_plug in error case of writepages.\n\nblk_finish_plug is needed in error case of writepages.\n\nSigned-off-by: Namjae Jeon \u003clinkinjeon@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "2397256d6218e7bf5147a3b01dcc6aec20fd3916",
      "tree": "b8f25e74a37f72ee670e5a2c96129e4fd0b49d0f",
      "parents": [
        "eb513689c97e3e73bb9b4459d490a8e894b4a546"
      ],
      "author": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Mon Nov 07 10:50:09 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Nov 07 10:50:09 2011 -0500"
      },
      "message": "ext4: Remove kernel_lock annotations\n\nThe BKL is gone, these annotations are useless.\n\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "eb513689c97e3e73bb9b4459d490a8e894b4a546",
      "tree": "767931920c50055b4416b4554fa2dfac4c579b2a",
      "parents": [
        "5c8a0fbba543d9428a486f0d1282bbcf3cf1d95a"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Nov 07 10:47:42 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Nov 07 10:47:42 2011 -0500"
      },
      "message": "ext4: ignore journalled data options on remount if fs has no journal\n\nThis avoids a confusing failure in the init scripts when the\n/etc/fstab has data\u003dwriteback or data\u003djournal but the file system does\nnot have a journal.  So check for this case explicitly, and warn the\nuser that we are ignoring the (pointless, since they have no journal)\ndata\u003d* mount option.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "208bca0860406d16398145ddd950036a737c3c9d",
      "tree": "7797a16c17d8bd155120126fa7976727fc6de013",
      "parents": [
        "6aad3738f6a79fd0ca480eaceefe064cc471f6eb",
        "0e175a1835ffc979e55787774e58ec79e41957d7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:02:23 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:02:23 2011 -0800"
      },
      "message": "Merge branch \u0027writeback-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux\n\n* \u0027writeback-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux:\n  writeback: Add a \u0027reason\u0027 to wb_writeback_work\n  writeback: send work item to queue_io, move_expired_inodes\n  writeback: trace event balance_dirty_pages\n  writeback: trace event bdi_dirty_ratelimit\n  writeback: fix ppc compile warnings on do_div(long long, unsigned long)\n  writeback: per-bdi background threshold\n  writeback: dirty position control - bdi reserve area\n  writeback: control dirty pause time\n  writeback: limit max dirty pause time\n  writeback: IO-less balance_dirty_pages()\n  writeback: per task dirty rate limit\n  writeback: stabilize bdi-\u003edirty_ratelimit\n  writeback: dirty rate control\n  writeback: add bg_threshold parameter to __bdi_update_bandwidth()\n  writeback: dirty position control\n  writeback: account per-bdi accumulated dirtied pages\n"
    },
    {
      "commit": "d211858837ff8d8e31942ca7d27e6e08b3b46f5e",
      "tree": "a8ec83a791066e64ad02052498dbe39ebefacab9",
      "parents": [
        "f1f8935a5c38a2c61e86a42bc971a2539eef2211",
        "f0023bc617ba600956b9226f1806033d7486c8ba"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 11:41:01 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 11:41:01 2011 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/hch/vfs-queue\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/hch/vfs-queue:\n  vfs: add d_prune dentry operation\n  vfs: protect i_nlink\n  filesystems: add set_nlink()\n  filesystems: add missing nlink wrappers\n  logfs: remove unnecessary nlink setting\n  ocfs2: remove unnecessary nlink setting\n  jfs: remove unnecessary nlink setting\n  hypfs: remove unnecessary nlink setting\n  vfs: ignore error on forced remount\n  readlinkat: ensure we return ENOENT for the empty pathname for normal lookups\n  vfs: fix dentry leak in simple_fill_super()\n"
    },
    {
      "commit": "f1f8935a5c38a2c61e86a42bc971a2539eef2211",
      "tree": "694950045f2f5d89507d7206cf6595e09cdfbd2c",
      "parents": [
        "34116645d912f65d7eb4508a1db3c9d0e45facb1",
        "f2a44523b20f323e4aef7c16261d34d6f0a4bf06"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 10:06:20 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 10:06:20 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: (97 commits)\n  jbd2: Unify log messages in jbd2 code\n  jbd/jbd2: validate sb-\u003es_first in journal_get_superblock()\n  ext4: let ext4_ext_rm_leaf work with EXT_DEBUG defined\n  ext4: fix a syntax error in ext4_ext_insert_extent when debugging enabled\n  ext4: fix a typo in struct ext4_allocation_context\n  ext4: Don\u0027t normalize an falloc request if it can fit in 1 extent.\n  ext4: remove comments about extent mount option in ext4_new_inode()\n  ext4: let ext4_discard_partial_buffers handle unaligned range correctly\n  ext4: return ENOMEM if find_or_create_pages fails\n  ext4: move vars to local scope in ext4_discard_partial_page_buffers_no_lock()\n  ext4: Create helper function for EXT4_IO_END_UNWRITTEN and i_aiodio_unwritten\n  ext4: optimize locking for end_io extent conversion\n  ext4: remove unnecessary call to waitqueue_active()\n  ext4: Use correct locking for ext4_end_io_nolock()\n  ext4: fix race in xattr block allocation path\n  ext4: trace punch_hole correctly in ext4_ext_map_blocks\n  ext4: clean up AGGRESSIVE_TEST code\n  ext4: move variables to their scope\n  ext4: fix quota accounting during migration\n  ext4: migrate cleanup\n  ...\n"
    },
    {
      "commit": "bfe8684869601dacfcb2cd69ef8cfd9045f62170",
      "tree": "4e213aaa766b26f43f0f9ec7998a7745239d9377",
      "parents": [
        "6d6b77f163c7eabedbba00ed2abb7d4a570bff76"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Oct 28 14:13:29 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@serles.lst.de",
        "time": "Wed Nov 02 12:53:43 2011 +0100"
      },
      "message": "filesystems: add set_nlink()\n\nReplace remaining direct i_nlink updates with a new set_nlink()\nupdater function.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nTested-by: Toshiyuki Okajima \u003ctoshi.okajima@jp.fujitsu.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "6d6b77f163c7eabedbba00ed2abb7d4a570bff76",
      "tree": "6ce074a7dd5a25fae28ef9de6f59ddee08ea4e61",
      "parents": [
        "dd2a981f46a0903a8770a784f213d4d40bbb6f19"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Oct 28 14:13:28 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@serles.lst.de",
        "time": "Wed Nov 02 12:53:43 2011 +0100"
      },
      "message": "filesystems: add missing nlink wrappers\n\nReplace direct i_nlink updates with the respective updater function\n(inc_nlink, drop_nlink, clear_nlink, inode_dec_link_count).\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "bf52c6f7af55c48ab0fd5f990460b884b428d906",
      "tree": "8100b2e84bc4ce00802af3e37d00908aaacdcadf",
      "parents": [
        "32de67569059d22b02dd9323a40220d953642b7e"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Tue Nov 01 18:59:26 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Nov 01 18:59:26 2011 -0400"
      },
      "message": "ext4: let ext4_ext_rm_leaf work with EXT_DEBUG defined\n\nThe variable \u0027block\u0027 is removed by commit 750c9c47, so use the\nreplacement ex_ee_block instead.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "32de67569059d22b02dd9323a40220d953642b7e",
      "tree": "0b63dbf315ad042ac01dfaf5acb89110f55ad1e9",
      "parents": [
        "ff3fc1736f1967b59801ab2cf6409fc6c8556b0a"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Tue Nov 01 18:56:41 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Nov 01 18:56:41 2011 -0400"
      },
      "message": "ext4: fix a syntax error in ext4_ext_insert_extent when debugging enabled\n\nThis patch fixes a syntax error which omits a comma. Besides this,\nlogical block number is unsigend 32 bits, so printk should use %u\ninstead %d.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "b9075fa968a0a4347aef35e235e2995c0e57dddd",
      "tree": "cf9f9716784e790d8a43339653256d9cf9178ff3",
      "parents": [
        "ae29bc92da01a2e9d278a9a58c3b307d41cc0254"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Oct 31 17:11:33 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:54 2011 -0700"
      },
      "message": "treewide: use __printf not __attribute__((format(printf,...)))\n\nStandardize the style for compiler based printf format verification.\nStandardized the location of __printf too.\n\nDone via script and a little typing.\n\n$ grep -rPl --include\u003d*.[ch] -w \"__attribute__\" * | \\\n  grep -vP \"^(tools|scripts|include/linux/compiler-gcc.h)\" | \\\n  xargs perl -n -i -e \u0027local $/; while (\u003c\u003e) { s/\\b__attribute__\\s*\\(\\s*\\(\\s*format\\s*\\(\\s*printf\\s*,\\s*(.+)\\s*,\\s*(.+)\\s*\\)\\s*\\)\\s*\\)/__printf($1, $2)/g ; print; }\u0027\n\n[akpm@linux-foundation.org: revert arch bits]\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: \"Kirill A. Shutemov\" \u003ckirill@shutemov.name\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "966dbde2c208e07bab7a45a7855e1e693eabe661",
      "tree": "4d1687ad52be80141d90a5bc3c5c6de64d9bad24",
      "parents": [
        "94054fa3fca1fd78db02cb3d68d5627120f0a1d4"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Mon Oct 31 17:07:48 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:46 2011 -0700"
      },
      "message": "ext4: warn if direct reclaim tries to writeback pages\n\nDirect reclaim should never writeback pages.  Warn if an attempt is made.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Johannes Weiner \u003cjweiner@redhat.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Alex Elder \u003caelder@sgi.com\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ff3fc1736f1967b59801ab2cf6409fc6c8556b0a",
      "tree": "ee2fbb7353f7a54584e2568b23a716f9ef2d7ce8",
      "parents": [
        "3c6fe77017bc6ce489f231c35fed3220b6691836"
      ],
      "author": {
        "name": "Robin Dong",
        "email": "sanbai@taobao.com",
        "time": "Mon Oct 31 18:55:50 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Oct 31 18:55:50 2011 -0400"
      },
      "message": "ext4: fix a typo in struct ext4_allocation_context\n\nThis patch changes \"bext\" to \"best\".\n\nSigned-off-by: Robin Dong \u003csanbai@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "3c6fe77017bc6ce489f231c35fed3220b6691836",
      "tree": "b3ca4d00dcecaf146361fef04afd8135ff370a07",
      "parents": [
        "4af835089984ce9e24c44a51be64c5524788e973"
      ],
      "author": {
        "name": "Greg Harm",
        "email": "gharm@google.com",
        "time": "Mon Oct 31 18:41:47 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Oct 31 18:41:47 2011 -0400"
      },
      "message": "ext4: Don\u0027t normalize an falloc request if it can fit in 1 extent.\n\nIf an fallocate request fits in EXT_UNINIT_MAX_LEN, then set the\nEXT4_GET_BLOCKS_NO_NORMALIZE flag. For larger fallocate requests,\nlet mballoc.c normalize the request.\n\nThis fixes a problem where large requests were being split into\nnon-contiguous extents due to commit 556b27abf73: ext4: do not\nnormalize block requests from fallocate.\n\nTesting: \n*) Checked that 8.x MB falloc\u0027ed files are still laid down next to\neach other (contiguously).\n*) Checked that the maximum size extent (127.9MB) is allocated as 1\nextent.\n*) Checked that a 1GB file is somewhat contiguous (often 5-6\nnon-contiguous extents now).\n*) Checked that a 120MB file can still be falloc\u0027ed even if there are\nno single extents large enough to hold it.\n\nSigned-off-by: Greg Harm \u003cgharm@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "4af835089984ce9e24c44a51be64c5524788e973",
      "tree": "73ccc1099e9caee8b790953fa4af6f53972c731d",
      "parents": [
        "edb5ac8993e25143f6af1ab143843a65c52e2a15"
      ],
      "author": {
        "name": "Eryu Guan",
        "email": "guaneryu@gmail.com",
        "time": "Mon Oct 31 18:21:29 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Oct 31 18:21:29 2011 -0400"
      },
      "message": "ext4: remove comments about extent mount option in ext4_new_inode()\n\nRemove comments about \u0027extent\u0027 mount option in ext4_new_inode(), since\nit\u0027s no longer exists.\n\nSigned-off-by: Eryu Guan \u003cguaneryu@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "edb5ac8993e25143f6af1ab143843a65c52e2a15",
      "tree": "d7ddf9603bcb2c540d5c240102a0dafc10f42eef",
      "parents": [
        "5129d05fda57be13f434dbe8536de39a6c25496d"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Mon Oct 31 18:04:38 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Oct 31 18:04:38 2011 -0400"
      },
      "message": "ext4: let ext4_discard_partial_buffers handle unaligned range correctly\n\nAs comment says, we should handle unaligned range rather than aligned\none.  This fixes a bug found by running xfstests #91.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\n"
    },
    {
      "commit": "5129d05fda57be13f434dbe8536de39a6c25496d",
      "tree": "e02d95dc0bba3fb12c69489c30b43fecca9fb115",
      "parents": [
        "e260daf27902b2189a9198f5b64fa4567939bb5b"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Mon Oct 31 17:56:10 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Oct 31 17:56:10 2011 -0400"
      },
      "message": "ext4: return ENOMEM if find_or_create_pages fails\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "e260daf27902b2189a9198f5b64fa4567939bb5b",
      "tree": "a14c395dc6d305b39ee595df66dd343000daf213",
      "parents": [
        "0edeb71dc9133bfb505d3bf59642e07cd936613e"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Mon Oct 31 17:54:36 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Oct 31 17:54:36 2011 -0400"
      },
      "message": "ext4: move vars to local scope in ext4_discard_partial_page_buffers_no_lock()\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "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": "0e175a1835ffc979e55787774e58ec79e41957d7",
      "tree": "6ec4b65a8de4e9d1c12d26a1079079ed81d79450",
      "parents": [
        "ad4e38dd6a33bb3a4882c487d7abe621e583b982"
      ],
      "author": {
        "name": "Curt Wohlgemuth",
        "email": "curtw@google.com",
        "time": "Fri Oct 07 21:54:10 2011 -0600"
      },
      "committer": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Mon Oct 31 00:33:36 2011 +0800"
      },
      "message": "writeback: Add a \u0027reason\u0027 to wb_writeback_work\n\nThis creates a new \u0027reason\u0027 field in a wb_writeback_work\nstructure, which unambiguously identifies who initiates\nwriteback activity.  A \u0027wb_reason\u0027 enumeration has been\nadded to writeback.h, to enumerate the possible reasons.\n\nThe \u0027writeback_work_class\u0027 and tracepoint event class and\n\u0027writeback_queue_io\u0027 tracepoints are updated to include the\nsymbolic \u0027reason\u0027 in all trace events.\n\nAnd the \u0027writeback_inodes_sbXXX\u0027 family of routines has had\na wb_stats parameter added to them, so callers can specify\nwhy writeback is being started.\n\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Curt Wohlgemuth \u003ccurtw@google.com\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\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": "f362f98e7c445643d27c610bb7a86b79727b592e",
      "tree": "399d9ebccdfbdfe9690ab1403a001d6f08e54b41",
      "parents": [
        "f793f2961170c0b49c1650e69e7825484159ce62",
        "f3c7691e8d30d88899b514675c7c86d19057b5fd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 10:49:34 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 10:49:34 2011 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/hch/vfs-queue\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/hch/vfs-queue: (21 commits)\n  leases: fix write-open/read-lease race\n  nfs: drop unnecessary locking in llseek\n  ext4: replace cut\u0027n\u0027pasted llseek code with generic_file_llseek_size\n  vfs: add generic_file_llseek_size\n  vfs: do (nearly) lockless generic_file_llseek\n  direct-io: merge direct_io_walker into __blockdev_direct_IO\n  direct-io: inline the complete submission path\n  direct-io: separate map_bh from dio\n  direct-io: use a slab cache for struct dio\n  direct-io: rearrange fields in dio/dio_submit to avoid holes\n  direct-io: fix a wrong comment\n  direct-io: separate fields only used in the submission path from struct dio\n  vfs: fix spinning prevention in prune_icache_sb\n  vfs: add a comment to inode_permission()\n  vfs: pass all mask flags check_acl and posix_acl_permission\n  vfs: add hex format for MAY_* flag values\n  vfs: indicate that the permission functions take all the MAY_* flags\n  compat: sync compat_stats with statfs.\n  vfs: add \"device\" tag to /proc/self/mountstats\n  cleanup: vfs: small comment fix for block_invalidatepage\n  ...\n\nFix up trivial conflict in fs/gfs2/file.c (llseek changes)\n"
    },
    {
      "commit": "4cce0e28b932c11454f75d1c1fae674600c23fbf",
      "tree": "3c1a0772eb6e681ebde32c7a9bab2cefb87eaf69",
      "parents": [
        "5760495a872d63a182962680a13c2af29235237c"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Thu Sep 15 16:06:51 2011 -0700"
      },
      "committer": {
        "name": "root",
        "email": "root@serles.lst.de",
        "time": "Fri Oct 28 14:58:59 2011 +0200"
      },
      "message": "ext4: replace cut\u0027n\u0027pasted llseek code with generic_file_llseek_size\n\nThis gives ext4 the benefits of unlocked llseek.\n\nCc: tytso@mit.edu\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\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": "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": "36b8d186e6cc8e32cb5227f5645a58e1bc0af190",
      "tree": "1000ad26e189e6ff2c53fb7eeff605f59c7ad94e",
      "parents": [
        "cd85b557414fe4cd44ea6608825e96612a5fe2b2",
        "c45ed235abf1b0b6666417e3c394f18717976acd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 25 09:45:31 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 25 09:45:31 2011 +0200"
      },
      "message": "Merge branch \u0027next\u0027 of git://selinuxproject.org/~jmorris/linux-security\n\n* \u0027next\u0027 of git://selinuxproject.org/~jmorris/linux-security: (95 commits)\n  TOMOYO: Fix incomplete read after seek.\n  Smack: allow to access /smack/access as normal user\n  TOMOYO: Fix unused kernel config option.\n  Smack: fix: invalid length set for the result of /smack/access\n  Smack: compilation fix\n  Smack: fix for /smack/access output, use string instead of byte\n  Smack: domain transition protections (v3)\n  Smack: Provide information for UDS getsockopt(SO_PEERCRED)\n  Smack: Clean up comments\n  Smack: Repair processing of fcntl\n  Smack: Rule list lookup performance\n  Smack: check permissions from user space (v2)\n  TOMOYO: Fix quota and garbage collector.\n  TOMOYO: Remove redundant tasklist_lock.\n  TOMOYO: Fix domain transition failure warning.\n  TOMOYO: Remove tomoyo_policy_memory_lock spinlock.\n  TOMOYO: Simplify garbage collector.\n  TOMOYO: Fix make namespacecheck warnings.\n  target: check hex2bin result\n  encrypted-keys: check hex2bin result\n  ...\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": "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": "fed678dc8a8b839c8189b5d889a94e865cd327dd",
      "tree": "d2bf10d2a4e4ca0a27ccd6f7ae40e8e259acfcfc",
      "parents": [
        "808bf29b9195c52239b9aaeda7c6082a0ddf07c6",
        "6c4867f6469964e34c5f4ee229a2a7f71a34c7ff"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 21 13:20:21 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 21 13:20:21 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-block:\n  floppy: use del_timer_sync() in init cleanup\n  blk-cgroup: be able to remove the record of unplugged device\n  block: Don\u0027t check QUEUE_FLAG_SAME_COMP in __blk_complete_request\n  mm: Add comment explaining task state setting in bdi_forker_thread()\n  mm: Cleanup clearing of BDI_pending bit in bdi_forker_thread()\n  block: simplify force plug flush code a little bit\n  block: change force plug flush call order\n  block: Fix queue_flag update when rq_affinity goes from 2 to 1\n  block: separate priority boosting from REQ_META\n  block: remove READ_META and WRITE_META\n  xen-blkback: fixed indentation and comments\n  xen-blkback: Don\u0027t disconnect backend until state switched to XenbusStateClosed.\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"
    }
  ],
  "next": "bab08ab9646288f1b0b72a7aaeecdff94bd62c18"
}
