)]}'
{
  "log": [
    {
      "commit": "a654b9d4e7152b06557e2f22bcf0a245bc88bc98",
      "tree": "a4b6ec7627b17ecfc37eb700d2ba29fa10a52d74",
      "parents": [
        "c1a792a6eea42d88a99e6ace215b22fbdb76c7b6"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Thu Oct 28 20:31:47 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:47 2010 +0200"
      },
      "message": "hwmon: (w83795) Get rid of VRLSB_SHIFT\n\nVRLSB_SHIFT is a non-sense, the actual shift depends on the sensor\ntype (fans need 4, other sensors need 6). Get rid of it to prevent\nany confusion. Also get rid of the useless masking, the meaningful\nbits are always the MSb so there\u0027s nothing to mask out after\nshifting.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "c1a792a6eea42d88a99e6ace215b22fbdb76c7b6",
      "tree": "92c6f630e7044fdd65100326ed0489a6cc1f5b0a",
      "parents": [
        "02728ffef9c2cf067e654e832b8c282a8a4d0b16"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Thu Oct 28 20:31:47 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:47 2010 +0200"
      },
      "message": "hwmon: (w83795) Avoid reading the same register twice\n\nShorten driver load time by avoiding duplicate register access during\ninitialization. This saves 112 ms on modprobe on my test system.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "02728ffef9c2cf067e654e832b8c282a8a4d0b16",
      "tree": "00da2e02471413e8698cd5de3258329b5f03e1db",
      "parents": [
        "54891a3c135b30ca0718dbf81f78260795a5b2fe"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Thu Oct 28 20:31:47 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:47 2010 +0200"
      },
      "message": "hwmon: (w83795) Rework beep_enable implementation\n\nHandle beep_enable just like all other beep bits. It doesn\u0027t need\nanything special, so let\u0027s avoid redundant code. This also saves a\nduplicate register read at initialization time.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "54891a3c135b30ca0718dbf81f78260795a5b2fe",
      "tree": "9df28c7465d992c66f7089214bb6c8db849df4d2",
      "parents": [
        "dd127f5ccd7c61eb7ee215120a7809eb67c1ed7f"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Thu Oct 28 20:31:47 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:47 2010 +0200"
      },
      "message": "hwmon: (w83795) Report PECI agent Tbase values\n\nOn systems with PECI, report PECI agent Tbase temperature values.\nThis is informative only.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "dd127f5ccd7c61eb7ee215120a7809eb67c1ed7f",
      "tree": "9be7c4c8f1b35526c5b8357e25ccb5e8e99eaff9",
      "parents": [
        "a0ce402fb006bd694436be8c8522fbe5e6823ac1"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Thu Oct 28 20:31:47 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:47 2010 +0200"
      },
      "message": "hwmon: (w83795) Properly handle negative temperatures\n\nThe temperature registers hold regular 2\u0027s complement values, no need\nto add any arithmetics.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "a0ce402fb006bd694436be8c8522fbe5e6823ac1",
      "tree": "1de416919e3c23dfbde9e31ca6575b8d2bca4668",
      "parents": [
        "01879a855fb6bdb3fb820344a7a145de8a5cdbda"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Thu Oct 28 20:31:47 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:47 2010 +0200"
      },
      "message": "hwmon: (w83795) Rename temperature limit attributes\n\nFollow the standard for temperature limit attribute naming, so that\nlibsensors will pick the values.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "01879a855fb6bdb3fb820344a7a145de8a5cdbda",
      "tree": "152e9a958bfdd71692455d18348623b1cbb40929",
      "parents": [
        "0e256018b0f35d1b22ca37e1d0e207f7ba3d0076"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Thu Oct 28 20:31:47 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:47 2010 +0200"
      },
      "message": "hwmon: (w83795) Fix PWM duty cycle frequency attributes\n\nThe PWM duty cycle frequenty attributes are improperly named\n(fanN_div instead of pwmN_div) and contain raw values instead of\nactual frequencies. Rename them and fix their contents.\n\nAlso improve the logic when the user asks for a new frequency, to\nalways pick the closest supported frequency. The algorithm could\ncertainly be optimized, but the operation is infrequent enough that\nI don\u0027t think it\u0027s worth the effort.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "0e256018b0f35d1b22ca37e1d0e207f7ba3d0076",
      "tree": "029db8e2bd87afb27c9d4211ff724958bade47b4",
      "parents": [
        "6c82b2f3fb31e43a9b898769afd2151ca64986a4"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Thu Oct 28 20:31:46 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:46 2010 +0200"
      },
      "message": "hwmon: (w83795) Add support for dynamic in0-2 limits\n\nThe W83795G can be configured to set the in0, in1 and/or in2 voltage\nlimits dynamically based on VID input pins. Switch the respective\nsysfs attributes to read-only.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "6c82b2f3fb31e43a9b898769afd2151ca64986a4",
      "tree": "1315014b74cc4ea9cea40c7fc8bf60f7826cca3d",
      "parents": [
        "71caf46fbf39207a324a16ddb6d8ef37c05777b9"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Thu Oct 28 20:31:46 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:46 2010 +0200"
      },
      "message": "hwmon: (w83795) Fix LSB reading of fan speeds\n\nMisplaced parentheses caused the wrong register value to be read,\nresulting in random LSB for fan speed values and limits.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "71caf46fbf39207a324a16ddb6d8ef37c05777b9",
      "tree": "9df260f10ffc8a644c47cec4952bea5df85d34c4",
      "parents": [
        "6f9dfd85f7b14dd3ea87106909dc54def08947b1"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Thu Oct 28 20:31:46 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:46 2010 +0200"
      },
      "message": "hwmon: (w83795) Clean up probe function\n\n* The data structure is zalloc\u0027d, so no need to set individual fields\n  to 0 explicitly.\n* Refactor the handling of pins that can be used for either\n  temperature or voltage monitoring.\n* Misc other clean-ups.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "6f9dfd85f7b14dd3ea87106909dc54def08947b1",
      "tree": "9125e0dc58c36738ffb6dba087aa74492bc4bcbe",
      "parents": [
        "80646b95863ba282330d07290c79254c2f002139"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Thu Oct 28 20:31:46 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:46 2010 +0200"
      },
      "message": "hwmon: (w83795) Fix in17-in20 gain factor\n\nGain bit set means 1x gain and cleared means 8x gain, not the other\nway around.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "80646b95863ba282330d07290c79254c2f002139",
      "tree": "a990d3f36160ebb9530e8a30a237c9266f951a8c",
      "parents": [
        "86ef4d2fd5921ff0bcfd1c0d88403a08862087bc"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Thu Oct 28 20:31:46 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:46 2010 +0200"
      },
      "message": "hwmon: (w83795) Only start monitoring if needed\n\nThis saves an SMBus write if monitoring was already enabled.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "86ef4d2fd5921ff0bcfd1c0d88403a08862087bc",
      "tree": "578d4918c3438c9c4eb6b1bbeac8891f55e2983f",
      "parents": [
        "b2cc528e5838d744892b30c5104bd872a439088f"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Thu Oct 28 20:31:46 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:46 2010 +0200"
      },
      "message": "hwmon: (w83795) Add const markers\n\nAttribute structures can be made const. Same for the I2C address\nlist.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "b2cc528e5838d744892b30c5104bd872a439088f",
      "tree": "27f3a0718da764b23addbc99e06487dc0918ac83",
      "parents": [
        "b5f6a90a0bbedc07a0b0b82b83aa716c7203fcd2"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Thu Oct 28 20:31:46 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:46 2010 +0200"
      },
      "message": "hwmon: (w83795) Only create fan[1-8]_target files when needed\n\nOnly create fan[1-8]_target files when the fan in question can be\ncontrolled (PWM output is present.) Also name these files according\nto the standard.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "b5f6a90a0bbedc07a0b0b82b83aa716c7203fcd2",
      "tree": "6a37212c0c55fda155c239bead95c7ef8b2c1483",
      "parents": [
        "87df0dad3e024538d2d0d2ce786230e639c2ea8b"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Thu Oct 28 20:31:46 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:46 2010 +0200"
      },
      "message": "hwmon: (w83795) Move PWM attributes to a dedidated array\n\nUse a dedicated 2D array for PWM attributes. This way, PWM attributes\nare handled the same way as other attributes, this is more consistent.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "87df0dad3e024538d2d0d2ce786230e639c2ea8b",
      "tree": "60b5be6938e3050ce7a117a26aa407f6315d3d0c",
      "parents": [
        "6f3dcde9c6dcbbe781a2a98900552bcb989733e3"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Thu Oct 28 20:31:45 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:45 2010 +0200"
      },
      "message": "hwmon: (w83795) Use 2D arrays for many device attributes\n\nUse 2D arrays for in, fan, temp and dts device attributes. Using\nlinear arrays is too risky as we have to skip some groups depending\non the device model and configuration. Adding or removing an\nattribute would let the driver build silently but then it would crash\nat runtime. With 2D arrays, the consistency checking happens at build\ntime, which is much safer.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "6f3dcde9c6dcbbe781a2a98900552bcb989733e3",
      "tree": "9eb3891644057a011d24c10e8330299b647a490a",
      "parents": [
        "892514a6372d49ffe9749fb86cc587b4dce90733"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Thu Oct 28 20:31:45 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:45 2010 +0200"
      },
      "message": "hwmon: (w83795) Merge w83795_create_files and w83795_remove_files\n\nFunctions w83795_create_files and w83795_remove_files iterate over\nthe same set of files, just calling a different function. Merge them\ninto a single function which takes the action as a parameter. This\nsaves code, and also ensure that file creation and deletion are in\nsync.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "892514a6372d49ffe9749fb86cc587b4dce90733",
      "tree": "766bd801a21b585f78f5e6eed1ac7c681b826777",
      "parents": [
        "2fa09878ba1dc458b8cb6e9c8fbc8f2e5401d2b2"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Thu Oct 28 20:31:45 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:45 2010 +0200"
      },
      "message": "hwmon: (w83795) Move file creation to a separate function too\n\nFunction w83795_probe() is way too big, move file creation to a separate\nfunction to make it more readable.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "2fa09878ba1dc458b8cb6e9c8fbc8f2e5401d2b2",
      "tree": "60165028341195ff004c5dac0f9702c8e23aaace",
      "parents": [
        "2be381de0f1e5e0324e8b373e7a84fc9d25d05d3"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Thu Oct 28 20:31:45 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:45 2010 +0200"
      },
      "message": "hwmon: (w83795) Move files removal to a separate function\n\nSysfs files must be removed on device removal but also when device\nregistration fails. Move the code to a separate function to avoid\ncode redundancy.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "2be381de0f1e5e0324e8b373e7a84fc9d25d05d3",
      "tree": "5211865f27cc643d7ec3c867a668740d66a48b60",
      "parents": [
        "b2469f422f9ee2054359c4ec609c3bdb1f2d52f5"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Thu Oct 28 20:31:45 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:45 2010 +0200"
      },
      "message": "hwmon: (w83795) Improve detection routine\n\nCheck for additional identification registers. Improve debugging\nmessages on failed detection.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "b2469f422f9ee2054359c4ec609c3bdb1f2d52f5",
      "tree": "2f7052c24378f144dc940f1095b3c408a61d1ba1",
      "parents": [
        "093d1a4794cc23dd221019eb1cdf42b16b48abcc"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Thu Oct 28 20:31:45 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:45 2010 +0200"
      },
      "message": "hwmon: (w83795) Refactor bank selection\n\nMove the bank selection code to a separate function, to avoid\nduplicating it in read and write functions. Improve error reporting\non register access error.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "093d1a4794cc23dd221019eb1cdf42b16b48abcc",
      "tree": "c306a2d26ed2d90f3c53e26790aca495167a59a3",
      "parents": [
        "315bacfdbe5a77309c256b296f30bee13d59462b"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Thu Oct 28 20:31:45 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:45 2010 +0200"
      },
      "message": "hwmon: (w83795) Drop duplicate enum\n\nEnum chips and chip_types are redundant, get rid of the former. Fix\nthe detection code to properly identify the chip variant and name the\nclient accordingly.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "315bacfdbe5a77309c256b296f30bee13d59462b",
      "tree": "a3973d53c67e812c3a6ee5e6b4556af68d653761",
      "parents": [
        "792d376b4f3f6af302d40373fa864f8b8e691c53"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Thu Oct 28 20:31:45 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:45 2010 +0200"
      },
      "message": "hwmon: (w83795) Misc cleanups\n\n* Improve driver description.\n* Drop unused macro.\n* Drop unreachable code.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "792d376b4f3f6af302d40373fa864f8b8e691c53",
      "tree": "38b51491a8d39f31d789c236b69fc8dad182a647",
      "parents": [
        "62991f7ab395b57b86512d47a6017266e2e615f2"
      ],
      "author": {
        "name": "Wei Song",
        "email": "Wsong@nuvoton.com",
        "time": "Thu Oct 28 20:31:44 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:44 2010 +0200"
      },
      "message": "hwmon: New driver for the W83795G/ADG monitoring chips\n\nThere is still much work needed, but I wanted to give Wei the credit\nhe deserves. I\u0027ve merged some of my own fixes already, to make\ngcc and checkpatch happy. Individual fixes and improvements from me\nwill follow.\n\n[JD: Fix build errors]\n[JD: Coding style cleanups]\n[JD: Get rid of forward declarations]\n[JD: Drop VID support]\n[JD: Drop fault output control feature]\n[JD: Use lowercase for inline function names]\n[JD: Use strict variants of the strtol/ul functions]\n[JD: Shorten the read and write function names]\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "62991f7ab395b57b86512d47a6017266e2e615f2",
      "tree": "941e97fab59c21b1ace71f9c7410251453f6a3f1",
      "parents": [
        "9c627e3be3e8f36eda73ed9e8aa4763582841c1f"
      ],
      "author": {
        "name": "Maurus Cuelenaere",
        "email": "mcuelenaere@gmail.com",
        "time": "Thu Oct 28 20:31:44 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:44 2010 +0200"
      },
      "message": "hwmon: (s3c-hwmon) Depend on S3C_ADC\n\nThis way we don\u0027t need to modify Kconfig every time a new SoC comes along to\nmake this driver support it. Also fix some typos while I\u0027m at it.\n\nSigned-off-by: Maurus Cuelenaere \u003cmcuelenaere@gmail.com\u003e\nReviewed-by: Guenter Roeck \u003cguenter.roeck@ericsson.com\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "9c627e3be3e8f36eda73ed9e8aa4763582841c1f",
      "tree": "e04a1c7d96ea649e2f7831d388fa6b643411f0a3",
      "parents": [
        "caaa0f36c378c6fec6fd5260a63566e002ac4a84"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Oct 28 20:31:44 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:44 2010 +0200"
      },
      "message": "hwmon: (s3c-hwmon) Use a real mutex\n\nThe semaphore which protects the ADC is semantically a mutex. Use a\nreal mutex.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ben Dooks \u003cben-linux@fluff.org\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "caaa0f36c378c6fec6fd5260a63566e002ac4a84",
      "tree": "4f011fdeaf8e0ce4565e36c5dd9aec948061f053",
      "parents": [
        "e3cd9528af4d1fd404eefe16e52ae421f99a7817"
      ],
      "author": {
        "name": "Shubhrajyoti D",
        "email": "shubhrajyoti@ti.com",
        "time": "Thu Oct 28 20:31:44 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:44 2010 +0200"
      },
      "message": "hwmon: (lm75) Trivial changes to pacify the checkpatch\n\nSome trivial changes to pacify the checkpatch.\n\nSigned-off-by: Shubhrajyoti D \u003cshubhrajyoti@ti.com\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "e3cd9528af4d1fd404eefe16e52ae421f99a7817",
      "tree": "fe43f5a2ab475769ede0c639dd5823a8c6937bc4",
      "parents": [
        "c4f99a2b8fb4c564865f0037a2b7be690d4409f3"
      ],
      "author": {
        "name": "Shubhrajyoti D",
        "email": "shubhrajyoti@ti.com",
        "time": "Thu Oct 28 20:31:44 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:44 2010 +0200"
      },
      "message": "hwmon: (lm75) Make the writing to sysfs more robust\n\nCurrently we get the checkpatch warning\nconsider using strict_strtol in preference to simple_strtol.\nAlso we should not allow any partially numeric values.\n\nSigned-off-by: Shubhrajyoti D \u003cshubhrajyoti@ti.com\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "c4f99a2b8fb4c564865f0037a2b7be690d4409f3",
      "tree": "3b6b7f2261be322412f9dd9eb0df6e3fed7f552c",
      "parents": [
        "0c01b644f77a3df892a48a59901997469aeab0a7"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Thu Oct 28 20:31:44 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:44 2010 +0200"
      },
      "message": "hwmon: (lm90) Add support for the W83L771W/G\n\nI was wondering if that chip ever existed publicly... Apparently yes,\nso add support for it.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nTested-by: Alexander Stein \u003calexander.stein@informatik.tu-chemnitz.de\u003e\nAcked-by: Guenter Roeck \u003cguenter.roeck@ericsson.com\u003e\n"
    },
    {
      "commit": "0c01b644f77a3df892a48a59901997469aeab0a7",
      "tree": "b202fe917771ed4816e4f71730571f364441d468",
      "parents": [
        "1179324c411edcefb28a5293f8cc6a5bd9567448"
      ],
      "author": {
        "name": "Guenter Roeck",
        "email": "guenter.roeck@ericsson.com",
        "time": "Thu Oct 28 20:31:44 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:44 2010 +0200"
      },
      "message": "hwmon: (lm90) Add support for update_interval sysfs attribute\n\nSigned-off-by: Guenter Roeck \u003cguenter.roeck@ericsson.com\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "1179324c411edcefb28a5293f8cc6a5bd9567448",
      "tree": "419a050116f8c195b62191caa8e45523d7d30cfc",
      "parents": [
        "4667bcb8d8fc081a804a798df70dc91241946e0a"
      ],
      "author": {
        "name": "Guenter Roeck",
        "email": "guenter.roeck@ericsson.com",
        "time": "Thu Oct 28 20:31:44 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:44 2010 +0200"
      },
      "message": "hwmon: (lm90) Introduce capability flag to indicate broken ALERT functionality\n\nSigned-off-by: Guenter Roeck \u003cguenter.roeck@ericsson.com\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "4667bcb8d8fc081a804a798df70dc91241946e0a",
      "tree": "e04d375e9354fe65e6436c5b2f0651501f81e207",
      "parents": [
        "15b66ab69051c014d0ba9f46f7081a8a7e6ad1c3"
      ],
      "author": {
        "name": "Guenter Roeck",
        "email": "guenter.roeck@ericsson.com",
        "time": "Thu Oct 28 20:31:43 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:43 2010 +0200"
      },
      "message": "hwmon: (lm90) Introduce chip parameter structure\n\nInstead of using switch/case and if statements in probe, define chip specific\nfunctionality in a parameter structure array.\n\nSigned-off-by: Guenter Roeck \u003cguenter.roeck@ericsson.com\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "15b66ab69051c014d0ba9f46f7081a8a7e6ad1c3",
      "tree": "70ce3b77f71d5cd340ece365c9331e9604a5bba8",
      "parents": [
        "06e1c0a2167d48442d0bd06373390886670aa6e5"
      ],
      "author": {
        "name": "Guenter Roeck",
        "email": "guenter.roeck@ericsson.com",
        "time": "Thu Oct 28 20:31:43 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:43 2010 +0200"
      },
      "message": "hwmon: (lm90) Rearrange code to no longer require forward declarations\n\nSigned-off-by: Guenter Roeck \u003cguenter.roeck@ericsson.com\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "06e1c0a2167d48442d0bd06373390886670aa6e5",
      "tree": "ab8dd85f43e2d69ab2fcfd5a2f053ac7923a9685",
      "parents": [
        "6948708dd07573c578aa99f80915cd1867334abe"
      ],
      "author": {
        "name": "Guenter Roeck",
        "email": "guenter.roeck@ericsson.com",
        "time": "Thu Oct 28 20:31:43 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:43 2010 +0200"
      },
      "message": "hwmon: (lm90) Add support for max6695 and max6696\n\nSigned-off-by: Guenter Roeck \u003cguenter.roeck@ericsson.com\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "6948708dd07573c578aa99f80915cd1867334abe",
      "tree": "ff218b1febbe70410d98589ae058cbad3784c0aa",
      "parents": [
        "13c84951a3d75ba820adf47eb2a3b1c5ab1fa635"
      ],
      "author": {
        "name": "Guenter Roeck",
        "email": "guenter.roeck@ericsson.com",
        "time": "Thu Oct 28 20:31:43 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:43 2010 +0200"
      },
      "message": "hwmon: (lm90) Add support for extra features of max6659\n\nSigned-off-by: Guenter Roeck \u003cguenter.roeck@ericsson.com\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "13c84951a3d75ba820adf47eb2a3b1c5ab1fa635",
      "tree": "bb9eeb881f6e170ec97d744059732433d667e2f4",
      "parents": [
        "96512861c3733609ac3d558602574674fa95ebf4"
      ],
      "author": {
        "name": "Guenter Roeck",
        "email": "guenter.roeck@ericsson.com",
        "time": "Thu Oct 28 20:31:43 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:43 2010 +0200"
      },
      "message": "hwmon: (lm90) Add explicit support for max6659\n\nSigned-off-by: Guenter Roeck \u003cguenter.roeck@ericsson.com\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "96512861c3733609ac3d558602574674fa95ebf4",
      "tree": "a011fd9763b09ce8f3d7774e2d17d05660063ea2",
      "parents": [
        "b6fc1bacc7eae99d276d096fe0c702b1e13e4499"
      ],
      "author": {
        "name": "Guenter Roeck",
        "email": "guenter.roeck@ericsson.com",
        "time": "Thu Oct 28 20:31:43 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:43 2010 +0200"
      },
      "message": "hwmon: (lm90) Simplify set_temp11 register calculations\n\nSigned-off-by: Guenter Roeck \u003cguenter.roeck@ericsson.com\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "b6fc1bacc7eae99d276d096fe0c702b1e13e4499",
      "tree": "d280816900fdad1262f7ca3d417d35e8b2ad33c8",
      "parents": [
        "88073bb1ba969d4e3c41dc5f35c902c6b7dab0a7"
      ],
      "author": {
        "name": "Guenter Roeck",
        "email": "guenter.roeck@ericsson.com",
        "time": "Thu Oct 28 20:31:43 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:43 2010 +0200"
      },
      "message": "hwmon: (lm90) Introduce function to delete sysfs files\n\nSigned-off-by: Guenter Roeck \u003cguenter.roeck@ericsson.com\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "88073bb1ba969d4e3c41dc5f35c902c6b7dab0a7",
      "tree": "86711d2f4988dd29c3dc5ab8c5f7a176fbacc181",
      "parents": [
        "11e578129af74c4866cf559e62e981c6415fffd9"
      ],
      "author": {
        "name": "Guenter Roeck",
        "email": "guenter.roeck@ericsson.com",
        "time": "Thu Oct 28 20:31:43 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:43 2010 +0200"
      },
      "message": "hwmon: (lm90) Introduce device feature bits\n\nSigned-off-by: Guenter Roeck \u003cguenter.roeck@ericsson.com\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "11e578129af74c4866cf559e62e981c6415fffd9",
      "tree": "50946c5c4e0d483a81bc5cf3a117964bffadddf6",
      "parents": [
        "28e7438faacbd47aaf3e3b43c3074c64be98f5be"
      ],
      "author": {
        "name": "Guenter Roeck",
        "email": "guenter.roeck@ericsson.com",
        "time": "Thu Oct 28 20:31:42 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:42 2010 +0200"
      },
      "message": "hwmon: (lm90) Fix checkpatch errors\n\nSigned-off-by: Guenter Roeck \u003cguenter.roeck@ericsson.com\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "28e7438faacbd47aaf3e3b43c3074c64be98f5be",
      "tree": "dbd39d62c271fe46fa0bddaa5d292c7e9f125f8f",
      "parents": [
        "628b4504cf69fbe262b41c16a4a3fd61b091d61c"
      ],
      "author": {
        "name": "Guenter Roeck",
        "email": "guenter.roeck@ericsson.com",
        "time": "Thu Oct 28 20:31:42 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:42 2010 +0200"
      },
      "message": "hwmon: Add tempX_emergency attribute to sysfs ABI\n\nSigned-off-by: Guenter Roeck \u003cguenter.roeck@ericsson.com\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "628b4504cf69fbe262b41c16a4a3fd61b091d61c",
      "tree": "4cdec2aa4b4934918d68bca2c0758faa989a36d2",
      "parents": [
        "81280572ca6f54009edfa4deee563e8678784218"
      ],
      "author": {
        "name": "Andreas Herrmann",
        "email": "andreas.herrmann3@amd.com",
        "time": "Thu Oct 28 20:31:42 2010 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@endymion.delvare",
        "time": "Thu Oct 28 20:31:42 2010 +0200"
      },
      "message": "hwmon: (k8temp) Remove superfluous CPU family check\n\nThe family check in k8temp is not required because the driver is\nalready bound to a northbridge device only used with K8 CPUs.\n\nSigned-off-by: Andreas Herrmann \u003candreas.herrmann3@amd.com\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "81280572ca6f54009edfa4deee563e8678784218",
      "tree": "4fac10bcb71261823d261e5f8551fdb16ab653ba",
      "parents": [
        "b83db1deb29eb4eea9bf5992431d26978e039ce6",
        "a107e5a3a473a2ea62bd5af24e11b84adf1486ff"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 21:54:31 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 21:54:31 2010 -0700"
      },
      "message": "Merge branch \u0027upstream-merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027upstream-merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (50 commits)\n  ext4,jbd2: convert tracepoints to use major/minor numbers\n  ext4: optimize orphan_list handling for ext4_setattr\n  ext4: fix unbalanced mutex unlock in error path of ext4_li_request_new\n  ext4: fix compile error in ext4_fallocate()\n  ext4: move ext4_mb_{get,put}_buddy_cache_lock and make them static\n  ext4: rename mark_bitmap_end() to ext4_mark_bitmap_end()\n  ext4: move flush_completed_IO to fs/ext4/fsync.c and make it static\n  ext4: rename {ext,idx}_pblock and inline small extent functions\n  ext4: make various ext4 functions be static\n  ext4: rename {exit,init}_ext4_*() to ext4_{exit,init}_*()\n  ext4: fix kernel oops if the journal superblock has a non-zero j_errno\n  ext4: update writeback_index based on last page scanned\n  ext4: implement writeback livelock avoidance using page tagging\n  ext4: tidy up a void argument in inode.c\n  ext4: add batched_discard into ext4 feature list\n  ext4: Add batched discard support for ext4\n  fs: Add FITRIM ioctl\n  ext4: Use return value from sb_issue_discard()\n  ext4: Check return value of sb_getblk() and friends\n  ext4: use bio layer instead of buffer layer in mpage_da_submit_io\n  ...\n"
    },
    {
      "commit": "a107e5a3a473a2ea62bd5af24e11b84adf1486ff",
      "tree": "d36c2cb38d8be88d4d75cdebc354aa140aa0e470",
      "parents": [
        "e3e1288e86a07cdeb0aee5860a2dff111c6eff79",
        "a269029d0e2192046be4c07ed78a45022469ee4c"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 23:44:47 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 23:44:47 2010 -0400"
      },
      "message": "Merge branch \u0027next\u0027 into upstream-merge\n\nConflicts:\n\tfs/ext4/inode.c\n\tfs/ext4/mballoc.c\n\tinclude/trace/events/ext4.h\n"
    },
    {
      "commit": "b83db1deb29eb4eea9bf5992431d26978e039ce6",
      "tree": "a59a4d94c41de6889be93b6963c791aa64181f25",
      "parents": [
        "7d2f280e75f05919314e250cadf361a327ed555c",
        "7e94250312d8b32a18e7e96cee19f2795d224e8c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 20:37:06 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 20:37:06 2010 -0700"
      },
      "message": "Merge branch \u0027drm-core-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6\n\n* \u0027drm-core-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:\n  drm/radeon/kms: enable unmappable vram for evergreen\n  drm/radeon/kms: fix tiled db height calculation on 6xx/7xx\n  drm/radeon/kms: fix handling of tex lookup disable in cs checker on r2xx\n"
    },
    {
      "commit": "7d2f280e75f05919314e250cadf361a327ed555c",
      "tree": "47db5a9a0ceaf31adf49c18b663b1e08184f7cff",
      "parents": [
        "e3e1288e86a07cdeb0aee5860a2dff111c6eff79",
        "4408ea41c0ab4b711d4da44dd954fb06dce6c3f8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 20:13:18 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 20:13:18 2010 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6: (24 commits)\n  quota: Fix possible oops in __dquot_initialize()\n  ext3: Update kernel-doc comments\n  jbd/2: fixed typos\n  ext2: fixed typo.\n  ext3: Fix debug messages in ext3_group_extend()\n  jbd: Convert atomic_inc() to get_bh()\n  ext3: Remove misplaced BUFFER_TRACE() in ext3_truncate()\n  jbd: Fix debug message in do_get_write_access()\n  jbd: Check return value of __getblk()\n  ext3: Use DIV_ROUND_UP() on group desc block counting\n  ext3: Return proper error code on ext3_fill_super()\n  ext3: Remove unnecessary casts on bh-\u003eb_data\n  ext3: Cleanup ext3_setup_super()\n  quota: Fix issuing of warnings from dquot_transfer\n  quota: fix dquot_disable vs dquot_transfer race v2\n  jbd: Convert bitops to buffer fns\n  ext3/jbd: Avoid WARN() messages when failing to write the superblock\n  jbd: Use offset_in_page() instead of manual calculation\n  jbd: Remove unnecessary goto statement\n  jbd: Use printk_ratelimited() in journal_alloc_journal_head()\n  ...\n"
    },
    {
      "commit": "a269029d0e2192046be4c07ed78a45022469ee4c",
      "tree": "6ec7b7d2686a344ac77d10c4930fc3699461d198",
      "parents": [
        "3d287de3b828226e5a450c7fd5bf4283792dc2b0"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 22:08:50 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 22:08:50 2010 -0400"
      },
      "message": "ext4,jbd2: convert tracepoints to use major/minor numbers\n\nUnfortunately perf can\u0027t deal with anything other than direct structure\naccesses in the TP_printk() section.  It will drop dead when it sees\njbd2_dev_to_name() in the \"print fmt\" section of the tracepoint.\n\nAddresses-Google-Bug: 3138508\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "3d287de3b828226e5a450c7fd5bf4283792dc2b0",
      "tree": "4adcc534e2042aed924750df3ef2433bd2f14fd8",
      "parents": [
        "beed5ecbaa377fa8bb6a54a6608e8725a21efdbc"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Wed Oct 27 22:08:46 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 22:08:46 2010 -0400"
      },
      "message": "ext4: optimize orphan_list handling for ext4_setattr\n\nSurprisingly chown() on ext4 is not SMP scalable operation. \nDue to unconditional orphan_del(NULL, inode) in ext4_setattr()\nresult in significant performance overhead because of global orphan\nmutex, especially in no-journal mode (where orphan_add() is noop).\nIt is possible to skip explicit orphan_del if possible.\nResults of fchown() micro-benchmark in no-journal mode\nwhile (1) {\n   iteration++;\n   fchown(fd, uid, gid);\n   fchown(fd, uid + 1, gid + 1)\n}\nmeasured: iterations per millisecond\n| nr_tasks | w/o patch | with patch |\n|        1 |       142 |        185 |\n|        4 |       109 |        642 |\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "beed5ecbaa377fa8bb6a54a6608e8725a21efdbc",
      "tree": "c8e76b2af5f0ccdc64d53907238947540de7d182",
      "parents": [
        "a6371b636f9f007ee5c90f85de048bc1b675424a"
      ],
      "author": {
        "name": "Nicolas Kaiser",
        "email": "nikai@nikai.net",
        "time": "Wed Oct 27 22:08:42 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 22:08:42 2010 -0400"
      },
      "message": "ext4: fix unbalanced mutex unlock in error path of ext4_li_request_new\n\nSigned-off-by: Nicolas Kaiser \u003cnikai@nikai.net\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "e3e1288e86a07cdeb0aee5860a2dff111c6eff79",
      "tree": "cd22f8051a456c9d2b95698b6fe402776a67469b",
      "parents": [
        "9ae6d039224def926656206725ae6e89d1331417",
        "964dc256bb91e990277010a3f6dc66daa130be8b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 19:04:36 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 19:04:36 2010 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx: (48 commits)\n  DMAENGINE: move COH901318 to arch_initcall\n  dma: imx-dma: fix signedness bug\n  dma/timberdale: simplify conditional\n  ste_dma40: remove channel_type\n  ste_dma40: remove enum for endianess\n  ste_dma40: remove TIM_FOR_LINK option\n  ste_dma40: move mode_opt to separate config\n  ste_dma40: move channel mode to a separate field\n  ste_dma40: move priority to separate field\n  ste_dma40: add variable to indicate valid dma_cfg\n  async_tx: make async_tx channel switching opt-in\n  move async raid6 test to lib/Kconfig.debug\n  dmaengine: Add Freescale i.MX1/21/27 DMA driver\n  intel_mid_dma: change the slave interface\n  intel_mid_dma: fix the WARN_ONs\n  intel_mid_dma: Add sg list support to DMA driver\n  intel_mid_dma: Allow DMAC2 to share interrupt\n  intel_mid_dma: Allow IRQ sharing\n  intel_mid_dma: Add runtime PM support\n  DMAENGINE: define a dummy filter function for ste_dma40\n  ...\n"
    },
    {
      "commit": "9ae6d039224def926656206725ae6e89d1331417",
      "tree": "8ebee863f61da7d095575ca7ef17812d3952389c",
      "parents": [
        "bdab225015fbbb45ccd8913f5d7c01b2bf67d8b2",
        "51f4332bb5fef869e8a89895a7bac6b4c03b4946"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 19:02:41 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 19:02:41 2010 -0700"
      },
      "message": "Merge branch \u0027viafb-next\u0027 of git://github.com/schandinat/linux-2.6\n\n* \u0027viafb-next\u0027 of git://github.com/schandinat/linux-2.6: (29 commits)\n  viafb: add initial VX900 support\n  viafb: fix hardware acceleration for suspend \u0026 resume\n  viafb: make suspend and resume work (on all machines?)\n  viafb: restore display on resume\n  Minimal support for viafb suspend/resume\n  viafb: use proper register for colour when doing fill ops\n  viafb: add documentation for proc interface\n  viafb: rename output devices\n  viafb: add a mapping of supported output devices\n  viafb: set sync polarity for all output devices\n  viafb: add function to change sync polarity per device\n  viafb: reduce I2C timeout and delay\n  viafb: enable I2C for CRT\n  viafb: fix i2c_transfer error handling\n  viafb: vt1636 cleanup\n  viafb: introduce per output device power management\n  viafb: limit LCD code impact\n  viafb: add interface for output device configuration\n  viafb: merge the remaining output path with enable functions\n  viafb: use new device routing\n  ...\n"
    },
    {
      "commit": "bdab225015fbbb45ccd8913f5d7c01b2bf67d8b2",
      "tree": "5ef62301face958977a084bf2b6c5300296a25f2",
      "parents": [
        "7c5814c7199851c5fe9395d08fc1ab3c8c1531ea",
        "7c7fcf762e405eb040ee10d22d656a791f616122"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:53:26 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:53:26 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-mn10300\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-mn10300: (44 commits)\n  MN10300: Save frame pointer in thread_info struct rather than global var\n  MN10300: Change \"Matsushita\" to \"Panasonic\".\n  MN10300: Create a defconfig for the ASB2364 board\n  MN10300: Update the ASB2303 defconfig\n  MN10300: ASB2364: Add support for SMSC911X and SMC911X\n  MN10300: ASB2364: Handle the IRQ multiplexer in the FPGA\n  MN10300: Generic time support\n  MN10300: Specify an ELF HWCAP flag for MN10300 Atomic Operations Unit support\n  MN10300: Map userspace atomic op regs as a vmalloc page\n  MN10300: And Panasonic AM34 subarch and implement SMP\n  MN10300: Delete idle_timestamp from irq_cpustat_t\n  MN10300: Make various interrupt priority settings configurable\n  MN10300: Optimise do_csum()\n  MN10300: Implement atomic ops using atomic ops unit\n  MN10300: Make the FPU operate in non-lazy mode under SMP\n  MN10300: SMP TLB flushing\n  MN10300: Use the [ID]PTEL2 registers rather than [ID]PTEL for TLB control\n  MN10300: Make the use of PIDR to mark TLB entries controllable\n  MN10300: Rename __flush_tlb*() to local_flush_tlb*()\n  MN10300: AM34 erratum requires MMUCTR read and write on exception entry\n  ...\n"
    },
    {
      "commit": "7c5814c7199851c5fe9395d08fc1ab3c8c1531ea",
      "tree": "66cc9080e47c0be8bd9d4530626e54c77f9895ed",
      "parents": [
        "a042e26137d7674ac04b1cd2d5c06b9ebc1ee2d5",
        "89e1e66d6be8a520cdcd26043cda2cc870a34015"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:52:49 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:52:49 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:\n  ALSA: usb-audio: automatically detect feedback format\n  ASoC: sound/wm9090: add missing __devexit marker\n  ASoC: sound/max98088: add missing __devexit marker\n  ASoC: sound/ad73311: add missing __devexit marker\n  ASoC: fsl - fix build error in pcm030-audio-fabric.c\n  sound/oss/sb_ess.c: delete double assignment\n  ALSA: hda - Change BTL amp level on some HP notebooks\n"
    },
    {
      "commit": "a042e26137d7674ac04b1cd2d5c06b9ebc1ee2d5",
      "tree": "c1a7a8bda41b99caa4b4a0fe320fc73278879f7d",
      "parents": [
        "f66dd539feb849a3a00f7fac67c026e0935e373a",
        "e25804a0327dad954f7d43803178fdef2fd35b4e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:48:00 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:48:00 2010 -0700"
      },
      "message": "Merge branch \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (50 commits)\n  perf python scripting: Add futex-contention script\n  perf python scripting: Fixup cut\u0027n\u0027paste error in sctop script\n  perf scripting: Shut up \u0027perf record\u0027 final status\n  perf record: Remove newline character from perror() argument\n  perf python scripting: Support fedora 11 (audit 1.7.17)\n  perf python scripting: Improve the syscalls-by-pid script\n  perf python scripting: print the syscall name on sctop\n  perf python scripting: Improve the syscalls-counts script\n  perf python scripting: Improve the failed-syscalls-by-pid script\n  kprobes: Remove redundant text_mutex lock in optimize\n  x86/oprofile: Fix uninitialized variable use in debug printk\n  tracing: Fix \u0027faild\u0027 -\u003e \u0027failed\u0027 typo\n  perf probe: Fix format specified for Dwarf_Off parameter\n  perf trace: Fix detection of script extension\n  perf trace: Use $PERF_EXEC_PATH in canned report scripts\n  perf tools: Document event modifiers\n  perf tools: Remove direct slang.h include\n  perf_events: Fix for transaction recovery in group_sched_in()\n  perf_events: Revert: Fix transaction recovery in group_sched_in()\n  perf, x86: Use NUMA aware allocations for PEBS/BTS/DS allocations\n  ...\n"
    },
    {
      "commit": "f66dd539feb849a3a00f7fac67c026e0935e373a",
      "tree": "a211f0229581ce38655c393f1673826111f9abba",
      "parents": [
        "17bb51d56cdc8cbf252031db3107de034cfeb44c",
        "87acf5ad87b275660e2508e6935b570a20b6a073"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:47:39 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:47:39 2010 -0700"
      },
      "message": "Merge branch \u0027module\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus\n\n* \u0027module\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:\n  NULL-terminate all pci_device_id tables\n  (trivial) Fix compiler warning in kernel/modules.c\n"
    },
    {
      "commit": "17bb51d56cdc8cbf252031db3107de034cfeb44c",
      "tree": "f9fb2c16b29a152d3413fa0028e660e3b6146584",
      "parents": [
        "0671b7674f42ab3a200401ea0e48d6f47d34acae",
        "95aac7b1cd224f568fb83937044cd303ff11b029"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:42:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:42:52 2010 -0700"
      },
      "message": "Merge branch \u0027akpm-incoming-2\u0027\n\n* akpm-incoming-2: (139 commits)\n  epoll: make epoll_wait() use the hrtimer range feature\n  select: rename estimate_accuracy() to select_estimate_accuracy()\n  Remove duplicate includes from many files\n  ramoops: use the platform data structure instead of module params\n  kernel/resource.c: handle reinsertion of an already-inserted resource\n  kfifo: fix kfifo_alloc() to return a signed int value\n  w1: don\u0027t allow arbitrary users to remove w1 devices\n  alpha: remove dma64_addr_t usage\n  mips: remove dma64_addr_t usage\n  sparc: remove dma64_addr_t usage\n  fuse: use release_pages()\n  taskstats: use real microsecond granularity for CPU times\n  taskstats: split fill_pid function\n  taskstats: separate taskstats commands\n  delayacct: align to 8 byte boundary on 64-bit systems\n  delay-accounting: reimplement -c for getdelays.c to report information on a target command\n  namespaces Kconfig: move namespace menu location after the cgroup\n  namespaces Kconfig: remove the cgroup device whitelist experimental tag\n  namespaces Kconfig: remove pointless cgroup dependency\n  namespaces Kconfig: make namespace a submenu\n  ...\n"
    },
    {
      "commit": "0671b7674f42ab3a200401ea0e48d6f47d34acae",
      "tree": "a35d3347e927dfe621f42ff82289f61f45564393",
      "parents": [
        "0b2d8d9e562de3ee2476f549549e4fefbb7a4213",
        "47f19a0814e80e1d4e5c17d61b70fca85ea09162"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:38:55 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:38:55 2010 -0700"
      },
      "message": "Merge branch \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  percpu: Remove the multi-page alignment facility\n  x86-32: Allocate irq stacks seperate from percpu area\n  x86-32, mm: Remove duplicated #include\n  x86, printk: Get rid of \u003c0\u003e from stack output\n  x86, kexec: Make sure to stop all CPUs before exiting the kernel\n  x86/vsmp: Eliminate kconfig dependency warning\n"
    },
    {
      "commit": "0b2d8d9e562de3ee2476f549549e4fefbb7a4213",
      "tree": "20e025254b430efc647e7403a4168e4487619b92",
      "parents": [
        "22cdbd1d5789cc16c37102eb6f62c3ae377b849e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:34:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:34:59 2010 -0700"
      },
      "message": "proc_bus_pci_ioctl: remove pointless BKL usage\n\nThe BKL was pushed into this function when it was converted to use the\nunlocked_ioctl interface, but nothing that the function touches is\nactually protected by the BKL.  So just remove the BKL entirely, so that\nwe finally can get a realistic system build without the BKL being\nenabled at all.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a6371b636f9f007ee5c90f85de048bc1b675424a",
      "tree": "8cb3091cc98debd71ba58a4a3d2157e6eec24593",
      "parents": [
        "eee4adc709afe40d8c02fa154c63dbeb55d911e3"
      ],
      "author": {
        "name": "Kazuya Mio",
        "email": "k-mio@sx.jp.nec.com",
        "time": "Wed Oct 27 21:30:15 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:15 2010 -0400"
      },
      "message": "ext4: fix compile error in ext4_fallocate()\n\nWhen I compiled 2.6.36-rc3 kernel with EXT4FS_DEBUG definition, I got\nthe following compile error.\n\n  CC [M]  fs/ext4/extents.o\nfs/ext4/extents.c: In function \u0027ext4_fallocate\u0027:\nfs/ext4/extents.c:3772: error: \u0027block\u0027 undeclared (first use in this function)\nfs/ext4/extents.c:3772: error: (Each undeclared identifier is reported only once\nfs/ext4/extents.c:3772: error: for each function it appears in.)\nmake[2]: *** [fs/ext4/extents.o] Error 1\n\nThe patch fixes this problem.\n\nSigned-off-by: Kazuya Mio \u003ck-mio@sx.jp.nec.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "eee4adc709afe40d8c02fa154c63dbeb55d911e3",
      "tree": "e65d8235eb7cf745a1d9dc2ac9ab1c62bdd45758",
      "parents": [
        "61d08673de1fe68bfba86203258377bf39f234b6"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Wed Oct 27 21:30:15 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:15 2010 -0400"
      },
      "message": "ext4: move ext4_mb_{get,put}_buddy_cache_lock and make them static\n\nThese functions are only used within fs/ext4/mballoc.c, so move them\nso they are used after they are defined, and then make them be static.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "61d08673de1fe68bfba86203258377bf39f234b6",
      "tree": "5cb32998c69eca626df54b50cb01e50a83c4db81",
      "parents": [
        "4a873a472b3bbcfd425d7ae210afdec28c04e2e5"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:15 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:15 2010 -0400"
      },
      "message": "ext4: rename mark_bitmap_end() to ext4_mark_bitmap_end()\n\nFix a namespace leak from fs/ext4\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n\n"
    },
    {
      "commit": "4a873a472b3bbcfd425d7ae210afdec28c04e2e5",
      "tree": "88aa333bfafcc5303b7a3074865f51f67ad836b9",
      "parents": [
        "bf89d16f6ef5389f1b9d8046e838ec87b9b3f8b9"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:14 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:14 2010 -0400"
      },
      "message": "ext4: move flush_completed_IO to fs/ext4/fsync.c and make it static\n\nFix a namespace leak by moving the function to the file where it is\nused and making it static.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "bf89d16f6ef5389f1b9d8046e838ec87b9b3f8b9",
      "tree": "dd491dd3035281d0ff537ddcba21ef7edbfef6b8",
      "parents": [
        "1f109d5a17b438c4a54cbf6fd87a249e3d72fb21"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:14 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:14 2010 -0400"
      },
      "message": "ext4: rename {ext,idx}_pblock and inline small extent functions\n\nCleanup namespace leaks from fs/ext4 and the inline trivial functions\next4_{ext,idx}_pblock() and ext4_{ext,idx}_store_pblock() since the\ncode size actually shrinks when we make these functions inline,\nthey\u0027re so trivial.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "1f109d5a17b438c4a54cbf6fd87a249e3d72fb21",
      "tree": "f58c6fd431975bf900b502b80122e175065da657",
      "parents": [
        "5dabfc78dcedbe46cb2e4872dde448de3cec2979"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:14 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:14 2010 -0400"
      },
      "message": "ext4: make various ext4 functions be static\n\nThese functions have no need to be exported beyond file context.\n\nNo functions needed to be moved for this commit; just some function\ndeclarations changed to be static and removed from header files.\n\n(A similar patch was submitted by Eric Sandeen, but I wanted to handle\ncode movement in separate patches to make sure code changes didn\u0027t\naccidentally get dropped.)\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5dabfc78dcedbe46cb2e4872dde448de3cec2979",
      "tree": "804ef3e76289978ef6690c2b8f379a14a60b15f0",
      "parents": [
        "7f93cff90fa9be6ed45f6189e136153d1d8631b0"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:14 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:14 2010 -0400"
      },
      "message": "ext4: rename {exit,init}_ext4_*() to ext4_{exit,init}_*()\n\nThis is a cleanup to avoid namespace leaks out of fs/ext4\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7f93cff90fa9be6ed45f6189e136153d1d8631b0",
      "tree": "e48cbf01bc646e63df2fea10a2208015e028b95b",
      "parents": [
        "72f84e6560d18d60a091df27edf81409be6641cb"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:13 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:13 2010 -0400"
      },
      "message": "ext4: fix kernel oops if the journal superblock has a non-zero j_errno\n\nCommit 84061e0 fixed an accounting bug only to introduce the\npossibility of a kernel OOPS if the journal has a non-zero j_errno\nfield indicating that the file system had detected a fs inconsistency.\nAfter the journal replay, if the journal superblock indicates that the\nfile system has an error, this indication is transfered to the file\nsystem and then ext4_commit_super() is called to write this to the\ndisk.\n\nBut since the percpu counters are now initialized after the journal\nreplay, the call to ext4_commit_super() will cause a kernel oops since\nit needs to use the percpu counters the ext4 superblock structure.\n\nThe fix is to skip setting the ext4 free block and free inode fields\nif the percpu counter has not been set.\n\nThanks to Ken Sumrall for reporting and analyzing the root causes of\nthis bug.\n\nAddresses-Google-Bug: #3054080\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "72f84e6560d18d60a091df27edf81409be6641cb",
      "tree": "e2fa11476b074f8526d620820f8b2e86e8a11412",
      "parents": [
        "5b41d92437f1ae19b3f3ffa3b16589fd5df50ac0"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Wed Oct 27 21:30:13 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:13 2010 -0400"
      },
      "message": "ext4: update writeback_index based on last page scanned\n\nAs pointed out in a prior patch, updating the mapping\u0027s\nwriteback_index based on pages written isn\u0027t quite right;\nwhat the writeback index is really supposed to reflect is\nthe next page which should be scanned for writeback during\nperiodic flush.\n\nAs in write_cache_pages(), write_cache_pages_da() does\nthis scanning for us as we assemble the mpd for later\nwriteout.  If we keep track of the next page after the\ncurrent scan, we can easily update writeback_index without\nworrying about pages written vs. pages skipped, etc.\n\nWithout this, an fsync will reset writeback_index to\n0 (its starting index) + however many pages it wrote, which\ncan mess up the progress of periodic flush.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5b41d92437f1ae19b3f3ffa3b16589fd5df50ac0",
      "tree": "ed7e1999a2349811e3cae0f0bdd53a93aea413d7",
      "parents": [
        "bbd08344e3df8c7c1d7aa04bc0c8c9367806e12d"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Wed Oct 27 21:30:13 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:13 2010 -0400"
      },
      "message": "ext4: implement writeback livelock avoidance using page tagging\n\nThis is analogous to Jan Kara\u0027s commit,\nf446daaea9d4a420d16c606f755f3689dcb2d0ce\nmm: implement writeback livelock avoidance using page tagging\n\nbut since we forked write_cache_pages, we need to reimplement\nit there (and in ext4_da_writepages, since range_cyclic handling\nwas moved to there)\n\nIf you start a large buffered IO to a file, and then set\nfsync after it, you\u0027ll find that fsync does not complete\nuntil the other IO stops.\n\nIf you continue re-dirtying the file (say, putting dd\nwith conv\u003dnotrunc in a loop), when fsync finally completes\n(after all IO is done), it reports via tracing that\nit has written many more pages than the file contains;\nin other words it has synced and re-synced pages in\nthe file multiple times.\n\nThis then leads to problems with our writeback_index\nupdate, since it advances it by pages written, and\nessentially sets writeback_index off the end of the\nfile...\n\nWith the following patch, we only sync as much as was\ndirty at the time of the sync.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "bbd08344e3df8c7c1d7aa04bc0c8c9367806e12d",
      "tree": "6441a113660deb3bbe1795f5b03b1c11b9e18fda",
      "parents": [
        "27ee40df2b17c84aa7855907df12befe6869b7a7"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Wed Oct 27 21:30:12 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:12 2010 -0400"
      },
      "message": "ext4: tidy up a void argument in inode.c\n\nThis doesn\u0027t fix anything at all, it just removes a vestige\nof prior use from __mpage_da_writepage()\n\n__mpage_da_writepage() had a *void argument leftover from\nits previous life as a callback; make it reflect the actual type.\n\nFixing this up makes it slightly more obvious to read, and \nenables proper typechecking.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "27ee40df2b17c84aa7855907df12befe6869b7a7",
      "tree": "9ff6c98b2e2a715234b9a9ebd91232fd7ca7f558",
      "parents": [
        "7360d1731e5dc78aec867e65e55f9fb58782b5fe"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Wed Oct 27 21:30:12 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:12 2010 -0400"
      },
      "message": "ext4: add batched_discard into ext4 feature list\n\nShould be applied on the top of \"lazy inode table initialization\"\nand \"batched discard support\" patch-sets.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7360d1731e5dc78aec867e65e55f9fb58782b5fe",
      "tree": "2cc0d139ec129c19150ef481d6adb9b0fd947c89",
      "parents": [
        "367a51a339020ba4d9edb0ce0f21d65bd50b00c9"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Wed Oct 27 21:30:12 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:12 2010 -0400"
      },
      "message": "ext4: Add batched discard support for ext4\n\nWalk through allocation groups and trim all free extents. It can be\ninvoked through FITRIM ioctl on the file system. The main idea is to\nprovide a way to trim the whole file system if needed, since some SSD\u0027s\nmay suffer from performance loss after the whole device was filled (it\ndoes not mean that fs is full!).\n\nIt search for free extents in allocation groups specified by Byte range\nstart -\u003e start+len. When the free extent is within this range, blocks\nare marked as used and then trimmed. Afterwards these blocks are marked\nas free in per-group bitmap.\n\nSince fstrim is a long operation it is good to have an ability to\ninterrupt it by a signal. This was added by Dmitry Monakhov.\nThanks Dimitry.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nReviewed-by: Jan Kara \u003cjack@suse.cz\u003e\nReviewed-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "367a51a339020ba4d9edb0ce0f21d65bd50b00c9",
      "tree": "696cbb5ca3108cd0cf8a7c3f494947cc9a4179c7",
      "parents": [
        "77ca6cdf0ab8a42f481ec997911bc89e79138723"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Wed Oct 27 21:30:11 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:11 2010 -0400"
      },
      "message": "fs: Add FITRIM ioctl\n\nAdds an filesystem independent ioctl to allow implementation of file\nsystem batched discard support. I takes fstrim_range structure as an\nargument. fstrim_range is definec in the include/fs.h and its\ndefinition is as follows.\n\nstruct fstrim_range {\n\tstart;\n\tlen;\n\tminlen;\n}\n\nstart\t- first Byte to trim\nlen\t- number of Bytes to trim from start\nminlen\t- minimum extent length to trim, free extents shorter than this\n\t  number of Bytes will be ignored. This will be rounded up to fs\n\t  block size.\n\nIt is also possible to specify NULL as an argument. In this case the\narguments will set itself as follows:\n\nstart \u003d 0;\nlen \u003d ULLONG_MAX;\nminlen \u003d 0;\n\nSo it will trim the whole file system at one run.\n\nAfter the FITRIM is done, the number of actually discarded Bytes is stored\nin fstrim_range.len to give the user better insight on how much storage\nspace has been really released for wear-leveling.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nReviewed-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "77ca6cdf0ab8a42f481ec997911bc89e79138723",
      "tree": "30f6cb268a3b4cad391e5784557b2c6432b52691",
      "parents": [
        "877836905da55e8f2426234f42a89287184949e9"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Wed Oct 27 21:30:11 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:11 2010 -0400"
      },
      "message": "ext4: Use return value from sb_issue_discard()\n\nUse return value from sb_issue_discard() as return value in\next4_issue_discard(). Since sb_issue_discard() may result in more\nserious errors than just -EOPNOTSUPP it is worth to inform user of this\nfunction about them to handle error cases properly.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "877836905da55e8f2426234f42a89287184949e9",
      "tree": "eecb60e9b55daaf794a3083f9c48fc94e05d4cd2",
      "parents": [
        "bd2d0210cf22f2bd0cef72eb97cf94fc7d31d8cc"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Wed Oct 27 21:30:11 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:11 2010 -0400"
      },
      "message": "ext4: Check return value of sb_getblk() and friends\n\nFail block allocation if sb_getblk() returns NULL. In that case,\nsb_find_get_block() also likely to fail so that it should skip\ncalling ext4_forget().\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "bd2d0210cf22f2bd0cef72eb97cf94fc7d31d8cc",
      "tree": "f0d1902b7ff4294114614cc706855c3d6b131f73",
      "parents": [
        "1de3e3df917459422cb2aecac440febc8879d410"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:10 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:10 2010 -0400"
      },
      "message": "ext4: use bio layer instead of buffer layer in mpage_da_submit_io\n\nCall the block I/O layer directly instad of going through the buffer\nlayer.  This should give us much better performance and scalability,\nas well as lowering our CPU utilization when doing buffered writeback.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "1de3e3df917459422cb2aecac440febc8879d410",
      "tree": "3ff2584fa323ec855dec74b7e842e5e4abe39597",
      "parents": [
        "3ecdb3a193a5f224f084c04a63aa28cdccf4d7d0"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:10 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:10 2010 -0400"
      },
      "message": "ext4: move mpage_put_bnr_to_bhs()\u0027s functionality to mpage_da_submit_io()\n\nThis massively simplifies the ext4_da_writepages() code path by\ncompletely removing mpage_put_bnr_bhs(), which is almost 100 lines of\ncode iterating over a set of pages using pagevec_lookup(), and folds\nthat functionality into mpage_da_submit_io()\u0027s existing\npagevec_lookup() loop.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "3ecdb3a193a5f224f084c04a63aa28cdccf4d7d0",
      "tree": "9949f753917004c75ddd4549c8e9741ccdbd435e",
      "parents": [
        "cb20d5188366f04d96d2e07b1240cc92170ade40"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:10 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:10 2010 -0400"
      },
      "message": "ext4: inline walk_page_buffers() into mpage_da_submit_io\n\nExpand the call:\n\n  if (walk_page_buffers(NULL, page_bufs, 0, len, NULL,\n                        ext4_bh_delay_or_unwritten))\n\tgoto redirty_page\n\ninto mpage_da_submit_io().\n\nThis will allow us to merge in mpage_put_bnr_to_bhs() in the next\npatch.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "cb20d5188366f04d96d2e07b1240cc92170ade40",
      "tree": "6fe424e1ccdd36f8b4a60e144cfdaa577296926e",
      "parents": [
        "a42afc5f56f319107e987aa6adf2f65d93d527c7"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:09 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:09 2010 -0400"
      },
      "message": "ext4: inline ext4_writepage() into mpage_da_submit_io()\n\nAs a prepratory step to switching to bio_submit, inline\next4_writepage() into mpage_da_submit() and then simplify things a\nbit.  This makes it clearer what mpage_da_submit needs to do.\n\nAlso, move the ClearPageChecked(page) call into\n__ext4_journalled_writepage(), as a minor bit of cleanup refactoring.\n\nThis also allows us to pull i_size_read() and\next4_should_journal_data() out of the loop, which should be a very\nminor CPU savings.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a42afc5f56f319107e987aa6adf2f65d93d527c7",
      "tree": "845d03a8cec3fcb705ea6c821d202c816de76655",
      "parents": [
        "5a87b7a5da250c9be6d757758425dfeaf8ed3179"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:09 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:09 2010 -0400"
      },
      "message": "ext4: simplify ext4_writepage()\n\nThe actual code in ext4_writepage() is unnecessarily convoluted.\nSimplify it so it is easier to understand, but otherwise logically\nequivalent.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5a87b7a5da250c9be6d757758425dfeaf8ed3179",
      "tree": "efd1ca776e184101cb20ba4606bc35103385bcb5",
      "parents": [
        "16828088f9e518158edecb6cde7e6fa38e4c889b"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:09 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:09 2010 -0400"
      },
      "message": "ext4: call mpage_da_submit_io() from mpage_da_map_blocks()\n\nEventually we need to completely reorganize the ext4 writepage\ncallpath, but for now, we simplify things a little by calling\nmpage_da_submit_io() from mpage_da_map_blocks(), since all of the\nplaces where we call mpage_da_map_blocks() it is followed up by a call\nto mpage_da_submit_io().\n\nWe\u0027re also a wee bit better with respect to error handling, but there\nare still a number of issues where it\u0027s not clear what the right thing\nis to do with ext4 functions deep in the writeback codepath fails.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "16828088f9e518158edecb6cde7e6fa38e4c889b",
      "tree": "620f14e52107d59aee3a0c55135037df4a07ae73",
      "parents": [
        "7845c0497536c566bfef08db1a38ae1ad2c25464"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:09 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:09 2010 -0400"
      },
      "message": "ext4: use KMEM_CACHE instead of kmem_cache_create\n\nAlso remove the SLAB_RECLAIM_ACCOUNT flag from the system zone kmem\ncache.  This slab tends to be fairly static, so it shouldn\u0027t be marked\nas likely to have free pages that can be reclaimed.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n\n"
    },
    {
      "commit": "7845c0497536c566bfef08db1a38ae1ad2c25464",
      "tree": "1d5fc97acad87341c6a703dc0763fa95135923ef",
      "parents": [
        "8941ec8bb6443d28d5c25311870aeaa809cf1538"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:08 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:08 2010 -0400"
      },
      "message": "ext4: use search_dirblock() in ext4_dx_find_entry()\n\nUse the search_dirblock() in ext4_dx_find_entry().  It makes the code\neasier to read, and it takes advantage of common code.  It also saves\n100 bytes or so of text space.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Brad Spengler \u003cspender@grsecurity.net\u003e\n"
    },
    {
      "commit": "8941ec8bb6443d28d5c25311870aeaa809cf1538",
      "tree": "5fbd2aff55ff077ec98604b03f6fc9d35a6f081d",
      "parents": [
        "640e9396566a1e1f52f2db294755a23f1e62cc97"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:08 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:08 2010 -0400"
      },
      "message": "ext4: avoid uninitialized memory references in ext3_htree_next_block()\n\nIf the first block of htree directory is missing \u0027.\u0027 or \u0027..\u0027 but is\notherwise a valid directory, and we do a lookup for \u0027.\u0027 or \u0027..\u0027, it\u0027s\npossible to dereference an uninitialized memory pointer in\next4_htree_next_block().\n\nWe avoid this by moving the special case from ext4_dx_find_entry() to\next4_find_entry(); this also means we can optimize ext4_find_entry()\nslightly when NFS looks up \"..\".\n\nThanks to Brad Spengler for pointing a Clang warning that led me to\nlook more closely at this code.  The warning was harmless, but it was\nuseful in pointing out code that was too ugly to live.  This warning was\nalso reported by Roman Borisov.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Brad Spengler \u003cspender@grsecurity.net\u003e\n"
    },
    {
      "commit": "640e9396566a1e1f52f2db294755a23f1e62cc97",
      "tree": "013b0028ceff606beb1290cc9f42704f2a94ab3d",
      "parents": [
        "c999af2b347a55174f702702e0df814d05ef5491"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Wed Oct 27 21:30:08 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:08 2010 -0400"
      },
      "message": "ext4: remove unused ext4_sb_info members\n\nNot that these take up a lot of room, but the structure is long enough\nas it is, and there\u0027s no need to confuse people with these various\nundocumented \u0026 unused structure members...\n\nSigned-off-by: Eric Sandeen \u003csandeen@redaht.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c999af2b347a55174f702702e0df814d05ef5491",
      "tree": "47957b52c9a54babe4d8aefdda4f09cee5f76249",
      "parents": [
        "3e1e5f501632460184a98237d5460c521510535e"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Wed Oct 27 21:30:07 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:07 2010 -0400"
      },
      "message": "ext4: queue conversion after adding to inode\u0027s completed IO list\n\nBy queuing the io end on the unwritten workqueue before adding it\nto our inode\u0027s list of completed IOs, I think we run the risk\nof the work getting completed, and the IO freed, before we try\nto add it to the inode\u0027s i_completed_io_list.\n\nIt should be safe to add it to the inode\u0027s list of completed\nIOs, and -then- queue it for completion, I think.\n\nThanks to Dave Chinner for pointing out the race.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nReviewed-by: Jiaying Zhang \u003cjiayingz@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "3e1e5f501632460184a98237d5460c521510535e",
      "tree": "9bb5006c9bcb1651f9c447869f4e90deb116e6e8",
      "parents": [
        "4d5476164a052e80d4ef430e368e76dbde96801f"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Wed Oct 27 21:30:07 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:07 2010 -0400"
      },
      "message": "ext4: don\u0027t use ext4_allocation_contexts for tracing\n\nMany tracepoints were populating an ext4_allocation_context\nto pass in, but this requires a slab allocation even when\ntracepoints are off.  In fact, 4 of 5 of these allocations\nwere only for tracing.  In addition, we were only using a\nsmall fraction of the 144 bytes of this structure for this\npurpose.\n\nWe can do away with all these alloc/frees of the ac and\nsimply pass in the bits we care about, instead.\n\nI tested this by turning on tracing and running through\nxfstests on x86_64.  I did not actually do anything with\nthe trace output, however.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "4d5476164a052e80d4ef430e368e76dbde96801f",
      "tree": "c4949f899392c99896e3e81250c5f667a5ae0ba3",
      "parents": [
        "0c9169ccad4aed233fdd49e95da4eada2536a06d"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Wed Oct 27 21:30:07 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:07 2010 -0400"
      },
      "message": "ext4: fix oops in trace_ext4_mb_release_group_pa\n\nOur QA reported an oops in the ext4_mb_release_group_pa tracing,\nand Josef Bacik pointed out that it was because we may have a\nnon-null but uninitialized ac_inode in the allocation context.\n\nI can reproduce it when running xfstests with ext4 tracepoints on, \non a CONFIG_SLAB_DEBUG kernel.\n\nWe call trace_ext4_mb_release_group_pa from 2 places, \next4_mb_discard_group_preallocations and \next4_mb_discard_lg_preallocations\n\nIn both cases we allocate an ac as a container just for tracing (!)\nand never fill in the ac_inode.  There\u0027s no reason to be assigning,\ntesting, or printing it as far as I can see, so just remove it from\nthe tracepoint.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nReviewed-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0c9169ccad4aed233fdd49e95da4eada2536a06d",
      "tree": "2c89c49f8aa48dd781747e4f9d801ad06e5517b9",
      "parents": [
        "e0d10bfa91b0a089a9e2c378b5c42f4e96171d95"
      ],
      "author": {
        "name": "Toshiyuki Okajima",
        "email": "toshi.okajima@jp.fujitsu.com",
        "time": "Wed Oct 27 21:30:07 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:07 2010 -0400"
      },
      "message": "ext4: fix potential infinite loop in ext4_da_writepages()\n\nOn linux-2.6.36-rc2, if we execute the following script, we can hang\nthe system when the /bin/sync command is executed:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n#!/bin/sh\n\necho -n \"HANG UP TEST: \"\n/bin/dd if\u003d/dev/zero of\u003d/tmp/img bs\u003d1k count\u003d1 seek\u003d1M 2\u003e /dev/null\n/sbin/mkfs.ext4 -Fq /tmp/img\n/bin/mount -o loop -t ext4 /tmp/img /mnt\n/bin/dd if\u003d/dev/zero of\u003d/mnt/file bs\u003d1 count\u003d1 \\\nseek\u003d$((16*1024*1024*1024*1024-4096)) 2\u003e /dev/null\n/bin/sync\n/bin/umount /mnt\necho \"DONE\"\nexit 0\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nWe can see the following backtrace if we get the kdump when this\nhangup occurs:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nkthread()\n\u003d\u003e bdi_writeback_thread()\n   \u003d\u003e wb_do_writeback()\n      \u003d\u003e wb_writeback()\n         \u003d\u003e writeback_inodes_wb()\n            \u003d\u003e writeback_sb_inodes()\n               \u003d\u003e writeback_single_inode()\n                  \u003d\u003e ext4_da_writepages()  ---+ \n                                ^ infinite    |\n                                |   loop      |\n                                +-------------+\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nThe reason why this hangup happens is described as follows:\n1) We write the last extent block of the file whose size is the filesystem \n   maximum size.\n2) \"BH_Delay\" flag is set on the buffer_head of its block.\n3) - the member, \"m_lblk\" of struct mpage_da_data is 4294967295 (UINT_MAX)\n   - the member, \"m_len\" of struct mpage_da_data is 1\n  mpage_put_bnr_to_bhs() which is called via ext4_da_writepages()\n  cannot clear \"BH_Delay\" flag of the buffer_head because the type of\n  m_lblk is ext4_lblk_t and then m_lblk + m_len is overflow.\n\n  Therefore an infinite loop occurs because ext4_da_writepages()\n  cannot write the page (which corresponds to the block) since\n  \"BH_Delay\" flag isn\u0027t cleared.\n----------------------------------------------------------------------\nstatic void mpage_put_bnr_to_bhs(struct mpage_da_data *mpd,\n\t\t\t\tstruct ext4_map_blocks *map)\n{\n...\n\tint blocks \u003d map-\u003em_len;\n...\n\t\tdo {\n\t\t\t// cur_logical \u003d 4294967295\n\t\t\t// map-\u003em_lblk \u003d 4294967295\n\t\t\t// blocks \u003d 1\n\t\t\t// *** map-\u003em_lblk + blocks \u003d\u003d 0 (OVERFLOW!) ***\n\t\t\t// (cur_logical \u003e\u003d map-\u003em_lblk + blocks) \u003d\u003e true\n\t\t\tif (cur_logical \u003e\u003d map-\u003em_lblk + blocks)\n\t\t\t\tbreak;\n----------------------------------------------------------------------\n\nNOTE: Mounting with the nodelalloc option will avoid this codepath,\nand thus, avoid this hang\n\nSigned-off-by: Toshiyuki Okajima \u003ctoshi.okajima@jp.fujitsu.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "e0d10bfa91b0a089a9e2c378b5c42f4e96171d95",
      "tree": "254d6b0b7d7ca2dfd817171d8d641c1a648e9c46",
      "parents": [
        "c41303ced67c4ebf51bf2e7d0f139155e09e0939"
      ],
      "author": {
        "name": "Toshiyuki Okajima",
        "email": "toshi.okajima@jp.fujitsu.com",
        "time": "Wed Oct 27 21:30:06 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:06 2010 -0400"
      },
      "message": "ext4: improve llseek error handling for overly large seek offsets\n\nThe llseek system call should return EINVAL if passed a seek offset\nwhich results in a write error.  What this maximum offset should be\ndepends on whether or not the huge_file file system feature is set,\nand whether or not the file is extent based or not.\n\n\nIf the file has no \"EXT4_EXTENTS_FL\" flag, the maximum size which can be \nwritten (write systemcall) is different from the maximum size which can be \nsought (lseek systemcall).\n\nFor example, the following 2 cases demonstrates the differences\nbetween the maximum size which can be written, versus the seek offset\nallowed by the llseek system call:\n\n#1: mkfs.ext3 \u003cdev\u003e; mount -t ext4 \u003cdev\u003e\n#2: mkfs.ext3 \u003cdev\u003e; tune2fs -Oextent,huge_file \u003cdev\u003e; mount -t ext4 \u003cdev\u003e\n\nTable. the max file size which we can write or seek\n       at each filesystem feature tuning and file flag setting\n+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\n| \\ File flag|                               |                               |\n|      \\     |     !EXT4_EXTENTS_FL          |        EXT4_EXTETNS_FL        |\n|case       \\|                               |                               |\n+------------+-------------------------------+-------------------------------+\n| #1         |   write:      2194719883264   | write:       --------------   |\n|            |   seek:       2199023251456   | seek:        --------------   |\n+------------+-------------------------------+-------------------------------+\n| #2         |   write:      4402345721856   | write:       17592186044415   |\n|            |   seek:      17592186044415   | seek:        17592186044415   |\n+------------+-------------------------------+-------------------------------+\n\nThe differences exist because ext4 has 2 maxbytes which are sb-\u003es_maxbytes\n(\u003d extent-mapped maxbytes) and EXT4_SB(sb)-\u003es_bitmap_maxbytes (\u003d block-mapped \nmaxbytes).  Although generic_file_llseek uses only extent-mapped maxbytes.\n(llseek of ext4_file_operations is generic_file_llseek which uses\nsb-\u003es_maxbytes.)\n\nTherefore we create ext4 llseek function which uses 2 maxbytes.\n\nThe new own function originates from generic_file_llseek().\nIf the file flag, \"EXT4_EXTENTS_FL\" is not set, the function alters \ninode-\u003ei_sb-\u003es_maxbytes into EXT4_SB(inode-\u003ei_sb)-\u003es_bitmap_maxbytes.\n\nSigned-off-by: Toshiyuki Okajima \u003ctoshi.okajima@jp.fujitsu.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Andreas Dilger \u003cadilger.kernel@dilger.ca\u003e\n"
    },
    {
      "commit": "c41303ced67c4ebf51bf2e7d0f139155e09e0939",
      "tree": "6593e7d580d48c2229df94bac0412654a1a7f76e",
      "parents": [
        "2407518de63a2f80d9b850fb525f35df93bbbe53"
      ],
      "author": {
        "name": "Maciej Żenczykowski",
        "email": "zenczykowski@gmail.com",
        "time": "Wed Oct 27 21:30:06 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:06 2010 -0400"
      },
      "message": "ext4: don\u0027t update sb journal_devnum when RO dev\n\nAn ext4 filesystem on a read-only device, with an external journal\nwhich is at a different device number then recorded in the superblock\nwill fail to honor the read-only setting of the device and trigger\na superblock update (write).\n\nFor example:\n  - ext4 on a software raid which is in read-only mode\n  - external journal on a read-write device which has changed device num\n  - attempt to mount with -o journal_dev\u003d\u003cnew_number\u003e\n  - hits BUG_ON(mddev-\u003ero \u003d 1) in md.c\n\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nSigned-off-by: Maciej Żenczykowski \u003czenczykowski@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "2407518de63a2f80d9b850fb525f35df93bbbe53",
      "tree": "97720c9fc4ee04f92463bde87a454a3f3cea6b5a",
      "parents": [
        "a31437b85aa2cbc4ea80f9ee5d603fdd5430980c"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Wed Oct 27 21:30:06 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:06 2010 -0400"
      },
      "message": "ext4: use sb_issue_zeroout in ext4_ext_zeroout\n\nChange ext4_ext_zeroout to use sb_issue_zeroout instead of its\nown approach to zero out extents.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a31437b85aa2cbc4ea80f9ee5d603fdd5430980c",
      "tree": "d4c0a609d5e4e59d2cd748ddf57c5f2c49844673",
      "parents": [
        "857ac889cce8a486d47874db4d2f9620e7e9e5de"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Wed Oct 27 21:30:05 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:05 2010 -0400"
      },
      "message": "ext4: use sb_issue_zeroout in setup_new_group_blocks\n\nUse sb_issue_zeroout to zero out inode table and descriptor table\nblocks instead of old approach which involves journaling.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "857ac889cce8a486d47874db4d2f9620e7e9e5de",
      "tree": "12401895197d819fcbf2335244d91259f4640aa2",
      "parents": [
        "bfff68738f1cb5c93dab1114634cea02aae9e7ba"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Wed Oct 27 21:30:05 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:05 2010 -0400"
      },
      "message": "ext4: add interface to advertise ext4 features in sysfs\n\nUser-space should have the opportunity to check what features doest ext4\nsupport in each particular copy. This adds easy interface by creating new\n\"features\" directory in sys/fs/ext4/. In that directory files\nadvertising feature names can be created.\n\nAdd lazy_itable_init to the feature list.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "bfff68738f1cb5c93dab1114634cea02aae9e7ba",
      "tree": "b6cdf3f26e86464c7088cab62d837eb32f559fb9",
      "parents": [
        "e6fa0be699449d28a20e815bfe9ce26725ec4962"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Wed Oct 27 21:30:05 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:05 2010 -0400"
      },
      "message": "ext4: add support for lazy inode table initialization\n\nWhen the lazy_itable_init extended option is passed to mke2fs, it\nconsiderably speeds up filesystem creation because inode tables are\nnot zeroed out.  The fact that parts of the inode table are\nuninitialized is not a problem so long as the block group descriptors,\nwhich contain information regarding how much of the inode table has\nbeen initialized, has not been corrupted However, if the block group\nchecksums are not valid, e2fsck must scan the entire inode table, and\nthe the old, uninitialized data could potentially cause e2fsck to\nreport false problems.\n\nHence, it is important for the inode tables to be initialized as soon\nas possble.  This commit adds this feature so that mke2fs can safely\nuse the lazy inode table initialization feature to speed up formatting\nfile systems.\n\nThis is done via a new new kernel thread called ext4lazyinit, which is\ncreated on demand and destroyed, when it is no longer needed.  There\nis only one thread for all ext4 filesystems in the system. When the\nfirst filesystem with inititable mount option is mounted, ext4lazyinit\nthread is created, then the filesystem can register its request in the\nrequest list.\n\nThis thread then walks through the list of requests picking up\nscheduled requests and invoking ext4_init_inode_table(). Next schedule\ntime for the request is computed by multiplying the time it took to\nzero out last inode table with wait multiplier, which can be set with\nthe (init_itable\u003dn) mount option (default is 10).  We are doing\nthis so we do not take the whole I/O bandwidth. When the thread is no\nlonger necessary (request list is empty) it frees the appropriate\nstructures and exits (and can be created later later by another\nfilesystem).\n\nWe do not disturb regular inode allocations in any way, it just do not\ncare whether the inode table is, or is not zeroed. But when zeroing, we\nhave to skip used inodes, obviously. Also we should prevent new inode\nallocations from the group, while zeroing is on the way. For that we\ntake write alloc_sem lock in ext4_init_inode_table() and read alloc_sem\nin the ext4_claim_inode, so when we are unlucky and allocator hits the\ngroup which is currently being zeroed, it just has to wait.\n\nThis can be suppresed using the mount option no_init_itable.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "e6fa0be699449d28a20e815bfe9ce26725ec4962",
      "tree": "2e979f57060c50a73eef51fdbc19d4666d463c4e",
      "parents": [
        "5c2178e785244341d1e6f2bc3b62f20a337cc44f"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Wed Oct 27 21:30:04 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:04 2010 -0400"
      },
      "message": "Add helper function for blkdev_issue_zeroout (sb_issue_discard)\n\nThis is done the same way as helper sb_issue_discard for\nblkdev_issue_discard.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5c2178e785244341d1e6f2bc3b62f20a337cc44f",
      "tree": "669b8108fbe2708dff06dce25be6d70f68c553c4",
      "parents": [
        "a1c6c5698d53db4c47a25c3a8d11731a4d7b8370"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:04 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:04 2010 -0400"
      },
      "message": "jbd2: Add sanity check for attempts to start handle during umount\n\nAn attempt to modify the file system during the call to\njbd2_destroy_journal() can lead to a system lockup.  So add some\nchecking to make it much more obvious when this happens to and to\ndetermine where the offending code is located.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a1c6c5698d53db4c47a25c3a8d11731a4d7b8370",
      "tree": "4c0b46a74ea1699f8a5e2765a432fec35fb38bcb",
      "parents": [
        "53fdcf992d616484d388a8ab9dad07dc8b8f1178"
      ],
      "author": {
        "name": "Sergey Senozhatsky",
        "email": "sergey.senozhatsky@gmail.com",
        "time": "Wed Oct 27 21:30:04 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:04 2010 -0400"
      },
      "message": "ext4: fix NULL pointer dereference in print_daily_error_info()\n\nFix NULL pointer dereference in print_daily_error_info, when   \ncalled on unmounted fs (EXT4_SB(sb) returns NULL), by removing error \nreporting timer in ext4_put_super.\n\nGoogle-Bug-Id: 3017663\n\nSigned-off-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "53fdcf992d616484d388a8ab9dad07dc8b8f1178",
      "tree": "f9542d11f725bfb552636f53eab455f917138f47",
      "parents": [
        "582987098207f1182ed5c7d01d5fedf7a5f56286"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Wed Oct 27 21:30:04 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:04 2010 -0400"
      },
      "message": "ext4: don\u0027t hold spinlock while calling ext4_issue_discard()\n\nWe can\u0027t hold the block group spinlock because we ext4_issue_discard()\ncalls wait and hence can get rescheduled.\n\nGoogle-Bug-Id: 3017678\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "582987098207f1182ed5c7d01d5fedf7a5f56286",
      "tree": "90bd12d0744a8ba7cf63f4042f09102812340334",
      "parents": [
        "b443e7339aa08574d30b0819b344618459c76214"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Wed Oct 27 21:30:03 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:03 2010 -0400"
      },
      "message": "ext4: check for negative error code from sb_issue_discard\n\nsb_issue_discard() is returning negative error code, so check for\n-EOPNOTSUPP.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "b443e7339aa08574d30b0819b344618459c76214",
      "tree": "3c89ccd60deee6184b5cc9cf2bbb78291952b047",
      "parents": [
        "659c6009ca2e3a01acc9881bafe5f55ef09c965b"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Wed Oct 27 21:30:03 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:03 2010 -0400"
      },
      "message": "ext4: don\u0027t bump up LONG_MAX nr_to_write by a factor of 8\n\nI\u0027m uneasy with lots of stuff going on in ext4_da_writepages(),\nbut bumping nr_to_write from LLONG_MAX to -8 clearly isn\u0027t\nmaking anything better, so avoid the multiplier in that case.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    }
  ],
  "next": "659c6009ca2e3a01acc9881bafe5f55ef09c965b"
}
