)]}'
{
  "log": [
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "ae005cbed12d0b340b04b59d6f5c56e710b3895d",
      "tree": "d464865bcc97bea05eab4eba0d10bcad4ec89b93",
      "parents": [
        "3961cdf85b749f6bab50ad31ee97e9277e7a3b70",
        "0ba0851714beebb800992e5105a79dc3a4c504b0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 09:57:40 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 09:57:41 2011 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (43 commits)\n  ext4: fix a BUG in mb_mark_used during trim.\n  ext4: unused variables cleanup in fs/ext4/extents.c\n  ext4: remove redundant set_buffer_mapped() in ext4_da_get_block_prep()\n  ext4: add more tracepoints and use dev_t in the trace buffer\n  ext4: don\u0027t kfree uninitialized s_group_info members\n  ext4: add missing space in printk\u0027s in __ext4_grp_locked_error()\n  ext4: add FITRIM to compat_ioctl.\n  ext4: handle errors in ext4_clear_blocks()\n  ext4: unify the ext4_handle_release_buffer() api\n  ext4: handle errors in ext4_rename\n  jbd2: add COW fields to struct jbd2_journal_handle\n  jbd2: add the b_cow_tid field to journal_head struct\n  ext4: Initialize fsync transaction ids in ext4_new_inode()\n  ext4: Use single thread to perform DIO unwritten convertion\n  ext4: optimize ext4_bio_write_page() when no extent conversion is needed\n  ext4: skip orphan cleanup if fs has unknown ROCOMPAT features\n  ext4: use the nblocks arg to ext4_truncate_restart_trans()\n  ext4: fix missing iput of root inode for some mount error paths\n  ext4: make FIEMAP and delayed allocation play well together\n  ext4: suppress verbose debugging information if malloc-debug is off\n  ...\n\nFi up conflicts in fs/ext4/super.c due to workqueue changes\n"
    },
    {
      "commit": "6c5103890057b1bb781b26b7aae38d33e4c517d8",
      "tree": "e6e57961dcddcb5841acb34956e70b9dc696a880",
      "parents": [
        "3dab04e6978e358ad2307bca563fabd6c5d2c58b",
        "9d2e157d970a73b3f270b631828e03eb452d525e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block: (65 commits)\n  Documentation/iostats.txt: bit-size reference etc.\n  cfq-iosched: removing unnecessary think time checking\n  cfq-iosched: Don\u0027t clear queue stats when preempt.\n  blk-throttle: Reset group slice when limits are changed\n  blk-cgroup: Only give unaccounted_time under debug\n  cfq-iosched: Don\u0027t set active queue in preempt\n  block: fix non-atomic access to genhd inflight structures\n  block: attempt to merge with existing requests on plug flush\n  block: NULL dereference on error path in __blkdev_get()\n  cfq-iosched: Don\u0027t update group weights when on service tree\n  fs: assign sb-\u003es_bdi to default_backing_dev_info if the bdi is going away\n  block: Require subsystems to explicitly allocate bio_set integrity mempool\n  jbd2: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  jbd: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  fs: make fsync_buffers_list() plug\n  mm: make generic_writepages() use plugging\n  blk-cgroup: Add unaccounted time to timeslice_used.\n  block: fixup plugging stubs for !CONFIG_BLOCK\n  block: remove obsolete comments for blkdev_issue_zeroout.\n  blktrace: Use rq-\u003ecmd_flags directly in blk_add_trace_rq.\n  ...\n\nFix up conflicts in fs/{aio.c,super.c}\n"
    },
    {
      "commit": "2e1496707560ecf98e9b0604622c0990f94861d3",
      "tree": "d1473b70fad31a903fedc87221680678a6c6c5f6",
      "parents": [
        "e795b71799ff0b27365020c9ddaa25d0d83f99c8"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serge@hallyn.com",
        "time": "Wed Mar 23 16:43:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:47:13 2011 -0700"
      },
      "message": "userns: rename is_owner_or_cap to inode_owner_or_capable\n\nAnd give it a kernel-doc comment.\n\n[akpm@linux-foundation.org: btrfs changed in linux-next]\nSigned-off-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "50e0168cc3406fc1a04d57eb08f500a173d1660d",
      "tree": "19f8e15048c37bfface138e19eb93855e02c266c",
      "parents": [
        "0795ccea24714c790187e3d4f23c8e5be515f42d"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 23 16:42:07 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:46:17 2011 -0700"
      },
      "message": "ext4: use little-endian bitops\n\nAs a preparation for removing ext2 non-atomic bit operations from\nasm/bitops.h.  This converts ext2 non-atomic bit operations to\nlittle-endian bit operations.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nAcked-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Andreas Dilger \u003cadilger.kernel@dilger.ca\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0ba0851714beebb800992e5105a79dc3a4c504b0",
      "tree": "290b4f679fc86877df068ae4193101dc583f424f",
      "parents": [
        "65922cb5ced76ba7182e955d4aada96f93446b1a"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Wed Mar 23 15:48:11 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 23 15:48:11 2011 -0400"
      },
      "message": "ext4: fix a BUG in mb_mark_used during trim.\n\nIn a bs\u003d4096 volume, if we call FITRIM with the following parameter as\nfstrim_range(start \u003d 102400, len \u003d 134144000, minlen \u003d 10240),\nwe will trigger this BUG_ON:\n\n\tBUG_ON(start + len \u003e (e4b-\u003ebd_sb-\u003es_blocksize \u003c\u003c 3));\n\nMar  4 00:55:52 boyu-tm kernel: ------------[ cut here ]------------\nMar  4 00:55:52 boyu-tm kernel: kernel BUG at fs/ext4/mballoc.c:1506!\nMar  4 01:21:09 boyu-tm kernel: Code: d4 00 00 00 00 49 89 fe 8b 56 0c 44 8b 7e 04 89 55 c4 48 8b 4f 28 89 d6 44 01 fe 48 63 d6 48 8b 41 18 48 c1 e0 03 48 39 c2 76 04 \u003c0f\u003e 0b eb fe 48 8b 55 b0 8b 47 34 3b 42 08 74 04 0f 0b eb fe 48\nMar  4 01:21:09 boyu-tm kernel: RIP  [\u003cffffffffa053eb42\u003e] mb_mark_used+0x47/0x26c [ext4]\nMar  4 01:21:09 boyu-tm kernel:  RSP \u003cffff880121e45c38\u003e\nMar  4 01:21:09 boyu-tm kernel: ---[ end trace 9f461696f6a9dcf2 ]---\n\nFix this bug by doing the accounting correctly.\n\nCc: Lukas Czerner \u003clczerner@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": "65922cb5ced76ba7182e955d4aada96f93446b1a",
      "tree": "2d6b7f56f226e7e17f67f642775a2ec0a32c7e17",
      "parents": [
        "6de9843dab3f2a1d4d66d80aa9e5782f80977d20"
      ],
      "author": {
        "name": "Sergey Senozhatsky",
        "email": "sergey.senozhatsky@gmail.com",
        "time": "Wed Mar 23 14:08:27 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 23 14:08:27 2011 -0400"
      },
      "message": "ext4: unused variables cleanup in fs/ext4/extents.c\n\next4 extents cleanup:\n\n  . remove unused `*ex\u0027 from check_eofblocks_fl\n  . remove unused `*eh\u0027 from ext4_ext_map_blocks\n\n\nSigned-off-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "6de9843dab3f2a1d4d66d80aa9e5782f80977d20",
      "tree": "9c78e8d386e117cb890e9823b113dfdc290be580",
      "parents": [
        "0562e0bad483d10e9651fbb8f21dc3d0bad57374"
      ],
      "author": {
        "name": "Feng Tang",
        "email": "feng.tang@intel.com",
        "time": "Wed Mar 23 14:05:03 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 23 14:05:03 2011 -0400"
      },
      "message": "ext4: remove redundant set_buffer_mapped() in ext4_da_get_block_prep()\n\nThe map_bh() call will have already set the buffer_head to mapped.\n\nSigned-off-by: Feng Tang \u003cfeng.tang@intel.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0562e0bad483d10e9651fbb8f21dc3d0bad57374",
      "tree": "19f6597f92c028badcb6df360ccac22240378e25",
      "parents": [
        "4596fe07679ff0fae904515691ea747467614871"
      ],
      "author": {
        "name": "Jiaying Zhang",
        "email": "jiayingz@google.com",
        "time": "Mon Mar 21 21:38:05 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Mar 21 21:38:05 2011 -0400"
      },
      "message": "ext4: add more tracepoints and use dev_t in the trace buffer\n\n- Add more ext4 tracepoints.\n- Change ext4 tracepoints to use dev_t field with MAJOR/MINOR macros\nso that we can save 4 bytes in the ring buffer on some platforms.\n- Add sync_mode to ext4_da_writepages, ext4_da_write_pages, and\next4_da_writepages_result tracepoints. Also remove for_reclaim\nfield from ext4_da_writepages since it is usually not very useful.\n\nSigned-off-by: Jiaying Zhang \u003cjiayingz@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "4596fe07679ff0fae904515691ea747467614871",
      "tree": "e15520e06d5c72702dc84e4eda4179ee9dc5c294",
      "parents": [
        "21149d611ecd0faf60f4ef94aa2bf8ed872f92bf"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Mon Mar 21 21:25:13 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Mar 21 21:25:13 2011 -0400"
      },
      "message": "ext4: don\u0027t kfree uninitialized s_group_info members\n\nWe can call kfree on uninitialized members of the s_group_info array\non an the error path.  We can avoid this by kzalloc\u0027ing the array.\n\nThis doesn\u0027t entirely solve the oops on mount if we fail down this\npath; failed_mount4: frees the sbi, for one, which gets referenced\nlater in the failed mount paths - I haven\u0027t worked that out yet.\n\nhttps://bugzilla.kernel.org/show_bug.cgi?id\u003d30872\n\nReported-by: Eugene A. Shatokhin \u003cdame_eugene@mail.ru\u003e\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "21149d611ecd0faf60f4ef94aa2bf8ed872f92bf",
      "tree": "93c1b2cf51747dae66789db0506e94bc02dd0859",
      "parents": [
        "a56e69c28ad0782a99f3f196e93d57ba5a7e2324"
      ],
      "author": {
        "name": "Robin Dong",
        "email": "sanbai@taobao.com",
        "time": "Mon Mar 21 20:39:22 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Mar 21 20:39:22 2011 -0400"
      },
      "message": "ext4: add missing space in printk\u0027s in __ext4_grp_locked_error()\n\nWhen we do performence-testing on ext4 filesystem, we observed a\nwarning like this:\n\nEXT4-fs error (device sda7): ext4_mb_generate_buddy:718: group 259825901 blocks in bitmap, 26057 in gd\n\ninstead, it should be\n\n\"group 2598, 25901 blocks in bitmap, 26057 in gd\"\n\nReviewed-by: Coly Li \u003cbosong.ly@taobao.com\u003e\nCc: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: Robin Dong \u003csanbai@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a56e69c28ad0782a99f3f196e93d57ba5a7e2324",
      "tree": "5737ab643ff5eefc21704d41f4583c5fbd9be8f8",
      "parents": [
        "d67d1218344009970ba0deb7eb15a3984518ddd0"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Sun Mar 20 23:16:58 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Mar 20 23:16:58 2011 -0400"
      },
      "message": "ext4: add FITRIM to compat_ioctl.\n\nFITRIM isn\u0027t added in compat_ioctl. So a 32 bit program can\u0027t be executed\nin a 64 bit platform. Add it in the compat_ioctl.\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d67d1218344009970ba0deb7eb15a3984518ddd0",
      "tree": "323e3fb76bdff2481fa35ce3aa82699434dae743",
      "parents": [
        "537a03103c67c4688b1e8e6671ad119aec5e2efb"
      ],
      "author": {
        "name": "Amir Goldstein",
        "email": "amir73il@gmail.com",
        "time": "Sun Mar 20 22:59:02 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Mar 20 22:59:02 2011 -0400"
      },
      "message": "ext4: handle errors in ext4_clear_blocks()\n\nChecking return code from ext4_journal_get_write_access() is important\nwith snapshots, because this function invokes COW, so may return new\nerrors, such as ENOSPC.\n\next4_clear_blocks() now returns \u003c 0 for fatal errors, in which case,\next4_free_data() is aborted.\n\nSigned-off-by: Amir Goldstein \u003camir73il@users.sf.net\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "537a03103c67c4688b1e8e6671ad119aec5e2efb",
      "tree": "8d5df9bfe1e027395455374cd076b5997d3b488d",
      "parents": [
        "ef6078930263bfcdcfe4dddb2cd85254b4cf4f5c"
      ],
      "author": {
        "name": "Amir Goldstein",
        "email": "amir73il@gmail.com",
        "time": "Sun Mar 20 22:57:02 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Mar 20 22:57:02 2011 -0400"
      },
      "message": "ext4: unify the ext4_handle_release_buffer() api\n\nThere are two wrapper functions which do exactly the same thing:\next4_journal_release_buffer(), and ext4_handle_release_buffer().  In\naddition, ext4_xattr_block_set() calls jbd2_journal_release_buffer()\ndirectly.\n\nUnify all of the code to use ext4_handle_release_buffer(), and get rid\nof ext4_journal_release_buffer().\n\nSigned-off-by: Amir Goldstein \u003camir73il@users.sf.net\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "ef6078930263bfcdcfe4dddb2cd85254b4cf4f5c",
      "tree": "78ad55a45c5df9be3be1453c2fc36e98d3c2196b",
      "parents": [
        "93737456d68ddcb86232f669b83da673dd12e351"
      ],
      "author": {
        "name": "Amir Goldstein",
        "email": "amir73il@gmail.com",
        "time": "Sun Mar 20 21:18:44 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Mar 20 21:18:44 2011 -0400"
      },
      "message": "ext4: handle errors in ext4_rename\n\nChecking return code from ext4_journal_get_write_access() is important\nwith snapshots, because this function invokes COW, so may return new\nerrors, such as ENOSPC.\n\nWe move the call to ext4_journal_get_write_access earlier in the\nfunction, to simplify error handling in the case that this function\nreturns returns an error.\n\nSigned-off-by: Amir Goldstein \u003camir73il@users.sf.net\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "e16b396ce314b2bcdfe6c173fe075bf8e3432368",
      "tree": "640f0f56f2ea676647af4eb42d32fa56be2ee549",
      "parents": [
        "7fd23a24717a327a66f3c32d11a20a2f169c824f",
        "e6e8dd5055a974935af1398c8648d4a9359b0ecb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 18 10:37:40 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 18 10:37:40 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (47 commits)\n  doc: CONFIG_UNEVICTABLE_LRU doesn\u0027t exist anymore\n  Update cpuset info \u0026 webiste for cgroups\n  dcdbas: force SMI to happen when expected\n  arch/arm/Kconfig: remove one to many l\u0027s in the word.\n  asm-generic/user.h: Fix spelling in comment\n  drm: fix printk typo \u0027sracth\u0027\n  Remove one to many n\u0027s in a word\n  Documentation/filesystems/romfs.txt: fixing link to genromfs\n  drivers:scsi Change printk typo initate -\u003e initiate\n  serial, pch uart: Remove duplicate inclusion of linux/pci.h header\n  fs/eventpoll.c: fix spelling\n  mm: Fix out-of-date comments which refers non-existent functions\n  drm: Fix printk typo \u0027failled\u0027\n  coh901318.c: Change initate to initiate.\n  mbox-db5500.c Change initate to initiate.\n  edac: correct i82975x error-info reported\n  edac: correct i82975x mci initialisation\n  edac: correct commented info\n  fs: update comments to point correct document\n  target: remove duplicate include of target/target_core_device.h from drivers/target/target_core_hba.c\n  ...\n\nTrivial conflict in fs/eventpoll.c (spelling vs addition)\n"
    },
    {
      "commit": "688f869ce3bdc892daa993534dc6df18c95df931",
      "tree": "aea78b966a70e3e0200a88bfaddb86e7fd3f1092",
      "parents": [
        "198868f35de99e7197829314076e5465c37e4cc5"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 16 17:16:31 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 16 17:16:31 2011 -0400"
      },
      "message": "ext4: Initialize fsync transaction ids in ext4_new_inode()\n\nWhen allocating a new inode, we need to make sure i_sync_tid and\ni_datasync_tid are initialized.  Otherwise, one or both of these two\nvalues could be left initialized to zero, which could potentially\nresult in BUG_ON in jbd2_journal_commit_transaction.\n\n(This could happen by having journal-\u003ecommit_request getting set to\nzero, which could wake up the kjournald process even though there is\nno running transaction, which then causes a BUG_ON via the \nJ_ASSERT(j_ruinning_transaction !\u003d NULL) statement.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0f6e0e8448a16d8d22119ce91d8dd24b44865b51",
      "tree": "7c295c02db035fc6a0b867465911a2bc9dc6b1ef",
      "parents": [
        "0d2ecee2bdb2a19d04bc5cefac0f86e790f1aad4",
        "a002951c97ff8da49938c982a4c236bf2fafdc9f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 16 09:15:43 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 16 09:15:43 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: (33 commits)\n  AppArmor: kill unused macros in lsm.c\n  AppArmor: cleanup generated files correctly\n  KEYS: Add an iovec version of KEYCTL_INSTANTIATE\n  KEYS: Add a new keyctl op to reject a key with a specified error code\n  KEYS: Add a key type op to permit the key description to be vetted\n  KEYS: Add an RCU payload dereference macro\n  AppArmor: Cleanup make file to remove cruft and make it easier to read\n  SELinux: implement the new sb_remount LSM hook\n  LSM: Pass -o remount options to the LSM\n  SELinux: Compute SID for the newly created socket\n  SELinux: Socket retains creator role and MLS attribute\n  SELinux: Auto-generate security_is_socket_class\n  TOMOYO: Fix memory leak upon file open.\n  Revert \"selinux: simplify ioctl checking\"\n  selinux: drop unused packet flow permissions\n  selinux: Fix packet forwarding checks on postrouting\n  selinux: Fix wrong checks for selinux_policycap_netpeer\n  selinux: Fix check for xfrm selinux context algorithm\n  ima: remove unnecessary call to ima_must_measure\n  IMA: remove IMA imbalance checking\n  ...\n"
    },
    {
      "commit": "bd2895eeade5f11f3e5906283c630bbdb4b57454",
      "tree": "4d98f4fcd80c7d062afce28823d08aee53e66f82",
      "parents": [
        "016aa2ed1cc9cf704cf76d8df07751b6daa9750f",
        "24d51add7438f9696a7205927bf9de3c5c787a58"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 16 08:20:19 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 16 08:20:19 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.39\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq\n\n* \u0027for-2.6.39\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:\n  workqueue: fix build failure introduced by s/freezeable/freezable/\n  workqueue: add system_freezeable_wq\n  rds/ib: use system_wq instead of rds_ib_fmr_wq\n  net/9p: replace p9_poll_task with a work\n  net/9p: use system_wq instead of p9_mux_wq\n  xfs: convert to alloc_workqueue()\n  reiserfs: make commit_wq use the default concurrency level\n  ocfs2: use system_wq instead of ocfs2_quota_wq\n  ext4: convert to alloc_workqueue()\n  scsi/scsi_tgt_lib: scsi_tgtd isn\u0027t used in memory reclaim path\n  scsi/be2iscsi,qla2xxx: convert to alloc_workqueue()\n  misc/iwmc3200top: use system_wq instead of dedicated workqueues\n  i2o: use alloc_workqueue() instead of create_workqueue()\n  acpi: kacpi*_wq don\u0027t need WQ_MEM_RECLAIM\n  fs/aio: aio_wq isn\u0027t used in memory reclaim path\n  input/tps6507x-ts: use system_wq instead of dedicated workqueue\n  cpufreq: use system_wq instead of dedicated workqueues\n  wireless/ipw2x00: use system_wq instead of dedicated workqueues\n  arm/omap: use system_wq in mailbox\n  workqueue: use WQ_MEM_RECLAIM instead of WQ_RESCUER\n"
    },
    {
      "commit": "f2fa2ffc2046fdc35f96366d1ec8675f4d578522",
      "tree": "b1215682f5fbb99cf975cee3fb827909ee4a1c97",
      "parents": [
        "03cb5f03dcb26846fcad345d8c15aae91579a53d"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Sat Jan 29 18:43:40 2011 +0530"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 15 02:21:45 2011 -0400"
      },
      "message": "ext4: Copy fs UUID to superblock\n\nFile system UUID is made available to application\nvia  /proc/\u003cpid\u003e/mountinfo\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f17b6042073e7000a90063f7edbca59a5bd1caa2",
      "tree": "e893485df882c770da602030c6c1098b11ea3d56",
      "parents": [
        "aae8a97d3ec30788790d1720b71d76fd8eb44b73"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Sat Jan 29 18:43:30 2011 +0530"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 15 02:21:44 2011 -0400"
      },
      "message": "fs: Remove i_nlink check from file system link callback\n\nNow that VFS check for inode-\u003ei_nlink \u003d\u003d 0 and returns proper\nerror, remove similar check from file system\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "721a9602e6607417c6bc15b18e97a2f35266c690",
      "tree": "4987991e43f35b8b3b685fea0040c5265b578996",
      "parents": [
        "cf15900e1209d5b46ec2d24643adbf561830935f"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Mar 09 11:56:30 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:52:27 2011 +0100"
      },
      "message": "block: kill off REQ_UNPLUG\n\nWith the plugging now being explicitly controlled by the\nsubmitter, callers need not pass down unplugging hints\nto the block layer. If they want to unplug, it\u0027s because they\nmanually plugged on their own - in which case, they should just\nunplug at will.\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "7eaceaccab5f40bbfda044629a6298616aeaed50",
      "tree": "33954d12f63e25a47eb6d86ef3d3d0a5e62bf752",
      "parents": [
        "73c101011926c5832e6e141682180c4debe2cf45"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:52:07 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:52:07 2011 +0100"
      },
      "message": "block: remove per-queue plugging\n\nCode has been converted over to the new explicit on-stack plugging,\nand delay users have been converted to use the new API for that.\nSo lets kill off the old plugging along with aops-\u003esync_page().\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "fe3fa43039d47ee4e22caf460b79b62a14937f79",
      "tree": "9eab8d00f1227b9fe0959f32a62d892ed35803ba",
      "parents": [
        "ee009e4a0d4555ed522a631bae9896399674f064",
        "026eb167ae77244458fa4b4b9fc171209c079ba7"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Mar 08 11:38:10 2011 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Mar 08 11:38:10 2011 +1100"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.infradead.org/users/eparis/selinux into next\n"
    },
    {
      "commit": "198868f35de99e7197829314076e5465c37e4cc5",
      "tree": "04d6044250667f150787bedf68db6ac3732458c9",
      "parents": [
        "b616844310a6c8a4ab405d3436bbb6e53cfd852f"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Sat Mar 05 11:52:45 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Mar 05 11:52:45 2011 -0500"
      },
      "message": "ext4: Use single thread to perform DIO unwritten convertion\n\nWhile running ext4 testing on multiple core, we found there are per\ncpu ext4-dio-unwritten threads processing conversion from unwritten\nextents to written for IOs completed from async direct IO patch.  Per\nfilesystem is enough, we don\u0027t need per cpu threads to work on\nconversion.\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\n"
    },
    {
      "commit": "b616844310a6c8a4ab405d3436bbb6e53cfd852f",
      "tree": "7fff51c3d55b21df27d93382c8bd0f2910f83263",
      "parents": [
        "d39195c33bb1b5fdcb0f416e8a0b34bfdb07a027"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 28 13:12:38 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 28 13:12:38 2011 -0500"
      },
      "message": "ext4: optimize ext4_bio_write_page() when no extent conversion is needed\n\nIf no extent conversion is required, wake up any processes waiting for\nthe page\u0027s writeback to be complete and free the ext4_io_end structure\ndirectly in ext4_end_bio() instead of dropping it on the linked list\n(which requires taking a spinlock to queue and dequeue the io_end\nstructure), and waiting for the workqueue to do this work.\n\nThis removes an extra scheduling delay before process waiting for an\nfsync() to complete gets woken up, and it also reduces the CPU\noverhead for a random write workload.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d39195c33bb1b5fdcb0f416e8a0b34bfdb07a027",
      "tree": "dcea99dcf6ca1b76c0db23fd4e81033440d057b5",
      "parents": [
        "8e8eaabefee3ff645b9551ee32c6c54c7d80ad19"
      ],
      "author": {
        "name": "Amir Goldstein",
        "email": "amir73il@gmail.com",
        "time": "Mon Feb 28 00:53:45 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 28 00:53:45 2011 -0500"
      },
      "message": "ext4: skip orphan cleanup if fs has unknown ROCOMPAT features\n\nOrphan cleanup is currently executed even if the file system has some\nnumber of unknown ROCOMPAT features, which deletes inodes and frees\nblocks, which could be very bad for some RO_COMPAT features,\nespecially the SNAPSHOT feature.\n\nThis patch skips the orphan cleanup if it contains readonly compatible\nfeatures not known by this ext4 implementation, which would prevent\nthe fs from being mounted (or remounted) readwrite.\n\nSigned-off-by: Amir Goldstein \u003camir73il@users.sf.net\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "8e8eaabefee3ff645b9551ee32c6c54c7d80ad19",
      "tree": "101f4a24a8f57f798a74eb097c424b882f872bf8",
      "parents": [
        "32a9bb57d7c1fd04ae0f72b8f671501f000a0e9f"
      ],
      "author": {
        "name": "Amir Goldstein",
        "email": "amir73il@gmail.com",
        "time": "Sun Feb 27 23:32:12 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Feb 27 23:32:12 2011 -0500"
      },
      "message": "ext4: use the nblocks arg to ext4_truncate_restart_trans()\n\nnblocks is passed into ext4_truncate_restart_trans() from\next4_ext_truncate_extend_restart() with a value different from the default\nblocks_for_truncate(), but is being ignored.\n\nThe two other calls to ext4_truncate_restart_trans() already pass the\ndefault value, which is then being recalculated inside the function.\n\nFix the problem by using the passed argument.\n\nSigned-off-by: Amir Goldstein \u003camir73il@users.sf.net\u003e\n"
    },
    {
      "commit": "32a9bb57d7c1fd04ae0f72b8f671501f000a0e9f",
      "tree": "9bab50282f4d17a9710df599170662bda8a9a61d",
      "parents": [
        "6d9c85eb700bd3ac59e63bb9de463dea1aca084c"
      ],
      "author": {
        "name": "Manish Katiyar",
        "email": "mkatiyar@gmail.com",
        "time": "Sun Feb 27 20:42:06 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Feb 27 20:42:06 2011 -0500"
      },
      "message": "ext4: fix missing iput of root inode for some mount error paths\n\nThis assures that the root inode is not leaked, and that sb-\u003es_root is\nNULL, which will prevent generic_shutdown_super() from doing extra\nwork, including call sync_filesystem, which ultimately results in\next4_sync_fs() getting called with an uninitialized struct super,\nwhich is the cause of the crash noted in Kernel Bugzilla #26752.\n\nhttps://bugzilla.kernel.org/show_bug.cgi?id\u003d26752\n\nSigned-off-by: Manish Katiyar \u003cmkatiyar@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "6d9c85eb700bd3ac59e63bb9de463dea1aca084c",
      "tree": "c87def25fd7c97b94e8d78700dd0794abe5c8a50",
      "parents": [
        "4dd89fc6251a6bda2c18e71e7d266e983806579d"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Sun Feb 27 17:25:47 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Feb 27 17:25:47 2011 -0500"
      },
      "message": "ext4: make FIEMAP and delayed allocation play well together\n\nFix the FIEMAP ioctl so that it returns all of the page ranges which\nare still subject to delayed allocation.  We were missing some cases\nif the file was sparse.\n\nReported by Chris Mason \u003cchris.mason@oracle.com\u003e:\n\u003eWe\u0027ve had reports on btrfs that cp is giving us files full of zeros\n\u003einstead of actually copying them.  It was tracked down to a bug with\n\u003ethe btrfs fiemap implementation where it was returning holes for\n\u003edelalloc ranges.\n\u003e\n\u003eNewer versions of cp are trusting fiemap to tell it where the holes\n\u003eare, which does seem like a pretty neat trick.\n\u003e\n\u003eI decided to give xfs and ext4 a shot with a few tests cases too, xfs\n\u003epassed with all the ones btrfs was getting wrong, and ext4 got the basic\n\u003edelalloc case right.\n\u003e$ mkfs.ext4 /dev/xxx\n\u003e$ mount /dev/xxx /mnt\n\u003e$ dd if\u003d/dev/zero of\u003d/mnt/foo bs\u003d1M count\u003d1\n\u003e$ fiemap-test foo\n\u003eext:   0 logical: [       0..     255] phys:        0..     255\n\u003eflags: 0x007 tot: 256\n\u003e\n\u003eHorray!  But once we throw a hole in, things go bad:\n\u003e$ mkfs.ext4 /dev/xxx\n\u003e$ mount /dev/xxx /mnt\n\u003e$ dd if\u003d/dev/zero of\u003d/mnt/foo bs\u003d1M count\u003d1 seek\u003d1\n\u003e$ fiemap-test foo\n\u003e\u003c no output \u003e\n\u003e\n\u003eWe\u0027ve got a delalloc extent after the hole and ext4 fiemap didn\u0027t find\n\u003eit.  If I run sync to kick the delalloc out:\n\u003e$sync\n\u003e$ fiemap-test foo\n\u003eext:   0 logical: [     256..     511] phys:    34048..   34303\n\u003eflags: 0x001 tot: 256\n\u003e\n\u003efiemap-test is sitting in my /usr/local/bin, and I have no idea how it\n\u003egot there.  It\u0027s full of pretty comments so I know it isn\u0027t mine, but\n\u003eyou can grab it here:\n\u003e\n\u003ehttp://oss.oracle.com/~mason/fiemap-test.c\n\u003e\n\u003exfsqa has a fiemap program too.\n\nAfter Fix, test results are as follows:\next:   0 logical: [     256..     511] phys:        0..     255\nflags: 0x007 tot: 256\next:   0 logical: [     256..     511] phys:    33280..   33535\nflags: 0x001 tot: 256\n\n$ mkfs.ext4 /dev/xxx\n$ mount /dev/xxx /mnt\n$ dd if\u003d/dev/zero of\u003d/mnt/foo bs\u003d1M count\u003d1 seek\u003d1\n$ sync\n$ dd if\u003d/dev/zero of\u003d/mnt/foo bs\u003d1M count\u003d1 seek\u003d3\n$ dd if\u003d/dev/zero of\u003d/mnt/foo bs\u003d1M count\u003d1 seek\u003d5\n$ fiemap-test foo\next:   0 logical: [     256..     511] phys:    33280..   33535\nflags: 0x000 tot: 256\next:   1 logical: [     768..    1023] phys:        0..     255\nflags: 0x006 tot: 256\next:   2 logical: [    1280..    1535] phys:        0..     255\nflags: 0x007 tot: 256\n\nTested-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nReviewed-by: Andreas Dilger \u003cadilger@dilger.ca\u003e\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "4dd89fc6251a6bda2c18e71e7d266e983806579d",
      "tree": "c2a98ab3ba6a24a10a0eabc5dc818dcc17ad9c5d",
      "parents": [
        "a54aa76108619e5d8290b49081c2aaaeff5be9a2"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Feb 27 17:23:47 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Feb 27 17:23:47 2011 -0500"
      },
      "message": "ext4: suppress verbose debugging information if malloc-debug is off\n\nIf CONFIG_EXT4_DEBUG is enabled, then if a block allocation fails due\nto disk being full, a verbose debugging message is printed, even if\nthe malloc-debug switch has not been enabled.  Suppress the debugging\nmessage so that nothing is printed unless malloc-debug has been turned\non.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a54aa76108619e5d8290b49081c2aaaeff5be9a2",
      "tree": "a3c436e29b5452f9c17bffc7bbc6b8f437c3255c",
      "parents": [
        "168fc0223c0e944957b1f31d88c2334fc904baf1"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Feb 27 16:43:24 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Feb 27 16:43:24 2011 -0500"
      },
      "message": "ext4: don\u0027t leave PageWriteback set after memory failure\n\nIn ext4_bio_write_page(), if the memory allocation for the struct\next4_io_page fails, it returns with the page\u0027s PageWriteback flag set.\nThis will end up causing the page not to skip writeback in\nWB_SYNC_NONE mode, and in WB_SYNC_ALL mode (i.e., on a sync, fsync, or\numount) the writeback daemon will get stuck forever on the\nwait_on_page_writeback() function in write_cache_pages_da().\n\nOr, if journalling is enabled and the file gets deleted, it the\njournal thread can get stuck in journal_finish_inode_data_buffers()\ncall to filemap_fdatawait().\n\nAnother place where things can get hung up is in\ntruncate_inode_pages(), called out of ext4_evict_inode().\n\nFix this by not setting PageWriteback until after we have successfully\nallocated the struct ext4_io_page.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "168fc0223c0e944957b1f31d88c2334fc904baf1",
      "tree": "1768f86cca5cef5ae1ba2275fca7ea9f0c0630d5",
      "parents": [
        "78aaced3408141bb7c836f2db0ca435790399da5"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 26 14:09:20 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 26 14:09:20 2011 -0500"
      },
      "message": "ext4: move setup of the mpd structure to write_cache_pages_da()\n\nMove the initialization of all of the fields of the mpd structure to\nwrite_cache_pages_da().  This simplifies the code considerably.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "78aaced3408141bb7c836f2db0ca435790399da5",
      "tree": "c761d397605095d4d895ede9fc5e6a6548723cad",
      "parents": [
        "ee6ecbcc5d73672217fdea420d182ecb0cdf310c"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 26 14:09:14 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 26 14:09:14 2011 -0500"
      },
      "message": "ext4: don\u0027t lock the next page in write_cache_pages if not needed\n\nIf we have accumulated a contiguous region of memory to be written\nout, and the next page can added to this region, don\u0027t bother locking\n(and then unlocking the page) before writing out the memory.  In the\nunlikely event that the next page was being written back by some other\nCPU, we can also skip waiting that page to finish writeback.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "ee6ecbcc5d73672217fdea420d182ecb0cdf310c",
      "tree": "4d5b960a2feb20ce1b5866739b39c89dec1c49d8",
      "parents": [
        "9749895644a817cfd28a535bc3ae60e4267bdc50"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 26 14:08:11 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 26 14:08:11 2011 -0500"
      },
      "message": "ext4: remove page_skipped hackery in ext4_da_writepages()\n\nBecause the ext4 page writeback codepath had been prematurely calling\nclear_page_dirty_for_io(), if it turned out that a particular page\ncouldn\u0027t be written out during a particular pass of\nwrite_cache_pages_da(), the page would have to get redirtied by\ncalling redirty_pages_for_writeback().  Not only was this wasted work,\nbut redirty_page_for_writeback() would increment wbc-\u003epages_skipped to\nsignal to writeback_sb_inodes() that buffers were locked, and that it\nshould skip this inode until later.\n\nSince this signal was incorrect in ext4\u0027s case --- which was caused by\next4\u0027s historically incorrect use of write_cache_pages() ---\next4_da_writepages() saved and restored wbc-\u003eskipped_pages to avoid\nconfusing writeback_sb_inodes().\n\nNow that we\u0027ve fixed ext4 to call clear_page_dirty_for_io() right\nbefore initiating the page I/O, we can nuke the page_skipped\nsave/restore hackery, and breathe a sigh of relief.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "9749895644a817cfd28a535bc3ae60e4267bdc50",
      "tree": "a0958777287906320aba461690125d8786ceb565",
      "parents": [
        "4f01b02c8c4e4111bd1adbcafb5741e8e991f5fd"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 26 14:08:01 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 26 14:08:01 2011 -0500"
      },
      "message": "ext4: clear the dirty bit for a page in writeback at the last minute\n\nMove when we call clear_page_dirty_for_io() to just before we actually\nwrite the page.  This simplifies the code somewhat, and avoids marking\npages as clean and then needing to remark them as dirty later.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "4f01b02c8c4e4111bd1adbcafb5741e8e991f5fd",
      "tree": "4b4793878e26779bf3bfe74028bd8b87de72609e",
      "parents": [
        "8eb9e5ce211de1b98bc84e93258b7db0860a103c"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 26 14:07:37 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 26 14:07:37 2011 -0500"
      },
      "message": "ext4: simple cleanups to write_cache_pages_da()\n\nEliminate duplicate code, unneeded variables, etc., to make it easier\nto understand the code.  No behavioral changes were made in this patch.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "8eb9e5ce211de1b98bc84e93258b7db0860a103c",
      "tree": "80c5cba007b3f4612524474f1ec1cdbc4a7b5181",
      "parents": [
        "6fd7a46781999c32f423025767e43b349b967d57"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 26 14:07:31 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 26 14:07:31 2011 -0500"
      },
      "message": "ext4: fold __mpage_da_writepage() into write_cache_pages_da()\n\nFold the __mpage_da_writepage() function into write_cache_pages_da().\nThis will give us opportunities to clean up and simplify the resulting\ncode.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "6fd7a46781999c32f423025767e43b349b967d57",
      "tree": "cb324e785e6e00c29ba522c5b76a2bfdfee7b1ab",
      "parents": [
        "c7f5938adce6727b9d17785f289c1146bd88d678"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 26 13:53:09 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 26 13:53:09 2011 -0500"
      },
      "message": "ext4: enable mblk_io_submit by default\n\nNow that we\u0027ve fixed the file corruption bug in commit d50bdd5aa55,\nit\u0027s time to enable mblk_io_submit by default.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c7f5938adce6727b9d17785f289c1146bd88d678",
      "tree": "000d17633b6b3b28dd644704afb501b366ad1bbb",
      "parents": [
        "e0fd9b90765f604374c42de8ac59d6584afce264"
      ],
      "author": {
        "name": "Curt Wohlgemuth",
        "email": "curtw@google.com",
        "time": "Sat Feb 26 12:27:52 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 26 12:27:52 2011 -0500"
      },
      "message": "ext4: fix ext4_da_block_invalidatepages() to handle page range properly\n\nIf ext4_da_block_invalidatepages() is called because of a\nfailure from ext4_map_blocks() in mpage_da_map_and_submit(),\nit\u0027s supposed to clean up -- including unlock -- all the\npages in the mpd structure.  But these values may not match\nup, even on a system in which block size \u003d\u003d page size:\n\n   mpd-\u003eb_blocknr !\u003d mpd-\u003efirst_page\n   mpd-\u003eb_size !\u003d (mpd-\u003enext_page - mpd-\u003efirst_page)\n\next4_da_block_invalidatepages() has been using b_blocknr and\nb_size; this patch changes it to use first_page and\nnext_page.\n\nTested:  I injected a small number (5%) of failures in\next4_map_blocks() in the case that the flags contain\nEXT4_GET_BLOCKS_DELALLOC_RESERVE, and ran fsstress on this\nkernel.  Without this patch, I got hung tasks every time.\nWith this patch, I see no hangs in many runs of fsstress.\n\nSigned-off-by: Curt Wohlgemuth \u003ccurtw@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "e0fd9b90765f604374c42de8ac59d6584afce264",
      "tree": "04a44bed155b4d99e81d366145934d801036f5e8",
      "parents": [
        "5a54b2f199fdf19533f96c3e285b70c6729e1e4a"
      ],
      "author": {
        "name": "Curt Wohlgemuth",
        "email": "curtw@google.com",
        "time": "Sat Feb 26 12:25:52 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 26 12:25:52 2011 -0500"
      },
      "message": "ext4: mark multi-page IO complete on mapping failure\n\nIn mpage_da_map_and_submit(), if we have a delayed block\nallocation failure from ext4_map_blocks(), we need to mark\nthe IO as complete, by setting\n\n      mpd-\u003eio_done \u003d 1;\n\nOtherwise, we could end up submitting the pages in an outer\nloop; since they are unlocked on mapping failure in\next4_da_block_invalidatepages(), this will cause a bug check\nin mpage_da_submit_io().\n\nI tested this by injected failures into ext4_map_blocks().\nWithout this patch, a simple fsstress run will bug check;\nwith the patch, it works fine.\n\nSigned-off-by: Curt Wohlgemuth \u003ccurtw@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5a54b2f199fdf19533f96c3e285b70c6729e1e4a",
      "tree": "bf5b23a197b71349076558d2d985848451194bab",
      "parents": [
        "58696f3ab2b23fd6519189875fafdb5d1281eb54"
      ],
      "author": {
        "name": "Coly Li",
        "email": "colyli@gmail.com",
        "time": "Thu Feb 24 14:10:05 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Feb 24 14:10:05 2011 -0500"
      },
      "message": "ext4: mballoc: don\u0027t replace the current preallocation group unnecessarily\n\nIn ext4_mb_check_group_pa(), the current preallocation space is\nreplaced with a new preallocation space when the two have the same\ndistance from the goal block.\n\nThis doesn\u0027t actually gain us anything, so change things so that the\nfunction only switches to the new preallocation group if its distance\nfrom the goal block is strictly smaller than the current preallocaiton\ngroup\u0027s distance from the goal block.\n\nSigned-off-by: Coly Li \u003cbosong.ly@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "58696f3ab2b23fd6519189875fafdb5d1281eb54",
      "tree": "328db44461fd957949b6b26630ff0c0f9a349a85",
      "parents": [
        "7c786059293335412f99732c6f4c2a886eab25c2"
      ],
      "author": {
        "name": "Coly Li",
        "email": "i@coly.li",
        "time": "Thu Feb 24 14:10:00 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Feb 24 14:10:00 2011 -0500"
      },
      "message": "ext4: clarify description of ac_g_ex in struct ext4_allocation_context\n\nSigned-off-by: Coly Li \u003cbosong.ly@taobao.com\u003e\nCc: Alex Tomas \u003calex@clusterfs.com\u003e\nCc: Theodore Tso \u003ctytso@google.com\u003e\n"
    },
    {
      "commit": "7c786059293335412f99732c6f4c2a886eab25c2",
      "tree": "bd241fdfd00e197b9efe0d2b4cd373cef1e14d39",
      "parents": [
        "235772da3e2adb1f4d71f27ec5475093dd38b2ac"
      ],
      "author": {
        "name": "Coly Li",
        "email": "i@coly.li",
        "time": "Thu Feb 24 13:24:25 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Feb 24 13:24:25 2011 -0500"
      },
      "message": "mballoc: add comments to ext4_mb_mark_free_simple()\n\nThis patch adds comments to ext4_mb_mark_free_simple to make it more\nunderstandable.\n\nSigned-off-by: Coly Li \u003cbosong.ly@taobao.com\u003e\nCc: Alex Tomas \u003calex@clusterfs.com\u003e\nCc: Theodore Tso \u003ctytso@google.com\u003e\n"
    },
    {
      "commit": "235772da3e2adb1f4d71f27ec5475093dd38b2ac",
      "tree": "fb25ed9cb931ce9862b4428e9c13ca4209696f63",
      "parents": [
        "84b775a354f640736176b5d966408fc5d5da6665"
      ],
      "author": {
        "name": "Coly Li",
        "email": "i@coly.li",
        "time": "Thu Feb 24 13:24:18 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Feb 24 13:24:18 2011 -0500"
      },
      "message": "ext4: remove unncessary call mb_find_buddy() in debugging code\n\nIn __mb_check_buddy(), look at the code below:\n  591         fstart \u003d -1;\n  592         buddy \u003d mb_find_buddy(e4b, 0, \u0026max);\n  593         for (i \u003d 0; i \u003c max; i++) {\n  594                 if (!mb_test_bit(i, buddy)) {\n  595                         MB_CHECK_ASSERT(i \u003e\u003d e4b-\u003ebd_info-\u003ebb_first_free);\n  596                         if (fstart \u003d\u003d -1) {\n  597                                 fragments++;\n  598                                 fstart \u003d i;\n  599                         }\n  600                         continue;\n  601                 }\n  602                 fstart \u003d -1;\n  603                 /* check used bits only */\n  604                 for (j \u003d 0; j \u003c e4b-\u003ebd_blkbits + 1; j++) {\n  605                         buddy2 \u003d mb_find_buddy(e4b, j, \u0026max2);\n  606                         k \u003d i \u003e\u003e j;\n  607                         MB_CHECK_ASSERT(k \u003c max2);\n  608                         MB_CHECK_ASSERT(mb_test_bit(k, buddy2));\n  609                 }\n  610         }\n  611         MB_CHECK_ASSERT(!EXT4_MB_GRP_NEED_INIT(e4b-\u003ebd_info));\n  612         MB_CHECK_ASSERT(e4b-\u003ebd_info-\u003ebb_fragments \u003d\u003d fragments);\n  613\n  614         grp \u003d ext4_get_group_info(sb, e4b-\u003ebd_group);\n  615         buddy \u003d mb_find_buddy(e4b, 0, \u0026max);\n\nOn line 592, buddy is fetched by mb_find_buddy() with order 0, between\nline 593 to line 615, buddy is not changed, therefore there is\nno need to fetch buddy again from mb_find_buddy() with order 0 again.\n\nWe can safely remove the second mb_find_buddy() on line 615.\n\nSigned-off-by: Coly Li \u003cbosong.ly@taobao.com\u003e\nCc: Alex Tomas \u003calex@clusterfs.com\u003e\nCc: Theodore Tso \u003ctytso@google.com\u003e\n"
    },
    {
      "commit": "84b775a354f640736176b5d966408fc5d5da6665",
      "tree": "c7b26ce41a9234e48bfc74514b960b9b38b40c5d",
      "parents": [
        "ea6633369458992241599c9d9ebadffaeddec164"
      ],
      "author": {
        "name": "Coly Li",
        "email": "i@coly.li",
        "time": "Thu Feb 24 12:51:59 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Feb 24 12:51:59 2011 -0500"
      },
      "message": "ext4: code cleanup in mb_find_buddy()\n\nCurrent code calculate max no matter whether order is zero, it\u0027s\nunnecessary. This cleanup patch sets max to \"1 \u003c\u003c (e4b-\u003ebd_blkbits\n+ 3)\" only when order \u003d\u003d 0.\n\nSigned-off-by: Coly Li \u003cbosong.ly@taobao.com\u003e\nCc: Alex Tomas \u003calex@clusterfs.com\u003e\nCc: Theodore Tso \u003ctytso@google.com\u003e\n"
    },
    {
      "commit": "ea6633369458992241599c9d9ebadffaeddec164",
      "tree": "b9d42574ad1dbefb09e527ea9ed4e5d78c3d762c",
      "parents": [
        "5c2ed62fd447e2c696e222dcf71d1322bbbc58d4"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Wed Feb 23 17:51:51 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Feb 23 17:51:51 2011 -0500"
      },
      "message": "ext4: enable acls and user_xattr by default\n\nThere\u0027s no good reason to require the extra step of providing\na mount option for acl or user_xattr once the feature is configured\non; no other filesystem that I know of requires this.\n\nUserspace patches have set these options in default mount options,\nand this patch makes them default in the kernel.  At some point\nwe can start to deprecate the options, perhaps.\n\nFor now I\u0027ve removed default mount option checks in show_options()\nto be explicit about what\u0027s set, since it\u0027s changing the default,\nbut I\u0027m open to alternatives if desired.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5c2ed62fd447e2c696e222dcf71d1322bbbc58d4",
      "tree": "4ee089653fe84a9f21518a351b1ad06c8281011f",
      "parents": [
        "4143179218960a70d821a425e3c23ce44aa93dee"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Wed Feb 23 17:49:51 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Feb 23 17:49:51 2011 -0500"
      },
      "message": "ext4: Adjust minlen with discard_granularity in the FITRIM ioctl\n\nDiscard granularity tells us the minimum size of extent that can be\ndiscarded by the device.  If the user supplies a minimum extent that\nshould be discarded (range.minlen) which is smaller than the discard\ngranularity, increase minlen to the discard granularity, since there\u0027s\nno point submitting trim requests that the device will reject anyway.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "4143179218960a70d821a425e3c23ce44aa93dee",
      "tree": "8f7aa98378a979ebfa323165ae985d7d5b39a24c",
      "parents": [
        "0b75a840120b1e647e32342e9cc46631410088d5"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Wed Feb 23 12:42:32 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Feb 23 12:42:32 2011 -0500"
      },
      "message": "ext4: check if device support discard in FITRIM ioctl\n\nFor a device that does not support discard, the FITRIM ioctl returns\n-EOPNOTSUPP when blkdev_issue_discard() returns this error code, which\nis how the user is informed that the device does not support discard.\n\nIf there are no suitable free extents to be trimmed, then FITRIM will\nreturn success even though the device does not support discard, which\ncould confuse the user.  So check explicitly if the device supports\ndiscard and return an error code at the beginning of the FITRIM ioctl\nprocessing.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0b75a840120b1e647e32342e9cc46631410088d5",
      "tree": "8c6858b3a0a9627f1424fd2b61e0f9d866221340",
      "parents": [
        "5dbd571d875d73e087c1eeb3d840cfc653a97422"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Wed Feb 23 12:22:49 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Feb 23 12:22:49 2011 -0500"
      },
      "message": "ext4: mark file-local functions and variables as static\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5dbd571d875d73e087c1eeb3d840cfc653a97422",
      "tree": "dfad6885fad57fb45f3e1d37d3d2d56fd6c320b0",
      "parents": [
        "7dc576158d7e5cdff3349f78598fdb4080536342"
      ],
      "author": {
        "name": "Alexander V. Lukyanov",
        "email": "lav@netis.ru",
        "time": "Mon Feb 21 21:33:21 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 21 21:33:21 2011 -0500"
      },
      "message": "ext4: allow inode_readahead_blks\u003d0 (linux-2.6.37)\n\nI cannot disable inode-read-ahead feature of ext4 (on 2.6.37):\n\n# echo 0 \u003e /sys/fs/ext4/sda2/inode_readahead_blks \nbash: echo: write error: Invalid argument\n\nOn a server with lots of small files and random access this read-ahead makes\nperformance worse, and I\u0027d like to disable it. I work around this problem\nby using value of 1, but it still reads an extra block.\n\nThis patch fixes the problem by checking for zero explicitly.\n\nSigned-off-by: Alexander V. Lukyanov \u003clav@netis.ru\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7dc576158d7e5cdff3349f78598fdb4080536342",
      "tree": "e7be15a8ee8add729915c81e9cb39cd55d6b572d",
      "parents": [
        "da488945f4bf4096f4ab6091938469bd8822cfec"
      ],
      "author": {
        "name": "Peter Huewe",
        "email": "peterhuewe@gmx.de",
        "time": "Mon Feb 21 21:01:42 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 21 21:01:42 2011 -0500"
      },
      "message": "ext4: Fix sparse warning: Using plain integer as NULL pointer\n\nThis patch fixes the warning \"Using plain integer as NULL pointer\",\ngenerated by sparse, by replacing the offending 0s with NULL.\n\nSigned-off-by: Peter Huewe \u003cpeterhuewe@gmx.de\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "da488945f4bf4096f4ab6091938469bd8822cfec",
      "tree": "282ff7f9a7b1cdff8018569eb98acb77b7403cdb",
      "parents": [
        "6f9524e9e118929f1de02840dffe858f99685aea"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 21 20:39:58 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 21 20:39:58 2011 -0500"
      },
      "message": "ext4: fix compile warnings with EXT4FS_DEBUG enabled\n\nCompile 2.6.38-rc1 with turning EXT4FS_DEBUG on,\nwe get following compile warnings. This patch fixes them.\n\n  CC      fs/ext4/hash.o\n  CC      fs/ext4/resize.o\nfs/ext4/resize.c: In function \u0027setup_new_group_blocks\u0027:\nfs/ext4/resize.c:233:2: warning: format \u0027%#04llx\u0027 expects type \u0027long long\nunsigned int\u0027, but argument 3 has type \u0027long unsigned int\u0027\nfs/ext4/resize.c:251:2: warning: format \u0027%#04llx\u0027 expects type \u0027long long\nunsigned int\u0027, but argument 3 has type \u0027long unsigned int\u0027\n  CC      fs/ext4/extents.o\n  CC      fs/ext4/ext4_jbd2.o\n  CC      fs/ext4/migrate.o\n\nReported-by: Akira Fujita \u003ca-fujita@rs.jp.nec.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "43d133c18b44e7d82d82ef0dcc2bddd55d5dfe81",
      "tree": "8de75c837b55874cc8a81a29bdedbc62668d4481",
      "parents": [
        "4149efb22da66e326fc48baf80d628834509f7f0",
        "6f576d57f1fa0d6026b495d8746d56d949989161"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Feb 21 09:43:56 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Feb 21 09:43:56 2011 +0100"
      },
      "message": "Merge branch \u0027master\u0027 into for-2.6.39\n"
    },
    {
      "commit": "fd018fe8234e84e05ab05d4176525817c8779cd6",
      "tree": "890d15dd30ee81f2421949e9985b14437a3763db",
      "parents": [
        "68ba69740ba910caeff35452f991d25372dd0f96"
      ],
      "author": {
        "name": "Paul Bolle",
        "email": "pebolle@tiscali.nl",
        "time": "Tue Feb 15 00:05:43 2011 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Feb 15 10:28:59 2011 +0100"
      },
      "message": "ext4: fix comment typo uninitized\n\nSigned-off-by: Paul Bolle \u003cpebolle@tiscali.nl\u003e\nReviewed-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "0a9d59a2461477bd9ed143c01af9df3f8f00fa81",
      "tree": "df997d1cfb0786427a0df1fbd6f0640fa4248cf4",
      "parents": [
        "a23ce6da9677d245aa0aadc99f4197030350ab54",
        "795abaf1e4e188c4171e3cd3dbb11a9fcacaf505"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Feb 15 10:24:31 2011 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Feb 15 10:24:31 2011 +0100"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n"
    },
    {
      "commit": "e9e3bcecf44c04b9e6b505fd8e2eb9cea58fb94d",
      "tree": "9f347a48889a00071dbe1f12be4c50ec7a45542b",
      "parents": [
        "2892c15ddda6a76dc10b7499e56c0f3b892e5a69"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Sat Feb 12 08:17:34 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 12 08:17:34 2011 -0500"
      },
      "message": "ext4: serialize unaligned asynchronous DIO\n\next4 has a data corruption case when doing non-block-aligned\nasynchronous direct IO into a sparse file, as demonstrated\nby xfstest 240.\n\nThe root cause is that while ext4 preallocates space in the\nhole, mappings of that space still look \"new\" and \ndio_zero_block() will zero out the unwritten portions.  When\nmore than one AIO thread is going, they both find this \"new\"\nblock and race to zero out their portion; this is uncoordinated\nand causes data corruption.\n\nDave Chinner fixed this for xfs by simply serializing all\nunaligned asynchronous direct IO.  I\u0027ve done the same here.\nThe difference is that we only wait on conversions, not all IO.\nThis is a very big hammer, and I\u0027m not very pleased with\nstuffing this into ext4_file_write().  But since ext4 is\nDIO_LOCKING, we need to serialize it at this high level.\n\nI tried to move this into ext4_ext_direct_IO, but by then\nwe have the i_mutex already, and we will wait on the\nwork queue to do conversions - which must also take the\ni_mutex.  So that won\u0027t work.\n\nThis was originally exposed by qemu-kvm installing to\na raw disk image with a normal sector-63 alignment.  I\u0027ve\ntested a backport of this patch with qemu, and it does\navoid the corruption.  It is also quite a lot slower\n(14 min for package installs, vs. 8 min for well-aligned)\nbut I\u0027ll take slow correctness over fast corruption any day.\n\nMingming suggested that we can track outstanding\nconversions, and wait on those so that non-sparse\nfiles won\u0027t be affected, and I\u0027ve implemented that here;\nunaligned AIO to nonsparse files won\u0027t take a perf hit.\n\n[tytso@mit.edu: Keep the mutex as a hashed array instead\n of bloating the ext4 inode]\n\n[tytso@mit.edu: Fix up namespace issues so that global\n variables are protected with an \"ext4_\" prefix.]\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "2892c15ddda6a76dc10b7499e56c0f3b892e5a69",
      "tree": "bd2aa2add525d91991975e5678ef5bfe9175bdd8",
      "parents": [
        "d50bdd5aa55127635fd8a5c74bd2abb256bd34e3"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Sat Feb 12 08:12:18 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 12 08:12:18 2011 -0500"
      },
      "message": "ext4: make grpinfo slab cache names static\n\nIn 2.6.37 I was running into oopses with repeated module\nloads \u0026 unloads.  I tracked this down to:\n\nfb1813f4 ext4: use dedicated slab caches for group_info structures\n\n(this was in addition to the features advert unload problem)\n\nThe kstrdup \u0026 subsequent kfree of the cache name was causing\na double free.  In slub, at least, if I read it right it allocates\n\u0026 frees the name itself, slab seems to do something different...\nso in slub I think we were leaking -our- cachep-\u003ename, and double\nfreeing the one allocated by slub.\n\nAfter getting lost in slab/slub/slob a bit, I just looked at other\nsized-caches that get allocated.  jbd2, biovec, sgpool all do it\nmore or less the way jbd2 does.  Below patch follows the jbd2\nmethod of dynamically allocating a cache at mount time from\na list of static names.\n\n(This might also possibly fix a race creating the caches with\nparallel mounts running).\n\n[Folded in a fix from Dan Carpenter which fixed an off-by-one error in\nthe original patch]\n\nCc: stable@kernel.org\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d50bdd5aa55127635fd8a5c74bd2abb256bd34e3",
      "tree": "3dbe0f5d06502e144c0398c71e8fe479a855d6f4",
      "parents": [
        "dd68314ccf3fb918c1fb6471817edbc60ece4b52"
      ],
      "author": {
        "name": "Curt Wohlgemuth",
        "email": "curtw@google.com",
        "time": "Mon Feb 07 12:46:14 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 07 12:46:14 2011 -0500"
      },
      "message": "ext4: Fix data corruption with multi-block writepages support\n\nThis fixes a corruption problem with the multi-block\nwritepages submittal change for ext4, from commit\nbd2d0210cf22f2bd0cef72eb97cf94fc7d31d8cc (\"ext4: use bio\nlayer instead of buffer layer in mpage_da_submit_io\").\n\n(Note that this corruption is not present in 2.6.37 on\next4, because the corruption was detected after the\nfeature was merged in 2.6.37-rc1, and so it was turned\noff by adding a non-default mount option,\nmblk_io_submit.  With this commit, which hopefully\nfixes the last of the bugs with this feature, we\u0027ll be\nable to turn on this performance feature by default in\n2.6.38, and remove the mblk_io_submit option.)\n\nThe ext4 code path to bundle multiple pages for\nwriteback in ext4_bio_write_page() had a bug: we should\nbe clearing buffer head dirty flags *before* we submit\nthe bio, not in the completion routine.\n\nThe patch below was tested on 2.6.37 under KVM with the\npostgresql script which was submitted by Jon Nelson as\ndocumented in commit 1449032be1.\n\nWithout the patch, I\u0027d hit the corruption problem about\n50-70% of the time.  With the patch, I executed the\nscript \u003e 100 times with no corruption seen.\n\nI also fixed a bug to make sure ext4_end_bio() doesn\u0027t\ndereference the bio after the bio_put() call.\n\nReported-by: Jon Nelson \u003cjnelson@jamponi.net\u003e\nReported-by: Matthias Bayer \u003cjackdachef@gmail.com\u003e\nSigned-off-by: Curt Wohlgemuth \u003ccurtw@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "dd68314ccf3fb918c1fb6471817edbc60ece4b52",
      "tree": "9faa6b90bfafcd3dbaac1df206df7f56e537030e",
      "parents": [
        "8f021222c1e2756ea4c9dde93b23e1d2a0a4ec37"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Feb 03 14:33:49 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Feb 03 14:33:49 2011 -0500"
      },
      "message": "ext4: fix up ext4 error handling\n\nMake sure we the correct cleanup happens if we die while trying to\nload the ext4 file system.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "8f021222c1e2756ea4c9dde93b23e1d2a0a4ec37",
      "tree": "8a74b91a0b1dd27fad9c384449bac0c4b8777a74",
      "parents": [
        "8f1f745331c1b560f53c0d60e55a4f4f43f7cce5"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Thu Feb 03 14:33:33 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Feb 03 14:33:33 2011 -0500"
      },
      "message": "ext4: unregister features interface on module unload\n\nExt4 features interface was not properly unregistered which led to\nproblems while unloading/reloading ext4 module. This commit fixes that by\nadding proper kobject unregistration code into ext4_exit_fs() as well as\nfail-path of ext4_init_fs()\n\nReported-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "8f1f745331c1b560f53c0d60e55a4f4f43f7cce5",
      "tree": "d8db8e0e1a067012795372e38fce09dec6bc575a",
      "parents": [
        "1bae4ce27c9c90344f23c65ea6966c50ffeae2f5"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Thu Feb 03 14:33:15 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Feb 03 14:33:15 2011 -0500"
      },
      "message": "ext4: fix panic on module unload when stopping lazyinit thread\n\nhttps://bugzilla.kernel.org/show_bug.cgi?id\u003d27652\n\nIf the lazyinit thread is running, the teardown function\next4_destroy_lazyinit_thread() has problems:\n\n        ext4_clear_request_list();\n        while (ext4_li_info-\u003eli_task) {\n                wake_up(\u0026ext4_li_info-\u003eli_wait_daemon);\n                wait_event(ext4_li_info-\u003eli_wait_task,\n                           ext4_li_info-\u003eli_task \u003d\u003d NULL);\n        }\n\nClearing the request list will cause the thread to exit and free\next4_li_info, so then we\u0027re waiting on something which is getting\nfreed.\n\nFix this up by making the thread respond to kthread_stop, and exit,\nwithout the need to wait for that exit in some other homegrown way.\n\nCc: stable@kernel.org\nReported-and-Tested-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "2a7dba391e5628ad665ce84ef9a6648da541ebab",
      "tree": "ba0722bd74d2c883dbda7ff721850bab411cac04",
      "parents": [
        "821404434f3324bf23f545050ff64055a149766e"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Feb 01 11:05:39 2011 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Feb 01 11:12:29 2011 -0500"
      },
      "message": "fs/vfs/security: pass last path component to LSM on inode creation\n\nSELinux would like to implement a new labeling behavior of newly created\ninodes.  We currently label new inodes based on the parent and the creating\nprocess.  This new behavior would also take into account the name of the\nnew object when deciding the new label.  This is not the (supposed) full path,\njust the last component of the path.\n\nThis is very useful because creating /etc/shadow is different than creating\n/etc/passwd but the kernel hooks are unable to differentiate these\noperations.  We currently require that userspace realize it is doing some\ndifficult operation like that and than userspace jumps through SELinux hoops\nto get things set up correctly.  This patch does not implement new\nbehavior, that is obviously contained in a seperate SELinux patch, but it\ndoes pass the needed name down to the correct LSM hook.  If no such name\nexists it is fine to pass NULL.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "fd89d5f2030ac83324330bfd0bc73abf1beadaa6",
      "tree": "5368d06cf6cb5990ff9a58525c9c813d8d73adc3",
      "parents": [
        "40f38ffb72cd58452dc5afc25ca5215bb90538a4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 01 11:42:42 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 01 11:42:42 2011 +0100"
      },
      "message": "ext4: convert to alloc_workqueue()\n\nConvert create_workqueue() to alloc_workqueue().  This is an identity\nconversion.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Andreas Dilger \u003cadilger.kernel@dilger.ca\u003e\nCc: linux-ext4@vger.kernel.org\n"
    },
    {
      "commit": "4843456c5c341eb57f80f9224362a22665d14107",
      "tree": "5656b405a8b1d2596e8eb748b953ee677a261e3c",
      "parents": [
        "2b1caf6ed7b888c95a1909d343799672731651a5",
        "f00c9e44ad1a9660fe8cd3ca15b6cd9497172eab"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 21 07:33:37 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 21 07:33:37 2011 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6:\n  quota: Fix deadlock during path resolution\n"
    },
    {
      "commit": "b8d6568a122ab7bd47b151ff9f9a40cebea579c0",
      "tree": "7fcabf1ee8797f388735b1e09bd69f1cfd9d601b",
      "parents": [
        "42b16b3fbb5ee4555f5dee6220f3ccaa6e1ebe47"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Fri Jan 21 23:21:31 2011 +0800"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Jan 21 16:27:01 2011 +0100"
      },
      "message": "ext4: Fix comment typo \"especiially\".\n\nChange \"especiially\" to \"especially\".\n\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "2fe17c1075836b66678ed2a305fd09b6773883aa",
      "tree": "eb5287be8138686682eef9622872cfc7657e0664",
      "parents": [
        "64c23e86873ee410554d6d1c76b60da47025e96f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jan 14 13:07:43 2011 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 17 02:25:31 2011 -0500"
      },
      "message": "fallocate should be a file operation\n\nCurrently all filesystems except XFS implement fallocate asynchronously,\nwhile XFS forced a commit.  Both of these are suboptimal - in case of O_SYNC\nI/O we really want our allocation on disk, especially for the !KEEP_SIZE\ncase where we actually grow the file with user-visible zeroes.  On the\nother hand always commiting the transaction is a bad idea for fast-path\nuses of fallocate like for example in recent Samba versions.   Given\nthat block allocation is a data plane operation anyway change it from\nan inode operation to a file operation so that we have the file structure\navailable that lets us check for O_SYNC.\n\nThis also includes moving the code around for a few of the filesystems,\nand remove the already unnedded S_ISDIR checks given that we only wire\nup fallocate for regular files.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "64c23e86873ee410554d6d1c76b60da47025e96f",
      "tree": "b30c5ff8782ebfdec6956d7834f796731fd3a1d4",
      "parents": [
        "eb745dbccce56f1bbe3f80b95ad2a325145171c2"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jan 14 13:07:30 2011 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 17 02:25:30 2011 -0500"
      },
      "message": "make the feature checks in -\u003efallocate future proof\n\nInstead of various home grown checks that might need updates for new\nflags just check for any bit outside the mask of the features supported\nby the filesystem.  This makes the check future proof for any newly\nadded flag.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "275220f0fcff1adf28a717076e00f575edf05fda",
      "tree": "d249bccc80c64443dab211639050c4fb14332648",
      "parents": [
        "fe3c560b8a22cb28e54fe8950abef38e88d75831",
        "81c5e2ae33c4b19e53966b427e33646bf6811830"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:45:01 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:45:01 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.38/core\u0027 of git://git.kernel.dk/linux-2.6-block: (43 commits)\n  block: ensure that completion error gets properly traced\n  blktrace: add missing probe argument to block_bio_complete\n  block cfq: don\u0027t use atomic_t for cfq_group\n  block cfq: don\u0027t use atomic_t for cfq_queue\n  block: trace event block fix unassigned field\n  block: add internal hd part table references\n  block: fix accounting bug on cross partition merges\n  kref: add kref_test_and_get\n  bio-integrity: mark kintegrityd_wq highpri and CPU intensive\n  block: make kblockd_workqueue smarter\n  Revert \"sd: implement sd_check_events()\"\n  block: Clean up exit_io_context() source code.\n  Fix compile warnings due to missing removal of a \u0027ret\u0027 variable\n  fs/block: type signature of major_to_index(int) to major_to_index(unsigned)\n  block: convert !IS_ERR(p) \u0026\u0026 p to !IS_ERR_NOR_NULL(p)\n  cfq-iosched: don\u0027t check cfqg in choose_service_tree()\n  fs/splice: Pull buf-\u003eops-\u003econfirm() from splice_from_pipe actors\n  cdrom: export cdrom_check_events()\n  sd: implement sd_check_events()\n  sr: implement sr_check_events()\n  ...\n"
    },
    {
      "commit": "b2034d474b7e1e8578bd5c2977024b51693269d9",
      "tree": "e43969bf7c2ba89884c2580f56978826f1014520",
      "parents": [
        "27d189c02ba25851973c8582e419c0bded9f7e5b",
        "924241575a85249b9d410e38f5b2fcad9035e45c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:27:28 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:27:28 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (41 commits)\n  fs: add documentation on fallocate hole punching\n  Gfs2: fail if we try to use hole punch\n  Btrfs: fail if we try to use hole punch\n  Ext4: fail if we try to use hole punch\n  Ocfs2: handle hole punching via fallocate properly\n  XFS: handle hole punching via fallocate properly\n  fs: add hole punching to fallocate\n  vfs: pass struct file to do_truncate on O_TRUNC opens (try #2)\n  fix signedness mess in rw_verify_area() on 64bit architectures\n  fs: fix kernel-doc for dcache::prepend_path\n  fs: fix kernel-doc for dcache::d_validate\n  sanitize ecryptfs -\u003emount()\n  switch afs\n  move internal-only parts of ncpfs headers to fs/ncpfs\n  switch ncpfs\n  switch 9p\n  pass default dentry_operations to mount_pseudo()\n  switch hostfs\n  switch affs\n  switch configfs\n  ...\n"
    },
    {
      "commit": "008d23e4852d78bb2618f2035f8b2110b6a6b968",
      "tree": "81c88f744f6f3fc84132527c1ddc0b4da410c5e2",
      "parents": [
        "8f685fbda43deccd130d192c9fcef1444649eaca",
        "bfc672dcf323877228682aff79dff8ecd9f30ff8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:05:56 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:05:56 2011 -0800"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (43 commits)\n  Documentation/trace/events.txt: Remove obsolete sched_signal_send.\n  writeback: fix global_dirty_limits comment runtime -\u003e real-time\n  ppc: fix comment typo singal -\u003e signal\n  drivers: fix comment typo diable -\u003e disable.\n  m68k: fix comment typo diable -\u003e disable.\n  wireless: comment typo fix diable -\u003e disable.\n  media: comment typo fix diable -\u003e disable.\n  remove doc for obsolete dynamic-printk kernel-parameter\n  remove extraneous \u0027is\u0027 from Documentation/iostats.txt\n  Fix spelling milisec -\u003e ms in snd_ps3 module parameter description\n  Fix spelling mistakes in comments\n  Revert conflicting V4L changes\n  i7core_edac: fix typos in comments\n  mm/rmap.c: fix comment\n  sound, ca0106: Fix assignment to \u0027channel\u0027.\n  hrtimer: fix a typo in comment\n  init/Kconfig: fix typo\n  anon_inodes: fix wrong function name in comment\n  fix comment typos concerning \"consistent\"\n  poll: fix a typo in comment\n  ...\n\nFix up trivial conflicts in:\n - drivers/net/wireless/iwlwifi/iwl-core.c (moved to iwl-legacy.c)\n - fs/ext4/ext4.h\n\nAlso fix missed \u0027diabled\u0027 typo in drivers/net/bnx2x/bnx2x.h while at it.\n"
    },
    {
      "commit": "6db26ffc917b609402619e03df5af8d1cd371ce7",
      "tree": "95d58dec4f8a69c57fd632ca61e362654bc351d0",
      "parents": [
        "f878133bf022717b880d0e0995b8f91436fd605c"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed Jan 12 16:59:13 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 08:03:05 2011 -0800"
      },
      "message": "fs/ext4/inode.c: use pr_warn_ratelimited()\n\npr_warning_ratelimited() doesn\u0027t exist.\n\nAlso include printk.h, which defines these things.\n\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d6dc8462f471f7bbb49c42c147bf84de0c977099",
      "tree": "64624b26b2c2f551e2b579013d149c51c0716583",
      "parents": [
        "db47fef2cd9aab76ab976e8b45a06a1b3ad0e3e4"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Nov 17 20:46:18 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jan 12 20:16:44 2011 -0500"
      },
      "message": "Ext4: fail if we try to use hole punch\n\nExt4 doesn\u0027t have the ability to punch holes yet, so make sure we return\nEOPNOTSUPP if we try to use hole punching through fallocate.  This support can\nbe added later.  Thanks,\n\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f00c9e44ad1a9660fe8cd3ca15b6cd9497172eab",
      "tree": "cbb47ae0d8aba9d8b3c44714b000156715cdf969",
      "parents": [
        "4162cf64973df51fc885825bc9ca4d055891c49f"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Sep 15 17:38:58 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jan 12 19:14:55 2011 +0100"
      },
      "message": "quota: Fix deadlock during path resolution\n\nAs Al Viro pointed out path resolution during Q_QUOTAON calls to quotactl\nis prone to deadlocks. We hold s_umount semaphore for reading during the\npath resolution and resolution itself may need to acquire the semaphore\nfor writing when e. g. autofs mountpoint is passed.\n\nSolve the problem by performing the resolution before we get hold of the\nsuperblock (and thus s_umount semaphore). The whole thing is complicated\nby the fact that some filesystems (OCFS2) ignore the path argument. So to\ndistinguish between filesystem which want the path and which do not we\nintroduce new .quota_on_meta callback which does not get the path. OCFS2\nthen uses this callback instead of old .quota_on.\n\nCC: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCC: Christoph Hellwig \u003chch@lst.de\u003e\nCC: Ted Ts\u0027o \u003ctytso@mit.edu\u003e\nCC: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "e9688f6acad8cb1f2e8d7abb2de06a6a5c9cbcf2",
      "tree": "2f9b89987c57e3395e53d3ca354f9674c0bef369",
      "parents": [
        "40c73abbb37e399eba274fe49e520ffa3dd65bdb",
        "0f0a25bf516843adae479636dc1cf75fd0bd003c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 11 14:37:31 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 11 14:37:31 2011 -0800"
      },
      "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: (44 commits)\n  ext4: fix trimming starting with block 0 with small blocksize\n  ext4: revert buggy trim overflow patch\n  ext4: don\u0027t pass entire map to check_eofblocks_fl\n  ext4: fix memory leak in ext4_free_branches\n  ext4: remove ext4_mb_return_to_preallocation()\n  ext4: flush the i_completed_io_list during ext4_truncate\n  ext4: add error checking to calls to ext4_handle_dirty_metadata()\n  ext4: fix trimming of a single group\n  ext4: fix uninitialized variable in ext4_register_li_request\n  ext4: dynamically allocate the jbd2_inode in ext4_inode_info as necessary\n  ext4: drop i_state_flags on architectures with 64-bit longs\n  ext4: reorder ext4_inode_info structure elements to remove unneeded padding\n  ext4: drop ec_type from the ext4_ext_cache structure\n  ext4: use ext4_lblk_t instead of sector_t for logical blocks\n  ext4: replace i_delalloc_reserved_flag with EXT4_STATE_DELALLOC_RESERVED\n  ext4: fix 32bit overflow in ext4_ext_find_goal()\n  ext4: add more error checks to ext4_mkdir()\n  ext4: ext4_ext_migrate should use NULL not 0\n  ext4: Use ext4_error_file() to print the pathname to the corrupted inode\n  ext4: use IS_ERR() to check for errors in ext4_error_file\n  ...\n"
    },
    {
      "commit": "0f0a25bf516843adae479636dc1cf75fd0bd003c",
      "tree": "9c33ad74ee35181cb6d1a2e82da8df110919e47c",
      "parents": [
        "0a2179b169089f871e071c74316371ed43e6c8eb"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Jan 11 15:16:31 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jan 11 15:16:31 2011 -0500"
      },
      "message": "ext4: fix trimming starting with block 0 with small blocksize\n\nWhen s_first_data_block is not zero (which happens e.g. when block size is 1KB)\nand trim ioctl is called to start trimming from block 0, the math in\next4_get_group_no_and_offset() overflows. The overall result is that ioctl\nreturns EINVAL which is kind of unexpected and we probably don\u0027t want\nuserspace tools to bother with internal details of filesystem structure.\nSo just silently increase starting offset (and shorten length) when starting\nblock is below s_first_data_block.\n\nCC: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0a2179b169089f871e071c74316371ed43e6c8eb",
      "tree": "cfddd008d054c0ec6b047130d7f4e11667516770",
      "parents": [
        "d002ebf1d8daa5a317645b1c4a3a0b7ea2abc9ac"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jan 11 14:42:29 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jan 11 14:42:29 2011 -0500"
      },
      "message": "ext4: revert buggy trim overflow patch\n\nThis reverts commit 4f531501e44: ext4: fix possible overflow in\next4_trim_fs()\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d002ebf1d8daa5a317645b1c4a3a0b7ea2abc9ac",
      "tree": "d7b51bc1be02cbd08c6740ef73f79892f8653c83",
      "parents": [
        "1c5b9e9065567876c2d4a7a16d78f0fed154a5bf"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Mon Jan 10 13:03:35 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 13:03:35 2011 -0500"
      },
      "message": "ext4: don\u0027t pass entire map to check_eofblocks_fl\n\nSince check_eofblocks_fl() only uses the m_lblk portion of the map\nstructure, we may as well pass that directly, rather than passing the\nentire map, which IMHO obfuscates what parameters check_eofblocks_fl()\ncares about.  Not a big deal, but seems tidier and less confusing, to\nme.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "1c5b9e9065567876c2d4a7a16d78f0fed154a5bf",
      "tree": "67b74f12c7336a972de54d004455369eec38bc28",
      "parents": [
        "a5196f8cdfbf6ccb20f093aaf48852d6d23b4e0b"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:51:28 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:51:28 2011 -0500"
      },
      "message": "ext4: fix memory leak in ext4_free_branches\n\nCommit 40389687 moved a call to ext4_forget() out of\next4_free_branches and let ext4_free_blocks() handle calling\nbforget().  But that change unfortunately did not replace the call to\next4_forget() with brelse(), which was needed to drop the in-use count\nof the indirect block\u0027s buffer head, which lead to a memory leak when\ndeleting files that used indirect blocks.  Fix this.\n\nThanks to Hugh Dickins for pointing this out.\n\nCc: stable@kernel.org\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a5196f8cdfbf6ccb20f093aaf48852d6d23b4e0b",
      "tree": "eb2d846eecf6535d2f0cf6cf8e0456f0fca2fe0e",
      "parents": [
        "3889fd57ea3c58209354862523275774fca9db03"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:47:07 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:47:07 2011 -0500"
      },
      "message": "ext4: remove ext4_mb_return_to_preallocation()\n\nThis function was never implemented, except for a BUG_ON which was\ntripping when ext4 is run without a journal.  The problem is that\nalthough the comment asserts that \"truncate (which is the only way to\nfree block) discards all preallocations\", ext4_free_blocks() is also\ncalled in various error recovery paths when blocks have been\nallocated, but for various reasons, we were not able to use those data\nblocks (for example, because we ran out of memory while trying to\nmanipulate the extent tree, or some other similar situation).\n\nIn addition to the fact that this function isn\u0027t implemented except\nfor the incorrect BUG_ON, the single caller of this function,\next4_free_blocks(), doesn\u0027t use it all if the journal is enabled.\n\nSo remove the (stub) function entirely for now.  If we decide it\u0027s\nbetter to add it back, it\u0027s only going to be useful with a relatively\nlarge number of code changes anyway.\n\nGoogle-Bug-Id: 3236408\n\nCc: Jiaying Zhang \u003cjiayingz@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "3889fd57ea3c58209354862523275774fca9db03",
      "tree": "1e68fb9b2691c0b792a36be7d87c987e8508dac6",
      "parents": [
        "b40971426a837e9dc9c66e1b6bbcb3874eafe4e0"
      ],
      "author": {
        "name": "Jiaying Zhang",
        "email": "jiayingz@google.com",
        "time": "Mon Jan 10 12:47:05 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:47:05 2011 -0500"
      },
      "message": "ext4: flush the i_completed_io_list during ext4_truncate\n\nTed first found the bug when running 2.6.36 kernel with dioread_nolock\nmount option that xfstests #13 complained about wrong file size during fsck.\nHowever, the bug exists in the older kernels as well although it is\nsomehow harder to trigger.\n\nThe problem is that ext4_end_io_work() can happen after we have truncated an\ninode to a smaller size. Then when ext4_end_io_work() calls \next4_convert_unwritten_extents(), we may reallocate some blocks that have \nbeen truncated, so the inode size becomes inconsistent with the allocated\nblocks. \n\nThe following patch flushes the i_completed_io_list during truncate to reduce \nthe risk that some pending end_io requests are executed later and convert \nalready truncated blocks to initialized. \n\nNote that although the fix helps reduce the problem a lot there may still \nbe a race window between vmtruncate() and ext4_end_io_work(). The fundamental\nproblem is that if vmtruncate() is called without either i_mutex or i_alloc_sem\nheld, it can race with an ongoing write request so that the io_end request is\nprocessed later when the corresponding blocks have been truncated.\n\nTed and I have discussed the problem offline and we saw a few ways to fix\nthe race completely:\n\na) We guarantee that i_mutex lock and i_alloc_sem write lock are both hold \nwhenever vmtruncate() is called. The i_mutex lock prevents any new write\nrequests from entering writeback and the i_alloc_sem prevents the race\nfrom ext4_page_mkwrite(). Currently we hold both locks if vmtruncate()\nis called from do_truncate(), which is probably the most common case.\nHowever, there are places where we may call vmtruncate() without holding\neither i_mutex or i_alloc_sem. I would like to ask for other people\u0027s\nopinions on what locks are expected to be held before calling vmtruncate().\nThere seems a disagreement among the callers of that function.\n\nb) We change the ext4 write path so that we change the extent tree to contain \nthe newly allocated blocks and update i_size both at the same time --- when \nthe write of the data blocks is completed.\n\nc) We add some additional locking to synchronize vmtruncate() and \next4_end_io_work(). This approach may have performance implications so we\nneed to be careful.\n\nAll of the above proposals may require more substantial changes, so\nwe may consider to take the following patch as a bandaid.\n\nSigned-off-by: Jiaying Zhang \u003cjiayingz@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "b40971426a837e9dc9c66e1b6bbcb3874eafe4e0",
      "tree": "34b2a745719ed18bd1f0c81cfad200b9d8b2e309",
      "parents": [
        "ca6e909f9bebe709bc65a3ee605ce32969db0452"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:46:59 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:46:59 2011 -0500"
      },
      "message": "ext4: add error checking to calls to ext4_handle_dirty_metadata()\n\nCall ext4_std_error() in various places when we can\u0027t bail out\ncleanly, so the file system can be marked as in error.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "ca6e909f9bebe709bc65a3ee605ce32969db0452",
      "tree": "db7d324b995ff5fe74dcce00c9bf8c4da3adc5e3",
      "parents": [
        "6c5a6cb998854f3c579ecb2bc1423d302bcb1b76"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Jan 10 12:30:39 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:30:39 2011 -0500"
      },
      "message": "ext4: fix trimming of a single group\n\nWhen ext4_trim_fs() is called to trim a part of a single group, the\nlogic will wrongly set last block of the interval to \u0027len\u0027 instead\nof \u0027first_block + len\u0027. Thus a shorter interval is possibly trimmed.\nFix it.\n\nCC: Lukas Czerner \u003clczerner@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "6c5a6cb998854f3c579ecb2bc1423d302bcb1b76",
      "tree": "c3c3b895f39a2d555a12ab6307fbad82e5ee63ab",
      "parents": [
        "8aefcd557d26d0023a36f9ec5afbf55e59f8f26b"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Mon Jan 10 12:30:17 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:30:17 2011 -0500"
      },
      "message": "ext4: fix uninitialized variable in ext4_register_li_request\n\nfs/ext4/super.c: In function \u0027ext4_register_li_request\u0027:\nfs/ext4/super.c:2936: warning: \u0027ret\u0027 may be used uninitialized in this function\n\nIt looks buggy to me, too.\n\nCc: Lukas Czerner \u003clczerner@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "8aefcd557d26d0023a36f9ec5afbf55e59f8f26b",
      "tree": "e13143306cd64525cddd2cc2513c448275a1d95a",
      "parents": [
        "353eb83c1422c6326eaab30ce044a179c6018169"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:29:43 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:29:43 2011 -0500"
      },
      "message": "ext4: dynamically allocate the jbd2_inode in ext4_inode_info as necessary\n\nReplace the jbd2_inode structure (which is 48 bytes) with a pointer\nand only allocate the jbd2_inode when it is needed --- that is, when\nthe file system has a journal present and the inode has been opened\nfor writing.  This allows us to further slim down the ext4_inode_info\nstructure.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "353eb83c1422c6326eaab30ce044a179c6018169",
      "tree": "fd43e39b344de5ee43d82c90f0affda68a65f2df",
      "parents": [
        "8a2005d3f84457b7d7d8646ab5195341d9e5f06a"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:18:25 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:18:25 2011 -0500"
      },
      "message": "ext4: drop i_state_flags on architectures with 64-bit longs\n\nWe can store the dynamic inode state flags in the high bits of\nEXT4_I(inode)-\u003ei_flags, and eliminate i_state_flags.  This saves 8\nbytes from the size of ext4_inode_info structure, which when\nmultiplied by the number of the number of in the inode cache, can save\na lot of memory.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "8a2005d3f84457b7d7d8646ab5195341d9e5f06a",
      "tree": "4d94161103e806435745e1544fb24e6398b2e06b",
      "parents": [
        "b05e6ae58a13b56e3e11882c1fc71948c9b29760"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:13:42 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:13:42 2011 -0500"
      },
      "message": "ext4: reorder ext4_inode_info structure elements to remove unneeded padding\n\nBy reordering the elements in the ext4_inode_info structure, we can\nreduce the padding needed on an x86_64 system by 16 bytes.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "b05e6ae58a13b56e3e11882c1fc71948c9b29760",
      "tree": "452cbadcbc8091b4db95f917f28b0f9de845dabf",
      "parents": [
        "01f49d0b9d0209dc1194255b11601e4b94447b36"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:13:26 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:13:26 2011 -0500"
      },
      "message": "ext4: drop ec_type from the ext4_ext_cache structure\n\nWe can encode the ec_type information by using ee_len \u003d\u003d 0 to denote\nEXT4_EXT_CACHE_NO, ee_start \u003d\u003d 0 to denote EXT4_EXT_CACHE_GAP, and if\nneither is true, then the cache type must be EXT4_EXT_CACHE_EXTENT.\nThis allows us to reduce the size of ext4_ext_inode by another 8\nbytes.  (ec_type is 4 bytes, plus another 4 bytes of padding)\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "01f49d0b9d0209dc1194255b11601e4b94447b36",
      "tree": "c3ec53c7725bf7a9188e844d8c8c09432d2be6ae",
      "parents": [
        "f232109773ff5b0c840a6761d74940b9cf0d66ec"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:13:03 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:13:03 2011 -0500"
      },
      "message": "ext4: use ext4_lblk_t instead of sector_t for logical blocks\n\nThis fixes a number of places where we used sector_t instead of\next4_lblk_t for logical blocks, which for ext4 are still 32-bit data\ntypes.  No point wasting space in the ext4_inode_info structure, and\nrequiring 64-bit arithmetic on 32-bit systems, when it isn\u0027t\nnecessary.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f232109773ff5b0c840a6761d74940b9cf0d66ec",
      "tree": "a32da5ebd1a3e074e9f52107f3bdc23babb6340c",
      "parents": [
        "ad4fb9cafe100a4a9de6e0529015e584d94ac8dc"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:12:36 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:12:36 2011 -0500"
      },
      "message": "ext4: replace i_delalloc_reserved_flag with EXT4_STATE_DELALLOC_RESERVED\n\nRemove the short element i_delalloc_reserved_flag from the\next4_inode_info structure and replace it a new bit in i_state_flags.\nSince we have an ext4_inode_info for every ext4 inode cached in the\ninode cache, any savings we can produce here is a very good thing from\na memory utilization perspective.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "ad4fb9cafe100a4a9de6e0529015e584d94ac8dc",
      "tree": "d2cce94e67f81d2407a0119562efde5374c006bb",
      "parents": [
        "dabd991f9d8e3232bb4531c920daddac8d10d313"
      ],
      "author": {
        "name": "Kazuya Mio",
        "email": "k-mio@sx.jp.nec.com",
        "time": "Mon Jan 10 12:12:28 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:12:28 2011 -0500"
      },
      "message": "ext4: fix 32bit overflow in ext4_ext_find_goal()\n\next4_ext_find_goal() returns an ideal physical block number that the block\nallocator tries to allocate first. However, if a required file offset is\nsmaller than the existing extent\u0027s one, ext4_ext_find_goal() returns\na wrong block number because it may overflow at\n\"block - le32_to_cpu(ex-\u003eee_block)\". This patch fixes the problem.\n\next4_ext_find_goal() will also return a wrong block number in case\na file offset of the existing extent is too big. In this case,\nthe ideal physical block number is fixed in ext4_mb_initialize_context(),\nso it\u0027s no problem.\n\nreproduce:\n# dd if\u003d/dev/zero of\u003d/mnt/mp1/tmp bs\u003d127M count\u003d1 oflag\u003dsync\n# dd if\u003d/dev/zero of\u003d/mnt/mp1/file bs\u003d512K count\u003d1 seek\u003d1 oflag\u003dsync\n# filefrag -v /mnt/mp1/file\nFilesystem type is: ef53\nFile size of /mnt/mp1/file is 1048576 (256 blocks, blocksize 4096)\n ext logical physical expected length flags\n   0     128    67456             128 eof\n/mnt/mp1/file: 2 extents found\n# rm -rf /mnt/mp1/tmp\n# echo $((512*4096)) \u003e /sys/fs/ext4/loop0/mb_stream_req\n# dd if\u003d/dev/zero of\u003d/mnt/mp1/file bs\u003d512K count\u003d1 oflag\u003dsync conv\u003dnotrunc\n\nresult (linux-2.6.37-rc2 + ext4 patch queue):\n# filefrag -v /mnt/mp1/file\nFilesystem type is: ef53\nFile size of /mnt/mp1/file is 1048576 (256 blocks, blocksize 4096)\n ext logical physical expected length flags\n   0       0    33280             128 \n   1     128    67456    33407    128 eof\n/mnt/mp1/file: 2 extents found\n\nresult(apply this patch):\n# filefrag -v /mnt/mp1/file\nFilesystem type is: ef53\nFile size of /mnt/mp1/file is 1048576 (256 blocks, blocksize 4096)\n ext logical physical expected length flags\n   0       0    66560             128 \n   1     128    67456    66687    128 eof\n/mnt/mp1/file: 2 extents found\n\nSigned-off-by: Kazuya Mio \u003ck-mio@sx.jp.nec.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "dabd991f9d8e3232bb4531c920daddac8d10d313",
      "tree": "f914ebaba1b4fe686260e4a6479d2050ff2cbdb2",
      "parents": [
        "f1dffc4c5431c6bd8972489636573c5cd09ab672"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Mon Jan 10 12:11:16 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:11:16 2011 -0500"
      },
      "message": "ext4: add more error checks to ext4_mkdir()\n\nCheck return value of ext4_journal_get_write_access,\next4_journal_dirty_metadata and ext4_mark_inode_dirty. Move brelse()\nunder \u0027out_stop\u0027 to release bh properly in case of journal error.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f1dffc4c5431c6bd8972489636573c5cd09ab672",
      "tree": "a23a5ccffc0ecf3862ff7ecc70011efecd22ba39",
      "parents": [
        "f7c21177af0b32a2cd9ee36189637f0c1f0e1e17"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Mon Jan 10 12:11:00 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:11:00 2011 -0500"
      },
      "message": "ext4: ext4_ext_migrate should use NULL not 0\n\next4_ext_migrate() calls ext4_new_inode() and passes 0 instead of a pointer\nto a struct qstr.  This patch uses NULL, to make it obvious to the caller\nthat this was a pointer.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f7c21177af0b32a2cd9ee36189637f0c1f0e1e17",
      "tree": "ba83d4ddcd4b7e15ff575f0b75013ba9ed62f249",
      "parents": [
        "f9a62d090cf47fae2fe6f6bd8eb9f24482573fd8"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:10:55 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:10:55 2011 -0500"
      },
      "message": "ext4: Use ext4_error_file() to print the pathname to the corrupted inode\n\nWhere the file pointer is available, use ext4_error_file() instead of\next4_error_inode().\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f9a62d090cf47fae2fe6f6bd8eb9f24482573fd8",
      "tree": "018b35b669705055963d09c7e2a07c90cc36ade5",
      "parents": [
        "13195184a8bc119dbd2f905db325a453047971cb"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Mon Jan 10 12:10:50 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:10:50 2011 -0500"
      },
      "message": "ext4: use IS_ERR() to check for errors in ext4_error_file\n\nd_path() returns an ERR_PTR and it doesn\u0027t return NULL.  This is in\next4_error_file() and no one actually calls ext4_error_file().\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\n\n"
    },
    {
      "commit": "13195184a8bc119dbd2f905db325a453047971cb",
      "tree": "828ccd332405a8334b18e3fb6b46c9d9bf8671a5",
      "parents": [
        "1f605b302724120777a1c38743cb20e2c8807333"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Mon Jan 10 12:10:44 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:10:44 2011 -0500"
      },
      "message": "ext4: test the correct variable in ext4_init_pageio()\n\nThis is a copy and paste error.  The intent was to check\n\"io_page_cachep\".  We tested \"io_page_cachep\" earlier.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "6e9510b0e0de657ca7c7bfb10ced80b4d237dd58",
      "tree": "a4c427885d3a1c9571681e7bd8d772be7422c07e",
      "parents": [
        "eaeef86718249f5c75b1370f77a9bc11f196a01c"
      ],
      "author": {
        "name": "Wang Sheng-Hui",
        "email": "crosslonelyover@gmail.com",
        "time": "Mon Jan 10 12:10:30 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:10:30 2011 -0500"
      },
      "message": "ext2,ext3,ext4: clarify comment for extN_xattr_set_handle\n\nSigned-off-by: Wang Sheng-Hui \u003ccrosslonelyover@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "eaeef86718249f5c75b1370f77a9bc11f196a01c",
      "tree": "c499488c48742d3eecc68275414dbdf58efbc9d9",
      "parents": [
        "932596366760e3f0dac9998665af1c49afcc4285"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:10:07 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:10:07 2011 -0500"
      },
      "message": "ext4: clean up ext4_xattr_list()\u0027s error code checking and return strategy\n\nAny time you see code that tries to add error codes together, you\nshould want to claw your eyes out...\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "932596366760e3f0dac9998665af1c49afcc4285",
      "tree": "61c75c933abc0f8c9e2f8b712f785d39d46919d3",
      "parents": [
        "4f531501e44206862735e81ddf2b70d0dcf6acf6"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Mon Jan 10 12:09:59 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:09:59 2011 -0500"
      },
      "message": "ext4: remove warning message from ext4_issue_discard helper\n\next4_issue_discard is supposed to be helper for calling discard, however\nin case that underlying device does not support discard it prints out\nthe warning message and clears the DISCARD t_mount_opt flag. Since it\ncan be (and is) used by others, it should not do anything and let the\ncaller to handle the error case.\n\nThis commit removes warning message and flag setting from\next4_issue_discard and use it just in place where it is really needed\n(release_blocks_on_commit). FITRIM ioctl should not set any flags nor it\nshould print out warning messages, so get rid of the warning as well.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\n"
    },
    {
      "commit": "4f531501e44206862735e81ddf2b70d0dcf6acf6",
      "tree": "599648348e58760361dc4903e346a5f3f24175c0",
      "parents": [
        "b72143ab3ed566a12560fa4411a1f02c276dcc39"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Mon Jan 10 12:04:55 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:04:55 2011 -0500"
      },
      "message": "ext4: fix possible overflow in ext4_trim_fs()\n\nWhen determining last group through ext4_get_group_no_and_offset() the\nresult may be wrong in cases when range-\u003estart and range-len are too\nbig, because it may overflow when summing up those two numbers.\n\nFix that by checking range-\u003elen and limit its value to\next4_blocks_count(). This commit was tested by myself with expected\nresult.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\n"
    }
  ],
  "next": "73598611ade7c85f0c3d52ba5130103f6709c6d3"
}
