)]}'
{
  "log": [
    {
      "commit": "d583fb87a3ff0ca50befd2f73f7a67fade1c8c56",
      "tree": "4e8cd6c05390d5355906d5657b87d82fcd4ea750",
      "parents": [
        "308488518dfcbe3be250085cd582f5b0c1ce72a9"
      ],
      "author": {
        "name": "Allison Henderson",
        "email": "achender@linux.vnet.ibm.com",
        "time": "Wed May 25 07:41:43 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed May 25 07:41:43 2011 -0400"
      },
      "message": "ext4: punch out extents\n\nThis patch modifies the truncate routines to support hole punching\nBelow is a brief summary of the patches changes:\n\n- Added end param to ext_ext4_rm_leaf\n        This function has been modified to accept an end parameter\n        which enables it to punch holes in leafs instead of just\n        truncating them.\n\n- Implemented the \"remove head\" case in the ext_remove_blocks routine\n        This routine is used by ext_ext4_rm_leaf to remove the tail\n        of an extent during a truncate.  The new ext_ext4_rm_leaf\n        routine will now also use it to remove the head of an extent in the\n        case that the hole covers a region of blocks at the beginning\n        of an extent.\n\n- Added \"end\" param to ext4_ext_remove_space routine\n        This function has been modified to accept a stop parameter, which\n        is passed through to ext4_ext_rm_leaf.\n\n[ext4 punch hole patch series 3/5 v6] \n\nSigned-off-by: Allison Henderson \u003cachender@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "308488518dfcbe3be250085cd582f5b0c1ce72a9",
      "tree": "4696b50debf9794f2cbb966cccbedadb93dc996a",
      "parents": [
        "55f020db66ce187fb8c8e4002a94b0eb714da450"
      ],
      "author": {
        "name": "Allison Henderson",
        "email": "achender@linux.vnet.ibm.com",
        "time": "Wed May 25 07:41:32 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed May 25 07:41:32 2011 -0400"
      },
      "message": "ext4: add new function ext4_block_zero_page_range()\n\nThis patch modifies the existing ext4_block_truncate_page() function\nwhich was used by the truncate code path, and which zeroes out block\nunaligned data, by adding a new length parameter, and renames it to\next4_block_zero_page_rage().  This function can now be used to zero out the\nhead of a block, the tail of a block, or the middle\nof a block.\n\nThe ext4_block_truncate_page() function is now a wrapper to\next4_block_zero_page_range().\n\n[ext4 punch hole patch series 2/5 v7] \n\nSigned-off-by: Allison Henderson \u003cachender@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReviewed-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\n"
    },
    {
      "commit": "55f020db66ce187fb8c8e4002a94b0eb714da450",
      "tree": "e98214511542f57fa93074be12e27c4819520333",
      "parents": [
        "ae81230686282af745ebb7a74c0332349cb9131a"
      ],
      "author": {
        "name": "Allison Henderson",
        "email": "achender@linux.vnet.ibm.com",
        "time": "Wed May 25 07:41:26 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed May 25 07:41:26 2011 -0400"
      },
      "message": "ext4: add flag to ext4_has_free_blocks\n\nThis patch adds an allocation request flag to the ext4_has_free_blocks\nfunction which enables the use of reserved blocks.  This will allow a\npunch hole to proceed even if the disk is full.  Punching a hole may\nrequire additional blocks to first split the extents.\n\nBecause ext4_has_free_blocks is a low level function, the flag needs\nto be passed down through several functions listed below:\n\next4_ext_insert_extent\next4_ext_create_new_leaf\next4_ext_grow_indepth\next4_ext_split\next4_ext_new_meta_block\next4_mb_new_blocks\next4_claim_free_blocks\next4_has_free_blocks\n\n[ext4 punch hole patch series 1/5 v7]\n\nSigned-off-by: Allison Henderson \u003cachender@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReviewed-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\n"
    },
    {
      "commit": "ae81230686282af745ebb7a74c0332349cb9131a",
      "tree": "bd293ae7a338e582991ecb2930397fb7b010c6cc",
      "parents": [
        "c5e06d101aaf72f1f2192a661414459775e9bd74"
      ],
      "author": {
        "name": "Aditya Kali",
        "email": "adityakali@google.com",
        "time": "Tue May 24 19:00:39 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 24 19:00:39 2011 -0400"
      },
      "message": "ext4: reserve inodes and feature code for \u0027quota\u0027 feature\n\nI am working on patch to add quota as a built-in feature for ext4\nfilesystem. The implementation is based on the design given at\nhttps://ext4.wiki.kernel.org/index.php/Design_For_1st_Class_Quota_in_Ext4.\nThis patch reserves the inode numbers 3 and 4 for quota purposes and\nalso reserves EXT4_FEATURE_RO_COMPAT_QUOTA feature code.\n\nSigned-off-by: Aditya Kali \u003cadityakali@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c5e06d101aaf72f1f2192a661414459775e9bd74",
      "tree": "96d05d41be2bfea6d51be915ce196f033a5d9bf3",
      "parents": [
        "d02a9391f79cab65cde74cd9e8ccd2290a565229"
      ],
      "author": {
        "name": "Johann Lombardi",
        "email": "johann@whamcloud.com",
        "time": "Tue May 24 18:31:25 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 24 18:31:25 2011 -0400"
      },
      "message": "ext4: add support for multiple mount protection\n\nPrevent an ext4 filesystem from being mounted multiple times.\nA sequence number is stored on disk and is periodically updated (every 5\nseconds by default) by a mounted filesystem.\nAt mount time, we now wait for s_mmp_update_interval seconds to make sure\nthat the MMP sequence does not change.\nIn case of failure, the nodename, bdevname and the time at which the MMP\nblock was last updated is displayed.\n\nSigned-off-by: Andreas Dilger \u003cadilger@whamcloud.com\u003e\nSigned-off-by: Johann Lombardi \u003cjohann@whamcloud.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d02a9391f79cab65cde74cd9e8ccd2290a565229",
      "tree": "a70993ce201661a360ade69c3a5925b653e9c542",
      "parents": [
        "28739eea9cd42598b632972f5cc64a458c5d40b3"
      ],
      "author": {
        "name": "Kazuya Mio",
        "email": "k-mio@sx.jp.nec.com",
        "time": "Tue May 24 18:30:07 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 24 18:30:07 2011 -0400"
      },
      "message": "ext4: ensure f_bfree returned by ext4_statfs() is non-negative\n\nI found the issue that the number of free blocks went negative.\n# stat -f /mnt/mp1/\n  File: \"/mnt/mp1/\"\n    ID: e175ccb83a872efe Namelen: 255     Type: ext2/ext3\nBlock size: 4096       Fundamental block size: 4096\nBlocks: Total: 258022     Free: -15        Available: -13122\nInodes: Total: 65536      Free: 63029\n\nf_bfree in struct statfs will go negative when the filesystem has\nfew free blocks. Because the number of dirty blocks is bigger than\nthe number of free blocks in the following two cases.\n\nCASE 1:\next4_da_writepages\n  mpage_da_map_and_submit\n    ext4_map_blocks\n      ext4_ext_map_blocks\n        ext4_mb_new_blocks\n          ext4_mb_diskspace_used\n            percpu_counter_sub(\u0026sbi-\u003es_freeblocks_counter, ac-\u003eac_b_ex.fe_len);\n        \u003c--- interrupt statfs systemcall ---\u003e\n        ext4_da_update_reserve_space\n            percpu_counter_sub(\u0026sbi-\u003es_dirtyblocks_counter,\n                            used + ei-\u003ei_allocated_meta_blocks);\n\nCASE 2:\next4_write_begin\n  __block_write_begin\n    ext4_map_blocks\n      ext4_ext_map_blocks\n        ext4_mb_new_blocks\n          ext4_mb_diskspace_used\n            percpu_counter_sub(\u0026sbi-\u003es_freeblocks_counter, ac-\u003eac_b_ex.fe_len);\n            \u003c--- interrupt statfs systemcall ---\u003e\n            percpu_counter_sub(\u0026sbi-\u003es_dirtyblocks_counter, reserv_blks);\n\nTo avoid the issue, this patch ensures that f_bfree is non-negative.\n\nSigned-off-by: Kazuya Mio \u003ck-mio@sx.jp.nec.com\u003e\n"
    },
    {
      "commit": "28739eea9cd42598b632972f5cc64a458c5d40b3",
      "tree": "10d4db959544884e6612ea329920a2cf73a6f0b6",
      "parents": [
        "78944086663e6c1b03f3d60bf7610128149be5fc"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Tue May 24 18:28:07 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 24 18:28:07 2011 -0400"
      },
      "message": "ext4: protect bb_first_free in ext4_trim_all_free() with group lock\n\nWe should protect reading bd_info-\u003ebb_first_free with the group lock\nbecause otherwise we might miss some free blocks. This is not a big deal\nat all, but the change to do right thing is really simple, so lets do\nthat.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "78944086663e6c1b03f3d60bf7610128149be5fc",
      "tree": "fac4b6257258ffc15b59c8d42b6c569948daaed2",
      "parents": [
        "c867516de5256e9cfba2ec5847fa27e0f0ddd2c5"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Tue May 24 18:16:27 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 24 18:16:27 2011 -0400"
      },
      "message": "ext4: only load buddy bitmap in ext4_trim_fs() when it is needed\n\nCurrently we are loading buddy ext4_mb_load_buddy() for every block\ngroup we are going through in ext4_trim_fs() in many cases just to find\nout that there is not enough space to be bothered with. As Amir Goldstein\nsuggested we can use bb_free information directly from ext4_group_info.\n\nThis commit removes ext4_mb_load_buddy() from ext4_trim_fs() and rather\nget the ext4_group_info via ext4_get_group_info() and use the bb_free\ninformation directly from that. This avoids unnecessary call to load\nbuddy in the case the group does not have enough free space to trim.\nLoading buddy is now moved to ext4_trim_all_free().\n\nTested by me with xfstests 251.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c867516de5256e9cfba2ec5847fa27e0f0ddd2c5",
      "tree": "701c4b48b81e7063efb1a3d014dfb9c11437a7f9",
      "parents": [
        "93628ffb9ba67c154849ac6c387f98f5e3198b84"
      ],
      "author": {
        "name": "Eryu Guan",
        "email": "guaneryu@gmail.com",
        "time": "Tue May 24 17:09:58 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 24 17:09:58 2011 -0400"
      },
      "message": "jbd2: Fix comment to match the code in jbd2__journal_start()\n\njbd2__journal_start() returns an ERR_PTR() value rather than NULL on\nfailure.\n\nSigned-off-by: Eryu Guan \u003cguaneryu@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "93628ffb9ba67c154849ac6c387f98f5e3198b84",
      "tree": "5aeeedb16744a901f945897fda4822e3b852cec5",
      "parents": [
        "bbd2be36910728f485ac78ea36e0f4f5a38e691e"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue May 24 12:00:54 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 24 12:00:54 2011 -0400"
      },
      "message": "ext4: fix waiting and sending of a barrier in ext4_sync_file()\n\njbd2_log_start_commit() returns 1 only when we really start a\ntransaction.  But we also need to wait for a transaction when the\ncommit is already running.  Fix this problem by waiting for\ntransaction commit unconditionally (which is just a quick check if the\ntransaction is already committed).\n\nAlso we have to be more careful with sending of a barrier because when\ntransaction is being committed in parallel to ext4_sync_file()\nrunning, we cannot be sure that the barrier the journalling code sends\nhappens after we wrote all the data for fsync (note that not every\ndata writeout needs to trigger metadata changes thus commit of some\nmetadata changes can be running while other data is still written\nout). So use jbd2_will_send_data_barrier() helper to detect the common\ncases when we can be sure barrier will be issued by the commit code\nand issue the barrier ourselves in the remaining cases.\n\nReported-by: Edward Goggin \u003cegoggin@vmware.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "bbd2be36910728f485ac78ea36e0f4f5a38e691e",
      "tree": "6a45da5a6ef8bafe9614de5fac68cce1fe4e13ec",
      "parents": [
        "81be12c8179c1c397d3f179cdd9b3f7146cf47f1"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue May 24 11:59:18 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 24 11:59:18 2011 -0400"
      },
      "message": "jbd2: Add function jbd2_trans_will_send_data_barrier()\n\nProvide a function which returns whether a transaction with given tid\nwill send a flush to the filesystem device.  The function will be used\nby ext4 to detect whether fsync needs to send a separate flush or not.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "81be12c8179c1c397d3f179cdd9b3f7146cf47f1",
      "tree": "b535687e88af17fc6b25329decf28563ed519395",
      "parents": [
        "b221349fa8b45d13c3650089f0514df7d1eb36c3"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue May 24 11:52:40 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 24 11:52:40 2011 -0400"
      },
      "message": "jbd2: fix sending of data flush on journal commit\n\n\nIn data\u003dordered mode, it\u0027s theoretically possible (however rare) that\nan inode is filed to transaction\u0027s t_inode_list and a flusher thread\nwrites all the data and inode is reclaimed before the transaction\nstarts to commit.  In such a case, we could erroneously omit sending a\nflush to file system device when it is different from the journal\ndevice (because data can still be in disk cache only).\n\nFix the problem by setting a flag in a transaction when some inode is added\nto it and then send disk flush in the commit code when the flag is set.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "b221349fa8b45d13c3650089f0514df7d1eb36c3",
      "tree": "5fb5e797c3f05294dd2e9352c05bb20b29a95d16",
      "parents": [
        "072bd7ea74d4b60149a33967d29666bbd84e7709"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Tue May 24 11:36:58 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 24 11:36:58 2011 -0400"
      },
      "message": "ext4: fix ext4_ext_fiemap_cb() to handle blocks before request range correctly\n\nTo get delayed-extent information, ext4_ext_fiemap_cb() looks up\npagecache, it thus collects information starting from a page\u0027s\nhead block.\n\nIf blocksize \u003c pagesize, the beginning blocks of a page may lies\nbefore the request range. So ext4_ext_fiemap_cb() should proceed\nignoring them, because they has been handled before. If no mapped\nbuffer in the range is found in the 1st page, we need to look up\nthe 2nd page, otherwise delayed-extents after a hole will be ignored.\n\nWithout this patch, xfstests 225 will hung on ext4 with 1K block.\n\nReported-by: Amir Goldstein \u003camir73il@users.sourceforge.net\u003e\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "072bd7ea74d4b60149a33967d29666bbd84e7709",
      "tree": "1d09215dcc30192254e62b84a8515220413cfa40",
      "parents": [
        "28e35e42fb255cbaeee8b9f89643f26fe376374d"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 23 15:13:02 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 23 15:13:02 2011 -0400"
      },
      "message": "ext4: use truncate_setsize() unconditionally\n\nIn commit c8d46e41 (ext4: Add flag to files with blocks intentionally\npast EOF), if the EOFBLOCKS_FL flag is set, we call ext4_truncate()\nbefore calling vmtruncate().  This caused any allocated but unwritten\nblocks created by calling fallocate() with the FALLOC_FL_KEEP_SIZE\nflag to be dropped.  This was done to make to make sure that\nEOFBLOCKS_FL would not be cleared while still leaving blocks past\ni_size allocated.  This was not necessary, since ext4_truncate()\nguarantees that blocks past i_size will be dropped, even in the case\nwhere truncate() has increased i_size before calling ext4_truncate().\n\nSo fix this by removing the EOFBLOCKS_FL special case treatment in\next4_setattr().  In addition, use truncate_setsize() followed by a\ncall to ext4_truncate() instead of using vmtruncate().  This is more\nefficient since it skips the call to inode_newsize_ok(), which has\nbeen checked already by inode_change_ok().  This is also in a win in\nthe case where EOFBLOCKS_FL is set since it avoids calling\next4_truncate() twice.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "28e35e42fb255cbaeee8b9f89643f26fe376374d",
      "tree": "db83cfc348e1ff652aea17eff6ff4eb07d8cd8a9",
      "parents": [
        "f6d2f6b327ceef5c689581529a852dc6ec3b74a6"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Sun May 22 21:45:26 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 22 21:45:26 2011 -0400"
      },
      "message": "jbd2: Fix the wrong calculation of t_max_wait in update_t_max_wait\n\nt_max_wait is added in commit 8e85fb3f to indicate how long we\nwere waiting for new transaction to start. In commit 6d0bf005,\nit is moved to another function named update_t_max_wait to\navoid a build warning. But the wrong thing is that the original\n\u0027ts\u0027 is initialized in the start of function start_this_handle\nand we can calculate t_max_wait in the right way. while with\nthis change, ts is initialized within the function and t_max_wait\ncan never be calculated right.\n\nThis patch moves the initialization of ts to the original beginning\nof start_this_handle and pass it to function update_t_max_wait so\nthat it can be calculated right and the build warning is avoided also.\n\nCc: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReviewed-by: Eric Sandeen \u003csandeen@redhat.com\u003e\n"
    },
    {
      "commit": "f6d2f6b327ceef5c689581529a852dc6ec3b74a6",
      "tree": "9ae24dbb3787f596687954322c55e73570d6ed88",
      "parents": [
        "77f4135f2a219a2127be6cc1208c42e6175b11dd"
      ],
      "author": {
        "name": "Eric Gouriou",
        "email": "egouriou@google.com",
        "time": "Sun May 22 21:33:00 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 22 21:33:00 2011 -0400"
      },
      "message": "ext4: fix unbalanced up_write() in ext4_ext_truncate() error path\n\next4_ext_truncate() should not invoke up_write(\u0026EXT4_I(inode)-\u003ei_data_sem)\nwhen ext4_orphan_add() returns an error, as it hasn\u0027t performed a\ndown_write() yet. This trivial patch fixes this by moving the up_write()\ninvocation above the out_stop label.\n\nSigned-off-by: Eric Gouriou \u003cegouriou@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "77f4135f2a219a2127be6cc1208c42e6175b11dd",
      "tree": "8f85549d2354c5a69a5b29197f68a554daad1324",
      "parents": [
        "93917411be8db5d21abf15c781dfa43c5cc6edf2"
      ],
      "author": {
        "name": "Vivek Haldar",
        "email": "haldar@google.com",
        "time": "Sun May 22 21:24:16 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 22 21:24:16 2011 -0400"
      },
      "message": "ext4: count hits/misses of extent cache and expose in sysfs\n\nThe number of hits and misses for each filesystem is exposed in\n/sys/fs/ext4/\u003cdev\u003e/extent_cache_{hits, misses}.\n\nTested: fsstress, manual checks.\nSigned-off-by: Vivek Haldar \u003chaldar@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "93917411be8db5d21abf15c781dfa43c5cc6edf2",
      "tree": "d5fb8f6b69a8fe710663ba5e5f7cb9fdec982112",
      "parents": [
        "373cd5c53d5ea6622c319ecd84e29e2737d488bd"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Sun May 22 20:49:12 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 22 20:49:12 2011 -0400"
      },
      "message": "ext4: make ext4_split_extent() handle error correctly\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReviewed-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\n"
    },
    {
      "commit": "373cd5c53d5ea6622c319ecd84e29e2737d488bd",
      "tree": "2df40a29def22438cc15f90e4683d43974798784",
      "parents": [
        "1bb933fb1fa8e4cb337a0d5dfd2ff4c0dc2073e8"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 22 16:12:35 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 22 16:12:35 2011 -0400"
      },
      "message": "ext4: don\u0027t show mount options in /proc/mounts if there is no journal\n\nAfter creating an ext4 file system without a journal:\n\n  # mke2fs -t ext4 -O ^has_journal /dev/sda\n  # mount -t ext4 /dev/sda /test\n\nthe /proc/mounts will show:\n\"/dev/sda /test ext4 rw,relatime,user_xattr,acl,barrier\u003d1,data\u003dwriteback 0 0\"\nwhich can fool users into thinking that the fs is using writeback mode.\n\nSo don\u0027t set the writeback option when the journal has not been\nenabled; we don\u0027t depend on the writeback option being set, since\next4_should_writeback_data() in ext4_jbd2.h tests to see if the\njournal is not present before returning true.\n\nReported-by: Robin Dong \u003csanbai@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n\n"
    },
    {
      "commit": "1bb933fb1fa8e4cb337a0d5dfd2ff4c0dc2073e8",
      "tree": "d03bbc0de028862fb9df1d7941a03103150d69de",
      "parents": [
        "51ce65115642b77040f5582b8d2fc8815ac450f9"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Fri May 20 13:55:29 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 20 13:55:29 2011 -0400"
      },
      "message": "ext4: fix possible use-after-free in ext4_remove_li_request()\n\nWe need to take reference to the s_li_request after we take a mutex,\nbecause it might be freed since then, hence result in accessing old\nalready freed memory. Also we should protect the whole\next4_remove_li_request() because ext4_li_info might be in the process of\nbeing freed in ext4_lazyinit_thread().\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReviewed-by: Eric Sandeen \u003csandeen@redhat.com\u003e\n"
    },
    {
      "commit": "51ce65115642b77040f5582b8d2fc8815ac450f9",
      "tree": "53e42bb73ccbca4251d46ec5705a40a6b61bc5ab",
      "parents": [
        "e1290b3e62c496ade19939ce036f35bb69306820"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Fri May 20 13:55:16 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 20 13:55:16 2011 -0400"
      },
      "message": "ext4: fix the mount option \"init_itable\u003dn\" to work as expected for n\u003d0\n\nFor some reason, when we set the mount option \"init_itable\u003d0\" it\nbehaves as we would set init_itable\u003d20 which is not right at all.\nBasically when we set it to zero we are saying to lazyinit thread not\nto wait between zeroing the inode table (except of cond_resched()) so\nthis commit fixes that and removes the unnecessary condition.  The \u0027n\u0027\nshould be also properly used on remount.\n\nWhen the n is not set at all, it means that the default miltiplier\nEXT4_DEF_LI_WAIT_MULT is set instead.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReported-by: Eric Sandeen \u003csandeen@redhat.com\u003e\n"
    },
    {
      "commit": "e1290b3e62c496ade19939ce036f35bb69306820",
      "tree": "aaf8fc2fd2b9b7c9c1ce15303bb8debf7ab3d01b",
      "parents": [
        "4ed5c033c11b33149d993734a6a8de1016e8f03f"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Fri May 20 13:49:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 20 13:49:51 2011 -0400"
      },
      "message": "ext4: Remove unnecessary wait_event ext4_run_lazyinit_thread()\n\nFor some reason we have been waiting for lazyinit thread to start in the\next4_run_lazyinit_thread() but it is not needed since it was jus\nunnecessary complexity, so get rid of it. We can also remove li_task and\nli_wait_task since it is not used anymore.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReviewed-by: Eric Sandeen \u003csandeen@redhat.com\u003e\n"
    },
    {
      "commit": "4ed5c033c11b33149d993734a6a8de1016e8f03f",
      "tree": "826892fddc9cef7cbfac541eb13bb8eebc95c539",
      "parents": [
        "0e499890c1fd9e0a1bed02002161c4c7873d7489"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Fri May 20 13:49:04 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 20 13:49:04 2011 -0400"
      },
      "message": "ext4: Use schedule_timeout_interruptible() for waiting in lazyinit thread\n\nIn order to make lazyinit eat approx. 10% of io bandwidth at max, we\nare sleeping between zeroing each single inode table. For that purpose\nwe are using timer which wakes up thread when it expires. It is set\nvia add_timer() and this may cause troubles in the case that thread\nhas been woken up earlier and in next iteration we call add_timer() on\nstill running timer hence hitting BUG_ON in add_timer(). We could fix\nthat by using mod_timer() instead however we can use\nschedule_timeout_interruptible() for waiting and hence simplifying\nthings a lot.\n\nThis commit exchange the old \"waiting mechanism\" with simple\nschedule_timeout_interruptible(), setting the time to sleep. Hence we\ndo not longer need li_wait_daemon waiting queue and others, so get rid\nof it.\n\nAddresses-Red-Hat-Bugzilla: #699708\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReviewed-by: Eric Sandeen \u003csandeen@redhat.com\u003e\n"
    },
    {
      "commit": "0e499890c1fd9e0a1bed02002161c4c7873d7489",
      "tree": "9d45cdd242f399837fd208c39e964ef022703e54",
      "parents": [
        "7cb1a5351da8ac499d965a78e94c79ad27891f43"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Wed May 18 13:55:20 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed May 18 13:55:20 2011 -0400"
      },
      "message": "ext4: wait for writeback to complete while making pages writable\n\nIn order to stabilize pages during disk writes, ext4_page_mkwrite must\nwait for writeback operations to complete before making a page\nwritable.  Furthermore, the function must return locked pages, and\nrecheck the writeback status if the page lock is ever dropped.  The\n\"someone could wander in\" part of this patch was suggested by Chris\nMason.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7cb1a5351da8ac499d965a78e94c79ad27891f43",
      "tree": "b78e2ff5d432f14e2840e8911654789b656b26db",
      "parents": [
        "ed3ce80a52c4658f48ef8fc825bdedf8b3fcaa89"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Wed May 18 13:53:20 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed May 18 13:53:20 2011 -0400"
      },
      "message": "ext4: clean up some wait_on_page_writeback calls\n\nwait_on_page_writeback already checks the writeback bit, so callers of it\nneedn\u0027t do that test.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "ed3ce80a52c4658f48ef8fc825bdedf8b3fcaa89",
      "tree": "ebed56d680e8d79842b0c3077f11cbc237faa19f",
      "parents": [
        "9b940f8e8c32456c8a6428fa4313a4bcca7b4fcb"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Wed May 18 13:29:57 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed May 18 13:29:57 2011 -0400"
      },
      "message": "ext4: don\u0027t warn about mnt_count if it has been disabled\n\nCurrently, if we mkfs a new ext4 volume with s_max_mnt_count set to\nzero, and mount it for the first time, we will get the warning:\n\n\tmaximal mount count reached, running e2fsck is recommended\n\nIt is really misleading. So change the check so that it won\u0027t warn in\nthat case.\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "9b940f8e8c32456c8a6428fa4313a4bcca7b4fcb",
      "tree": "24b784d45ad077461bdc76faf5e0fa0125eed0ec",
      "parents": [
        "0b26859027ce0005ef89520af20351360e51ad76"
      ],
      "author": {
        "name": "Allison Henderson",
        "email": "achender@linux.vnet.ibm.com",
        "time": "Mon May 16 10:11:09 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 16 10:11:09 2011 -0400"
      },
      "message": "ext4: ext4_ext_convert_to_initialized bug found in extended FSX testing\n\nThis patch addresses bugs found while testing punch hole \nwith the fsx test.  The patch corrects the number of blocks\nthat are zeroed out while splitting an extent, and also corrects\nthe return value to return the number of blocks split out, instead\nof the number of blocks zeroed out.\n\nThis patch has been tested in addition to the following patches: \n[Ext4 punch hole v7]\n[XFS Tests Punch Hole 1/1 v2] Add Punch Hole Testing to FSX\n\nThe test ran successfully for 24 hours.\n\nSigned-off-by: Allison Henderson \u003cachender@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0b26859027ce0005ef89520af20351360e51ad76",
      "tree": "d0d8cec8c1f413c0980b4a66614871bd435ab334",
      "parents": [
        "6976a6f2acde2b0443cd64f1d08af90630e4ce81"
      ],
      "author": {
        "name": "Amir Goldstein",
        "email": "amir73il@gmail.com",
        "time": "Mon May 16 09:59:13 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 16 09:59:13 2011 -0400"
      },
      "message": "ext4: fix oops in ext4_quota_off()\n\nIf quota is not enabled when ext4_quota_off() is called, we must not\ndereference quota file inode since it is NULL.  Check properly for\nthis.\n\nThis fixes a bug in commit 21f976975cbe (ext4: remove unnecessary\n[cm]time update of quota file), which was merged for 2.6.39-rc3.\n\nReported-by: Amir Goldstein \u003camir73il@users.sf.net\u003e\nSigned-off-by: Amir Goldstein \u003camir73il@users.sf.net\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "6976a6f2acde2b0443cd64f1d08af90630e4ce81",
      "tree": "754e33f280a83ac2f843f2dcafd1b2fbffdd92ca",
      "parents": [
        "44183d4231a52a797beb477f962e1d361e31299d"
      ],
      "author": {
        "name": "Allison Henderson",
        "email": "achender@linux.vnet.ibm.com",
        "time": "Sun May 15 00:19:41 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 15 00:19:41 2011 -0400"
      },
      "message": "ext4: don\u0027t dereference null pointer when make_indexed_dir() fails\n\nFix for a null pointer bug found while running punch hole tests\n\nSigned-off-by: Allison Henderson \u003cachender@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "44183d4231a52a797beb477f962e1d361e31299d",
      "tree": "51ab7183ba8592db316cc189b063d49d8109d58f",
      "parents": [
        "9b8b7d353f5f9bea758398c3af679ffa105e5cfe"
      ],
      "author": {
        "name": "Amir Goldstein",
        "email": "amir73il@users.sf.net",
        "time": "Mon May 09 21:52:36 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 09 21:52:36 2011 -0400"
      },
      "message": "ext4: remove alloc_semp\n\nAfter taking care of all group init races, all that remains is to\nremove alloc_semp from ext4_allocation_context and ext4_buddy structs.\n\nSigned-off-by: Amir Goldstein \u003camir73il@users.sf.net\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "9b8b7d353f5f9bea758398c3af679ffa105e5cfe",
      "tree": "9536ad8334979e6ed9a188fd993afd4b307bc45c",
      "parents": [
        "2de8807b25de6d24476923121e3b20146fe8216b"
      ],
      "author": {
        "name": "Amir Goldstein",
        "email": "amir73il@users.sf.net",
        "time": "Mon May 09 21:49:42 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 09 21:49:42 2011 -0400"
      },
      "message": "ext4: teach ext4_mb_init_cache() to skip uptodate buddy caches\n\nAfter online resize which adds new groups, some of the groups\nin a buddy page may be initialized and uptodate, while other\n(new ones) may be uninitialized.\n\nThe indication for init of new block groups is when ext4_mb_init_cache()\nis called with an uptodate buddy page. In this case, initialized groups\non that buddy page must be skipped when initializing the buddy cache.\n\nSigned-off-by: Amir Goldstein \u003camir73il@users.sf.net\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "2de8807b25de6d24476923121e3b20146fe8216b",
      "tree": "083909f3bad86d16a1a65511771945b2ccbb917f",
      "parents": [
        "e73a347b7723757bb5fb5c502814dc205a7f496d"
      ],
      "author": {
        "name": "Amir Goldstein",
        "email": "amir73il@users.sf.net",
        "time": "Mon May 09 21:48:13 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 09 21:48:13 2011 -0400"
      },
      "message": "ext4: synchronize ext4_mb_init_group() with buddy page lock\n\nThe old routines ext4_mb_[get|put]_buddy_cache_lock(), which used\nto take grp-\u003ealloc_sem for all groups on the buddy page have been\nreplaced with the routines ext4_mb_[get|put]_buddy_page_lock().\n\nThe new routines take both buddy and bitmap page locks to protect\nagainst concurrent init of groups on the same buddy page.\n\nThe GROUP_NEED_INIT flag is tested again under page lock to check\nif the group was initialized by another caller.\n\nSigned-off-by: Amir Goldstein \u003camir73il@users.sf.net\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "e73a347b7723757bb5fb5c502814dc205a7f496d",
      "tree": "d65cf4e0fe070c46bdd4a6748bab549a11e0ef0b",
      "parents": [
        "2cd05cc39347ddd8994b7f63ab5cb886f042477f"
      ],
      "author": {
        "name": "Amir Goldstein",
        "email": "amir73il@users.sf.net",
        "time": "Mon May 09 21:40:01 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 09 21:40:01 2011 -0400"
      },
      "message": "ext4: implement ext4_add_groupblocks() by freeing blocks\n\nThe old imlementation used to take grp-\u003ealloc_sem and set the\nGROUP_NEED_INIT flag, so that the buddy cache would be reloaded.\n\nThe new implementation updates the buddy cache by freeing the added\nblocks and making them available for use, so there is no need to\nreload the buddy cache and there is no need to take grp-\u003ealloc_sem.\n\nSigned-off-by: Amir Goldstein \u003camir73il@users.sf.net\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "2cd05cc39347ddd8994b7f63ab5cb886f042477f",
      "tree": "72f981c17f079daa180de739d032faa6956ecef1",
      "parents": [
        "2846e82004a8d5ef0a63cd3209c84ea5cd796f11"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 09 10:58:45 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 09 10:58:45 2011 -0400"
      },
      "message": "ext4: remove unneeded ext4_journal_get_undo_access\n\nThe block allocation code used to use jbd2_journal_get_undo_access as\na way to make changes that wouldn\u0027t show up until the commit took\nplace.  The new multi-block allocation code has a its own way of\npreventing newly freed blocks from getting reused until the commit\ntakes place (it avoids updating the buddy bitmaps until the commit is\ndone), so we don\u0027t need to use jbd2_journal_get_undo_access(), which\nhas extra overhead compared to jbd2_journal_get_write_access().\n\nThere was one last vestigal use of ext4_journal_get_undo_access() in\next4_add_groupblocks(); change it to use ext4_journal_get_write_access()\nand then remove the ext4_journal_get_undo_access() support.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "2846e82004a8d5ef0a63cd3209c84ea5cd796f11",
      "tree": "3b20c08ce64e918d4217bb95228fc597c63bf0e0",
      "parents": [
        "66bb82798d9ff896271d13f5020f7fb9b7d88e1a"
      ],
      "author": {
        "name": "Amir Goldstein",
        "email": "amir73il@users.sf.net",
        "time": "Mon May 09 10:46:41 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 09 10:46:41 2011 -0400"
      },
      "message": "ext4: move ext4_add_groupblocks() to mballoc.c\n\nIn preparation for the next patch, the function ext4_add_groupblocks()\nis moved to mballoc.c, where it could use some static functions.\n\nSigned-off-by: Amir Goldstein \u003camir73il@users.sf.net\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "66bb82798d9ff896271d13f5020f7fb9b7d88e1a",
      "tree": "7bfbb2708421712b735e9c32a92a8cbbf3d58f22",
      "parents": [
        "55ff3840a293923daacc880cf4aed30c3c49f754"
      ],
      "author": {
        "name": "Amerigo Wang",
        "email": "amwang@redhat.com",
        "time": "Mon May 09 10:30:41 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 09 10:30:41 2011 -0400"
      },
      "message": "ext4: remove redundant #ifdef in super.c\n\nThere is already an #ifdef CONFIG_QUOTA some lines above,\nso this one is totally useless.\n\nSigned-off-by: WANG Cong \u003camwang@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "55ff3840a293923daacc880cf4aed30c3c49f754",
      "tree": "a6ff7d177ff6b2e1f58d63560cc9323f789f53a1",
      "parents": [
        "00d098822fe215a2f4fd32f244a9055b0b043bfe"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Mon May 09 10:28:41 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 09 10:28:41 2011 -0400"
      },
      "message": "ext4: remove redundant check for first_not_zeroed in ext4_register_li_request\n\nWe have checked first_not_zeroed \u003d\u003d ngroups already above, so remove\nthis redundant check.\n\nsbi-\u003es_li_request \u003d NULL above is also removed since it is NULL\nalready.\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": "00d098822fe215a2f4fd32f244a9055b0b043bfe",
      "tree": "e111dd4a9eb65cfc862186315e89220b692ddf83",
      "parents": [
        "e8bbe8c401c61408ea226b33b824f231c8f9ccae"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Mon May 09 10:26:41 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 09 10:26:41 2011 -0400"
      },
      "message": "ext4: use s_inodes_per_block directly in __ext4_get_inode_loc\n\nIn __ext4_get_inode_loc, we calculate inodes_per_block every time by\nEXT4_BLOCK_SIZE(sb) / EXT4_INODE_SIZE(sb).  AFAICS, this function is a\nhot path for ext4, so we\u0027d better use s_inodes_per_block directly\ninstead of calculating every time.\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "e8bbe8c401c61408ea226b33b824f231c8f9ccae",
      "tree": "ebba3b3228e43896fb5dbc281a06f75de0667a55",
      "parents": [
        "1be2add685181ba31554ffefa428b0f80a408bff"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Mon May 09 10:25:54 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 09 10:25:54 2011 -0400"
      },
      "message": "ext4: use EXT4FS_DEBUG instead of EXT4_DEBUG in fsync.c\n\nWe have EXT4FS_DEBUG for some old debug and CONFIG_EXT4_DEBUG\nfor the new mballoc debug, but there isn\u0027t any EXT4_DEBUG.\n\nAs CONFIG_EXT4_DEBUG seems to be only used in mballoc, use\nEXT4FS_DEBUG in fsync.c.\n\n[ It doesn\u0027t really matter; although I\u0027m including this commit for\n  consistency\u0027s sake.  The whole point of the #ifdef\u0027s is to disable\n  the debugging code.  In general you\u0027re not going to want to enable\n  all of the code protected by EXT4FS_DEBUG at the same time.  -- Ted ]\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "1be2add685181ba31554ffefa428b0f80a408bff",
      "tree": "1556ae76056f50460af2db7018816b96b4676c63",
      "parents": [
        "229309caebe4508d650bb6d8f7d51f2b116f5bbd"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 08 19:37:54 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 08 19:37:54 2011 -0400"
      },
      "message": "jbd2: only print the debugging information for tid wraparound once\n\nIf we somehow wrap, we don\u0027t want to keep printing the warning message\nover and over again.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "229309caebe4508d650bb6d8f7d51f2b116f5bbd",
      "tree": "6b9612369cac17205b21ca0b4d93ebbd25863f6d",
      "parents": [
        "667eff35a1f56fa74ce98a0c7c29a40adc1ba4e3"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Sun May 08 19:09:53 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 08 19:09:53 2011 -0400"
      },
      "message": "jbd2: Fix forever sleeping process in do_get_write_access()\n\nIn do_get_write_access() we wait on BH_Unshadow bit for buffer to get\nfrom shadow state. The waking code in journal_commit_transaction() has\na bug because it does not issue a memory barrier after the buffer is\nmoved from the shadow state and before wake_up_bit() is called. Thus a\nwaitqueue check can happen before the buffer is actually moved from\nthe shadow state and waiting process may never be woken. Fix the\nproblem by issuing proper barrier.\n\nReported-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "667eff35a1f56fa74ce98a0c7c29a40adc1ba4e3",
      "tree": "625caf470f97ebd544cc19a06dc2921b34708aa8",
      "parents": [
        "47ea3bb59cf47298b1cbb4d7bef056b3afea0879"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Tue May 03 12:25:07 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 03 12:25:07 2011 -0400"
      },
      "message": "ext4: reimplement convert and split_unwritten\n\nReimplement ext4_ext_convert_to_initialized() and\next4_split_unwritten_extents() using ext4_split_extent()\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nTested-by: Allison Henderson \u003cachender@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "47ea3bb59cf47298b1cbb4d7bef056b3afea0879",
      "tree": "20d3f182b3fe743e7ca221dc2ae2cf7ab93ba6b8",
      "parents": [
        "197217a5af79c23609da03eda2a52ee8603eec52"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Tue May 03 12:23:07 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 03 12:23:07 2011 -0400"
      },
      "message": "ext4: add ext4_split_extent_at() and ext4_split_extent()\n\nAdd two functions: ext4_split_extent_at(), which splits an extent into\ntwo extents at given logical block, and ext4_split_extent() which\nsplits an extent into three extents.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nTested-by: Allison Henderson \u003cachender@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "197217a5af79c23609da03eda2a52ee8603eec52",
      "tree": "df05721599f21c46fb4879ec3195431dd9a45804",
      "parents": [
        "df5e6223407e3e645065c4bd968fee007f0e0287"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Tue May 03 11:45:29 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 03 11:45:29 2011 -0400"
      },
      "message": "ext4: add a function merging extents right and left\n\n1) Rename ext4_ext_try_to_merge() to ext4_ext_try_to_merge_right().\n\n2) Add a new function ext4_ext_try_to_merge() which tries to merge\n   an extent both left and right.\n\n3) Use the new function in ext4_ext_convert_unwritten_endio() and\n   ext4_ext_insert_extent().\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nTested-by: Allison Henderson \u003cachender@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "df5e6223407e3e645065c4bd968fee007f0e0287",
      "tree": "d5027dc9645dea4a5536819ac98f4299757fff22",
      "parents": [
        "7ad8e4e6ae2a7c95445ee1715b1714106fb95037"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue May 03 11:12:58 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 03 11:12:58 2011 -0400"
      },
      "message": "ext4: fix deadlock in ext4_symlink() in ENOSPC conditions\n\next4_symlink() cannot call __page_symlink() with transaction open.\n__page_symlink() calls ext4_write_begin() which can wait for\ntransaction commit if we are running out of space thus causing a\ndeadlock. Also error recovery in ext4_truncate_failed_write() does not\ncount with the transaction being already started (although I\u0027m not\naware of any particular deadlock here).\n\nFix the problem by stopping a transaction before calling\n__page_symlink() (we have to be careful and put inode to orphan list\nso that it gets deleted in case of crash) and starting another one\nafter __page_symlink() returns for addition of symlink into a\ndirectory.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7ad8e4e6ae2a7c95445ee1715b1714106fb95037",
      "tree": "f3cb6f1d364e2a1f9036216edfcbdcb94e4d489f",
      "parents": [
        "74e4e6db38918620bdf8a46e94982ead2b228d43"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue May 03 11:05:55 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 03 11:05:55 2011 -0400"
      },
      "message": "ext4: Fix fs corruption when make_indexed_dir() fails\n\nWhen make_indexed_dir() fails (e.g. because of ENOSPC) after it has\nallocated block for index tree root, we did not properly mark all\nchanged buffers dirty.  This lead to only some of these buffers being\nwritten out and thus effectively corrupting the directory.\n\nFix the issue by marking all changed data dirty even in the error\nfailure case.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "74e4e6db38918620bdf8a46e94982ead2b228d43",
      "tree": "1bebec0e236c670036116e6f77eb1170dc5a0ef1",
      "parents": [
        "deeeaf13b291420fe4a4a52606b9fc9128387340"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 03 09:34:42 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 03 09:34:42 2011 -0400"
      },
      "message": "ext4: set extents flag when migrating file to use extents\n\nFix a typo that was introduced in commit 07a038245b (in 2.6.36) which\ncaused the extents flag not to be set at the conclusion of converting\nan inode to use extents.\n\nReported-by: Peter Uchno \u003cpeter.uchno@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "deeeaf13b291420fe4a4a52606b9fc9128387340",
      "tree": "2e7cbab5f598839771022453e8ed4ea18fb1e0af",
      "parents": [
        "59802db0745ddfe5cfd0d965e9d489f1b4713868"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 01 18:16:26 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 01 18:16:26 2011 -0400"
      },
      "message": "jbd2: fix fsync() tid wraparound bug\n\nIf an application program does not make any changes to the indirect\nblocks or extent tree, i_datasync_tid will not get updated.  If there\nare enough commits (i.e., 2**31) such that tid_geq()\u0027s calculations\nwrap, and there isn\u0027t a currently active transaction at the time of\nthe fdatasync() call, this can end up triggering a BUG_ON in\nfs/jbd2/commit.c:\n\n\tJ_ASSERT(journal-\u003ej_running_transaction !\u003d NULL);\n\nIt\u0027s pretty rare that this can happen, since it requires the use of\nfdatasync() plus *very* frequent and excessive use of fsync().  But\nwith the right workload, it can.\n\nWe fix this by replacing the use of tid_geq() with an equality test,\nsince there\u0027s only one valid transaction id that we is valid for us to\nwait until it is commited: namely, the currently running transaction\n(if it exists).\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "59802db0745ddfe5cfd0d965e9d489f1b4713868",
      "tree": "2211219c665bfe707d8f2305b9c9abc99cd9b826",
      "parents": [
        "dc2070a241cf3f86395afe7b969020d99aad8f00"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 01 18:14:26 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 01 18:14:26 2011 -0400"
      },
      "message": "ext4: remove obsolete mount options from ext4\u0027s documentation\n\nThe block reservation code from ext3 was removed long ago...\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "dc2070a241cf3f86395afe7b969020d99aad8f00",
      "tree": "d48537695bda850b38037c85851de551ce4e1b5c",
      "parents": [
        "d9f34504e6952e909a6932c5b2d1857716606380"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Sun May 01 18:11:18 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 01 18:11:18 2011 -0400"
      },
      "message": "ext4: remove dead code in ext4_has_free_blocks()\n\npercpu_counter_sum_positive() never returns a negative value.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d9f34504e6952e909a6932c5b2d1857716606380",
      "tree": "ae81b1df1d4d30606acea4e00fbca19307be4f29",
      "parents": [
        "39db00f1c45e770856264bdb3ceca27980b01965"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Apr 30 13:47:24 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Apr 30 13:47:24 2011 -0400"
      },
      "message": "ext4: ignore errors when issuing discards\n\nThis is an effective revert of commit a30eec2a8: \"ext4: stop issuing\ndiscards if not supported by device\".  The problem is that there are\nsome devices that may return errors in response to a discard request\nsome times but not others.  (One example would be a hybrid dm device\nwhich concatenates an SSD and an HDD device).\n\nBy this logic, I also removed the error checking from ext4\u0027s FITRIM\ncode; so that an error from a discard will not stop the FITRIM from\ntrying to trim the rest of the file system.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "39db00f1c45e770856264bdb3ceca27980b01965",
      "tree": "a06fcf532d9bbb06395016a653840efa7436c6bf",
      "parents": [
        "2035e776050aea57fb5255557216473e82793f2c"
      ],
      "author": {
        "name": "Curt Wohlgemuth",
        "email": "curtw@google.com",
        "time": "Sat Apr 30 13:26:26 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Apr 30 13:26:26 2011 -0400"
      },
      "message": "ext4: don\u0027t set PageUptodate in ext4_end_bio()\n\nIn the bio completion routine, we should not be setting\nPageUptodate at all -- it\u0027s set at sys_write() time, and is\nunaffected by success/failure of the write to disk.\n\nThis can cause a page corruption bug when the file system\u0027s\nblock size is less than the architecture\u0027s VM page size.\n\nif we have only written a single block -- we might end up\nsetting the page\u0027s PageUptodate flag, indicating that page\nis completely read into memory, which may not be true.\nThis could cause subsequent reads to get bad data.\n\nThis commit also takes the opportunity to clean up error\nhandling in ext4_end_bio(), and remove some extraneous code:\n\n   - fixes ext4_end_bio() to set AS_EIO in the\n     page-\u003emapping-\u003eflags on error, which was left out by\n     mistake.  This is needed so that fsync() will\n     return an error if there was an I/O error.\n   - remove the clear_buffer_dirty() call on unmapped\n     buffers for each page.\n   - consolidate page/buffer error handling in a single\n     section.\n\nSigned-off-by: Curt Wohlgemuth \u003ccurtw@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReported-by: Jim Meyering \u003cjim@meyering.net\u003e\nReported-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Mingming Cao \u003ccmm@us.ibm.com\u003e\n"
    },
    {
      "commit": "2035e776050aea57fb5255557216473e82793f2c",
      "tree": "6a97e536fd5fbdc29e4b471195a5dd5a0df35fc6",
      "parents": [
        "26626f1172fb4f3f323239a6a5cf4e082643fa46"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Apr 18 17:29:14 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Apr 18 17:29:14 2011 -0400"
      },
      "message": "ext4: check for ext[23] file system features when mounting as ext[23]\n\nProvide better emulation for ext[23] mode by enforcing that the file\nsystem does not have any unsupported file system features as defined\nby ext[23] when emulating the ext[23] file system driver when\nCONFIG_EXT4_USE_FOR_EXT23 is defined.\n\nThis causes the file system type information in /proc/mounts to be\ncorrect for the automatically mounted root file system.  This also\nmeans that \"mount -t ext2 /dev/sda /mnt\" will fail if /dev/sda\ncontains an ext3 or ext4 file system, just as one would expect if the\noriginal ext2 file system driver were in use.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "26626f1172fb4f3f323239a6a5cf4e082643fa46",
      "tree": "a1b11f012bd0807b771651c73b701475a8309bee",
      "parents": [
        "a6360dd37e1a144ed11e6548371bade559a1e4df"
      ],
      "author": {
        "name": "Yang Ruirui",
        "email": "ruirui.r.yang@tieto.com",
        "time": "Sat Apr 16 19:17:48 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Apr 16 19:17:48 2011 -0400"
      },
      "message": "ext4: release page cache in ext4_mb_load_buddy error path\n\nAdd missing page_cache_release in the error path of ext4_mb_load_buddy\n\nSigned-off-by: Yang Ruirui \u003cruirui.r.yang@tieto.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "a6360dd37e1a144ed11e6548371bade559a1e4df",
      "tree": "5c6aff0b9f567c03e57f4243b1e3e0eea990b939",
      "parents": [
        "1e05ff020f692de078226fd5480adc76317e37bb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 11 17:21:51 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 11 17:21:51 2011 -0700"
      },
      "message": "Linux 2.6.39-rc3\n"
    },
    {
      "commit": "1e05ff020f692de078226fd5480adc76317e37bb",
      "tree": "daae233648b0afc36cdab0de675d40e2b40042bd",
      "parents": [
        "a97b52022a73ec12e43f0b2c7d4bd1f40f89c81d",
        "39411f81eec7dc01677b14dda97684c0ce23ac1b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 11 15:48:57 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 11 15:48:57 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: use proper interfaces for on-stack plugging\n  xfs: fix xfs_debug warnings\n  xfs: fix variable set but not used warnings\n  xfs: convert log tail checking to a warning\n  xfs: catch bad block numbers freeing extents.\n  xfs: push the AIL from memory reclaim and periodic sync\n  xfs: clean up code layout in xfs_trans_ail.c\n  xfs: convert the xfsaild threads to a workqueue\n  xfs: introduce background inode reclaim work\n  xfs: convert ENOSPC inode flushing to use new syncd workqueue\n  xfs: introduce a xfssyncd workqueue\n  xfs: fix extent format buffer allocation size\n  xfs: fix unreferenced var error in xfs_buf.c\n\nAlso, applied patch from Tony Luck that fixes ia64:\n  xfs_destroy_workqueues() should not be tagged with__exit\nin the branch before merging.\n"
    },
    {
      "commit": "39411f81eec7dc01677b14dda97684c0ce23ac1b",
      "tree": "332cbcd641b09f25c35167b44bcd8fc70918c66e",
      "parents": [
        "a1b7ea5d58c53c13f082110e535d98bc4e8e5cfe"
      ],
      "author": {
        "name": "Luck, Tony",
        "email": "tony.luck@intel.com",
        "time": "Mon Apr 11 12:06:12 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 11 15:47:20 2011 -0700"
      },
      "message": "xfs_destroy_workqueues() should not be tagged with__exit\n\nia64 throws away .exit sections for the built-in CONFIG case, so routines\nthat are used in other circumstances should not be tagged as __exit.\n\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a97b52022a73ec12e43f0b2c7d4bd1f40f89c81d",
      "tree": "1a35544915a5704fa59c63b43e9f46e20be1e296",
      "parents": [
        "18770c7c3a0ccd60017ac76b5d2e7d1f71376b94",
        "c8205636029fc869278c55b7336053b3e7ae3ef4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 11 15:45:47 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 11 15:45:47 2011 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:\n  ext4: fix data corruption regression by reverting commit 6de9843dab3f\n  ext4: Allow indirect-block file to grow the file size to max file size\n  ext4: allow an active handle to be started when freezing\n  ext4: sync the directory inode in ext4_sync_parent()\n  ext4: init timer earlier to avoid a kernel panic in __save_error_info\n  jbd2: fix potential memory leak on transaction commit\n  ext4: fix a double free in ext4_register_li_request\n  ext4: fix credits computing for indirect mapped files\n  ext4: remove unnecessary [cm]time update of quota file\n  jbd2: move bdget out of critical section\n"
    },
    {
      "commit": "18770c7c3a0ccd60017ac76b5d2e7d1f71376b94",
      "tree": "548e113ab83307d25e41ea1e67ace6f53b194798",
      "parents": [
        "6b98cd5aad3bb51a3b5b51ba670ab8d5fe1cc487",
        "23fcf2ec93fb8573a653408316af599939ff9a8e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 11 15:45:17 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 11 15:45:17 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.39\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.39\u0027 of git://linux-nfs.org/~bfields/linux:\n  nfsd4: fix oops on lock failure\n  nfsd: fix auth_domain reference leak on nlm operations\n"
    },
    {
      "commit": "6b98cd5aad3bb51a3b5b51ba670ab8d5fe1cc487",
      "tree": "c38970f362c4de594a7433de5989cae0a199d199",
      "parents": [
        "b42282e5a05018ecdc0d63a4ad530b0999785912",
        "8faa7cf828bca1745a4ed599876567f5afc47544"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 11 15:44:38 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 11 15:44:38 2011 -0700"
      },
      "message": "Merge branch \u0027spi/merge\u0027 of git://git.secretlab.ca/git/linux-2.6\n\n* \u0027spi/merge\u0027 of git://git.secretlab.ca/git/linux-2.6:\n  dt/fsldma: fix build warning caused by of_platform_device changes\n  spi: Fix race condition in stop_queue()\n  gpio/pch_gpio: Fix output value of pch_gpio_direction_output()\n  gpio/ml_ioh_gpio: Fix output value of ioh_gpio_direction_output()\n  gpio/pca953x: fix error handling path in probe() call\n"
    },
    {
      "commit": "b42282e5a05018ecdc0d63a4ad530b0999785912",
      "tree": "c358fbb6eae26a1c5a2bd478241cbcdfd9aa3124",
      "parents": [
        "c44eaf41a5a423993932c9a9ad279ee132779b48"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 11 10:53:11 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 11 10:53:11 2011 -0700"
      },
      "message": "pci: fix PCI bus allocation alignment handling\n\nIn commit 13583b16592a (\"PCI: refactor io size calculation code\") Ram\nhad a thinko in the refactorization of the code: the end result used the\nvariable \u0027align\u0027 for the bus alignment, but the original code used\n\u0027min_align\u0027.\n\nSince then, another use of that \u0027align\u0027 variable got introduced by\ncommit c8adf9a3e873 (\"PCI: pre-allocate additional resources to devices\nonly after successful allocation of essential resources.\")\n\nFix both of those uses to use \u0027min_align\u0027 as they should.\n\nDaniel Hellstrom \u003cdaniel@gaisler.com\u003e\nAcked-by: Ram Pai \u003clinuxram@us.ibm.com\u003e\nAcked-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c44eaf41a5a423993932c9a9ad279ee132779b48",
      "tree": "3554fc0bfdcd97936417d6d001d00710d11e67e5",
      "parents": [
        "4263a2f1dad8c8e7ce2352a0cbc882c2b0c044a9",
        "88edaa415966af965bb7eb7056d8b58145462c8e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 11 07:27:24 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 11 07:27:24 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (34 commits)\n  net: Add support for SMSC LAN9530, LAN9730 and LAN89530\n  mlx4_en: Restoring RX buffer pointer in case of failure\n  mlx4: Sensing link type at device initialization\n  ipv4: Fix \"Set rt-\u003ert_iif more sanely on output routes.\"\n  MAINTAINERS: add entry for Xen network backend\n  be2net: Fix suspend/resume operation\n  be2net: Rename some struct members for clarity\n  pppoe: drop PPPOX_ZOMBIEs in pppoe_flush_dev\n  dsa/mv88e6131: add support for mv88e6085 switch\n  ipv6: Enable RFS sk_rxhash tracking for ipv6 sockets (v2)\n  be2net: Fix a potential crash during shutdown.\n  bna: Fix for handling firmware heartbeat failure\n  can: mcp251x: Allow pass IRQ flags through platform data.\n  smsc911x: fix mac_lock acquision before calling smsc911x_mac_read\n  iwlwifi: accept EEPROM version 0x423 for iwl6000\n  rt2x00: fix cancelling uninitialized work\n  rtlwifi: Fix some warnings/bugs\n  p54usb: IDs for two new devices\n  wl12xx: fix potential buffer overflow in testmode nvs push\n  zd1211rw: reset rx idle timer from tasklet\n  ...\n"
    },
    {
      "commit": "8faa7cf828bca1745a4ed599876567f5afc47544",
      "tree": "68044fdb97c9551a6a647cfa30943940f287c385",
      "parents": [
        "850a28ecd8044ef36b2c7699d2e3736a410b4d0a"
      ],
      "author": {
        "name": "Ira W. Snyder",
        "email": "iws@ovro.caltech.edu",
        "time": "Thu Apr 07 10:33:03 2011 -0700"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Sun Apr 10 23:34:38 2011 -0700"
      },
      "message": "dt/fsldma: fix build warning caused by of_platform_device changes\n\nCommit 000061245a6797d542854106463b6b20fbdcb12e, \"dt/powerpc:\nEliminate users of of_platform_{,un}register_driver\" forgot to convert\nthe type of structure passed into platform_device_register() when it\nwas converted from of_platform_device_register. Fix it.\n\nSigned-off-by: Ira W. Snyder \u003ciws@ovro.caltech.edu\u003e\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "c8205636029fc869278c55b7336053b3e7ae3ef4",
      "tree": "c22b4f2fab37d14d4b81ad5683110075afdc35ea",
      "parents": [
        "f80da1e70f1ffec3825aa0a1d0801f4896e002b6"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Apr 10 22:30:07 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Apr 10 22:30:07 2011 -0400"
      },
      "message": "ext4: fix data corruption regression by reverting commit 6de9843dab3f\n\nRevert commit 6de9843dab3f2a1d4d66d80aa9e5782f80977d20, since it\ncaused a data corruption regression with BitTorrent downloads.  Thanks\nto Damien for discovering and bisecting to find the problem commit.\n\nhttps://bugzilla.kernel.org/show_bug.cgi?id\u003d32972\n\nReported-by: Damien Grassart \u003cdamien@grassart.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f80da1e70f1ffec3825aa0a1d0801f4896e002b6",
      "tree": "42976f4e0fc07da78ffce618b7e98b87d82a2bff",
      "parents": [
        "be4f27d324e8ddd57cc0d4d604fe85ee0425cba9"
      ],
      "author": {
        "name": "Kazuya Mio",
        "email": "k-mio@sx.jp.nec.com",
        "time": "Sun Apr 10 22:06:36 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Apr 10 22:06:36 2011 -0400"
      },
      "message": "ext4: Allow indirect-block file to grow the file size to max file size\n\nWe can create 4402345721856 byte file with indirect block mapping.\nHowever, if we grow an indirect-block file to the size with ftruncate(),\nwe can see an ext4 warning. The following patch fixes this problem.\n\nHow to reproduce:\n# dd if\u003d/dev/zero of\u003d/mnt/mp1/hoge bs\u003d1 count\u003d0 seek\u003d4402345721856\n0+0 records in\n0+0 records out\n0 bytes (0 B) copied, 0.000221428 s, 0.0 kB/s\n# tail -n 1 /var/log/messages\nNov 25 15:10:27 test kernel: EXT4-fs warning (device sda8): ext4_block_to_path:345: block 1074791436 \u003e max in inode 12\n\nSigned-off-by: Kazuya Mio \u003ck-mio@sx.jp.nec.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "be4f27d324e8ddd57cc0d4d604fe85ee0425cba9",
      "tree": "e4262a9e1ade9095e1bf937dc4b9d56a08824eda",
      "parents": [
        "0893ed458b4b1d7c7667ca7ffb8b11febe7e7e6c"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Sun Apr 10 22:06:07 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Apr 10 22:06:07 2011 -0400"
      },
      "message": "ext4: allow an active handle to be started when freezing\n\next4_journal_start_sb() should not prevent an active handle from being\nstarted due to s_frozen.  Otherwise, deadlock is easy to happen, below\nis a situation.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n     freeze         |       truncate\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                    |  ext4_ext_truncate()\n    freeze_super()  |   starts a handle\n    sets s_frozen   |\n                    |  ext4_ext_truncate()\n                    |  holds i_data_sem\n  ext4_freeze()     |\n  waits for updates |\n                    |  ext4_free_blocks()\n                    |  calls dquot_free_block()\n                    |\n                    |  dquot_free_blocks()\n                    |  calls ext4_dirty_inode()\n                    |\n                    |  ext4_dirty_inode()\n                    |  trys to start an active\n                    |  handle\n                    |\n                    |  block due to s_frozen\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReported-by: Amir Goldstein \u003camir73il@users.sf.net\u003e\nReviewed-by: Jan Kara \u003cjack@suse.cz\u003e\nReviewed-by: Andreas Dilger \u003cadilger@dilger.ca\u003e\n"
    },
    {
      "commit": "0893ed458b4b1d7c7667ca7ffb8b11febe7e7e6c",
      "tree": "a9a4e226a6bfa7a13e0cad545280e5e8ce2a80b2",
      "parents": [
        "0449641130f5652b344ef6fa39fa019d7e94660a"
      ],
      "author": {
        "name": "Curt Wohlgemuth",
        "email": "curtw@google.com",
        "time": "Sun Apr 10 22:05:31 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Apr 10 22:05:31 2011 -0400"
      },
      "message": "ext4: sync the directory inode in ext4_sync_parent()\n\next4 has taken the stance that, in the absence of a journal,\nwhen an fsync/fdatasync of an inode is done, the parent\ndirectory should be sync\u0027ed if this inode entry is new.\next4_sync_parent(), which implements this, does indeed sync\nthe dirent pages for parent directories, but it does not\nsync the directory *inode*.  This patch fixes this.\n\nAlso now return error status from ext4_sync_parent().\n\nI tested this using a power fail test, which panics a\nmachine running a file server getting requests from a\nclient.  Without this patch, on about every other test run,\nthe server is missing many, many files that had been synced.\nWith this patch, on \u003e 6 runs, I see zero files being lost.\n\nGoogle-Bug-Id: 4179519\nSigned-off-by: Curt Wohlgemuth \u003ccurtw@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "88edaa415966af965bb7eb7056d8b58145462c8e",
      "tree": "6a681868803740cd6317080cf9507eaf4dfb5d49",
      "parents": [
        "60b1809f7e2ea2620aa548e1c866066756bdd1d2"
      ],
      "author": {
        "name": "Steve Glendinning",
        "email": "steve.glendinning@smsc.com",
        "time": "Sun Apr 10 18:59:27 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Apr 10 18:59:27 2011 -0700"
      },
      "message": "net: Add support for SMSC LAN9530, LAN9730 and LAN89530\n\nThis patch adds support for SMSC\u0027s LAN9530, LAN9730 and LAN89530 USB\nethernet controllers to the existing smsc95xx driver by adding\ntheir new USB VID/PID pairs.\n\nSigned-off-by: Steve Glendinning \u003csteve.glendinning@smsc.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4263a2f1dad8c8e7ce2352a0cbc882c2b0c044a9",
      "tree": "e5892af7a7fd7784c5a3dba682b3cc2728ecadcf",
      "parents": [
        "510ec7bc3bf6bc6d87662d16a6136135d747e535",
        "84f3b6dab973c1a9e941fdd1a55caa44da6d9882"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 10 09:56:10 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 10 09:56:10 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:\n  ALSA: hda - Don\u0027t query connections for widgets have no connections\n  ALSA: HDA: Fix single internal mic on ALC275 (Sony Vaio VPCSB1C5E)\n  ALSA: hda - HDMI: Fix MCP7x audio infoframe checksums\n  ALSA: usb-audio: define another USB ID for a buggy USB MIDI cable\n  ALSA: HDA: Fix dock mic for Lenovo X220-tablet\n  ASoC: format_register_str: Don\u0027t clip register values\n  ASoC: PXA: Fix oops in __pxa2xx_pcm_prepare\n  ASoC: zylonite: set .codec_dai_name in initializer\n"
    },
    {
      "commit": "23fcf2ec93fb8573a653408316af599939ff9a8e",
      "tree": "36fcfe93f655c77651f4417b6882b9a4e04392c3",
      "parents": [
        "954032d2527f2fce7355ba70709b5e143d6b686f"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Mar 28 15:15:09 2011 +0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sun Apr 10 12:21:27 2011 -0400"
      },
      "message": "nfsd4: fix oops on lock failure\n\nLock stateid\u0027s can have access_bmap 0 if they were only partially\ninitialized (due to a failed lock request); handle that case in\nfree_generic_stateid.\n\n------------[ cut here ]------------\nkernel BUG at fs/nfsd/nfs4state.c:380!\ninvalid opcode: 0000 [#1] SMP\nlast sysfs file: /sys/kernel/mm/ksm/run\nModules linked in: nfs fscache md4 nls_utf8 cifs ip6table_filter ip6_tables ebtable_nat ebtables ipt_MASQUERADE iptable_nat nf_nat bridge stp llc nfsd lockd nfs_acl auth_rpcgss sunrpc ipv6 ppdev parport_pc parport pcnet32 mii pcspkr microcode i2c_piix4 BusLogic floppy [last unloaded: mperf]\n\nPid: 1468, comm: nfsd Not tainted 2.6.38+ #120 VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform\nEIP: 0060:[\u003ce24f180d\u003e] EFLAGS: 00010297 CPU: 0\nEIP is at nfs4_access_to_omode+0x1c/0x29 [nfsd]\nEAX: ffffffff EBX: dd758120 ECX: 00000000 EDX: 00000004\nESI: dd758120 EDI: ddfe657c EBP: dd54dde0 ESP: dd54dde0\n DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068\nProcess nfsd (pid: 1468, ti\u003ddd54c000 task\u003dddc92580 task.ti\u003ddd54c000)\nStack:\n dd54ddf0 e24f19ca 00000000 ddfe6560 dd54de08 e24f1a5d dd758130 deee3a20\n ddfe6560 31270000 dd54df1c e24f52fd 0000000f dd758090 e2505dd0 0be304cf\n dbb51d68 0000000e ddfe657c ddcd8020 dd758130 dd758128 dd7580d8 dd54de68\nCall Trace:\n [\u003ce24f19ca\u003e] free_generic_stateid+0x1c/0x3e [nfsd]\n [\u003ce24f1a5d\u003e] release_lockowner+0x71/0x8a [nfsd]\n [\u003ce24f52fd\u003e] nfsd4_lock+0x617/0x66c [nfsd]\n [\u003ce24e57b6\u003e] ? nfsd_setuser+0x199/0x1bb [nfsd]\n [\u003ce24e056c\u003e] ? nfsd_setuser_and_check_port+0x65/0x81 [nfsd]\n [\u003cc07a0052\u003e] ? _cond_resched+0x8/0x1c\n [\u003cc04ca61f\u003e] ? slab_pre_alloc_hook.clone.33+0x23/0x27\n [\u003cc04cac01\u003e] ? kmem_cache_alloc+0x1a/0xd2\n [\u003cc04835a0\u003e] ? __call_rcu+0xd7/0xdd\n [\u003ce24e0dfb\u003e] ? fh_verify+0x401/0x452 [nfsd]\n [\u003ce24f0b61\u003e] ? nfsd4_encode_operation+0x52/0x117 [nfsd]\n [\u003ce24ea0d7\u003e] ? nfsd4_putfh+0x33/0x3b [nfsd]\n [\u003ce24f4ce6\u003e] ? nfsd4_delegreturn+0xd4/0xd4 [nfsd]\n [\u003ce24ea2c9\u003e] nfsd4_proc_compound+0x1ea/0x33e [nfsd]\n [\u003ce24de6ee\u003e] nfsd_dispatch+0xd1/0x1a5 [nfsd]\n [\u003ce1d6e1c7\u003e] svc_process_common+0x282/0x46f [sunrpc]\n [\u003ce1d6e578\u003e] svc_process+0xdc/0xfa [sunrpc]\n [\u003ce24de0fa\u003e] nfsd+0xd6/0x115 [nfsd]\n [\u003ce24de024\u003e] ? nfsd_shutdown+0x24/0x24 [nfsd]\n [\u003cc0454322\u003e] kthread+0x62/0x67\n [\u003cc04542c0\u003e] ? kthread_worker_fn+0x114/0x114\n [\u003cc07a6ebe\u003e] kernel_thread_helper+0x6/0x10\nCode: eb 05 b8 00 00 27 4f 8d 65 f4 5b 5e 5f 5d c3 83 e0 03 55 83 f8 02 89 e5 74 17 83 f8 03 74 05 48 75 09 eb 09 b8 02 00 00 00 eb 0b \u003c0f\u003e 0b 31 c0 eb 05 b8 01 00 00 00 5d c3 55 89 e5 57 56 89 d6 8d\nEIP: [\u003ce24f180d\u003e] nfs4_access_to_omode+0x1c/0x29 [nfsd] SS:ESP 0068:dd54dde0\n---[ end trace 2b0bf6c6557cb284 ]---\n\nThe trace route is:\n\n -\u003e nfsd4_lock()\n   -\u003e if (lock-\u003elk_is_new) {\n     -\u003e alloc_init_lock_stateid()\n\n        3739: stp-\u003est_access_bmap \u003d 0;\n\n   -\u003eif (status \u0026\u0026 lock-\u003elk_is_new \u0026\u0026 lock_sop)\n     -\u003e release_lockowner()\n      -\u003e free_generic_stateid()\n       -\u003e nfs4_access_bmap_to_omode()\n          -\u003e nfs4_access_to_omode()\n\n        380: BUG();   *****\n\nThis problem was introduced by 0997b173609b9229ece28941c118a2a9b278796e.\n\nReported-by: Mi Jinlong \u003cmijinlong@cn.fujitsu.com\u003e\nTested-by: Mi Jinlong \u003cmijinlong@cn.fujitsu.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "510ec7bc3bf6bc6d87662d16a6136135d747e535",
      "tree": "c57d936028021c4f06c7bc4a020c431deecf4d35",
      "parents": [
        "94c8a984ae2adbd9a9626fb42e0f2faf3e36e86f",
        "80b4f81a49809774f1b123c456fb179e472dbd0e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Apr 09 13:23:50 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Apr 09 13:23:50 2011 -0700"
      },
      "message": "Merge git://git.infradead.org/mtd-2.6\n\n* git://git.infradead.org/mtd-2.6:\n  mtd: atmel_nand: use CPU I/O when buffer is in vmalloc(ed) region\n  mtd: atmel_nand: modify test case for using DMA operations\n  mtd: atmel_nand: fix support for CPUs that do not support DMA access\n  mtd: atmel_nand: trivial: change DMA usage information trace\n  mtd: mtdswap: fix printk format warning\n"
    },
    {
      "commit": "84f3b6dab973c1a9e941fdd1a55caa44da6d9882",
      "tree": "75105af06069087a480c1f69e4e2916718e623e6",
      "parents": [
        "664cee46e755b37204f1731cb8726db610f3486d",
        "cd9abc7a22806f2340b853058a634b0e32a9f47c"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Sat Apr 09 10:05:53 2011 +0200"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Sat Apr 09 10:05:53 2011 +0200"
      },
      "message": "Merge branch \u0027fix/hda\u0027 into for-linus\n"
    },
    {
      "commit": "664cee46e755b37204f1731cb8726db610f3486d",
      "tree": "11ed0d43eff14123534785cf25c0a2143e134e7e",
      "parents": [
        "a0334c50bf0ba7c720ed00f931e721c989efd233",
        "4e29402fe4b2006c994eed5020c42b2cc87d9b42"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Sat Apr 09 10:05:30 2011 +0200"
      },
      "committer": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Sat Apr 09 10:05:30 2011 +0200"
      },
      "message": "Merge branch \u0027fix/asoc\u0027 into for-linus\n"
    },
    {
      "commit": "94c8a984ae2adbd9a9626fb42e0f2faf3e36e86f",
      "tree": "a4beddd64501ef00ad41c8fd5974340bec2fcf73",
      "parents": [
        "f9fa0bc1fabe1d861e46d80ecbe7e85da359195c",
        "37adb89fadd65ce47f7e5cfd564938a76b351948"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 08 11:47:35 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 08 11:47:35 2011 -0700"
      },
      "message": "Merge branch \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:\n  NFS: Change initial mount authflavor only when server returns NFS4ERR_WRONGSEC\n  NFS: Fix a signed vs. unsigned secinfo bug\n  Revert \"net/sunrpc: Use static const char arrays\"\n"
    },
    {
      "commit": "f9fa0bc1fabe1d861e46d80ecbe7e85da359195c",
      "tree": "7d90bcd4b78f22a72ea4d3102b8e2714b78d1e43",
      "parents": [
        "bb3c90f0de7b34995b5e35cf5dc97a3d428b3761"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Fri Apr 08 10:53:46 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 08 11:05:24 2011 -0700"
      },
      "message": "signal.c: fix erroneous syscall kernel-doc\n\nFix erroneous syscall kernel-doc comments in kernel/signal.c.\n\nReported-by: Matt Fleming \u003cmatt@console-pimps.org\u003e\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bb3c90f0de7b34995b5e35cf5dc97a3d428b3761",
      "tree": "d5d07b61c0ab6d8688579a255e2b97b624637336",
      "parents": [
        "3d762ca1cdf38b5fb7d1774734176d1d4d56bbb7",
        "8838101183bba239f100b0cfe31d9ebbfc2f1bd4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 08 07:36:14 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 08 07:36:14 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git390.marist.edu/pub/scm/linux-2.6\n\n* \u0027for-linus\u0027 of git://git390.marist.edu/pub/scm/linux-2.6:\n  [S390] compile fix for latest binutils\n  [S390] cio: prevent purging of CCW devices in the online state\n  [S390] qdio: fix init sequence\n  [S390] Fix parameter passing for smp_switch_to_cpu()\n  [S390] oprofile s390: prevent stack corruption\n"
    },
    {
      "commit": "3d762ca1cdf38b5fb7d1774734176d1d4d56bbb7",
      "tree": "2fed11327a86c05ec945c31aa6e1307fbca527c9",
      "parents": [
        "0c3efe54d0165cecf0698b468e253577b555dde6",
        "b03f24567ce7caf2420b8be4c6eb74c191d59a91"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 08 07:35:17 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 08 07:35:17 2011 -0700"
      },
      "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: Don\u0027t write quota info in dquot_commit()\n  ext3: Fix writepage credits computation for ordered mode\n"
    },
    {
      "commit": "a1b7ea5d58c53c13f082110e535d98bc4e8e5cfe",
      "tree": "8238090fc86fa6198680012b9d65d272529ba44b",
      "parents": [
        "957935dcd8e11d6f789b4ed769b376040e15565b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 30 11:05:09 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Apr 08 08:09:28 2011 -0500"
      },
      "message": "xfs: use proper interfaces for on-stack plugging\n\nAdd proper blk_start_plug/blk_finish_plug pairs for the two places where\nwe issue buffer I/O, and remove the blk_flush_plug in xfs_buf_lock and\nxfs_buf_iowait, given that context switches already flush the per-process\nplugging lists.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "957935dcd8e11d6f789b4ed769b376040e15565b",
      "tree": "6f120bac2011bdba637f39d3704ec0272b883726",
      "parents": [
        "ecb697c16c1718ae97bb73ce41a5d5ac2aed29ec"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sat Apr 02 18:13:40 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Apr 08 08:09:24 2011 -0500"
      },
      "message": "xfs: fix xfs_debug warnings\n\nFor a CONFIG_XFS_DEBUG\u003dn build gcc complains about statements with no\neffect in xfs_debug:\n\nfs/xfs/quota/xfs_qm_syscalls.c: In function \u0027xfs_qm_scall_trunc_qfiles\u0027:\nfs/xfs/quota/xfs_qm_syscalls.c:291:3: warning: statement with no effect\n\nThe reason for that is that the various new xfs message functions have a\nreturn value which is never used, and in case of the non-debug build\nxfs_debug the macro evaluates to a plain 0 which produces the above\nwarnings.  This can be fixed by turning xfs_debug into an inline function\ninstead of a macro, but in addition to that I\u0027ve also changed all the\nmessage helpers to return void as we never use their return values.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "ecb697c16c1718ae97bb73ce41a5d5ac2aed29ec",
      "tree": "a4a54638bedf89e29fb8487b3493188d462b3fad",
      "parents": [
        "da8a1a4a4dfc1ead12c343b992fc8300a22d33d0"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Apr 04 12:55:44 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Apr 08 08:09:12 2011 -0500"
      },
      "message": "xfs: fix variable set but not used warnings\n\nGCC 4.6 now warnings about variables set but not used.  Fix the trivially\nfixable warnings of this sort.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "60b1809f7e2ea2620aa548e1c866066756bdd1d2",
      "tree": "79ab74bbcd1bdb2232bb750a3236baee298d41bb",
      "parents": [
        "ab6dc30da55d262c54ae12e47e4a2e4372e39fbf"
      ],
      "author": {
        "name": "Yevgeny Petrilin",
        "email": "yevgenyp@mellanox.co.il",
        "time": "Wed Apr 06 23:25:45 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 07 20:36:13 2011 -0700"
      },
      "message": "mlx4_en: Restoring RX buffer pointer in case of failure\n\nIf not done, second attempt to open the RX ring would cause memory corruption.\n\nSigned-off-by: Yevgeny Petrilin \u003cyevgenyp@mellanox.co.il\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ab6dc30da55d262c54ae12e47e4a2e4372e39fbf",
      "tree": "fb77f6babbe4014502160bd8ddae2993ca6a1180",
      "parents": [
        "1b86a58f9d7ce4fe2377687f378fbfb53bdc9b6c"
      ],
      "author": {
        "name": "Yevgeny Petrilin",
        "email": "yevgenyp@mellanox.co.il",
        "time": "Wed Apr 06 23:24:42 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 07 20:36:12 2011 -0700"
      },
      "message": "mlx4: Sensing link type at device initialization\n\nWhen bringing the port up, performing a SENSE_PORT command\nTo try and check to which physical link type (IB or Ethernet) the physical\nport is connected.\nIn case there is no valid link partner, the port will come up as its\nsupported default.\n\nSigned-off-by: Yevgeny Petrilin \u003cyevgenyp@mellanox.co.il\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "da8a1a4a4dfc1ead12c343b992fc8300a22d33d0",
      "tree": "903485755dcfdd4908cc1d33c1af0e69f45b79a5",
      "parents": [
        "be65b18a10e62321c5ba09a1dc0f70babeb0eba1"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri Apr 08 12:45:07 2011 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Fri Apr 08 12:45:07 2011 +1000"
      },
      "message": "xfs: convert log tail checking to a warning\n\nOn the Power platform, the log tail debug checks fire excessively\ncausing the system to panic early in testing. The debug checks are\nknown to be racy, though on x86_64 there is no evidence that they\ntrigger at all.\n\nWe want to keep the checks active on debug systems to alert us to\nproblems with log space accounting, but we need to reduce the impact\nof a racy check on testing on the Power platform.\n\nAs a result, convert the ASSERT conditions to warnings, and\nallow them to fire only once per filesystem mount. This will prevent\nfalse positives from interfering with testing, whilst still\nproviding us with the indication that they may be a problem with log\nspace accounting should that occur.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "be65b18a10e62321c5ba09a1dc0f70babeb0eba1",
      "tree": "512dba387c91b778c4e2b9fafa42bfef7f074bb7",
      "parents": [
        "fd074841cfe01b006465fb9388091012585e8dfb"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri Apr 08 12:45:07 2011 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Fri Apr 08 12:45:07 2011 +1000"
      },
      "message": "xfs: catch bad block numbers freeing extents.\n\nA fuzzed filesystem crashed a kernel when freeing an extent with a\nblock number beyond the end of the filesystem. Convert all the debug\nasserts in xfs_free_extent() to active checks so that we catch bad\nextents and return that the filesytsem is corrupted rather than\ncrashing.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "fd074841cfe01b006465fb9388091012585e8dfb",
      "tree": "7ec409fade00b6c18987e1cb2a62443c074ce274",
      "parents": [
        "cd4a3c503c185f5f0a20f04f90da0a6966dd03bd"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri Apr 08 12:45:07 2011 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Fri Apr 08 12:45:07 2011 +1000"
      },
      "message": "xfs: push the AIL from memory reclaim and periodic sync\n\nWhen we are short on memory, we want to expedite the cleaning of\ndirty objects.  Hence when we run short on memory, we need to kick\nthe AIL flushing into action to clean as many dirty objects as\nquickly as possible.  To implement this, sample the lsn of the log\nitem at the head of the AIL and use that as the push target for the\nAIL flush.\n\nFurther, we keep items in the AIL that are dirty that are not\ntracked any other way, so we can get objects sitting in the AIL that\ndon\u0027t get written back until the AIL is pushed. Hence to get the\nfilesystem to the idle state, we might need to push the AIL to flush\nout any remaining dirty objects sitting in the AIL. This requires\nthe same push mechanism as the reclaim push.\n\nThis patch also renames xfs_trans_ail_tail() to xfs_ail_min_lsn() to\nmatch the new xfs_ail_max_lsn() function introduced in this patch.\nSimilarly for xfs_trans_ail_push -\u003e xfs_ail_push.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "cd4a3c503c185f5f0a20f04f90da0a6966dd03bd",
      "tree": "18edb2203a85a778b2d88121430bcb3e2c3a9b4c",
      "parents": [
        "0bf6a5bd4b55b466964ead6fa566d8f346a828ee"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri Apr 08 12:45:07 2011 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Fri Apr 08 12:45:07 2011 +1000"
      },
      "message": "xfs: clean up code layout in xfs_trans_ail.c\n\nThis patch rearranges the location of functions in xfs_trans_ail.c\nto remove the need for forward declarations of those functions in\npreparation for adding new functions without the need for forward\ndeclarations.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "0bf6a5bd4b55b466964ead6fa566d8f346a828ee",
      "tree": "661f2bcc36458c807752243c6f2a76b43a64302c",
      "parents": [
        "a7b339f1b8698667eada006e717cdb4523be2ed5"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri Apr 08 12:45:07 2011 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Fri Apr 08 12:45:07 2011 +1000"
      },
      "message": "xfs: convert the xfsaild threads to a workqueue\n\nSimilar to the xfssyncd, the per-filesystem xfsaild threads can be\nconverted to a global workqueue and run periodically by delayed\nworks. This makes sense for the AIL pushing because it uses\nvariable timeouts depending on the work that needs to be done.\n\nBy removing the xfsaild, we simplify the AIL pushing code and\nremove the need to spread the code to implement the threading\nand pushing across multiple files.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "a7b339f1b8698667eada006e717cdb4523be2ed5",
      "tree": "77c44400c32284bdcf15829e10d01eb15ddd1d41",
      "parents": [
        "89e4cb550a492cfca038a555fcc1bdac58822ec3"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri Apr 08 12:45:07 2011 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Fri Apr 08 12:45:07 2011 +1000"
      },
      "message": "xfs: introduce background inode reclaim work\n\nBackground inode reclaim needs to run more frequently that the XFS\nsyncd work is run as 30s is too long between optimal reclaim runs.\nAdd a new periodic work item to the xfs syncd workqueue to run a\nfast, non-blocking inode reclaim scan.\n\nBackground inode reclaim is kicked by the act of marking inodes for\nreclaim.  When an AG is first marked as having reclaimable inodes,\nthe background reclaim work is kicked. It will continue to run\nperiodically untill it detects that there are no more reclaimable\ninodes. It will be kicked again when the first inode is queued for\nreclaim.\n\nTo ensure shrinker based inode reclaim throttles to the inode\ncleaning and reclaim rate but still reclaim inodes efficiently, make it kick the\nbackground inode reclaim so that when we are low on memory we are\ntrying to reclaim inodes as efficiently as possible. This kick shoul\nd not be necessary, but it will protect against failures to kick the\nbackground reclaim when inodes are first dirtied.\n\nTo provide the rate throttling, make the shrinker pass do\nsynchronous inode reclaim so that it blocks on inodes under IO. This\nmeans that the shrinker will reclaim inodes rather than just\nskipping over them, but it does not adversely affect the rate of\nreclaim because most dirty inodes are already under IO due to the\nbackground reclaim work the shrinker kicked.\n\nThese two modifications solve one of the two OOM killer invocations\nChris Mason reported recently when running a stress testing script.\nThe particular workload trigger for the OOM killer invocation is\nwhere there are more threads than CPUs all unlinking files in an\nextremely memory constrained environment. Unlike other solutions,\nthis one does not have a performance impact on performance when\nmemory is not constrained or the number of concurrent threads\noperating is \u003c\u003d to the number of CPUs.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "89e4cb550a492cfca038a555fcc1bdac58822ec3",
      "tree": "ab688a1849d6361c92b9f60ae0586045908010da",
      "parents": [
        "c6d09b666de11eb272326a6eb6cd3246da571014"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri Apr 08 12:45:07 2011 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Fri Apr 08 12:45:07 2011 +1000"
      },
      "message": "xfs: convert ENOSPC inode flushing to use new syncd workqueue\n\nOn of the problems with the current inode flush at ENOSPC is that we\nqueue a flush per ENOSPC event, regardless of how many are already\nqueued. Thi can result in    hundreds of queued flushes, most of\nwhich simply burn CPU scanned and do no real work. This simply slows\ndown allocation at ENOSPC.\n\nWe really only need one active flush at a time, and we can easily\nimplement that via the new xfs_syncd_wq. All we need to do is queue\na flush if one is not already active, then block waiting for the\ncurrently active flush to complete. The result is that we only ever\nhave a single ENOSPC inode flush active at a time and this greatly\nreduces the overhead of ENOSPC processing.\n\nOn my 2p test machine, this results in tests exercising ENOSPC\nconditions running significantly faster - 042 halves execution time,\n083 drops from 60s to 5s, etc - while not introducing test\nregressions.\n\nThis allows us to remove the old xfssyncd threads and infrastructure\nas they are no longer used.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "c6d09b666de11eb272326a6eb6cd3246da571014",
      "tree": "74951ec04191b47a1fb75f9e79de6c00837a7c17",
      "parents": [
        "e828776a8abe6b9bae7ed9638710bff7642c568a"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri Apr 08 12:45:07 2011 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Fri Apr 08 12:45:07 2011 +1000"
      },
      "message": "xfs: introduce a xfssyncd workqueue\n\nAll of the work xfssyncd does is background functionality. There is\nno need for a thread per filesystem to do this work - it can al be\nmanaged by a global workqueue now they manage concurrency\neffectively.\n\nIntroduce a new gglobal xfssyncd workqueue, and convert the periodic\nwork to use this new functionality. To do this, use a delayed work\nconstruct to schedule the next running of the periodic sync work\nfor the filesystem. When the sync work is complete, queue a new\ndelayed work for the next running of the sync work.\n\nFor laptop mode, we wait on completion for the sync works, so ensure\nthat the sync work queuing interface can flush and wait for work to\ncomplete to enable the work queue infrastructure to replace the\ncurrent sequence number and wakeup that is used.\n\nBecause the sync work does non-trivial amounts of work, mark the\nnew work queue as CPU intensive.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "e828776a8abe6b9bae7ed9638710bff7642c568a",
      "tree": "978a74827e670e2aab8dec943944e63ce43afc2d",
      "parents": [
        "89b3600ccfb01aed6873bc499442fc0bed00bbdd"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri Apr 08 12:45:07 2011 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Fri Apr 08 12:45:07 2011 +1000"
      },
      "message": "xfs: fix extent format buffer allocation size\n\nWhen formatting an inode item, we have to allocate a separate buffer\nto hold extents when there are delayed allocation extents on the\ninode and it is in extent format. The allocation size is derived\nfrom the in-core data fork representation, which accounts for\ndelayed allocation extents, while the on-disk representation does\nnot contain any delalloc extents.\n\nAs a result of this mismatch, the allocated buffer can be far larger\nthan needed to hold the real extent list which, due to the fact the\ninode is in extent format, is limited to the size of the literal\narea of the inode. However, we can have thousands of delalloc\nextents, resulting in an allocation size orders of magnitude larger\nthan is needed to hold all the real extents.\n\nFix this by limiting the size of the buffer being allocated to the\nsize of the literal area of the inodes in the filesystem (i.e. the\nmaximum size an inode fork can grow to).\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "1b86a58f9d7ce4fe2377687f378fbfb53bdc9b6c",
      "tree": "e931b86166c2a644470e3754e2d3139f97834951",
      "parents": [
        "9b57e1a79e2142df8412ab223c90ba6f47c6b3a3"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Apr 07 14:04:08 2011 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Apr 07 14:04:08 2011 -0700"
      },
      "message": "ipv4: Fix \"Set rt-\u003ert_iif more sanely on output routes.\"\n\nCommit 1018b5c01636c7c6bda31a719bda34fc631db29a (\"Set rt-\u003ert_iif more\nsanely on output routes.\")  breaks rt_is_{output,input}_route.\n\nThis became the cause to return \"IP_PKTINFO\u0027s -\u003eipi_ifindex \u003d\u003d 0\".\n\nTo fix it, this does:\n\n1) Add \"int rt_route_iif;\" to struct rtable\n\n2) For input routes, always set rt_route_iif to same value as rt_iif\n\n3) For output routes, always set rt_route_iif to zero.  Set rt_iif\n   as it is done currently.\n\n4) Change rt_is_{output,input}_route() to test rt_route_iif\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0c3efe54d0165cecf0698b468e253577b555dde6",
      "tree": "e004169ae37bc1b9fdc636146bd6967061f6f78a",
      "parents": [
        "132452ee2368cf775ccbef9746b51e3d2ba58b85",
        "d856b418464024dba4c7e901bab74dfb9a030d2e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 07 13:34:41 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 07 13:34:41 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog:\n  watchdog: mpc8xxx_wdt: fix build\n"
    },
    {
      "commit": "d856b418464024dba4c7e901bab74dfb9a030d2e",
      "tree": "e85cb723d3531b88fb0c032c06afbae926ad0f9b",
      "parents": [
        "8b9686ff4ddfdf45662024edd567920e6db87beb"
      ],
      "author": {
        "name": "Peter Korsgaard",
        "email": "jacmet@sunsite.dk",
        "time": "Wed Mar 30 15:48:22 2011 +0200"
      },
      "committer": {
        "name": "Wim Van Sebroeck",
        "email": "wim@iguana.be",
        "time": "Thu Apr 07 20:20:24 2011 +0000"
      },
      "message": "watchdog: mpc8xxx_wdt: fix build\n\nSince 1c48a5c93da6313 (dt: Eliminate of_platform_{,un}register_driver)\nmpc8xxx_wdt no longer builds as it tries to refer to a \u0027match\u0027 variable\nrather than ofdev-\u003edev.of_match that it checks just before.\n\nSigned-off-by: Peter Korsgaard \u003cjacmet@sunsite.dk\u003e\nAcked-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nSigned-off-by: Wim Van Sebroeck \u003cwim@iguana.be\u003e\n\n"
    },
    {
      "commit": "37adb89fadd65ce47f7e5cfd564938a76b351948",
      "tree": "b935bde3f61965a8e0810f9d12281b97b2376351",
      "parents": [
        "418875900e3de4831c84f86ae4756690dac5be77"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Thu Apr 07 16:02:20 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Apr 07 13:19:40 2011 -0700"
      },
      "message": "NFS: Change initial mount authflavor only when server returns NFS4ERR_WRONGSEC\n\nWhen attempting an initial mount, we should only attempt other\nauthflavors if AUTH_UNIX receives a NFS4ERR_WRONGSEC error.\nThis allows other errors to be passed back to userspace programs.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "132452ee2368cf775ccbef9746b51e3d2ba58b85",
      "tree": "68652e7a5d11776184e7b05c04dfc94baa429f2a",
      "parents": [
        "174457391a83d70215d441cb3bc0aa7d7443b63e",
        "97fb85076c2d3adcc559dee577e0a3bf7215d48e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 07 12:49:17 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 07 12:49:17 2011 -0700"
      },
      "message": "Merge branch \u0027fbdev-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-2.6\n\n* \u0027fbdev-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-2.6:\n  efifb: Add override for 11\" Macbook Air 3,1\n  efifb: Support overriding fields FW tells us with the DMI data.\n  fb: Reduce priority of resource conflict message\n  savagefb: Remove obsolete else clause in savage_setup_i2c_bus\n  savagefb: Set up I2C based on chip family instead of card id\n  savagefb: Replace magic register address with define\n  drivers/video/bfin-lq035q1-fb.c: introduce missing kfree\n  video: s3c-fb: fix checkpatch errors and warning\n  efifb: support AMD Radeon HD 6490\n  s3fb: fix Virge/GX2\n  fbcon: Remove unused \u0027display *p\u0027 variable from fb_flashcursor()\n  fbdev: sh_mobile_lcdcfb: fix module lock acquisition\n  fbdev: sh_mobile_lcdcfb: add blanking support\n  viafb: initialize margins correct\n  viafb: refresh rate bug collection\n  sh: mach-ap325rxa: move backlight control code\n  sh: mach-ecovec24: support for main lcd backlight\n"
    },
    {
      "commit": "174457391a83d70215d441cb3bc0aa7d7443b63e",
      "tree": "14fc07f2aa07d993694fdfc757ebd0f82eb76397",
      "parents": [
        "26cf445721763d61b08ce394f8bdbd4c5610b563",
        "6084c81e8a8ffa8b85d59e1ca7643dc76c23e412"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 07 12:49:01 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 07 12:49:01 2011 -0700"
      },
      "message": "Merge branch \u0027rmobile-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6\n\n* \u0027rmobile-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6:\n  ARM: arch-shmobile: only run FSI init on respective boards\n  ARM: arch-shmobile: only run HDMI init on respective boards\n  ARM: mach-shmobile: Correctly check for CONFIG_MACH_MACKEREL\n"
    },
    {
      "commit": "26cf445721763d61b08ce394f8bdbd4c5610b563",
      "tree": "a26099dd232b5d0071604787a9eb27b37602645f",
      "parents": [
        "8b9686ff4ddfdf45662024edd567920e6db87beb",
        "99b662e511e08230e8422e77cbe4fd31ed173df6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 07 12:48:45 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 07 12:48:45 2011 -0700"
      },
      "message": "Merge branch \u0027sh-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6\n\n* \u0027sh-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6:\n  sh: select ARCH_NO_SYSDEV_OPS.\n  sh: fix build error in board-sh7757lcr.c\n  sh: landisk: Remove whitespace\n  sh: landisk: Remove mv_nr_irqs\n  sh: sh-sci: Fix double initialization by serial_console_setup\n  serial: sh-sci: prevent setup of uninitialized serial console\n  dma: shdma: add checking the DMAOR_AE in sh_dmae_err\n"
    },
    {
      "commit": "8b9686ff4ddfdf45662024edd567920e6db87beb",
      "tree": "1d7e1d735121ea3c44ab72a24506151e4e88a36e",
      "parents": [
        "df9b29d13e043e134e65b9f66b68fa7eae5db8f0",
        "f994d99cf140dbb637e49882891c89b3fd84becd",
        "49c022e657fbe661460d191fbe776a387132e2b3",
        "09552b2696896dbb715be0caf91b23276f9139ba",
        "4f5058c3b71ed5930bb2b478c4d5dbc799dd9ad1",
        "f64fac86f9cd375743ed34385efc8a7732fa8e7b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 07 12:12:58 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 07 12:12:58 2011 -0700"
      },
      "message": "Merge branches \u0027x86-fixes-for-linus\u0027, \u0027sched-fixes-for-linus\u0027, \u0027timers-fixes-for-linus\u0027, \u0027irq-fixes-for-linus\u0027 and \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86-32, fpu: Fix FPU exception handling on non-SSE systems\n  x86, hibernate: Initialize mmu_cr4_features during boot\n  x86-32, NUMA: Fix ACPI NUMA init broken by recent x86-64 change\n  x86: visws: Fixup irq overhaul fallout\n\n* \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: Clean up rebalance_domains() load-balance interval calculation\n\n* \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86/mrst/vrtc: Fix boot crash in mrst_rtc_init()\n  rtc, x86/mrst/vrtc: Fix boot crash in rtc_read_alarm()\n\n* \u0027irq-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  genirq: Fix cpumask leak in __setup_irq()\n\n* \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  perf probe: Fix listing incorrect line number with inline function\n  perf probe: Fix to find recursively inlined function\n  perf probe: Fix multiple --vars options behavior\n  perf probe: Fix to remove redundant close\n  perf probe: Fix to ensure function declared file\n"
    },
    {
      "commit": "df9b29d13e043e134e65b9f66b68fa7eae5db8f0",
      "tree": "f2c9ec8792a35bf0ea0b7227cad7275a5b1d0453",
      "parents": [
        "7bc30c23c8ace3821a6732bfbe7e8f1b0995a63e",
        "28276a28d8b3cd19f4449991faad4945fe557656"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 07 11:36:44 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 07 11:36:44 2011 -0700"
      },
      "message": "Merge branch \u0027staging-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6\n\n* \u0027staging-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6: (28 commits)\n  staging: usbip: bugfix for isochronous packets and optimization\n  staging: usbip: bugfix add number of packets for isochronous frames\n  staging: usbip: bugfixes related to kthread conversion\n  staging: usbip: fix shutdown problems.\n  staging: hv: Fix GARP not sent after Quick Migration\n  staging: IIO: IMU: ADIS16400: Avoid using printk facility directly\n  staging: IIO: IMU: ADIS16400: Fix product ID check, skip embedded revision number\n  staging: IIO: IMU: ADIS16400: Make sure only enabled scan_elements are pushed into the ring\n  staging: IIO: IMU: ADIS16400: Fix addresses of GYRO and ACCEL calibration offset\n  staging: IIO: IMU: ADIS16400: Add delay after self test\n  staging: IIO: IMU: ADIS16400: Fix up SPI messages cs_change behavior\n  staging/rtl81*: build as loadable modules only\n  staging: brcm80211: removed \u0027is_amsdu causing toss\u0027 log spam\n  staging: brcm80211: fix for \u0027Short CCK\u0027 log spam\n  staging: brcm80211: fix for \u0027AC_BE txop..\u0027 logs spammed problem\n  staging: memrar: remove driver from tree\n  staging: sep: remove last memrar remnants\n  staging: fix hv_mouse build, needs delay.h\n  staging: fix olpc_dcon build errors\n  staging: sm7xx: fixed defines\n  ...\n\nFix up trivial conflict in drivers/staging/memrar/memrar_handler.c\n(deleted vs trivial spelling fixes)\n"
    }
  ],
  "next": "7bc30c23c8ace3821a6732bfbe7e8f1b0995a63e"
}
