)]}'
{
  "log": [
    {
      "commit": "983d09ffe396ed5d5339a1b9ff994dd0b0f2069f",
      "tree": "42779460b8910c6537bd4d53fa99f23eb5fde830",
      "parents": [
        "77c95bba013089fa868217283eb6d98a05913e53"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dgc@sgi.com",
        "time": "Wed Apr 03 16:11:15 2013 +1100"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Sun Apr 21 14:57:43 2013 -0500"
      },
      "message": "xfs: add CRC checks to the AGI\n\nSame set of changes made to the AGF need to be made to the AGI.\nThis patch has a similar history to the AGF, hence a similar\nsign-off chain.\n\nSigned-off-by: Dave Chinner \u003cdgc@sgi.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Dave Chinner \u003cdgc@redhat.com\u003e\nReviewed-by: Ben Myers \u003cbpm@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "77c95bba013089fa868217283eb6d98a05913e53",
      "tree": "7b694c2baa200ac1bf2770d7bdfa4f2a292a2a58",
      "parents": [
        "4e0e6040c4052aff15a494ac05778f4086d24c33"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Apr 03 16:11:14 2013 +1100"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Sun Apr 21 14:55:34 2013 -0500"
      },
      "message": "xfs: add CRC checks to the AGFL\n\nAdd CRC checks, location information and a magic number to the AGFL.\nPreviously the AGFL was just a block containing nothing but the\nfree block pointers.  The new AGFL has a real header with the usual\nboilerplate instead, so that we can verify it\u0027s not corrupted and\nwritten into the right place.\n\n[dchinner@redhat.com] Added LSN field, reworked significantly to fit\ninto new verifier structure and growfs structure, enabled full\nverifier functionality now there is a header to verify and we can\nguarantee an initialised AGFL.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Ben Myers \u003cbpm@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "4e0e6040c4052aff15a494ac05778f4086d24c33",
      "tree": "6116acb302eb4be87e0193cb7476812a4cbddaac",
      "parents": [
        "ee1a47ab0e77600fcbdf1c87d461bd8f3f63150d"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Wed Apr 03 16:11:13 2013 +1100"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Sun Apr 21 14:54:46 2013 -0500"
      },
      "message": "xfs: add CRC checks to the AGF\n\nThe AGF already has some self identifying fields (e.g. the sequence\nnumber) so we only need to add the uuid to it to identify the\nfilesystem it belongs to. The location is fixed based on the\nsequence number, so there\u0027s no need to add a block number, either.\n\nHence the only additional fields are the CRC and LSN fields. These\nare unlogged, so place some space between the end of the logged\nfields and them so that future expansion of the AGF for logged\nfields can be placed adjacent to the existing logged fields and\nhence not complicate the field-derived range based logging we\ncurrently have.\n\nBased originally on a patch from myself, modified further by\nChristoph Hellwig and then modified again to fit into the\nverifier structure with additional fields by myself. The multiple\nsigned-off-by tags indicate the age and history of this patch.\n\nSigned-off-by: Dave Chinner \u003cdgc@sgi.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Ben Myers \u003cbpm@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "ee1a47ab0e77600fcbdf1c87d461bd8f3f63150d",
      "tree": "6340d9f4b8b53c0d18045da1372599645375efce",
      "parents": [
        "a2050646f655a90400cbb66c3866d2e0137eee0c"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sun Apr 21 14:53:46 2013 -0500"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Sun Apr 21 14:53:46 2013 -0500"
      },
      "message": "xfs: add support for large btree blocks\n\nAdd support for larger btree blocks that contains a CRC32C checksum,\na filesystem uuid and block number for detecting filesystem\nconsistency and out of place writes.\n\n[dchinner@redhat.com] Also include an owner field to allow reverse\nmappings to be implemented for improved repairability and a LSN\nfield to so that log recovery can easily determine the last\nmodification that made it to disk for each buffer.\n\n[dchinner@redhat.com] Add buffer log format flags to indicate the\ntype of buffer to recovery so that we don\u0027t have to do blind magic\nnumber tests to determine what the buffer is.\n\n[dchinner@redhat.com] Modified to fit into the verifier structure.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Ben Myers \u003cbpm@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "a2050646f655a90400cbb66c3866d2e0137eee0c",
      "tree": "9e40fe2d262394fec7ad390b7ac8a50605ce550c",
      "parents": [
        "7fe3258c50de383037102129c57df5cb66ab2000"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Wed Apr 03 16:11:11 2013 +1100"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Sun Apr 21 14:48:41 2013 -0500"
      },
      "message": "xfs: increase hexdump output in xfs_corruption_error\n\nCurrently xfs_corruption_error() dumps the first 16 bytes of the\nbuffer that is passed to it when a corruption occurs. This is not\nlarge enough to see the entire state of the header of the block that\nwas determined to be corrupt.  increase the output to 64 bytes to\ncapture the majority of all headers in all types of metadata blocks.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Ben Myers \u003cbpm@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "7fe3258c50de383037102129c57df5cb66ab2000",
      "tree": "55ce11daaa847fb569df82b324e2853a5dd4d152",
      "parents": [
        "d4fd0e92fbcfdba7bb2c789504a957ab8f835c38"
      ],
      "author": {
        "name": "Jeff Liu",
        "email": "jeff.liu@oracle.com",
        "time": "Thu Apr 04 16:07:14 2013 +0800"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Apr 16 13:20:03 2013 -0500"
      },
      "message": "xfs: Update xfs_log_commit_cil() comments\n\nxfs_log_commit_iclog() function has been removed by commits 93b8a585:\n\txfs: remove the deprecated nodelaylog option\n\nBeginning from Linux 3.3, only delayed logging is supported so that\nwe call xfs_log_commit_cil() at xfs_trans_commit() only, remove the\nuseless comments so.\n\nSigned-off-by: Jie Liu \u003cjeff.liu@oracle.com\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n"
    },
    {
      "commit": "d4fd0e92fbcfdba7bb2c789504a957ab8f835c38",
      "tree": "d98de652528b8cca86ba2b1b073ed055993da9e8",
      "parents": [
        "666d644cd72a9ec58b353209ff191d7430f3b357"
      ],
      "author": {
        "name": "Jeff Liu",
        "email": "jeff.liu@oracle.com",
        "time": "Thu Apr 04 12:10:42 2013 +0800"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Apr 16 13:18:33 2013 -0500"
      },
      "message": "xfs: Remove the obsolete XLOG_CIL_HARD_SPACE_LIMIT() macros\n\nThere is no more users of this Macro, so it\u0027s time to kill it dead.\n\nSigned-off-by: Jie Liu \u003cjeff.liu@oracle.com\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "666d644cd72a9ec58b353209ff191d7430f3b357",
      "tree": "eb6918c1d053b8f55a33f57575906acf7beea8b9",
      "parents": [
        "3d6e036193bfa67a8a1cc1908fe910c7a014d183"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Wed Apr 03 14:09:21 2013 +1100"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri Apr 05 13:25:35 2013 -0500"
      },
      "message": "xfs: don\u0027t free EFIs before the EFDs are committed\n\nFilesystems are occasionally being shut down with this error:\n\nxfs_trans_ail_delete_bulk: attempting to delete a log item that is\nnot in the AIL.\n\nIt was diagnosed to be related to the EFI/EFD commit order when the\nEFI and EFD are in different checkpoints and the EFD is committed\nbefore the EFI here:\n\nhttp://oss.sgi.com/archives/xfs/2013-01/msg00082.html\n\nThe real problem is that a single bit cannot fully describe the\nstates that the EFI/EFD processing can be in. These completion\nstates are:\n\nEFI\t\t\tEFI in AIL\tEFD\t\tResult\ncommitted/unpinned\tYes\t\tcommitted\tOK\ncommitted/pinned\tNo\t\tcommitted\tShutdown\nuncommitted\t\tNo\t\tcommitted\tShutdown\n\n\nNote that the \"result\" field is what should happen, not what does\nhappen. The current logic is broken and handles the first two cases\ncorrectly by luck.  That is, the code will free the EFI if the\nXFS_EFI_COMMITTED bit is *not* set, rather than if it is set. The\ninverted logic \"works\" because if both EFI and EFD are committed,\nthen the first __xfs_efi_release() call clears the XFS_EFI_COMMITTED\nbit, and the second frees the EFI item. Hence as long as\nxfs_efi_item_committed() has been called, everything appears to be\nfine.\n\nIt is the third case where the logic fails - where\nxfs_efd_item_committed() is called before xfs_efi_item_committed(),\nand that results in the EFI being freed before it has been\ncommitted. That is the bug that triggered the shutdown, and hence\nkeeping track of whether the EFI has been committed or not is\ninsufficient to correctly order the EFI/EFD operations w.r.t. the\nAIL.\n\nWhat we really want is this: the EFI is always placed into the\nAIL before the last reference goes away. The only way to guarantee\nthat is that the EFI is not freed until after it has been unpinned\n*and* the EFD has been committed. That is, restructure the logic so\nthat the only case that can occur is the first case.\n\nThis can be done easily by replacing the XFS_EFI_COMMITTED with an\nEFI reference count. The EFI is initialised with it\u0027s own count, and\nthat is not released until it is unpinned. However, there is a\ncomplication to this method - the high level EFI/EFD code in\nxfs_bmap_finish() does not hold direct references to the EFI\nstructure, and runs a transaction commit between the EFI and EFD\nprocessing. Hence the EFI can be freed even before the EFD is\ncreated using such a method.\n\nFurther, log recovery uses the AIL for tracking EFI/EFDs that need\nto be recovered, but it uses the AIL *differently* to the EFI\ntransaction commit. Hence log recovery never pins or unpins EFIs, so\nwe can\u0027t drop the EFI reference count indirectly to free the EFI.\n\nHowever, this doesn\u0027t prevent us from using a reference count here.\nThere is a 1:1 relationship between EFIs and EFDs, so when we\ninitialise the EFI we can take a reference count for the EFD as\nwell. This solves the xfs_bmap_finish() issue - the EFI will never\nbe freed until the EFD is processed. In terms of log recovery,\nduring the committing of the EFD we can look for the\nXFS_EFI_RECOVERED bit being set and drop the EFI reference as well,\nthereby ensuring everything works correctly there as well.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "3d6e036193bfa67a8a1cc1908fe910c7a014d183",
      "tree": "e48b9f00a87d1188fd8537d51efd70854f5c8683",
      "parents": [
        "ff9a28f6c25d18a635abcab1f49db68108203dfb"
      ],
      "author": {
        "name": "Rich Johnston",
        "email": "rjohnston@sgi.com",
        "time": "Wed Mar 27 09:26:49 2013 -0500"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Wed Apr 03 13:20:39 2013 -0500"
      },
      "message": "xfs: Add ratelimited printk for different alert levels\n\nRatelimited printk will be useful in printing xfs messages which are otherwise\nnot required to be printed always due to their high rate (to prevent kernel ring\nbuffer from overflowing), while at the same time required to be printed.\n\nSigned-off-by: Raghavendra D Prabhu \u003crprabhu@wnohang.net\u003e\nReviewed-by: Rich Johnston \u003crjohnston@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "ff9a28f6c25d18a635abcab1f49db68108203dfb",
      "tree": "45c351bbe7e5716c17107f277d679509b2466cc9",
      "parents": [
        "19cb7e3854c9afe2ee968cbdd92293ec09e43bf3"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Mar 14 14:30:54 2013 +0100"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri Mar 22 16:12:37 2013 -0500"
      },
      "message": "xfs: Fix WARN_ON(delalloc) in xfs_vm_releasepage()\n\nWhen a dirty page is truncated from a file but reclaim gets to it before\ntruncate_inode_pages(), we hit WARN_ON(delalloc) in\nxfs_vm_releasepage(). This is because reclaim tries to write the page,\nxfs_vm_writepage() just bails out (leaving page clean) and thus reclaim\nthinks it can continue and calls xfs_vm_releasepage() on page with dirty\nbuffers.\n\nFix the issue by redirtying the page in xfs_vm_writepage(). This makes\nreclaim stop reclaiming the page and also logically it keeps page in a\nmore consistent state where page with dirty buffers has PageDirty set.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nReviewed-by: Carlos Maiolino \u003ccmaiolino@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "19cb7e3854c9afe2ee968cbdd92293ec09e43bf3",
      "tree": "ce82d40276e1d19571770f70d30ca49b1dbaa984",
      "parents": [
        "76a4202a388690e664668c4f668ee12d709100b3"
      ],
      "author": {
        "name": "Brian Foster",
        "email": "bfoster@redhat.com",
        "time": "Mon Mar 18 10:51:48 2013 -0400"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri Mar 22 16:07:56 2013 -0500"
      },
      "message": "xfs: xfs_iomap_prealloc_size() tracepoint\n\nAdd a tracepoint to provide some feedback on preallocation size\ncalculation.\n\nSigned-off-by: Brian Foster \u003cbfoster@redhat.com\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "76a4202a388690e664668c4f668ee12d709100b3",
      "tree": "c10ea589bed0223d520d3ff843dd65a7e72c5115",
      "parents": [
        "b136645116e5471cf0b037a1759dc83620236631"
      ],
      "author": {
        "name": "Brian Foster",
        "email": "bfoster@redhat.com",
        "time": "Mon Mar 18 10:51:47 2013 -0400"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri Mar 22 16:07:21 2013 -0500"
      },
      "message": "xfs: add quota-driven speculative preallocation throttling\n\nIntroduce the need_throttle() and calc_throttle() functions to\nindependently check whether throttling is required for a particular\ndquot and if so, calculate the associated throttling metrics based\non the state of the quota. We use the same general algorithm to\ncalculate the throttle shift as for global free space with the\nexception of using three stages rather than five.\n\nUpdate xfs_iomap_prealloc_size() to use the smallest available\nprealloc size based on each of the constraints and apply the\nmaximum shift to obtain the throttled preallocation size.\n\nSigned-off-by: Brian Foster \u003cbfoster@redhat.com\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "b136645116e5471cf0b037a1759dc83620236631",
      "tree": "9b9bfaa822d88585f4fa670a10b8f54a09584372",
      "parents": [
        "4b6eae2e6ac8a6671839ccaea1c2e3dd5684f5df"
      ],
      "author": {
        "name": "Brian Foster",
        "email": "bfoster@redhat.com",
        "time": "Mon Mar 18 10:51:46 2013 -0400"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri Mar 22 16:06:30 2013 -0500"
      },
      "message": "xfs: xfs_dquot prealloc throttling watermarks and low free space\n\nEnable tracking of high and low watermarks for preallocation\nthrottling of files under quota restrictions. These values are\ncalculated when the quota limit is read from disk or modified and\ncached for later use by the throttling algorithm.\n\nThe high watermark specifies when preallocation is disabled, the\nlow watermark specifies when throttling is enabled and the low free\nspace data structure contains precalculated low free space limits\nto serve as input to determine the level of throttling required.\n\nNote that the low free space data structure is based on the\nexisting global low free space data structure with the exception of\nusing three stages (5%, 3% and 1%) rather than five to reduce the\nimpact of xfs_dquot memory overhead.\n\nSigned-off-by: Brian Foster \u003cbfoster@redhat.com\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "4b6eae2e6ac8a6671839ccaea1c2e3dd5684f5df",
      "tree": "f10d88c625429675ba36a1c0a3bc013a737891c2",
      "parents": [
        "c9bdbdc0741d90908f492415c890b630f43f17f8"
      ],
      "author": {
        "name": "Brian Foster",
        "email": "bfoster@redhat.com",
        "time": "Mon Mar 18 10:51:45 2013 -0400"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri Mar 22 16:05:52 2013 -0500"
      },
      "message": "xfs: pass xfs_dquot to xfs_qm_adjust_dqlimits() instead of xfs_disk_dquot_t\n\nModify xfs_qm_adjust_dqlimits() to take the xfs_dquot as a\nparameter instead of just the xfs_disk_dquot_t so we can update\nin-memory fields if necessary.\n\nSigned-off-by: Brian Foster \u003cbfoster@redhat.com\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "c9bdbdc0741d90908f492415c890b630f43f17f8",
      "tree": "cf8bf3498ad3b724adcd3b609947e8d88cfed0f7",
      "parents": [
        "3c58b5f809eda8ae8d891b7a87d0a235ab0f9bf5"
      ],
      "author": {
        "name": "Brian Foster",
        "email": "bfoster@redhat.com",
        "time": "Mon Mar 18 10:51:44 2013 -0400"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri Mar 22 16:05:00 2013 -0500"
      },
      "message": "xfs: push rounddown_pow_of_two() to after prealloc throttle\n\nThe round down occurs towards the beginning of the function. Push\nit down after throttling has occurred. This is to support adding\nfurther transformations to \u0027alloc_blocks\u0027 that might not preserve\npower-of-two alignment (and thus could lead to rounding down\nmultiple times).\n\nSigned-off-by: Brian Foster \u003cbfoster@redhat.com\u003e\nReviewed-by: Ben Myers \u003cbpm@sgi.com\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "3c58b5f809eda8ae8d891b7a87d0a235ab0f9bf5",
      "tree": "6bbaed0aafdbf44fb3fab25d51c0440d3c49fe9a",
      "parents": [
        "56cea2d088811b8cf7d2893e29bcf369a912de69"
      ],
      "author": {
        "name": "Brian Foster",
        "email": "bfoster@redhat.com",
        "time": "Mon Mar 18 10:51:43 2013 -0400"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri Mar 22 16:04:23 2013 -0500"
      },
      "message": "xfs: reorganize xfs_iomap_prealloc_size to remove indentation\n\nThe majority of xfs_iomap_prealloc_size() executes within the\ncheck for lack of default I/O size. Reverse the logic to remove the\nextra indentation.\n\nSigned-off-by: Brian Foster \u003cbfoster@redhat.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Ben Myers \u003cbpm@sgi.com\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "56cea2d088811b8cf7d2893e29bcf369a912de69",
      "tree": "ab131c69db53bb17879d9efada9534d17e54cc57",
      "parents": [
        "c163f9a1760229a95d04e37b332de7d5c1c225cd"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Mar 12 23:30:36 2013 +1100"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Mar 14 16:19:14 2013 -0500"
      },
      "message": "xfs: take inode version into account in XFS_LITINO\n\nAdd a version argument to XFS_LITINO so that it can return different values\ndepending on the inode version.  This is required for the upcoming v3 inodes\nwith a larger fixed layout dinode.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Ben Myers \u003cbpm@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "c163f9a1760229a95d04e37b332de7d5c1c225cd",
      "tree": "26c2b888cfffa443cd27361b588aa325f4e107bb",
      "parents": [
        "d8ddfe81c7e4fe41b8ec342cc288d58aecdf7c47"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Mar 12 23:30:34 2013 +1100"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Mar 14 15:56:53 2013 -0500"
      },
      "message": "xfs: ensure we capture IO errors correctly\n\nFailed buffer readahead can leave the buffer in the cache marked\nwith an error. Most callers that then issue a subsequent read on the\nbuffer do not zero the b_error field out, and so we may incorectly\ndetect an error during IO completion due to the stale error value\nleft on the buffer.\n\nAvoid this problem by zeroing the error before IO submission. This\nensures that the only IO errors that are detected those captured\nfrom are those captured from bio submission or completion.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "d8ddfe81c7e4fe41b8ec342cc288d58aecdf7c47",
      "tree": "44d75cff24b4e385e08b695acc72649dd19a610e",
      "parents": [
        "9e5987a7792194ec338f53643237150c0db5f5e0"
      ],
      "author": {
        "name": "Jeff Liu",
        "email": "jeff.liu@oracle.com",
        "time": "Mon Mar 11 14:31:02 2013 +0800"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Mar 14 15:55:32 2013 -0500"
      },
      "message": "xfs: Remove obsoleted m_inode_shrink from xfs_mount structure\n\nLooks the old m_inode_shrink is obsoleted as we perform inodes reclaim per AG via\nm_reclaim_workqueue, this patch remove it from the xfs_mount structure if so.\n\nSigned-off-by: Jie Liu \u003cjeff.liu@oracle.com\u003e\nCc: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "9e5987a7792194ec338f53643237150c0db5f5e0",
      "tree": "3545c8d07dca8e3bd158aaa689c70e98425a83ad",
      "parents": [
        "ecb3403de1efb56f78d9093376aec0a8af76b316"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon Feb 25 12:31:26 2013 +1100"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Mar 07 12:35:22 2013 -0600"
      },
      "message": "xfs: rearrange some code in xfs_bmap for better locality\n\nxfs_bmap.c is a big file, and some of the related code is spread all\nthroughout the file requiring function prototypes for static\nfunction and jumping all through the file to follow a single call\npath. Rearrange the code so that:\n\n\ta) related functionality is grouped together; and\n\tb) functions are grouped in call dependency order\n\nWhile the diffstat is large, there are no code changes in the patch;\nit is just moving the functionality around and removing the function\nprototypes at the top of the file. The resulting layout of the code\nis as follows (top of file to bottom):\n\n\t- miscellaneous helper functions\n\t- extent tree block counting routines\n\t- debug/sanity checking code\n\t- bmap free list manipulation functions\n\t- inode fork format manipulation functions\n\t- internal/external extent tree seach functions\n\t- extent tree manipulation functions used during allocation\n\t- functions used during extent read/allocate/removal\n\t  operations (i.e. xfs_bmapi_write, xfs_bmapi_read,\n\t  xfs_bunmapi and xfs_getbmap)\n\nThis means that following logic paths through the bmapi code is much\nsimpler - most of the code relevant to a specific operation is now\nclustered together rather than spread all over the file....\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "ecb3403de1efb56f78d9093376aec0a8af76b316",
      "tree": "54f0c677d9ff10994b57ad3593241df0c4cbb987",
      "parents": [
        "d5929de8337fef46f3e307914ed0f3cb845e66c1"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Mon Mar 04 21:58:20 2013 +0900"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Mar 07 12:33:57 2013 -0600"
      },
      "message": "xfs: rename random32() to prandom_u32()\n\nUse more preferable function name which implies using a pseudo-random\nnumber generator.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nAcked-by: \u003cbpm@sgi.com\u003e\nCc: Ben Myers \u003cbpm@sgi.com\u003e\nCc: Alex Elder \u003celder@kernel.org\u003e\nCc: xfs@oss.sgi.com\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "d5929de8337fef46f3e307914ed0f3cb845e66c1",
      "tree": "a305ce6faa2c04b8a29801e9a04e6772b63caaf0",
      "parents": [
        "e8108cedb1c5d1dc359690d18ca997e97a0061d2"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Wed Feb 27 13:25:54 2013 +1100"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Mar 07 12:31:02 2013 -0600"
      },
      "message": "xfs: don\u0027t verify buffers after IO errors\n\nWhen we read a buffer, we might get an error from the underlying\nblock device and not the real data. Hence if we get an IO error, we\nshouldn\u0027t run the verifier but instead just pass the IO error\nstraight through.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "e8108cedb1c5d1dc359690d18ca997e97a0061d2",
      "tree": "46cd605479f0e003cdf53d17bec1ca880345e401",
      "parents": [
        "e114b5fce6befb8fa345d7cf1a4de8ce5a211910"
      ],
      "author": {
        "name": "Mark Tinguely",
        "email": "tinguely@sgi.com",
        "time": "Sun Feb 24 13:04:37 2013 -0600"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Mar 07 12:29:59 2013 -0600"
      },
      "message": "xfs: fix xfs_iomap_eof_prealloc_initial_size type\n\nFix the return type of xfs_iomap_eof_prealloc_initial_size() to\nxfs_fsblock_t to reflect the fact that the return value may be an\nunsigned 64 bits if XFS_BIG_BLKNOS is defined.\n\nSigned-off-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "e114b5fce6befb8fa345d7cf1a4de8ce5a211910",
      "tree": "f963932a36b0588c1e3b365dd1ef3d884e0baf0b",
      "parents": [
        "e78c420bfc2608bb5f9a0b9165b1071c1e31166a"
      ],
      "author": {
        "name": "Brian Foster",
        "email": "bfoster@redhat.com",
        "time": "Tue Feb 19 10:24:41 2013 -0500"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Mar 07 12:28:25 2013 -0600"
      },
      "message": "xfs: increase prealloc size to double that of the previous extent\n\nThe updated speculative preallocation algorithm for handling sparse\nfiles can becomes less effective in situations with a high number of\nconcurrent, sequential writers. The number of writers and amount of\navailable RAM affect the writeback bandwidth slicing algorithm,\nwhich in turn affects the block allocation pattern of XFS. For\nexample, running 32 sequential writers on a system with 32GB RAM,\npreallocs become fixed at a value of around 128MB (instead of\nsteadily increasing to the 8GB maximum as sequential writes\nproceed).\n\nUpdate the speculative prealloc heuristic to base the size of the\nnext prealloc on double the size of the preceding extent. This\npreserves the original aggressive speculative preallocation\nbehavior and continues to accomodate sparse files at a slight cost\nof increasing the size of preallocated data regions following holes\nof sparse files.\n\nSigned-off-by: Brian Foster \u003cbfoster@redhat.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "e78c420bfc2608bb5f9a0b9165b1071c1e31166a",
      "tree": "1d780da1a8a49c9eed1d390b92ece519f1fe9c3f",
      "parents": [
        "6dbe51c251a327e012439c4772097a13df43c5b8"
      ],
      "author": {
        "name": "Brian Foster",
        "email": "bfoster@redhat.com",
        "time": "Fri Feb 22 13:32:56 2013 -0500"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Mar 07 12:21:39 2013 -0600"
      },
      "message": "xfs: fix potential infinite loop in xfs_iomap_prealloc_size()\n\nIf freesp \u003d\u003d 0, we could end up in an infinite loop while squashing\nthe preallocation. Break the loop when we\u0027ve killed the prealloc\nentirely.\n\nSigned-off-by: Brian Foster \u003cbfoster@redhat.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "56a79b7b021bf1b08334e63c2c14b280e2dbf47a",
      "tree": "0419233e6194f4f12073c9284852885aa8984bec",
      "parents": [
        "1c82315a12144cde732636e259d39e3ee81b3c5b",
        "dcf787f39162ce32ca325b3e784aba2d2444619a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 03 13:23:02 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 03 13:23:03 2013 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull  more VFS bits from Al Viro:\n \"Unfortunately, it looks like xattr series will have to wait until the\n  next cycle ;-/\n\n  This pile contains 9p cleanups and fixes (races in v9fs_fid_add()\n  etc), fixup for nommu breakage in shmem.c, several cleanups and a bit\n  more file_inode() work\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:\n  constify path_get/path_put and fs_struct.c stuff\n  fix nommu breakage in shmem.c\n  cache the value of file_inode() in struct file\n  9p: if v9fs_fid_lookup() gets to asking server, it\u0027d better have hashed dentry\n  9p: make sure -\u003elookup() adds fid to the right dentry\n  9p: untangle -\u003elookup() a bit\n  9p: double iput() in -\u003elookup() if d_materialise_unique() fails\n  9p: v9fs_fid_add() can\u0027t fail now\n  v9fs: get rid of v9fs_dentry\n  9p: turn fid-\u003edlist into hlist\n  9p: don\u0027t bother with private lock in -\u003ed_fsdata; dentry-\u003ed_lock will do just fine\n  more file_inode() open-coded instances\n  selinux: opened file can\u0027t have NULL or negative -\u003ef_path.dentry\n\n(In the meantime, the hlist traversal macros have changed, so this\nrequired a semantic conflict fixup for the newly hlistified fid-\u003edlist)\n"
    },
    {
      "commit": "1c82315a12144cde732636e259d39e3ee81b3c5b",
      "tree": "904770abe925abf1e37bad1a6d7d7f576257b194",
      "parents": [
        "530ede14cf63ef4a207b0003e14af2f750484180",
        "d7011f5b9dd3c88feb5cebad7d0b719ed6816ebd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 03 13:13:20 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 03 13:13:20 2013 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs\n\nPull btrfs fixup from Chris Mason:\n \"Geert and James both sent this one in, sorry guys\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:\n  btrfs/raid56: Add missing #include \u003clinux/vmalloc.h\u003e\n"
    },
    {
      "commit": "8fd5e7a2d9574b3cac1c9264ad1aed3b613ed6fe",
      "tree": "5696f5d31c6c75b71bfc4852fb234b773e266cfe",
      "parents": [
        "529e5fbcd8d3cb48cf824ac8fde91cc80a9e985f",
        "c60ac31542e93499b58dcfc1e3f6550ba5b5728e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 03 12:06:09 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 03 12:06:09 2013 -0800"
      },
      "message": "Merge tag \u0027metag-v3.9-rc1-v4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag\n\nPull new ImgTec Meta architecture from James Hogan:\n \"This adds core architecture support for Imagination\u0027s Meta processor\n  cores, followed by some later miscellaneous arch/metag cleanups and\n  fixes which I kept separate to ease review:\n\n   - Support for basic Meta 1 (ATP) and Meta 2 (HTP) core architecture\n   - A few fixes all over, particularly for symbol prefixes\n   - A few privilege protection fixes\n   - Several cleanups (setup.c includes, split out a lot of\n     metag_ksyms.c)\n   - Fix some missing exports\n   - Convert hugetlb to use vm_unmapped_area()\n   - Copy device tree to non-init memory\n   - Provide dma_get_sgtable()\"\n\n* tag \u0027metag-v3.9-rc1-v4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag: (61 commits)\n  metag: Provide dma_get_sgtable()\n  metag: prom.h: remove declaration of metag_dt_memblock_reserve()\n  metag: copy devicetree to non-init memory\n  metag: cleanup metag_ksyms.c includes\n  metag: move mm/init.c exports out of metag_ksyms.c\n  metag: move usercopy.c exports out of metag_ksyms.c\n  metag: move setup.c exports out of metag_ksyms.c\n  metag: move kick.c exports out of metag_ksyms.c\n  metag: move traps.c exports out of metag_ksyms.c\n  metag: move irq enable out of irqflags.h on SMP\n  genksyms: fix metag symbol prefix on crc symbols\n  metag: hugetlb: convert to vm_unmapped_area()\n  metag: export clear_page and copy_page\n  metag: export metag_code_cache_flush_all\n  metag: protect more non-MMU memory regions\n  metag: make TXPRIVEXT bits explicit\n  metag: kernel/setup.c: sort includes\n  perf: Enable building perf tools for Meta\n  metag: add boot time LNKGET/LNKSET check\n  metag: add __init to metag_cache_probe()\n  ...\n"
    },
    {
      "commit": "d7011f5b9dd3c88feb5cebad7d0b719ed6816ebd",
      "tree": "12f607ef9e2da4b72db3941443184be1273619c0",
      "parents": [
        "180e001cd5fc2950dc6a7997dde5b65c954d0e79"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "geert@linux-m68k.org",
        "time": "Sun Mar 03 04:44:41 2013 -0700"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Sun Mar 03 06:53:41 2013 -0500"
      },
      "message": "btrfs/raid56: Add missing #include \u003clinux/vmalloc.h\u003e\n\ntilegx_defconfig:\n\nfs/btrfs/raid56.c: In function \u0027btrfs_alloc_stripe_hash_table\u0027:\nfs/btrfs/raid56.c:206:3: error: implicit declaration of function \u0027vzalloc\u0027 [-Werror\u003dimplicit-function-declaration]\nfs/btrfs/raid56.c:206:9: warning: assignment makes pointer from integer without a cast [enabled by default]\nfs/btrfs/raid56.c:226:4: error: implicit declaration of function \u0027vfree\u0027 [-Werror\u003dimplicit-function-declaration]\n\nSigned-off-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "a7c1120d2dcc83691bafa034d98f70285757e826",
      "tree": "56779f292c2dea78feff290c3ce26724d33b3f3e",
      "parents": [
        "6ec40b423032ca769c96fbf9a080db822821893d",
        "9b2ff35753c0512bc8c6adae9e9c87cbeee86f82"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 02 19:33:21 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 02 19:33:21 2013 -0800"
      },
      "message": "Merge tag \u0027ext4_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\nPull ext4 bug fixes from Ted Ts\u0027o:\n \"Various bug fixes for ext4.  The most important is a fix for the new\n  extent cache\u0027s slab shrinker which can cause significant, user-visible\n  pauses when the system is under memory pressure.\"\n\n* tag \u0027ext4_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:\n  ext4: enable quotas before orphan cleanup\n  ext4: don\u0027t allow quota mount options when quota feature enabled\n  ext4: fix a warning from sparse check for ext4_dir_llseek\n  ext4: convert number of blocks to clusters properly\n  ext4: fix possible memory leak in ext4_remount()\n  jbd2: fix ERR_PTR dereference in jbd2__journal_start\n  ext4: use percpu counter for extent cache count\n  ext4: optimize ext4_es_shrink()\n"
    },
    {
      "commit": "8d05b3771da8775799673212b57d62f57c70d68a",
      "tree": "ebce0455032cec54428227022c92a480fa726da0",
      "parents": [
        "b695188dd39162a1a6bff11fdbcc4c0b65b933ab",
        "512e4b291c0e97af24619a91f3e8963697da00d8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 02 16:46:07 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 02 16:46:07 2013 -0800"
      },
      "message": "Merge tag \u0027nfs-for-3.9-2\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\nPull NFS client bugfixes from Trond Myklebust:\n \"We\u0027ve just concluded another Connectathon interoperability testing\n  week, and so here are the fixes for the bugs that were discovered:\n\n   - Don\u0027t allow NFS silly-renamed files to be deleted\n   - Don\u0027t start the retransmission timer when out of socket space\n   - Fix a couple of pnfs-related Oopses.\n   - Fix one more NFSv4 state recovery deadlock\n   - Don\u0027t loop forever when LAYOUTGET returns NFS4ERR_LAYOUTTRYLATER\"\n\n* tag \u0027nfs-for-3.9-2\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs:\n  SUNRPC: One line comment fix\n  NFSv4.1: LAYOUTGET EDELAY loops timeout to the MDS\n  SUNRPC: add call to get configured timeout\n  PNFS: set the default DS timeout to 60 seconds\n  NFSv4: Fix another open/open_recovery deadlock\n  nfs: don\u0027t allow nfs_find_actor to match inodes of the wrong type\n  NFSv4.1: Hold reference to layout hdr in layoutget\n  pnfs: fix resend_to_mds for directio\n  SUNRPC: Don\u0027t start the retransmission timer when out of socket space\n  NFS: Don\u0027t allow NFS silly-renamed files to be deleted, no signal\n"
    },
    {
      "commit": "b695188dd39162a1a6bff11fdbcc4c0b65b933ab",
      "tree": "a3df7c052d38b5bfaf335fbf3130abcc5c6ca577",
      "parents": [
        "48476df99894492a0f7239f2f3c9a2dde4ff38e2",
        "180e001cd5fc2950dc6a7997dde5b65c954d0e79"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 02 16:41:54 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 02 16:41:54 2013 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs\n\nPull btrfs update from Chris Mason:\n \"The biggest feature in the pull is the new (and still experimental)\n  raid56 code that David Woodhouse started long ago.  I\u0027m still working\n  on the parity logging setup that will avoid inconsistent parity after\n  a crash, so this is only for testing right now.  But, I\u0027d really like\n  to get it out to a broader audience to hammer out any performance\n  issues or other problems.\n\n  scrub does not yet correct errors on raid5/6 either.\n\n  Josef has another pass at fsync performance.  The big change here is\n  to combine waiting for metadata with waiting for data, which is a big\n  latency win.  It is also step one toward using atomics from the\n  hardware during a commit.\n\n  Mark Fasheh has a new way to use btrfs send/receive to send only the\n  metadata changes.  SUSE is using this to make snapper more efficient\n  at finding changes between snapshosts.\n\n  Snapshot-aware defrag is also included.\n\n  Otherwise we have a large number of fixes and cleanups.  Eric Sandeen\n  wins the award for removing the most lines, and I\u0027m hoping we steal\n  this idea from XFS over and over again.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (118 commits)\n  btrfs: fixup/remove module.h usage as required\n  Btrfs: delete inline extents when we find them during logging\n  btrfs: try harder to allocate raid56 stripe cache\n  Btrfs: cleanup to make the function btrfs_delalloc_reserve_metadata more logic\n  Btrfs: don\u0027t call btrfs_qgroup_free if just btrfs_qgroup_reserve fails\n  Btrfs: remove reduplicate check about root in the function btrfs_clean_quota_tree\n  Btrfs: return ENOMEM rather than use BUG_ON when btrfs_alloc_path fails\n  Btrfs: fix missing deleted items in btrfs_clean_quota_tree\n  btrfs: use only inline_pages from extent buffer\n  Btrfs: fix wrong reserved space when deleting a snapshot/subvolume\n  Btrfs: fix wrong reserved space in qgroup during snap/subv creation\n  Btrfs: remove unnecessary dget_parent/dput when creating the pending snapshot\n  btrfs: remove a printk from scan_one_device\n  Btrfs: fix NULL pointer after aborting a transaction\n  Btrfs: fix memory leak of log roots\n  Btrfs: copy everything if we\u0027ve created an inline extent\n  btrfs: cleanup for open-coded alignment\n  Btrfs: do not change inode flags in rename\n  Btrfs: use reserved space for creating a snapshot\n  clear chunk_alloc flag on retryable failure\n  ...\n"
    },
    {
      "commit": "9b2ff35753c0512bc8c6adae9e9c87cbeee86f82",
      "tree": "5d9962637abdf6d9a88d78942971ced5d8c002b7",
      "parents": [
        "262b4662f42787bff24453ddd3e657265b5d0039"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Sat Mar 02 18:22:38 2013 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Mar 02 18:22:38 2013 -0500"
      },
      "message": "ext4: enable quotas before orphan cleanup\n\nWhen using quota feature we need to enable quotas before orphan cleanup\nso that changes happening during it are properly reflected in quota\naccounting.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "262b4662f42787bff24453ddd3e657265b5d0039",
      "tree": "30bc20d8e36a09509f083b139b6c73ff95ab182d",
      "parents": [
        "d4e439549127d3ca544482551f5f1af4f114debd"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Sat Mar 02 17:57:08 2013 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Mar 02 17:57:08 2013 -0500"
      },
      "message": "ext4: don\u0027t allow quota mount options when quota feature enabled\n\nSo far we silently ignored when quota mount options were set while quota\nfeature was enabled.  But this can create confusion in userspace when\nmount options are set but silently ignored and also creates opportunities\nfor bugs when we don\u0027t properly test all quota types.  Actually\next4_mark_dquot_dirty() forgets to test for quota feature so it was\ndependent on journaled quota options being set.  OTOH ext4_orphan_cleanup()\ntries to enable journaled quota when quota options are specified which is\nwrong when quota feature is enabled.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d4e439549127d3ca544482551f5f1af4f114debd",
      "tree": "b0c16bce8e6b6273cedf0df32ad7ceea85053060",
      "parents": [
        "810da240f221d64bf90020f25941b05b378186fe"
      ],
      "author": {
        "name": "Zheng Liu",
        "email": "wenqing.lz@taobao.com",
        "time": "Sat Mar 02 17:24:05 2013 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Mar 02 17:24:05 2013 -0500"
      },
      "message": "ext4: fix a warning from sparse check for ext4_dir_llseek\n\next4_dir_llseek is only used as a callback function, and no one calls\nit directly.  So make it as a static function in order to remove a\nwarning message from sparse check.\n\nSigned-off-by: Zheng Liu \u003cwenqing.lz@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "810da240f221d64bf90020f25941b05b378186fe",
      "tree": "9fb624e43c624bf8e38077804ca2f95026c11b53",
      "parents": [
        "3e36a16375eee390a9d80f99499fe630efa08128"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Sat Mar 02 17:18:58 2013 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Mar 02 17:18:58 2013 -0500"
      },
      "message": "ext4: convert number of blocks to clusters properly\n\nWe\u0027re using macro EXT4_B2C() to convert number of blocks to number of\nclusters for bigalloc file systems.  However, we should be using\nEXT4_NUM_B2C().\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "3e36a16375eee390a9d80f99499fe630efa08128",
      "tree": "c07bece14821d3b66c781b969c4ec0ed5ee37a26",
      "parents": [
        "df05c1b85a88888b92725ef27ba70086f38fb083"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yongjun_wei@trendmicro.com.cn",
        "time": "Sat Mar 02 17:13:55 2013 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Mar 02 17:13:55 2013 -0500"
      },
      "message": "ext4: fix possible memory leak in ext4_remount()\n\n\u0027orig_data\u0027 is malloced in ext4_remount() and should be freed\nbefore leaving from the error handling cases, otherwise it will\ncause memory leak.\n\nSigned-off-by: Wei Yongjun \u003cyongjun_wei@trendmicro.com.cn\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReviewed-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "df05c1b85a88888b92725ef27ba70086f38fb083",
      "tree": "ba25e9388be51f30fd464eea4c6f4f50eb384080",
      "parents": [
        "1ac6466f253ef7bd063b7877fb056afe1820841c"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Sat Mar 02 17:08:46 2013 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Mar 02 17:08:46 2013 -0500"
      },
      "message": "jbd2: fix ERR_PTR dereference in jbd2__journal_start\n\nIf start_this_handle() failed handle will be initialized\nto ERR_PTR() and can not be dereferenced.\n\npaging request at fffffffffffffff6\nIP: [\u003cffffffff813c073f\u003e] jbd2__journal_start+0x18f/0x290\nPGD 200e067 PUD 200f067 PMD 0\nOops: 0000 [#1] SMP\nModules linked in: cpufreq_ondemand acpi_cpufreq freq_table mperf coretemp kvm_intel kvm crc32c_intel ghash_clmulni_intel microcode sg xhci_hcd button sd_mod crc_t10dif aesni_intel ablk_helper cryptd lrw aes_x86_64 xts gf128mul ahci libahci pata_acpi ata_generic dm_mirror dm_region_hash dm_log dm_mod\nCPU 0 journal commit I/O error\n\nPid: 2694, comm: fio Not tainted 3.8.0-rc3+ #79                  /DQ67SW\nRIP: 0010:[\u003cffffffff813c073f\u003e]  [\u003cffffffff813c073f\u003e] jbd2__journal_start+0x18f/0x290\nRSP: 0018:ffff880233b8ba58  EFLAGS: 00010292\nRAX: 00000000ffffffe2 RBX: ffffffffffffffe2 RCX: 0000000000000006\nRDX: 0000000000000000 RSI: 0000000000000000 RDI: ffffffff82128f48\nRBP: ffff880233b8ba98 R08: 0000000000000000 R09: ffff88021440a6e0\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c07380beafabee343a7f298bacd22598d72c7c87",
      "tree": "73afc02a5249b56bd8f31ebd5c15756bcf7ce21b",
      "parents": [
        "4dd3c95940b836bc4073e8827973362e78f5e204"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Mon May 09 10:58:40 2011 +0100"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:09:15 2013 +0000"
      },
      "message": "Revert some of \"binfmt_elf: cleanups\"\n\nThe commit \"binfmt_elf: cleanups\"\n(f670d0ecda73b7438eec9ed108680bc5f5362ad8) removed an ifndef elf_map but\nthis breaks compilation for metag which does define elf_map.\n\nThis adds the ifndef back in as it was before, but does not affect the\nother cleanups made by that patch.\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: linux-fsdevel@vger.kernel.org\nAcked-by: Mikael Pettersson \u003cmikpe@it.uu.se\u003e\n"
    },
    {
      "commit": "14cc0b55b70e297a4b5411733d58c6cdc2d7f1be",
      "tree": "2aa0fe9d267d5ae1ab1b47a67d31fbbc1dbf928e",
      "parents": [
        "3cfb07743a5bffecba83f0da26444e85c0a9bfbb",
        "0e803bafbb7d1b8a9031104f1a982a01b45da4c6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 02 08:34:06 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 02 08:34:06 2013 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal\n\nPull signal/compat fixes from Al Viro:\n \"Fixes for several regressions introduced in the last signal.git pile,\n  along with fixing bugs in truncate and ftruncate compat (on just about\n  anything biarch at least one of those two had been done wrong).\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal:\n  compat: restore timerfd settime and gettime compat syscalls\n  [regression] braino in \"sparc: convert to ksignal\"\n  fix compat truncate/ftruncate\n  switch lseek to COMPAT_SYSCALL_DEFINE\n  lseek() and truncate() on sparc really need sign extension\n"
    },
    {
      "commit": "1ac6466f253ef7bd063b7877fb056afe1820841c",
      "tree": "8202e2ba849b72236ea186cfbfd4c4098aa7d699",
      "parents": [
        "246307745c406379996e6ed6411f0e20f1ce1449"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Mar 02 10:27:46 2013 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Mar 02 10:27:46 2013 -0500"
      },
      "message": "ext4: use percpu counter for extent cache count\n\nUse a percpu counter rather than atomic types for shrinker accounting.\nThere\u0027s no need for ultimate accuracy in the shrinker, so this\nshould come a little more cheaply.  The percpu struct is somewhat\nlarge, but there was a big gap before the cache-aligned\ns_es_lru_lock anyway, and it fits nicely in there.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0e803bafbb7d1b8a9031104f1a982a01b45da4c6",
      "tree": "e78f8e13f68a7abf4220fb4f306cae2c2d28cc79",
      "parents": [
        "dfbb83d32c99dc50198638adf067a435c0fc338f"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Sat Mar 02 12:26:30 2013 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 02 09:35:13 2013 -0500"
      },
      "message": "compat: restore timerfd settime and gettime compat syscalls\n\nBoth compat syscalls got lost with 9d94b9e2 \"switch timerfd compat syscalls\nto COMPAT_SYSCALL_DEFINE\" because of a typo:\nCOMPAT instead of CONFIG_COMPAT.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "dcf787f39162ce32ca325b3e784aba2d2444619a",
      "tree": "0c9ca31625ed193558758aba2df9e127b2abd81b",
      "parents": [
        "26567cdbbf1a6b13a92a82332daee00672aa48a9"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 01 23:51:07 2013 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 01 23:51:07 2013 -0500"
      },
      "message": "constify path_get/path_put and fs_struct.c stuff\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "dd37978c50bc8b354e5c4633f69387f16572fdac",
      "tree": "d233c7027f26869485f96556cc9cddacbb3a8f2d",
      "parents": [
        "5e608671dfbfd6a9556c31df65a4f147439eed59"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 01 19:48:30 2013 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 01 19:48:30 2013 -0500"
      },
      "message": "cache the value of file_inode() in struct file\n\nNote that this thing does *not* contribute to inode refcount;\nit\u0027s pinned down by dentry.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "cc73dc04c7b3e18ac20ef7770d4964765e4d6ddf",
      "tree": "70578f9996176d888ddbd7955b86db13d9ae77d4",
      "parents": [
        "5140a8ceaa369d362d0ab7a438a5d99c75ee098d",
        "c51bb0ea40ca038da26b1fa7d450f4078124af03"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 01 12:05:13 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 01 12:05:13 2013 -0800"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.samba.org/sfrench/cifs-2.6\n\nPull CIFS fixes from Steve French:\n \"Four cifs fixes (including for kernel bug #53221 and samba bug #9519)\"\n\n* \u0027for-next\u0027 of git://git.samba.org/sfrench/cifs-2.6:\n  cifs: bugfix for unreclaimed writeback pages in cifs_writev_requeue()\n  cifs: set MAY_SIGN when sec\u003dkrb5\n  POSIX extensions disabled on client due to illegal O_EXCL flag sent to Samba\n  cifs: ensure that cifs_get_root() only traverses directories\n"
    },
    {
      "commit": "5140a8ceaa369d362d0ab7a438a5d99c75ee098d",
      "tree": "833fa7772275aaa9aaa12b891852e59cad1c6526",
      "parents": [
        "9d8072e7c33991a08b29338f3f04dfef7c24afd5"
      ],
      "author": {
        "name": "Tim Gardner",
        "email": "tim.gardner@canonical.com",
        "time": "Fri Mar 01 19:46:48 2013 +0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 01 12:04:39 2013 -0800"
      },
      "message": "autofs4 - autofs4_catatonic_mode(): remove redundant null check on kfree()\n\nsmatch analysis:\n\n  fs/autofs4/waitq.c:46 autofs4_catatonic_mode() info: redundant null check on wq-\u003ename.name calling kfree()\n\nSigned-off-by: Tim Gardner \u003ctim.gardner@canonical.com\u003e\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nCc: autofs@vger.kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9d8072e7c33991a08b29338f3f04dfef7c24afd5",
      "tree": "3fda1dd5842eafb90405d3566407b0c55816ddec",
      "parents": [
        "b0af9cd9aab60ceb17d3ebabb9fdf4ff0a99cf50"
      ],
      "author": {
        "name": "Peter Huewe",
        "email": "peterhuewe@gmx.de",
        "time": "Fri Mar 01 19:46:40 2013 +0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 01 12:04:39 2013 -0800"
      },
      "message": "autofs - Fix sparse warning: context imbalance in autofs4_d_automount() different lock contexts for basic block\n\nSparse complains:\n\n  fs/autofs4/root.c:409:9: sparse: context imbalance in \u0027autofs4_d_automount\u0027 - different lock contexts for basic block\n\nThis was introduced by commit f55fb0c24386 (\"autofs4 - dont clear\nDCACHE_NEED_AUTOMOUNT on rootless mount\")\n\nThe function autofs4_d_automount can be left with the (\u0026sbi-\u003efs_lock)\nheld if sbi-\u003eversion \u003c\u003d 4 and simple_empty(dentry) \u003d\u003d false so the\nwarning seems valid.\n\n--\u003e Add an spin_unlock in this case before we jump to done\n\nUnfortunately compile tested only.\n\nReported-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Peter Huewe \u003cpeterhuewe@gmx.de\u003e\nAcked-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "180e001cd5fc2950dc6a7997dde5b65c954d0e79",
      "tree": "4a0e6278f5373d22cf06e0a4ca25d23301b5416b",
      "parents": [
        "124fe663f93162d17b7e391705cac122101e93d8"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Thu Feb 14 13:50:15 2013 -0700"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Fri Mar 01 15:01:01 2013 -0500"
      },
      "message": "btrfs: fixup/remove module.h usage as required\n\nWe want to avoid module.h where posible, since it in turn includes\nnearly all of header space.  This means removing it where it is not\nrequired, and using export.h where we are only exporting symbols via\nEXPORT_SYMBOL and friends.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "124fe663f93162d17b7e391705cac122101e93d8",
      "tree": "e845b288ac0976e24b9a2264c6e21c0142b76237",
      "parents": [
        "83c8266acc1d19debbf353a16aabbd892ef99462"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "jbacik@fusionio.com",
        "time": "Fri Mar 01 11:47:21 2013 -0500"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "jbacik@fusionio.com",
        "time": "Fri Mar 01 11:47:21 2013 -0500"
      },
      "message": "Btrfs: delete inline extents when we find them during logging\n\nApparently when we do inline extents we allow the data to overlap the last chunk\nof the btrfs_file_extent_item, which means that we can possibly have a\nbtrfs_file_extent_item that isn\u0027t actually as large as a btrfs_file_extent_item.\nThis messes with us when we try to overwrite the extent when logging new extents\nsince we expect for it to be the right size.  To fix this just delete the item\nand try to do the insert again which will give us the proper sized\nbtrfs_file_extent_item.  This fixes a panic where map_private_extent_buffer\nwould blow up because we\u0027re trying to write past the end of the leaf.  Thanks,\n\nCc: stable@vger.kernel.org\nSigned-off-by: Josef Bacik \u003cjbacik@fusionio.com\u003e\n"
    },
    {
      "commit": "83c8266acc1d19debbf353a16aabbd892ef99462",
      "tree": "a9e44cd5533e4f424ce2e89fcb766ebe4c1d7c02",
      "parents": [
        "88e081bf82ffcb9be3ad33d04c829051d66da564"
      ],
      "author": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Fri Mar 01 15:03:00 2013 +0000"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "jbacik@fusionio.com",
        "time": "Fri Mar 01 10:13:05 2013 -0500"
      },
      "message": "btrfs: try harder to allocate raid56 stripe cache\n\nThe stripe hash table is large, starting with allocation order 4 and can go as\nhigh as order 7 in case lock debugging is turned on and structure padding\nhappens.\n\nObserved mount failure:\n\nmount: page allocation failure: order:7, mode:0x200050\nPid: 8234, comm: mount Tainted: G        W    3.8.0-default+ #267\nCall Trace:\n [\u003cffffffff81114353\u003e] warn_alloc_failed+0xf3/0x140\n [\u003cffffffff811171d2\u003e] ? __alloc_pages_direct_compact+0x92/0x250\n [\u003cffffffff81117ac3\u003e] __alloc_pages_nodemask+0x733/0x9d0\n [\u003cffffffff81152878\u003e] ? cache_alloc_refill+0x3f8/0x840\n [\u003cffffffff811528bc\u003e] cache_alloc_refill+0x43c/0x840\n [\u003cffffffff811302eb\u003e] ? is_kernel_percpu_address+0x4b/0x90\n [\u003cffffffffa00a00ac\u003e] ? btrfs_alloc_stripe_hash_table+0x5c/0x130 [btrfs]\n [\u003cffffffff811531d7\u003e] kmem_cache_alloc_trace+0x247/0x270\n [\u003cffffffffa00a00ac\u003e] btrfs_alloc_stripe_hash_table+0x5c/0x130 [btrfs]\n [\u003cffffffffa003133f\u003e] open_ctree+0xb2f/0x1f90 [btrfs]\n [\u003cffffffff81397289\u003e] ? string+0x49/0xe0\n [\u003cffffffff813987b3\u003e] ? vsnprintf+0x443/0x5d0\n [\u003cffffffffa0007cb6\u003e] btrfs_mount+0x526/0x600 [btrfs]\n [\u003cffffffff8115127c\u003e] ? cache_alloc_debugcheck_after+0x4c/0x200\n [\u003cffffffff81162b90\u003e] mount_fs+0x20/0xe0\n [\u003cffffffff8117db26\u003e] vfs_kern_mount+0x76/0x120\n [\u003cffffffff811801b6\u003e] do_mount+0x386/0x980\n [\u003cffffffff8112a5cb\u003e] ? strndup_user+0x5b/0x80\n [\u003cffffffff81180840\u003e] sys_mount+0x90/0xe0\n [\u003cffffffff81962e99\u003e] system_call_fastpath+0x16/0x1b\n\nSigned-off-by: David Sterba \u003cdsterba@suse.cz\u003e\nSigned-off-by: Josef Bacik \u003cjbacik@fusionio.com\u003e\n"
    },
    {
      "commit": "88e081bf82ffcb9be3ad33d04c829051d66da564",
      "tree": "32a05e25761a097e0cdbf0c6bf215c47ef9e96a1",
      "parents": [
        "a9870c0e031527fbfa382019f30d2e9b98124a0d"
      ],
      "author": {
        "name": "Wang Shilong",
        "email": "wangsl-fnst@cn.fujitsu.com",
        "time": "Fri Mar 01 11:36:01 2013 +0000"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "jbacik@fusionio.com",
        "time": "Fri Mar 01 10:13:04 2013 -0500"
      },
      "message": "Btrfs: cleanup to make the function btrfs_delalloc_reserve_metadata more logic\n\nThe original code is a little confusing and not clear, The right\nway to deal with the kernel code like this:\n\t\t[...]\n\t\tif (ret)\n\t\t\tgoto out;\n\t\t[...]\n\nSo i move the common clean_up code to the place labeled with\nout_fail, this will be easier to maintain.\n\nSigned-off-by: Wang Shilong \u003cwangsl-fnst@cn.fujitsu.com\u003e\nSigned-off-by: Josef Bacik \u003cjbacik@fusionio.com\u003e\n"
    },
    {
      "commit": "a9870c0e031527fbfa382019f30d2e9b98124a0d",
      "tree": "5c59752af695a18db6b8c421199424423364b73b",
      "parents": [
        "235fdb8ef2a313749cf3a42e70156c618263a388"
      ],
      "author": {
        "name": "Wang Shilong",
        "email": "wangsl-fnst@cn.fujitsu.com",
        "time": "Fri Mar 01 11:33:01 2013 +0000"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "jbacik@fusionio.com",
        "time": "Fri Mar 01 10:13:04 2013 -0500"
      },
      "message": "Btrfs: don\u0027t call btrfs_qgroup_free if just btrfs_qgroup_reserve fails\n\ncommit eb6b88d92c6df083dd09a8c471011e3788dfd7c6 leads into another bug.\nIf it is just because qgroup_reserve fails, the function btrfs_qgroup_free\nshould not be called, otherwise, it will cause the wrong quota accounting.\n\nSigned-off-by: Wang Shilong \u003cwangsl-fnst@cn.fujitsu.com\u003e\nSigned-off-by: Josef Bacik \u003cjbacik@fusionio.com\u003e\n"
    },
    {
      "commit": "235fdb8ef2a313749cf3a42e70156c618263a388",
      "tree": "45153c94dfcc76f1e4c9dade4f5265401b56ca70",
      "parents": [
        "84cbe2f725f59b72fffb48ab7161e771eeee5103"
      ],
      "author": {
        "name": "Wang Shilong",
        "email": "wangsl-fnst@cn.fujitsu.com",
        "time": "Wed Feb 27 11:21:40 2013 +0000"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "jbacik@fusionio.com",
        "time": "Fri Mar 01 10:13:04 2013 -0500"
      },
      "message": "Btrfs: remove reduplicate check about root in the function btrfs_clean_quota_tree\n\nThe check work has been done just before the function btrfs_clean_quota_tree\nis called, it is not necessary to check it again, remove it.\n\nSigned-off-by: Wang Shilong \u003cwangsl-fnst@cn.fujitsu.com\u003e\nSigned-off-by: Josef Bacik \u003cjbacik@fusionio.com\u003e\n"
    },
    {
      "commit": "84cbe2f725f59b72fffb48ab7161e771eeee5103",
      "tree": "5014eb497d28c75cbeb2784f7078a4bde5cb7008",
      "parents": [
        "06b3a860dcf596bdc2bb1cca3252d3907b581938"
      ],
      "author": {
        "name": "Wang Shilong",
        "email": "wangsl-fnst@cn.fujitsu.com",
        "time": "Wed Feb 27 11:20:56 2013 +0000"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "jbacik@fusionio.com",
        "time": "Fri Mar 01 10:13:04 2013 -0500"
      },
      "message": "Btrfs: return ENOMEM rather than use BUG_ON when btrfs_alloc_path fails\n\nReturn ENOMEM rather trigger BUG_ON, fix it.\n\nSigned-off-by: Wang Shilong \u003cwangsl-fnst@cn.fujitsu.com\u003e\nReviewed-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nReviewed-by: Zach Brown \u003czab@redhat.com\u003e\nSigned-off-by: Josef Bacik \u003cjbacik@fusionio.com\u003e\n"
    },
    {
      "commit": "06b3a860dcf596bdc2bb1cca3252d3907b581938",
      "tree": "9166d47ee4c0cc1c19521db17880b6a5b254c907",
      "parents": [
        "b8dae3138876080d4dd98cc438ff759338d632ef"
      ],
      "author": {
        "name": "Wang Shilong",
        "email": "wangsl-fnst@cn.fujitsu.com",
        "time": "Wed Feb 27 11:16:57 2013 +0000"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "jbacik@fusionio.com",
        "time": "Fri Mar 01 10:13:03 2013 -0500"
      },
      "message": "Btrfs: fix missing deleted items in btrfs_clean_quota_tree\n\nSteps to reproduce:\n\n\ti\u003d0\n\tncases\u003d100\n\n\tmkfs.btrfs \u003cdisk\u003e\n\tmount \u003cdisk\u003e \u003cmnt\u003e\n\tbtrfs quota enable \u003cmnt\u003e\n\tbtrfs qgroup create 2/1 \u003cmnt\u003e\n\twhile [ $i -le $ncases ]\n\tdo\n\t\tbtrfs qgroup create 1/$i \u003cmnt\u003e\n\t\tbtrfs qgroup assign 1/$i 2/1 \u003cmnt\u003e\n\t\ti\u003d$(($i+1))\n\tdone\n\n\tbtrfs quota disable \u003cmnt\u003e\n\tumount \u003cmnt\u003e\n\tbtrfsck \u003cmnt\u003e\n\nYou can also use the commands:\n\tbtrfs-debug-tree \u003cdisk\u003e | grep QGROUP\n\nYou will find there are still items existed.The reasons why this happens\nis because the original code just checks slots[0]\u003d\u003d0 and returns.\nWe try to fix it by deleting the leaf one by one.\n\nSigned-off-by: Wang Shilong \u003cwangsl-fnst@cn.fujitsu.com\u003e\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Josef Bacik \u003cjbacik@fusionio.com\u003e\n"
    },
    {
      "commit": "246307745c406379996e6ed6411f0e20f1ce1449",
      "tree": "71b78d765ba7406c6755cad807944da6a99e5980",
      "parents": [
        "8e919d13048cd5acaadb2b15b48acbfb8832d3c2"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Feb 28 23:58:56 2013 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Feb 28 23:58:56 2013 -0500"
      },
      "message": "ext4: optimize ext4_es_shrink()\n\nWhen the system is under memory pressure, ext4_es_srhink() will get\ncalled very often.  So optimize returning the number of items in the\nfile system\u0027s extent status cache by keeping a per-filesystem count,\ninstead of calculating it each time by scanning all of the inodes in\nthe extent status cache.\n\nAlso rename the slab used for the extent status cache to be\n\"ext4_extent_status\" so it\u0027s obviousl the slab in question is created\nby ext4.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Zheng Liu \u003cgnehzuil.liu@gmail.com\u003e\n"
    },
    {
      "commit": "b6669737d3db7df79fad07180837c23dbe581db5",
      "tree": "671a9d13fe5ab00d6a3c7c5c5c466802ca96d38a",
      "parents": [
        "1cf0209c431fa7790253c532039d53b0773193aa",
        "dc107402ae06286a9ed33c32daf3f35514a7cb8d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 28 18:02:55 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 28 18:02:55 2013 -0800"
      },
      "message": "Merge branch \u0027for-3.9\u0027 of git://linux-nfs.org/~bfields/linux\n\nPull nfsd changes from J Bruce Fields:\n \"Miscellaneous bugfixes, plus:\n\n   - An overhaul of the DRC cache by Jeff Layton.  The main effect is\n     just to make it larger.  This decreases the chances of intermittent\n     errors especially in the UDP case.  But we\u0027ll need to watch for any\n     reports of performance regressions.\n\n   - Containerized nfsd: with some limitations, we now support\n     per-container nfs-service, thanks to extensive work from Stanislav\n     Kinsbursky over the last year.\"\n\nSome notes about conflicts, since there were *two* non-data semantic\nconflicts here:\n\n - idr_remove_all() had been added by a memory leak fix, but has since\n   become deprecated since idr_destroy() does it for us now.\n\n - xs_local_connect() had been added by this branch to make AF_LOCAL\n   connections be synchronous, but in the meantime Trond had changed the\n   calling convention in order to avoid a RCU dereference.\n\nThere were a couple of more obvious actual source-level conflicts due to\nthe hlist traversal changes and one just due to code changes next to\neach other, but those were trivial.\n\n* \u0027for-3.9\u0027 of git://linux-nfs.org/~bfields/linux: (49 commits)\n  SUNRPC: make AF_LOCAL connect synchronous\n  nfsd: fix compiler warning about ambiguous types in nfsd_cache_csum\n  svcrpc: fix rpc server shutdown races\n  svcrpc: make svc_age_temp_xprts enqueue under sv_lock\n  lockd: nlmclnt_reclaim(): avoid stack overflow\n  nfsd: enable NFSv4 state in containers\n  nfsd: disable usermode helper client tracker in container\n  nfsd: use proper net while reading \"exports\" file\n  nfsd: containerize NFSd filesystem\n  nfsd: fix comments on nfsd_cache_lookup\n  SUNRPC: move cache_detail-\u003ecache_request callback call to cache_read()\n  SUNRPC: remove \"cache_request\" argument in sunrpc_cache_pipe_upcall() function\n  SUNRPC: rework cache upcall logic\n  SUNRPC: introduce cache_detail-\u003ecache_request callback\n  NFS: simplify and clean cache library\n  NFS: use SUNRPC cache creation and destruction helper for DNS cache\n  nfsd4: free_stid can be static\n  nfsd: keep a checksum of the first 256 bytes of request\n  sunrpc: trim off trailing checksum before returning decrypted or integrity authenticated buffer\n  sunrpc: fix comment in struct xdr_buf definition\n  ...\n"
    },
    {
      "commit": "1cf0209c431fa7790253c532039d53b0773193aa",
      "tree": "24310eaaf4c9583988d9098f6c85a4a34970b5b9",
      "parents": [
        "de1a2262b006220dae2561a299a6ea128c46f4fe",
        "83ca14fdd35821554058e5fd4fa7b118ee504a33"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 28 17:43:09 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 28 17:43:09 2013 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\nPull Ceph updates from Sage Weil:\n \"A few groups of patches here.  Alex has been hard at work improving\n  the RBD code, layout groundwork for understanding the new formats and\n  doing layering.  Most of the infrastructure is now in place for the\n  final bits that will come with the next window.\n\n  There are a few changes to the data layout.  Jim Schutt\u0027s patch fixes\n  some non-ideal CRUSH behavior, and a set of patches from me updates\n  the client to speak a newer version of the protocol and implement an\n  improved hashing strategy across storage nodes (when the server side\n  supports it too).\n\n  A pair of patches from Sam Lang fix the atomicity of open+create\n  operations.  Several patches from Yan, Zheng fix various mds/client\n  issues that turned up during multi-mds torture tests.\n\n  A final set of patches expose file layouts via virtual xattrs, and\n  allow the policies to be set on directories via xattrs as well\n  (avoiding the awkward ioctl interface and providing a consistent\n  interface for both kernel mount and ceph-fuse users).\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: (143 commits)\n  libceph: add support for HASHPSPOOL pool flag\n  libceph: update osd request/reply encoding\n  libceph: calculate placement based on the internal data types\n  ceph: update support for PGID64, PGPOOL3, OSDENC protocol features\n  ceph: update \"ceph_features.h\"\n  libceph: decode into cpu-native ceph_pg type\n  libceph: rename ceph_pg -\u003e ceph_pg_v1\n  rbd: pass length, not op for osd completions\n  rbd: move rbd_osd_trivial_callback()\n  libceph: use a do..while loop in con_work()\n  libceph: use a flag to indicate a fault has occurred\n  libceph: separate non-locked fault handling\n  libceph: encapsulate connection backoff\n  libceph: eliminate sparse warnings\n  ceph: eliminate sparse warnings in fs code\n  rbd: eliminate sparse warnings\n  libceph: define connection flag helpers\n  rbd: normalize dout() calls\n  rbd: barriers are hard\n  rbd: ignore zero-length requests\n  ...\n"
    },
    {
      "commit": "3000512137602b84d1ad5fd89d62984993a19bb6",
      "tree": "ad75f7487669d2977fa1fcb0b45de533c35f29e2",
      "parents": [
        "edddbb1eda61753c886a3c5e159293a7b3a9e30a"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Thu Feb 28 20:30:10 2013 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 28 17:41:35 2013 -0800"
      },
      "message": "NFSv4.1: LAYOUTGET EDELAY loops timeout to the MDS\n\nThe client will currently try LAYOUTGETs forever if a server is returning\nNFS4ERR_LAYOUTTRYLATER or NFS4ERR_RECALLCONFLICT - even if the client no\nlonger needs the layout (ie process killed, unmounted).\n\nThis patch uses the DS timeout value (module parameter \u0027dataserver_timeo\u0027\nvia rpc layer) to set an upper limit of how long the client tries LATOUTGETs\nin this situation.  Once the timeout is reached, IO is redirected to the MDS.\n\nThis also changes how the client checks if a layout is on the clp list\nto avoid a double list_add.\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "eb97cbb459c656b542101091f67ce112b3e56183",
      "tree": "da960d98b0b2c26f72379855859ddf23081b4dfe",
      "parents": [
        "7aa262b522ee5a7f1bf9b8fe34539b262ba6da0a"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Thu Feb 28 20:30:08 2013 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 28 17:35:00 2013 -0800"
      },
      "message": "PNFS: set the default DS timeout to 60 seconds\n\nThe client should have 60 second default timeouts for DS operations, not 6\nseconds.\n\nNFS4_DEF_DS_TIMEO is used as \"timeout in tenths of a second\" in\nnfs_init_timeout_values (and is not used anywhere else).\nThis matches up with the description of the module param dataserver_timeo.\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7aa262b522ee5a7f1bf9b8fe34539b262ba6da0a",
      "tree": "9d3ef00b6398d9bd5210800fc3ffcefa68d31e3b",
      "parents": [
        "f6488c9ba51d65410e2dbc4345413c0d9120971e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 28 16:19:59 2013 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Feb 28 16:19:59 2013 -0800"
      },
      "message": "NFSv4: Fix another open/open_recovery deadlock\n\nIf we don\u0027t release the open seqid before we wait for state recovery,\nthen we may end up deadlocking the state recovery thread.\nThis patch addresses a new deadlock that was introduced by\ncommit c21443c2c792cd9b463646d982b0fe48aa6feb0f (NFSv4: Fix a reboot\nrecovery race when opening a file)\n\nReported-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "de1a2262b006220dae2561a299a6ea128c46f4fe",
      "tree": "0df7b3686f09a77a000fb63a333237facad3482c",
      "parents": [
        "f042fea0da78d9dc077a9c736b33b60eb8f35195",
        "ed84825b785ceb932af7dd5aa08614801721320b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 28 13:21:44 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 28 13:21:44 2013 -0800"
      },
      "message": "Merge tag \u0027writeback-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux\n\nPull writeback fixes from Wu Fengguang:\n \"Two writeback fixes\n\n   - fix negative (setpoint - dirty) in 32bit archs\n\n   - use down_read_trylock() in writeback_inodes_sb(_nr)_if_idle()\"\n\n* tag \u0027writeback-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux:\n  Negative (setpoint-dirty) in bdi_position_ratio()\n  vfs: re-implement writeback_inodes_sb(_nr)_if_idle() and rename them\n"
    },
    {
      "commit": "ee89f81252179dcbf6cd65bd48299f5e52292d88",
      "tree": "805846cd12821f84cfe619d44c9e3e36e0b0f9e6",
      "parents": [
        "21f3b24da9328415792efc780f50b9f434c12465",
        "de33127d8d3f1d570aad8c2223cd81b206636bc1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 28 12:52:24 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 28 12:52:24 2013 -0800"
      },
      "message": "Merge branch \u0027for-3.9/core\u0027 of git://git.kernel.dk/linux-block\n\nPull block IO core bits from Jens Axboe:\n \"Below are the core block IO bits for 3.9.  It was delayed a few days\n  since my workstation kept crashing every 2-8h after pulling it into\n  current -git, but turns out it is a bug in the new pstate code (divide\n  by zero, will report separately).  In any case, it contains:\n\n   - The big cfq/blkcg update from Tejun and and Vivek.\n\n   - Additional block and writeback tracepoints from Tejun.\n\n   - Improvement of the should sort (based on queues) logic in the plug\n     flushing.\n\n   - _io() variants of the wait_for_completion() interface, using\n     io_schedule() instead of schedule() to contribute to io wait\n     properly.\n\n   - Various little fixes.\n\n  You\u0027ll get two trivial merge conflicts, which should be easy enough to\n  fix up\"\n\nFix up the trivial conflicts due to hlist traversal cleanups (commit\nb67bfe0d42ca: \"hlist: drop the node parameter from iterators\").\n\n* \u0027for-3.9/core\u0027 of git://git.kernel.dk/linux-block: (39 commits)\n  block: remove redundant check to bd_openers()\n  block: use i_size_write() in bd_set_size()\n  cfq: fix lock imbalance with failed allocations\n  drivers/block/swim3.c: fix null pointer dereference\n  block: don\u0027t select PERCPU_RWSEM\n  block: account iowait time when waiting for completion of IO request\n  sched: add wait_for_completion_io[_timeout]\n  writeback: add more tracepoints\n  block: add block_{touch|dirty}_buffer tracepoint\n  buffer: make touch_buffer() an exported function\n  block: add @req to bio_{front|back}_merge tracepoints\n  block: add missing block_bio_complete() tracepoint\n  block: Remove should_sort judgement when flush blk_plug\n  block,elevator: use new hashtable implementation\n  cfq-iosched: add hierarchical cfq_group statistics\n  cfq-iosched: collect stats from dead cfqgs\n  cfq-iosched: separate out cfqg_stats_reset() from cfq_pd_reset_stats()\n  blkcg: make blkcg_print_blkgs() grab q locks instead of blkcg lock\n  block: RCU free request_queue\n  blkcg: implement blkg_[rw]stat_recursive_sum() and blkg_[rw]stat_merge()\n  ...\n"
    },
    {
      "commit": "b8dae3138876080d4dd98cc438ff759338d632ef",
      "tree": "0b99ae05e9e656e158261a05f11c2a140124ac49",
      "parents": [
        "c58aaad2ac46f8dbce9ab7f7a7a3726e332a56ee"
      ],
      "author": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Thu Feb 28 14:54:18 2013 +0000"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "jbacik@fusionio.com",
        "time": "Thu Feb 28 13:33:56 2013 -0500"
      },
      "message": "btrfs: use only inline_pages from extent buffer\n\nThe nodesize is capped at 64k and there are enough pages preallocated in\nextent_buffer::inline_pages. The fallback to kmalloc never happened\nbecause even on the smallest page size considered (4k) inline_pages\ncovered the needs.\n\nSigned-off-by: David Sterba \u003cdsterba@suse.cz\u003e\nSigned-off-by: Josef Bacik \u003cjbacik@fusionio.com\u003e\n"
    },
    {
      "commit": "c58aaad2ac46f8dbce9ab7f7a7a3726e332a56ee",
      "tree": "6597760ea9f3c39f22f3ebada06b27ee59b8ea34",
      "parents": [
        "d5c1207017cd8387b4d3224dd7ab6cf5cd7f1c9a"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Thu Feb 28 10:05:36 2013 +0000"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "jbacik@fusionio.com",
        "time": "Thu Feb 28 13:33:55 2013 -0500"
      },
      "message": "Btrfs: fix wrong reserved space when deleting a snapshot/subvolume\n\nWhen deleting a snapshot/subvolume, we need remove root ref/backref,\ndir entries and update the dir inode, so we must reserve free space\nfor those operations.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Josef Bacik \u003cjbacik@fusionio.com\u003e\n"
    },
    {
      "commit": "d5c1207017cd8387b4d3224dd7ab6cf5cd7f1c9a",
      "tree": "7208d1c89aa625fa6eb349fdafa2e49a00bbe078",
      "parents": [
        "e9662f701c85ebc99f532bf8bb53208c0648846a"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Thu Feb 28 10:04:33 2013 +0000"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "jbacik@fusionio.com",
        "time": "Thu Feb 28 13:33:54 2013 -0500"
      },
      "message": "Btrfs: fix wrong reserved space in qgroup during snap/subv creation\n\nThere are two problems in the space reservation of the snapshot/\nsubvolume creation.\n- don\u0027t reserve the space for the root item insertion\n- the space which is reserved in the qgroup is different with\n  the free space reservation. we need reserve free space for\n  7 items, but in qgroup reservation, we need reserve space only\n  for 3 items.\n\nSo we implement new metadata reservation functions for the\nsnapshot/subvolume creation.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Josef Bacik \u003cjbacik@fusionio.com\u003e\n"
    },
    {
      "commit": "e9662f701c85ebc99f532bf8bb53208c0648846a",
      "tree": "f72d77f7bdea310bc25e70dc71b292dd4d3d287b",
      "parents": [
        "2d8946c59743bc635a5e5701e6ef8e71e0a16ab7"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Thu Feb 28 10:01:15 2013 +0000"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "jbacik@fusionio.com",
        "time": "Thu Feb 28 13:33:53 2013 -0500"
      },
      "message": "Btrfs: remove unnecessary dget_parent/dput when creating the pending snapshot\n\nSince we have grabbed the parent inode at the beginning of the\nsnapshot creation, and both sync and async snapshot creation\nrelease it after the pending snapshots are actually created,\nit is safe to access the parent inode directly during the snapshot\ncreation, we needn\u0027t use dget_parent/dput to fix the parent dentry\nand get the dir inode.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Josef Bacik \u003cjbacik@fusionio.com\u003e\n"
    },
    {
      "commit": "2d8946c59743bc635a5e5701e6ef8e71e0a16ab7",
      "tree": "ad8c4d5c052e0350901c5e9b8cb35a1dc12dcfb0",
      "parents": [
        "f094ac32aba3a51c00e970a2ea029339af2ca048"
      ],
      "author": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Wed Feb 27 23:13:55 2013 +0000"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "jbacik@fusionio.com",
        "time": "Thu Feb 28 13:33:52 2013 -0500"
      },
      "message": "btrfs: remove a printk from scan_one_device\n\nDave pointed out that he saw messages from btrfs although there was no\nsuch filesystem on his computers. The automatic device scan is called on\nevery new blockdevice if the usual distro udev rule set is used. The\nprintk introduced in 6f60cbd3ae442c was a remainder from copying\nportions of code from btrfs_get_bdev_and_sb which is used under\ndifferent conditions and the warning makes sense there.\n\nReported-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: David Sterba \u003cdsterba@suse.cz\u003e\nSigned-off-by: Josef Bacik \u003cjbacik@fusionio.com\u003e\n"
    },
    {
      "commit": "f094ac32aba3a51c00e970a2ea029339af2ca048",
      "tree": "88330927384b9ff597f6330a000e463079c02846",
      "parents": [
        "3321719ed67440bba1b0c5ae19c30d640263ccc8"
      ],
      "author": {
        "name": "Liu Bo",
        "email": "bo.li.liu@oracle.com",
        "time": "Wed Feb 27 13:28:25 2013 +0000"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "jbacik@fusionio.com",
        "time": "Thu Feb 28 13:33:52 2013 -0500"
      },
      "message": "Btrfs: fix NULL pointer after aborting a transaction\n\nWhile doing cleanup work on an aborted transaction, we\u0027ve set\nthe global running transaction pointer to NULL _before_ waiting all\nother transaction handles to finish, so others\u0027d hit NULL pointer\ncrash when referencing the global running transaction pointer.\n\nThis first sets a hint to avoid new transaction handle joining, then\nwaits other existing handles to abort or finish so that we can safely\nset the above global pointer to NULL.\n\nSigned-off-by: Liu Bo \u003cbo.li.liu@oracle.com\u003e\nSigned-off-by: Josef Bacik \u003cjbacik@fusionio.com\u003e\n"
    },
    {
      "commit": "3321719ed67440bba1b0c5ae19c30d640263ccc8",
      "tree": "3da1957a0530eeef652efcbffea6709c2d46df09",
      "parents": [
        "bdc20e67e82cfc4901d3a5a0d79104b0e2296d83"
      ],
      "author": {
        "name": "Liu Bo",
        "email": "bo.li.liu@oracle.com",
        "time": "Wed Feb 27 13:28:24 2013 +0000"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "jbacik@fusionio.com",
        "time": "Thu Feb 28 13:33:51 2013 -0500"
      },
      "message": "Btrfs: fix memory leak of log roots\n\nWhen we abort a transaction while fsyncing, we\u0027ll skip freeing log roots\npart of committing a transaction, which leads to memory leak.\n\nThis adds a \u0027free log roots\u0027 in putting super when no more users hold\nreferences on log roots, so it\u0027s safe and clean.\n\nSigned-off-by: Liu Bo \u003cbo.li.liu@oracle.com\u003e\nSigned-off-by: Josef Bacik \u003cjbacik@fusionio.com\u003e\n"
    },
    {
      "commit": "bdc20e67e82cfc4901d3a5a0d79104b0e2296d83",
      "tree": "c001d454533e7d3b262a20ef4b6f2703d5f69b79",
      "parents": [
        "fda2832febb1928da0625b2c5d15559b29d7e740"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "jbacik@fusionio.com",
        "time": "Thu Feb 28 13:23:38 2013 -0500"
      },
      "committer": {
        "name": "Josef Bacik",
        "email": "jbacik@fusionio.com",
        "time": "Thu Feb 28 13:33:20 2013 -0500"
      },
      "message": "Btrfs: copy everything if we\u0027ve created an inline extent\n\nI noticed while looking into a tree logging bug that we aren\u0027t logging inline\nextents properly.  Since this requires copying and it shouldn\u0027t happen too often\njust force us to copy everything for the inode into the tree log when we have an\ninline extent.  With this patch we have valid data after a crash when we write\nan inline extent.  Thanks,\n\nCc: stable@vger.kernel.org\nSigned-off-by: Josef Bacik \u003cjbacik@fusionio.com\u003e\n"
    },
    {
      "commit": "c51bb0ea40ca038da26b1fa7d450f4078124af03",
      "tree": "bf3f85dbf6263612dbdea9676670d75777a9d895",
      "parents": [
        "0b7bc84000d71f3647ca33ab1bf5bd928535c846"
      ],
      "author": {
        "name": "Ouyang Maochun",
        "email": "ouyang.maochun@zte.com.cn",
        "time": "Mon Feb 18 09:54:52 2013 -0600"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Feb 28 09:01:47 2013 -0600"
      },
      "message": "cifs: bugfix for unreclaimed writeback pages in cifs_writev_requeue()\n\nPages get the PG_writeback flag set before cifs sends its\nrequest to SMB server in cifs_writepages(), if the SMB service\ngoes down, cifs may try to recommit the writing requests in\ncifs_writev_requeue(). However, it does not clean its PG_writeback\nflag and relaimed the pages even if it fails again in\ncifs_writev_requeue(), which may lead to the hanging of the\nprocesses accessing the cifs directory. This patch just cleans\nthe PG_writeback flags and reclaims the pages under that circumstances.\n\n    Steps to reproduce the bug(trying serveral times may trigger the issue):\n    1.Write from cifs client continuously.(e.g dd if\u003d/dev/zero of\u003d\u003ccifs file\u003e)\n    2.Stop SMB service from server.(e.g service smb stop)\n    3.Wait for two minutes， and then start SMB service from\nserver.(e.g service smb start)\n    4.The processes which are accessing cifs directory may hang up.\n\nSigned-off-by: Ouyang Maochun \u003couyang.maochun@zte.com.cn\u003e\nSigned-off-by: Jiang Yong \u003cjian.yong5@zte.com.cn\u003e\nTested-by: Zhang Xianwei \u003czhang.xianwei8@zte.com.cn\u003e\nReviewed-by: Wang Liang \u003cwang.liang82@zte.com.cn\u003e\nReviewed-by: Cai Qu \u003ccai.qu@zte.com.cn\u003e\nReviewed-by: Jiang Biao \u003cjiang.biao2@zte.com.cn\u003e\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nReviewed-by: Pavel Shilovsky \u003cpiastry@etersoft.ru\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "5e608671dfbfd6a9556c31df65a4f147439eed59",
      "tree": "bb708c0bec27822d68defc54d8c79289b29d21fb",
      "parents": [
        "a3b2157e72e321fa313389ac744bbf6d6cb6986d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Feb 28 01:50:20 2013 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Feb 28 01:50:20 2013 -0500"
      },
      "message": "9p: if v9fs_fid_lookup() gets to asking server, it\u0027d better have hashed dentry\n\n... otherwise the path we\u0027d built isn\u0027t worth much.  Don\u0027t accept such fids\nobtained from paths unless dentry is still alived by the end of the work.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a3b2157e72e321fa313389ac744bbf6d6cb6986d",
      "tree": "83bbc1d8709dc609ba8c4a65d79cce9cc5d54856",
      "parents": [
        "7b5be621993567d39f09a5190c4d651241be296f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Feb 28 01:29:48 2013 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Feb 28 01:29:48 2013 -0500"
      },
      "message": "9p: make sure -\u003elookup() adds fid to the right dentry\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7b5be621993567d39f09a5190c4d651241be296f",
      "tree": "cc6bd3262eb8fd784f97fbd9124a828ccc00de81",
      "parents": [
        "3509b678a6bb93a49d9603c9c8028c8d95019539"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Feb 28 01:28:21 2013 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Feb 28 01:28:21 2013 -0500"
      },
      "message": "9p: untangle -\u003elookup() a bit\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3509b678a6bb93a49d9603c9c8028c8d95019539",
      "tree": "3ba231b44d2a2f3351f7500df70cc9e0f2555c19",
      "parents": [
        "2ea03e1d62d56c37737e43550c360b43a5e40a32"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Feb 28 01:21:38 2013 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Feb 28 01:21:38 2013 -0500"
      },
      "message": "9p: double iput() in -\u003elookup() if d_materialise_unique() fails\n\nd_materialise_unique() does iput() itself.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2ea03e1d62d56c37737e43550c360b43a5e40a32",
      "tree": "a95494fbf887da9450e4b3feaac18b0f60f838cc",
      "parents": [
        "aaeb7ecfb48ad4c8942a26874322d8918524a04f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Feb 28 01:18:14 2013 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Feb 28 01:18:14 2013 -0500"
      },
      "message": "9p: v9fs_fid_add() can\u0027t fail now\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "aaeb7ecfb48ad4c8942a26874322d8918524a04f",
      "tree": "ae2e0dbd1cb3a199e9fd92786a0da2ba810a42ef",
      "parents": [
        "c4d30967f3020cda9df9ee22af79cd1f2c284244"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Feb 28 01:13:19 2013 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Feb 28 01:13:19 2013 -0500"
      },
      "message": "v9fs: get rid of v9fs_dentry\n\n-\u003ed_fsdata can act as hlist_head...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2a7d2b96d5cba7568139d9ab157a0e97ab32440f",
      "tree": "ad029d8cc7b7068b7250e914360ec6315fdfa114",
      "parents": [
        "e3c4877de8b9d93bd47b6ee88eb594b1c1e10da5",
        "b67bfe0d42cac56c512dd5da4b1b347a23f4b70a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 27 20:58:09 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 27 20:58:09 2013 -0800"
      },
      "message": "Merge branch \u0027akpm\u0027 (final batch from Andrew)\n\nMerge third patch-bumb from Andrew Morton:\n \"This wraps me up for -rc1.\n   - Lots of misc stuff and things which were deferred/missed from\n     patchbombings 1 \u0026 2.\n   - ocfs2 things\n   - lib/scatterlist\n   - hfsplus\n   - fatfs\n   - documentation\n   - signals\n   - procfs\n   - lockdep\n   - coredump\n   - seqfile core\n   - kexec\n   - Tejun\u0027s large IDR tree reworkings\n   - ipmi\n   - partitions\n   - nbd\n   - random() things\n   - kfifo\n   - tools/testing/selftests updates\n   - Sasha\u0027s large and pointless hlist cleanup\"\n\n* emailed patches from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (163 commits)\n  hlist: drop the node parameter from iterators\n  kcmp: make it depend on CHECKPOINT_RESTORE\n  selftests: add a simple doc\n  tools/testing/selftests/Makefile: rearrange targets\n  selftests/efivarfs: add create-read test\n  selftests/efivarfs: add empty file creation test\n  selftests: add tests for efivarfs\n  kfifo: fix kfifo_alloc() and kfifo_init()\n  kfifo: move kfifo.c from kernel/ to lib/\n  arch Kconfig: centralise CONFIG_ARCH_NO_VIRT_TO_BUS\n  w1: add support for DS2413 Dual Channel Addressable Switch\n  memstick: move the dereference below the NULL test\n  drivers/pps/clients/pps-gpio.c: use devm_kzalloc\n  Documentation/DMA-API-HOWTO.txt: fix typo\n  include/linux/eventfd.h: fix incorrect filename is a comment\n  mtd: mtd_stresstest: use prandom_bytes()\n  mtd: mtd_subpagetest: convert to use prandom library\n  mtd: mtd_speedtest: use prandom_bytes\n  mtd: mtd_pagetest: convert to use prandom library\n  mtd: mtd_oobtest: convert to use prandom library\n  ...\n"
    },
    {
      "commit": "c4d30967f3020cda9df9ee22af79cd1f2c284244",
      "tree": "744565daf8f1d711c0186c3261ebf42eebe1a44e",
      "parents": [
        "634095dab2a2001844fc8b26673c0cb14a766cdf"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Feb 27 22:51:08 2013 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Feb 27 22:51:08 2013 -0500"
      },
      "message": "9p: turn fid-\u003edlist into hlist\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "634095dab2a2001844fc8b26673c0cb14a766cdf",
      "tree": "1e5aa7581ac97f82543dfc581c5eb6fa96572d3c",
      "parents": [
        "6131ffaa1f091415b7a24abb01f033d9c0a727f4"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Feb 27 22:37:21 2013 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Feb 27 22:37:21 2013 -0500"
      },
      "message": "9p: don\u0027t bother with private lock in -\u003ed_fsdata; dentry-\u003ed_lock will do just fine\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b67bfe0d42cac56c512dd5da4b1b347a23f4b70a",
      "tree": "3d465aea12b97683f26ffa38eba8744469de9997",
      "parents": [
        "1e142b29e210b5dfb2deeb6ce2210b60af16d2a6"
      ],
      "author": {
        "name": "Sasha Levin",
        "email": "sasha.levin@oracle.com",
        "time": "Wed Feb 27 17:06:00 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 27 19:10:24 2013 -0800"
      },
      "message": "hlist: drop the node parameter from iterators\n\nI\u0027m not sure why, but the hlist for each entry iterators were conceived\n\n        list_for_each_entry(pos, head, member)\n\nThe hlist ones were greedy and wanted an extra parameter:\n\n        hlist_for_each_entry(tpos, pos, head, member)\n\nWhy did they need an extra pos parameter? I\u0027m not quite sure. Not only\nthey don\u0027t really need it, it also prevents the iterator from looking\nexactly like the list iterator, which is unfortunate.\n\nBesides the semantic patch, there was some manual work required:\n\n - Fix up the actual hlist iterators in linux/list.h\n - Fix up the declaration of other iterators based on the hlist ones.\n - A very small amount of places were using the \u0027node\u0027 parameter, this\n was modified to use \u0027obj-\u003emember\u0027 instead.\n - Coccinelle didn\u0027t handle the hlist_for_each_entry_safe iterator\n properly, so those had to be fixed up manually.\n\nThe semantic patch which is mostly the work of Peter Senna Tschudin is here:\n\n@@\niterator name hlist_for_each_entry, hlist_for_each_entry_continue, hlist_for_each_entry_from, hlist_for_each_entry_rcu, hlist_for_each_entry_rcu_bh, hlist_for_each_entry_continue_rcu_bh, for_each_busy_worker, ax25_uid_for_each, ax25_for_each, inet_bind_bucket_for_each, sctp_for_each_hentry, sk_for_each, sk_for_each_rcu, sk_for_each_from, sk_for_each_safe, sk_for_each_bound, hlist_for_each_entry_safe, hlist_for_each_entry_continue_rcu, nr_neigh_for_each, nr_neigh_for_each_safe, nr_node_for_each, nr_node_for_each_safe, for_each_gfn_indirect_valid_sp, for_each_gfn_sp, for_each_host;\n\ntype T;\nexpression a,c,d,e;\nidentifier b;\nstatement S;\n@@\n\n-T b;\n    \u003c+... when !\u003d b\n(\nhlist_for_each_entry(a,\n- b,\nc, d) S\n|\nhlist_for_each_entry_continue(a,\n- b,\nc) S\n|\nhlist_for_each_entry_from(a,\n- b,\nc) S\n|\nhlist_for_each_entry_rcu(a,\n- b,\nc, d) S\n|\nhlist_for_each_entry_rcu_bh(a,\n- b,\nc, d) S\n|\nhlist_for_each_entry_continue_rcu_bh(a,\n- b,\nc) S\n|\nfor_each_busy_worker(a, c,\n- b,\nd) S\n|\nax25_uid_for_each(a,\n- b,\nc) S\n|\nax25_for_each(a,\n- b,\nc) S\n|\ninet_bind_bucket_for_each(a,\n- b,\nc) S\n|\nsctp_for_each_hentry(a,\n- b,\nc) S\n|\nsk_for_each(a,\n- b,\nc) S\n|\nsk_for_each_rcu(a,\n- b,\nc) S\n|\nsk_for_each_from\n-(a, b)\n+(a)\nS\n+ sk_for_each_from(a) S\n|\nsk_for_each_safe(a,\n- b,\nc, d) S\n|\nsk_for_each_bound(a,\n- b,\nc) S\n|\nhlist_for_each_entry_safe(a,\n- b,\nc, d, e) S\n|\nhlist_for_each_entry_continue_rcu(a,\n- b,\nc) S\n|\nnr_neigh_for_each(a,\n- b,\nc) S\n|\nnr_neigh_for_each_safe(a,\n- b,\nc, d) S\n|\nnr_node_for_each(a,\n- b,\nc) S\n|\nnr_node_for_each_safe(a,\n- b,\nc, d) S\n|\n- for_each_gfn_sp(a, c, d, b) S\n+ for_each_gfn_sp(a, c, d) S\n|\n- for_each_gfn_indirect_valid_sp(a, c, d, b) S\n+ for_each_gfn_indirect_valid_sp(a, c, d) S\n|\nfor_each_host(a,\n- b,\nc) S\n|\nfor_each_host_safe(a,\n- b,\nc, d) S\n|\nfor_each_mesh_entry(a,\n- b,\nc, d) S\n)\n    ...+\u003e\n\n[akpm@linux-foundation.org: drop bogus change from net/ipv4/raw.c]\n[akpm@linux-foundation.org: drop bogus hunk from net/ipv6/raw.c]\n[akpm@linux-foundation.org: checkpatch fixes]\n[akpm@linux-foundation.org: fix warnings]\n[akpm@linux-foudnation.org: redo intrusive kvm changes]\nTested-by: Peter Senna Tschudin \u003cpeter.senna@gmail.com\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Sasha Levin \u003csasha.levin@oracle.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Gleb Natapov \u003cgleb@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e8c8d1bc063bc88cfa1356266027b5075d3a82d7",
      "tree": "b657e3a3aa9eb8499690bb2fc0cbd908cdd2a334",
      "parents": [
        "326cf0f0f308933c10236280a322031f0097205d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 27 17:05:04 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 27 19:10:20 2013 -0800"
      },
      "message": "idr: remove MAX_IDR_MASK and move left MAX_IDR_* into idr.c\n\nMAX_IDR_MASK is another weirdness in the idr interface.  As idr covers\nwhole positive integer range, it\u0027s defined as 0x7fffffff or INT_MAX.\n\nIts usage in idr_find(), idr_replace() and idr_remove() is bizarre.\nThey basically mask off the sign bit and operate on the rest, so if\nthe caller, by accident, passes in a negative number, the sign bit\nwill be masked off and the remaining part will be used as if that was\nthe input, which is worse than crashing.\n\nThe constant is visible in idr.h and there are several users in the\nkernel.\n\n* drivers/i2c/i2c-core.c:i2c_add_numbered_adapter()\n\n  Basically used to test if adap-\u003enr is a negative number which isn\u0027t\n  -1 and returns -EINVAL if so.  idr_alloc() already has negative\n  @start checking (w/ WARN_ON_ONCE), so this can go away.\n\n* drivers/infiniband/core/cm.c:cm_alloc_id()\n  drivers/infiniband/hw/mlx4/cm.c:id_map_alloc()\n\n  Used to wrap cyclic @start.  Can be replaced with max(next, 0).\n  Note that this type of cyclic allocation using idr is buggy.  These\n  are prone to spurious -ENOSPC failure after the first wraparound.\n\n* fs/super.c:get_anon_bdev()\n\n  The ID allocated from ida is masked off before being tested whether\n  it\u0027s inside valid range.  ida allocated ID can never be a negative\n  number and the masking is unnecessary.\n\nUpdate idr_*() functions to fail with -EINVAL when negative @id is\nspecified and update other MAX_IDR_MASK users as described above.\n\nThis leaves MAX_IDR_MASK without any user, remove it and relocate\nother MAX_IDR_* constants to lib/idr.c.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Roland Dreier \u003croland@kernel.org\u003e\nCc: Sean Hefty \u003csean.hefty@intel.com\u003e\nCc: Hal Rosenstock \u003chal.rosenstock@gmail.com\u003e\nCc: \"Marciniszyn, Mike\" \u003cmike.marciniszyn@intel.com\u003e\nCc: Jack Morgenstein \u003cjackm@dev.mellanox.co.il\u003e\nCc: Or Gerlitz \u003cogerlitz@mellanox.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: Wolfram Sang \u003cwolfram@the-dreams.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d6870312659d8c6e80419ddb09d366bdd0f17ab6",
      "tree": "12a5a607d1a9057b0e56f2e9f2c50391cc22075d",
      "parents": [
        "94960e8c2e69d1e4c01c10c7b00bc0f7eba49fa1"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 27 17:05:01 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 27 19:10:20 2013 -0800"
      },
      "message": "nfs4client: convert to idr_alloc()\n\nConvert to the much saner new idr interface.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6b207ba3ebe7428a18878c58130e13a3e3bccef9",
      "tree": "964924c426dbf3ed16fe4a4e8e66350fa812af24",
      "parents": [
        "4542da631ad210716d097aa803a0828f9fed5e87"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 27 17:04:51 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 27 19:10:19 2013 -0800"
      },
      "message": "ocfs2: convert to idr_alloc()\n\nConvert to the much saner new idr interface.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nAcked-by: Joel Becker \u003cjlbec@evilplan.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4542da631ad210716d097aa803a0828f9fed5e87",
      "tree": "ea7254bb010ea1cd95cc7893657838e6e0860ee4",
      "parents": [
        "2a86b3e74f12bcdd13ceb1bf333bc2d5f43b3c02"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 27 17:04:50 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 27 19:10:19 2013 -0800"
      },
      "message": "inotify: convert to idr_alloc()\n\nConvert to the much saner new idr interface.\n\nNote that the adhoc cyclic id allocation is buggy.  If wraparound\nhappens, the previous code with idr_get_new_above() may segfault and\nthe converted code will trigger WARN and return -EINVAL.  Even if it\u0027s\nfixed to wrap to zero, the code will be prone to unnecessary -ENOSPC\nfailures after the first wraparound.  We probably need to implement\nproper cyclic support in idr.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: John McCutchan \u003cjohn@johnmccutchan.com\u003e\nCc: Robert Love \u003crlove@rlove.org\u003e\nCc: Eric Paris \u003ceparis@parisplace.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2a86b3e74f12bcdd13ceb1bf333bc2d5f43b3c02",
      "tree": "142d8492bdeb66b6edfba7302ccc38dbd1e7227a",
      "parents": [
        "a1c36b166be76763cfab1a4308a00d6ffd8a2cc0"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 27 17:04:49 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 27 19:10:19 2013 -0800"
      },
      "message": "dlm: convert to idr_alloc()\n\nConvert to the much saner new idr interface.  Error return values from\nrecover_idr_add() mix -1 and -errno.  The conversion doesn\u0027t change\nthat but it looks iffy.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "644e1b90ef06611268b48a0a8d14a0ab990ab3f4",
      "tree": "61706c6163a0b7afd448d1fb57b82cfe4cdf1304",
      "parents": [
        "d97bec801d726abb14ab0e18d6aef5293580a467"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 27 17:03:48 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 27 19:10:14 2013 -0800"
      },
      "message": "inotify: don\u0027t use idr_remove_all()\n\nidr_destroy() can destroy idr by itself and idr_remove_all() is being\ndeprecated.  Drop its usage.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: John McCutchan \u003cjohn@johnmccutchan.com\u003e\nCc: Robert Love \u003crlove@rlove.org\u003e\nCc: Eric Paris \u003ceparis@parisplace.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d97bec801d726abb14ab0e18d6aef5293580a467",
      "tree": "c0acd0150710481d9bdc8b4ecf12678a14c1eb2b",
      "parents": [
        "a67a380e6f8534b9fed3b3b663d108bf35af0132"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 27 17:03:46 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 27 19:10:14 2013 -0800"
      },
      "message": "nfs: idr_destroy() no longer needs idr_remove_all()\n\nidr_destroy() can destroy idr by itself and idr_remove_all() is being\ndeprecated.  Drop reference to idr_remove_all().  Note that the code\nwasn\u0027t completely correct before because idr_remove() on all entries\ndoesn\u0027t necessarily release all idr_layers which could lead to memory\nleak.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a67a380e6f8534b9fed3b3b663d108bf35af0132",
      "tree": "0b15ac35934ce2f86d44db7de8cc1a47c724e163",
      "parents": [
        "cda95406c8fe491c01b3abc422c25a613e9f36ea"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 27 17:03:45 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 27 19:10:13 2013 -0800"
      },
      "message": "dlm: don\u0027t use idr_remove_all()\n\nidr_destroy() can destroy idr by itself and idr_remove_all() is being\ndeprecated.\n\nThe conversion isn\u0027t completely trivial for recover_idr_clear() as it\u0027s\nthe only place in kernel which makes legitimate use of idr_remove_all()\nw/o idr_destroy().  Replace it with idr_remove() call inside\nidr_for_each_entry() loop.  It goes on top so that it matches the\noperation order in recover_idr_del().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Christine Caulfield \u003cccaulfie@redhat.com\u003e\nCc: David Teigland \u003cteigland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cda95406c8fe491c01b3abc422c25a613e9f36ea",
      "tree": "6b9337646a9a9b1b5c90356e3fc351aeec550802",
      "parents": [
        "a15abcc961426c9e560bec26785e05b68154c474"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 27 17:03:44 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 27 19:10:13 2013 -0800"
      },
      "message": "dlm: use idr_for_each_entry() in recover_idr_clear() error path\n\nConvert recover_idr_clear() to use idr_for_each_entry() instead of\nidr_for_each().  It\u0027s somewhat less efficient this way but it shouldn\u0027t\nmatter in an error path.  This is to help with deprecation of\nidr_remove_all().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Christine Caulfield \u003cccaulfie@redhat.com\u003e\nCc: David Teigland \u003cteigland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5e62adef9e1d3e8e26dfd6c95be484b955ad2927",
      "tree": "f3d24b12ccfc55612a7b140e342f5023d92d131d",
      "parents": [
        "80de7f7ae013b1e287059f39eaba2a12219681cf"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed Feb 27 17:03:22 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 27 19:10:12 2013 -0800"
      },
      "message": "fs/seq_file.c:seq_lseek(): fix switch statement indenting\n\n[akpm@linux-foundation.org: checkpatch fixes]\nCc: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "80de7f7ae013b1e287059f39eaba2a12219681cf",
      "tree": "ab9eb043410bac11e6adfc765803ba7efbf0a534",
      "parents": [
        "80d26af89a7249aa5475467000322163c60cdd72"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@openvz.org",
        "time": "Wed Feb 27 17:03:21 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 27 19:10:12 2013 -0800"
      },
      "message": "seq-file: use SEEK_ macros instead of hardcoded numbers\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c2c1b089b44b783bd50fae4bccaa6f367f92e492",
      "tree": "222677ea402d630ca50416dc76f9ae187d7f7acc",
      "parents": [
        "87ebdc00eeb474615496d5f10eed46709e25c707"
      ],
      "author": {
        "name": "Zhang Yanfei",
        "email": "zhangyanfei@cn.fujitsu.com",
        "time": "Wed Feb 27 17:03:17 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 27 19:10:11 2013 -0800"
      },
      "message": "fs/proc/vmcore.c: put if tests in the top of the while loop to reduce duplication\n\nIn read_vmcore() two `if\u0027 tests are duplicated.  Change the position of\nthem could reduce the duplication.  This change does not affect the\nbehaviour of the function.\n\n[akpm@linux-foundation.org: avoid `if (foo \u003d bar)\u0027 thing, use min_t()]\n[akpm@linux-foundation.org: s/max_t/min_t/]\nSigned-off-by: Zhang Yanfei \u003czhangyanfei@cn.fujitsu.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "87ebdc00eeb474615496d5f10eed46709e25c707",
      "tree": "614bdfd3620e8e9692bc2d04e718b250081f8d7b",
      "parents": [
        "e579d2c259be42b6f29458327e5153b22414b031"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed Feb 27 17:03:16 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 27 19:10:11 2013 -0800"
      },
      "message": "fs/proc: clean up printks\n\n- use pr_foo() throughout\n\n- remove a couple of duplicated KERN_WARNINGs, via WARN(KERN_WARNING \"...\")\n\n- nuke a few warnings which I\u0027ve never seen happen, ever.\n\nCc: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e579d2c259be42b6f29458327e5153b22414b031",
      "tree": "ac3babd0f075ddfeb5e6fa083651852b34a0a79f",
      "parents": [
        "5d1fadc1472396d602f0eeb10d37519e2a14e8bc"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "keescook@chromium.org",
        "time": "Wed Feb 27 17:03:15 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 27 19:10:11 2013 -0800"
      },
      "message": "coredump: remove redundant defines for dumpable states\n\nThe existing SUID_DUMP_* defines duplicate the newer SUID_DUMPABLE_*\ndefines introduced in 54b501992dd2 (\"coredump: warn about unsafe\nsuid_dumpable / core_pattern combo\").  Remove the new ones, and use the\nprior values instead.\n\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nReported-by: Chen Gang \u003cgang.chen@asianux.com\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Alan Cox \u003calan@linux.intel.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Doug Ledford \u003cdledford@redhat.com\u003e\nCc: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nCc: James Morris \u003cjames.l.morris@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b88a105802e9aeb6e234e8106659f5d1271081bb",
      "tree": "589342d16e494deeb20da933fe409088e59b04d8",
      "parents": [
        "6b46419b0462ae565880f02e9cd0baf9b25ea71f"
      ],
      "author": {
        "name": "Oleksij Rempel",
        "email": "bug-track@fisher-privat.net",
        "time": "Wed Feb 27 17:03:09 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 27 19:10:11 2013 -0800"
      },
      "message": "fat: mark fs as dirty on mount and clean on umount\n\nThere is no documented methods to mark FAT as dirty.  Unofficially MS\nstarted to use reserved Byte in boot sector for this purpose, at least\nsince Win 2000.  With Win 7 user is warned if fs is dirty and asked to\nclean it.\n\nDifferent versions of Win, handle it in different ways, but always have\nsame meaning:\n\n- Win 2000 and XP, set it on write operations and\n  remove it after operation was finnished\n- Win 7, set dirty flag on first write and remove it on umount.\n\nWe will do it as follows:\n\n- set dirty flag on mount. If fs was initially dirty, warn user,\n  remember it and do not do any changes to boot sector.\n- clean it on umount. If fs was initially dirty, leave it dirty.\n- do not do any thing if fs mounted read-only.\n- TODO: leave fs dirty if we found some error after mount.\n\nSigned-off-by: Oleksij Rempel \u003cbug-track@fisher-privat.net\u003e\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6b46419b0462ae565880f02e9cd0baf9b25ea71f",
      "tree": "b61bdf965ec8457a35a6174cbeff09897debdc90",
      "parents": [
        "899bed05e9f6bbb21776f9ebd88f5631987f987a"
      ],
      "author": {
        "name": "Oleksij Rempel",
        "email": "bug-track@fisher-privat.net",
        "time": "Wed Feb 27 17:03:07 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 27 19:10:10 2013 -0800"
      },
      "message": "fat: add extended fileds to struct fat_boot_sector\n\nLater we will need \"state\" field to check if volume was cleanly unmounted.\n\nSigned-off-by: Oleksij Rempel \u003cbug-track@fisher-privat.net\u003e\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "899bed05e9f6bbb21776f9ebd88f5631987f987a",
      "tree": "3bf5ddc222085ac01f04080b0b307dd69d3f004a",
      "parents": [
        "324ef39a8a4f693035d63527f16100ed27310ecc"
      ],
      "author": {
        "name": "Vyacheslav Dubeyko",
        "email": "slava@dubeyko.com",
        "time": "Wed Feb 27 17:03:06 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 27 19:10:10 2013 -0800"
      },
      "message": "hfsplus: fix issue with unzeroed unused b-tree nodes\n\nThe fsck_hfs (under MacOS X) complains about unzeroed unused b-tree nodes\nafter deletion of folders\u0027 tree under Linux.\n\nSYMPTOMS:\n\n  Running Disk Utiltiy\u0027s \"Verify Disk\" on \"test\" gives the following:\n  Verifying volume “Test”\n  Checking file systemChecking Journaled HFS Plus volume.\n  Checking extents overflow file.\n  Checking catalog file.\n  Unused node is not erased (node \u003d 3111)\n  Checking multi-linked files.\n  Checking catalog hierarchy.\n  Checking extended attributes file.\n  Checking volume bitmap.\n  Checking volume information.\n  The volume Test was found corrupt and needs to be repaired.\n  Error: This disk needs to be repaired. Click Repair Disk.\n\nREPRODUCING PATH:\n\n1. Prepare HFS+ (non-case sensitive) partition (for example, 5GB)\n   under MacOS X.\n2. Copy linux kernel source tree (for example, 3.7-rc6 version) on\n   this partition under MacOS X.\n3. Then switch to Linux and mount this prepared partition.\n4. Execute `sudo rm -r` under prepared directory with linux kernel\n   source tree.\n5. Unmount and boot back into OS X.\n6. Open up Disk Utility and verify partition.\n\nREPRODUCIBILITY: 100%\n\nFIX:\n\nIt is added code of node clearing in hfs_bnode_put() method for the case\nwhen node has flag HFS_BNODE_DELETED.\n\nSigned-off-by: Vyacheslav Dubeyko \u003cslava@dubeyko.com\u003e\nReported-by: Kyle Laracey \u003ckalaracey@gmail.com\u003e\nAcked-by: Hin-Tak Leung \u003chtl10@users.sourceforge.net\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "324ef39a8a4f693035d63527f16100ed27310ecc",
      "tree": "1814515cf6139fe1b4ebae8d6641c9ec6293d396",
      "parents": [
        "127e5f5ae51eff44c9bff673f24e8587caa4e29f"
      ],
      "author": {
        "name": "Vyacheslav Dubeyko",
        "email": "slava@dubeyko.com",
        "time": "Wed Feb 27 17:03:04 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 27 19:10:10 2013 -0800"
      },
      "message": "hfsplus: add support of manipulation by attributes file\n\nAdd support of manipulation by attributes file.\n\nSigned-off-by: Vyacheslav Dubeyko \u003cslava@dubeyko.com\u003e\nReported-by: Hin-Tak Leung \u003chtl10@users.sourceforge.net\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "127e5f5ae51eff44c9bff673f24e8587caa4e29f"
}
