)]}'
{
  "log": [
    {
      "commit": "9785dbdf265ddc47d5c88267d89a97648c0dc14b",
      "tree": "3a97a48d6f282f9e06c5446beeb886fcd86c4798",
      "parents": [
        "d756bd2d9339447c29bde950910586df8f8941ec",
        "6bf7e080d5bcb0d399ee38ce3dabbfad64448192"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:26:31 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:26:31 2012 -0500"
      },
      "message": "Merge branch \u0027for-chris\u0027 of git://git.jan-o-sch.net/btrfs-unstable into integration\n"
    },
    {
      "commit": "d756bd2d9339447c29bde950910586df8f8941ec",
      "tree": "f96aeb682bcc4fdcf75d080f260c809b9fbc4a1a",
      "parents": [
        "27263e28321db438bc43dc0c0be432ce91526224",
        "b367e47fb3a70f5d24ebd6faf7d42436d485fb2d"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:26:17 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:26:17 2012 -0500"
      },
      "message": "Merge branch \u0027for-chris\u0027 of git://repo.or.cz/linux-btrfs-devel into integration\n\nConflicts:\n\tfs/btrfs/volumes.c\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "27263e28321db438bc43dc0c0be432ce91526224",
      "tree": "b7571dd52d6c1d48528e383d273b330da94439bd",
      "parents": [
        "64e05503ab5c73b2ffb8d55d2f7aab74f34fc691",
        "19a39dce3b9bf0244d19a446718ad6f7605ff099"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:26:02 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:26:02 2012 -0500"
      },
      "message": "Merge branch \u0027restriper\u0027 of git://github.com/idryomov/btrfs-unstable into integration\n"
    },
    {
      "commit": "64e05503ab5c73b2ffb8d55d2f7aab74f34fc691",
      "tree": "a754d3790b8dd59ecaed54095c6e09e04f0d1dd2",
      "parents": [
        "805a6af8dba5dfdd35ec35dc52ec0122400b2610",
        "1bb91902dc90e25449893e693ad45605cb08fbe5"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:25:42 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:25:42 2012 -0500"
      },
      "message": "Merge branch \u0027allocation-fixes\u0027 into integration\n"
    },
    {
      "commit": "19a39dce3b9bf0244d19a446718ad6f7605ff099",
      "tree": "4834e177b8b64405aa858bfdcfbabd890277102b",
      "parents": [
        "de322263d3a6d4ffd4ed7c4d0c6536e9497aec9b"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:49 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:49 2012 +0200"
      },
      "message": "Btrfs: add balance progress reporting\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "de322263d3a6d4ffd4ed7c4d0c6536e9497aec9b",
      "tree": "26761c92c8d135aa62702562bae3337ccad9f74d",
      "parents": [
        "a7e99c691af553fc15ac46a51f130b7c59a65f76"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:49 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:49 2012 +0200"
      },
      "message": "Btrfs: allow for resuming restriper after it was paused\n\nRecognize BTRFS_BALANCE_RESUME flag passed from userspace.  We use the\nsame heuristics used when recovering balance after a crash to try to\nstart where we left off last time.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "a7e99c691af553fc15ac46a51f130b7c59a65f76",
      "tree": "55491f285683951d509819a66e614ac6f12659dd",
      "parents": [
        "837d5b6e46d1a4af5b6cc8f2fe83cb5de79a2961"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:49 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:49 2012 +0200"
      },
      "message": "Btrfs: allow for canceling restriper\n\nImplement an ioctl for canceling restriper.  Currently we wait until\nrelocation of the current block group is finished, in future this can be\ndone by triggering a commit.  Balance item is deleted and no memory\nabout the interrupted balance is kept.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "837d5b6e46d1a4af5b6cc8f2fe83cb5de79a2961",
      "tree": "4ef87d05240e90480749c345274a83094caf66f0",
      "parents": [
        "9555c6c180600b40f6e86bd4dc53bf47e06ed663"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:49 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:49 2012 +0200"
      },
      "message": "Btrfs: allow for pausing restriper\n\nImplement an ioctl for pausing restriper.  This pauses the relocation,\nbut balance is still considered to be \"in progress\": balance item is\nnot deleted, other volume operations cannot be started, etc.  If paused\nin the middle of profile changing operation we will continue making\nallocations with the target profile.\n\nAdd a hook to close_ctree() to pause restriper and free its data\nstructures on unmount.  (It\u0027s safe to unmount when restriper is in\n\"paused\" state, we will resume with the same parameters on the next\nmount)\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "9555c6c180600b40f6e86bd4dc53bf47e06ed663",
      "tree": "74f95edee2368e183a2a054c24725d2940632a8f",
      "parents": [
        "596410151ed71819b9e8a8018c6c9992796b256d"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "message": "Btrfs: add skip_balance mount option\n\nSince restriper kthread starts involuntarily on mount and can suck cpu\nand memory bandwidth add a mount option to forcefully skip it.  The\nrestriper in that case hangs around in paused state and can be resumed\nfrom userspace when it\u0027s convenient.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "596410151ed71819b9e8a8018c6c9992796b256d",
      "tree": "ff697d01a6dd8cf50b37b3855e40764335be044d",
      "parents": [
        "0940ebf6b92ea10a6f30ae5ac3993a3b75745da6"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "message": "Btrfs: recover balance on mount\n\nOn mount, if balance item is found, resume balance in a separate\nkernel thread.\n\nTry to be smart to continue roughly where previous balance (or convert)\nwas interrupted.  For chunk types that were being converted to some\nprofile we turn on soft convert, in case of a simple balance we turn on\nusage filter and relocate only less-than-90%-full chunks of that type.\nThese are just heuristics but they help quite a bit, and can be improved\nin future.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "0940ebf6b92ea10a6f30ae5ac3993a3b75745da6",
      "tree": "30942cd4eaa259951b549abf7c5c972abc8ab289",
      "parents": [
        "cfa4c961cc69ffb7bda450972320a25cbd413e19"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "message": "Btrfs: save balance parameters to disk\n\nIntroduce a new btree objectid for storing balance item.  The reason is\nto be able to resume restriper after a crash with the same parameters.\nBalance item has a very high objectid and goes into tree of tree roots.\n\nThe key for the new item is as follows:\n\n\t[ BTRFS_BALANCE_OBJECTID ; BTRFS_BALANCE_ITEM_KEY ; 0 ]\n\nOlder kernels simply ignore it so it\u0027s safe to mount with an older\nkernel and then go back to the newer one.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "cfa4c961cc69ffb7bda450972320a25cbd413e19",
      "tree": "68ed15b8303d8aa7385df5383aebbef47debea4f",
      "parents": [
        "e4d8ec0f65b91bfb4984a4927632ded95f9825ad"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "message": "Btrfs: soft profile changing mode (aka soft convert)\n\nWhen doing convert from one profile to another if soft mode is on\nrestriper won\u0027t touch chunks that already have the profile we are\nconverting to.  This is useful if e.g. half of the FS was converted\nearlier.\n\nThe soft mode switch is (like every other filter) per-type.  This means\nthat we can convert for example meta chunks the \"hard\" way while\nconverting data chunks selectively with soft switch.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "e4d8ec0f65b91bfb4984a4927632ded95f9825ad",
      "tree": "4727c977803093ec5cdf93da4fcab34cc8de8ecf",
      "parents": [
        "70922617b0099f420deceb53d5dc7f4fb30d08d0"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "message": "Btrfs: implement online profile changing\n\nProfile changing is done by launching a balance with\nBTRFS_BALANCE_CONVERT bits set and target fields of respective\nbtrfs_balance_args structs initialized.  Profile reducing code in this\ncase will pick restriper\u0027s target profile if it\u0027s available instead of\ndoing a blind reduce.  If target profile is not yet available it goes\nback to a plain reduce.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "70922617b0099f420deceb53d5dc7f4fb30d08d0",
      "tree": "6353dff7355863b92b48001e76c3f00bf180916b",
      "parents": [
        "ea67176ae8c024f64d85ec33873e5eadf1af7247"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "message": "Btrfs: do not reduce profile in do_chunk_alloc()\n\nEvery caller of do_chunk_alloc() feeds it the reduced allocation\nprofile, so stop trying to reduce it one more time.  Instead check the\nvalidity of the passed profile.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "ea67176ae8c024f64d85ec33873e5eadf1af7247",
      "tree": "d3674d6a4807074dbaadfdd260e2aaa3011eab5e",
      "parents": [
        "94e60d5a5c4b98a32b1077dec88df09ada712376"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "message": "Btrfs: virtual address space subset filter\n\nSelect chunks which have at least one byte located inside a given\n[vstart, vend) virtual address space range.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "94e60d5a5c4b98a32b1077dec88df09ada712376",
      "tree": "149b9c9f68b64c7aa6e4b07bf12940a6e27591ca",
      "parents": [
        "409d404b461afa9738619f249fd7f62a366b68c2"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "message": "Btrfs: devid subset filter\n\nSelect chunks which have at least one byte of at least one stripe\nlocated on a device with devid X in a given [pstart,pend) physical\naddress range.\n\nThis filter only works when devid filter is turned on.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "409d404b461afa9738619f249fd7f62a366b68c2",
      "tree": "38092a3be26e6bcedc5202c04c5915e12b1d64a8",
      "parents": [
        "5ce5b3c0916ba3a2e34cf648b94044adc5ef9e76"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "message": "Btrfs: devid filter\n\nRelocate chunks which have at least one stripe located on a device with\ndevid X.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "5ce5b3c0916ba3a2e34cf648b94044adc5ef9e76",
      "tree": "0cfbc8eeea18b9491275c59b8a7eed1471a2abd3",
      "parents": [
        "ed25e9b26f898d8d63ae4a836489f1923534143b"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "message": "Btrfs: usage filter\n\nSelect chunks that are less than X percent full.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "ed25e9b26f898d8d63ae4a836489f1923534143b",
      "tree": "89ee253d15ef46b430de0435c068b66267ce829b",
      "parents": [
        "f43ffb60fd94e98be02780944e182ade6653b916"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "message": "Btrfs: profiles filter\n\nSelect chunks based on a given profile mask.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "f43ffb60fd94e98be02780944e182ade6653b916",
      "tree": "50cab47a03c223d0641d8fe62805e71f5cffef1a",
      "parents": [
        "c9e9f97bdfb64d06e9520f8e4f37674ac21cc9bc"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "message": "Btrfs: add basic infrastructure for selective balancing\n\nThis allows to have a separate set of filters for each chunk type\n(data,meta,sys).  The code however is generic and switch on chunk type\nis only done once.\n\nThis commit also adds a type filter: it allows to balance for example\nmeta and system chunks w/o touching data ones.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "c9e9f97bdfb64d06e9520f8e4f37674ac21cc9bc",
      "tree": "22d695a7a461068c773b327e5c89a045ade5d8a3",
      "parents": [
        "10ea00f55a07f8f9536d9112b95108a86f700bab"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "message": "Btrfs: add basic restriper infrastructure\n\nAdd basic restriper infrastructure: extended balancing ioctl and all\nrelated ioctl data structures, add data structure for tracking\nrestriper\u0027s state to fs_info, etc.  The semantics of the old balancing\nioctl are fully preserved.\n\nExplicitly disallow any volume operations when balance is in progress.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "10ea00f55a07f8f9536d9112b95108a86f700bab",
      "tree": "83887f41d8a876d919f74f83cda26eb18b10deca",
      "parents": [
        "a46d11a8b06dd0431a3888fbc4856ea13a8e634f"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "message": "Btrfs: make avail_*_alloc_bits fields dynamic\n\nCurrently when new chunks are created respective avail_alloc_bits field\nis updated to reflect profiles of all chunks present in the system.\nHowever when chunks are removed profile bits are never cleared.\n\nThis patch clears profile bit of respective avail_alloc_bits field when\nthe last chunk with that profile is removed.  Restriper needs this to\nproperly operate when \"downgrading\".\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "a46d11a8b06dd0431a3888fbc4856ea13a8e634f",
      "tree": "2aebc4d3ef2318a08cb067bb4a597a51e2455a65",
      "parents": [
        "52ba692972532f8d652080214b6599ece3dd51b9"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "message": "Btrfs: add BTRFS_AVAIL_ALLOC_BIT_SINGLE bit\n\nRight now on-disk BTRFS_BLOCK_GROUP_* profile bits are used for\navail_{data,metadata,system}_alloc_bits fields, which gather info about\navailable allocation profiles in the FS.  When chunk is created or read\nfrom disk, its profile is OR\u0027ed with the corresponding avail_alloc_bits\nfield.  Since SINGLE is denoted by 0 in the on-disk format, currently\nthere is no way to tell when such chunks become avaialble.  Restriper\nneeds that information, so add a separate bit for SINGLE profile.\n\nThis bit is going to be in-memory only, it should never be written out\nto disk, so it\u0027s not a disk format change.  However to avoid remappings\nin future, reserve corresponding on-disk bit.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "52ba692972532f8d652080214b6599ece3dd51b9",
      "tree": "d4c60bad0a7813d964988c7c40aeceadfb54cc1d",
      "parents": [
        "6fef8df1dcb9b586268caff66df1d71ce8610132"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "message": "Btrfs: introduce masks for chunk type and profile\n\nChunk\u0027s type and profile are encoded in u64 flags field.  Introduce\nmasks to easily access them.  Also fix the type of BTRFS_BLOCK_GROUP_*\nconstants, it should be ULL.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "6fef8df1dcb9b586268caff66df1d71ce8610132",
      "tree": "03488bc99771dda6354a3cb3113bee96f55aac47",
      "parents": [
        "08c422c27f855d27b0b3d9fa30ebd938d4ae6f1f"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "message": "Btrfs: get rid of *_alloc_profile fields\n\n{data,metadata,system}_alloc_profile fields have been unused for a long\ntime now.  Get rid of them.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "b367e47fb3a70f5d24ebd6faf7d42436d485fb2d",
      "tree": "5acc05bae14070f2dad3433a1482fe3a7bab0744",
      "parents": [
        "c7c144db531fda414e532adac56e965ce332e2a5"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Dec 07 11:38:24 2011 +0800"
      },
      "committer": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 11 10:26:54 2012 +0800"
      },
      "message": "Btrfs: fix possible deadlock when opening a seed device\n\nThe correct lock order is uuid_mutex -\u003e volume_mutex -\u003e chunk_mutex,\nbut when we mount a filesystem which has backing seed devices, we have\nthis lock chain:\n\n    open_ctree()\n        lock(chunk_mutex);\n        read_chunk_tree();\n            read_one_dev();\n                open_seed_devices();\n                    lock(uuid_mutex);\n\nand then we hit a lockdep splat.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "c7c144db531fda414e532adac56e965ce332e2a5",
      "tree": "8dc29815a0821e7441ebaa41f15adba0699ef730",
      "parents": [
        "7fe1e641502616220437079258506196bc4d8cbf"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Dec 07 10:39:22 2011 +0800"
      },
      "committer": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 11 10:26:52 2012 +0800"
      },
      "message": "Btrfs: update global block_rsv when creating a new block group\n\nA bug was triggered while using seed device:\n\n    # mkfs.btrfs /dev/loop1\n    # btrfstune -S 1 /dev/loop1\n    # mount -o /dev/loop1 /mnt\n    # btrfs dev add /dev/loop2 /mnt\n\nbtrfs: block rsv returned -28\n------------[ cut here ]------------\nWARNING: at fs/btrfs/extent-tree.c:5969 btrfs_alloc_free_block+0x166/0x396 [btrfs]()\n...\nCall Trace:\n...\n[\u003cf7b7c31c\u003e] btrfs_cow_block+0x101/0x147 [btrfs]\n[\u003cf7b7eaa6\u003e] btrfs_search_slot+0x1b8/0x55f [btrfs]\n[\u003cf7b7f844\u003e] btrfs_insert_empty_items+0x42/0x7f [btrfs]\n[\u003cf7b7f8c1\u003e] btrfs_insert_item+0x40/0x7e [btrfs]\n[\u003cf7b8ac02\u003e] btrfs_make_block_group+0x243/0x2aa [btrfs]\n[\u003cf7bb3f53\u003e] __btrfs_alloc_chunk+0x672/0x70e [btrfs]\n[\u003cf7bb41ff\u003e] init_first_rw_device+0x77/0x13c [btrfs]\n[\u003cf7bb5a62\u003e] btrfs_init_new_device+0x664/0x9fd [btrfs]\n[\u003cf7bbb65a\u003e] btrfs_ioctl+0x694/0xdbe [btrfs]\n[\u003cc04f55f7\u003e] do_vfs_ioctl+0x496/0x4cc\n[\u003cc04f5660\u003e] sys_ioctl+0x33/0x4f\n[\u003cc07b9edf\u003e] sysenter_do_call+0x12/0x38\n---[ end trace 906adac595facc7d ]---\n\nSince seed device is readonly, there\u0027s no usable space in the filesystem.\nAfterwards we add a sprout device to it, and the kernel creates a METADATA\nblock group and a SYSTEM block group where comes free space we can reserve,\nbut we still get revervation failure because the global block_rsv hasn\u0027t\nbeen updated accordingly.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "7fe1e641502616220437079258506196bc4d8cbf",
      "tree": "da48e34d3e826f1bfe87bf7f7743bbb0e47ab2c3",
      "parents": [
        "ec9ef7a13be4dcce964c8503e8999087945e5b9e"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Dec 29 14:47:27 2011 +0800"
      },
      "committer": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 11 10:26:48 2012 +0800"
      },
      "message": "Btrfs: rewrite btrfs_trim_block_group()\n\nThere are various bugs in block group trimming:\n\n- It may trim from offset smaller than user-specified offset.\n- It may trim beyond user-specified range.\n- It may leak free space for extents smaller than specified minlen.\n- It may truncate the last trimmed extent thus leak free space.\n- With mixed extents+bitmaps, some extents may not be trimmed.\n- With mixed extents+bitmaps, some bitmaps may not be trimmed (even\nnone will be trimmed). Even for those trimmed, not all the free space\nin the bitmaps will be trimmed.\n\nI rewrite btrfs_trim_block_group() and break it into two functions.\nOne is to trim extents only, and the other is to trim bitmaps only.\n\nBefore patching:\n\n\t# fstrim -v /mnt/\n\t/mnt/: 1496465408 bytes were trimmed\n\nAfter patching:\n\n\t# fstrim -v /mnt/\n\t/mnt/: 2193768448 bytes were trimmed\n\nAnd this matches the total free space:\n\n\t# btrfs fi df /mnt\n\tData: total\u003d3.58GB, used\u003d1.79GB\n\tSystem, DUP: total\u003d8.00MB, used\u003d4.00KB\n\tSystem: total\u003d4.00MB, used\u003d0.00\n\tMetadata, DUP: total\u003d205.12MB, used\u003d97.14MB\n\tMetadata: total\u003d8.00MB, used\u003d0.00\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "ec9ef7a13be4dcce964c8503e8999087945e5b9e",
      "tree": "afd97976c76c45fca7b659f8d81cbcd4995d2a7e",
      "parents": [
        "de11cc12df17337979e0929d2831887432f236ca"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Dec 01 14:06:42 2011 +0800"
      },
      "committer": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 11 10:26:46 2012 +0800"
      },
      "message": "Btrfs: simplfy calculation of stripe length for discard operation\n\nFor btrfs raid, while discarding a range of space, we\u0027ll need to know\nthe start offset and length to discard for each device, and it\u0027s done\nin btrfs_map_block().\n\nHowever the calculation is a bit complex for raid0 and raid10, so I\nreimplement it based on a fact that:\n\n        dev1          dev2           dev3    (raid0)\n        -----------------------------------\n        s0 s3 s6      s1 s4 s7       s2 s5\n\nEach device has (total_stripes / nr_dev) stripes, or plus one.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "de11cc12df17337979e0929d2831887432f236ca",
      "tree": "a9232dd3531707f49c5e56523019a1e0ce081876",
      "parents": [
        "125ccb0ae6806dbec31abf4a85448971df3b4e39"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Dec 01 12:55:47 2011 +0800"
      },
      "committer": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 11 10:26:44 2012 +0800"
      },
      "message": "Btrfs: don\u0027t pre-allocate btrfs bio\n\nWe pre-allocate a btrfs bio with fixed size, and then may re-allocate\nmemory if we find stripes are bigger than the fixed size. But this\npre-allocation is not necessary.\n\nAlso we don\u0027t have to calcuate the stripe number twice.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "125ccb0ae6806dbec31abf4a85448971df3b4e39",
      "tree": "f530e85bea0639379997000a37e914d180e9e5b4",
      "parents": [
        "4da6f1a332f6c16b6594c7892f13c31459b9b1c8"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Dec 08 15:07:24 2011 +0800"
      },
      "committer": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 11 10:26:42 2012 +0800"
      },
      "message": "Btrfs: don\u0027t pass a trans handle unnecessarily in volumes.c\n\nSome functions never use the transaction handle passed to them.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "4da6f1a332f6c16b6594c7892f13c31459b9b1c8",
      "tree": "e647af08d851ccb13e89312394c9dd1fdaa785c6",
      "parents": [
        "f062abf089ff705e09bbaa6fa1e2fd7688a0f2ea"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Dec 29 13:39:50 2011 +0800"
      },
      "committer": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 11 10:26:39 2012 +0800"
      },
      "message": "Btrfs: reserve metadata space in btrfs_ioctl_setflags()\n\nCheck and reserve space for btrfs_update_inode().\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "f062abf089ff705e09bbaa6fa1e2fd7688a0f2ea",
      "tree": "02ed40f0c73ed1d6f8dbdaf5ce725b520036a9b7",
      "parents": [
        "706efc6630c2722602541a6a2fc5900a4e38456a"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Dec 29 13:36:45 2011 +0800"
      },
      "committer": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 11 10:26:38 2012 +0800"
      },
      "message": "Btrfs: remove BUG_ON()s in btrfs_ioctl_setflags()\n\nWe can recover from errors and return -errno to user space.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "706efc6630c2722602541a6a2fc5900a4e38456a",
      "tree": "bba227c9b49146e6c1bb6b529224088dbb9b8811",
      "parents": [
        "a1ee5a45818acc7f9c13e560827cf3e8735ac919"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Jan 09 14:36:28 2012 +0800"
      },
      "committer": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 11 10:26:36 2012 +0800"
      },
      "message": "Btrfs: check the return value of io_ctl_init()\n\nIt can return -ENOMEM.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "a1ee5a45818acc7f9c13e560827cf3e8735ac919",
      "tree": "984505e8c99a6965453819651ff0ea91a4ca8d4b",
      "parents": [
        "db804f23a72bada58f083dfad6a65d019ddb3bd4"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon Jan 09 14:27:42 2012 +0800"
      },
      "committer": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 11 10:26:34 2012 +0800"
      },
      "message": "Btrfs: avoid possible NULL deref in io_ctl_drop_pages()\n\nIf we run into some failure path in io_ctl_prepare_pages(),\nio_ctl-\u003epages[] array may have some NULL pointers.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "db804f23a72bada58f083dfad6a65d019ddb3bd4",
      "tree": "24c7a53995b61b5f98d87b8db136fc908a3a035f",
      "parents": [
        "d25223a0d22f7ec4203ec285dc6e51f696591ba3"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Jan 10 16:41:01 2012 +0800"
      },
      "committer": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 11 10:26:31 2012 +0800"
      },
      "message": "Btrfs: add pinned extents to on-disk free space cache correctly\n\nI got this while running xfstests:\n\n[24256.836098] block group 317849600 has an wrong amount of free space\n[24256.836100] btrfs: failed to load free space cache for block group 317849600\n\nWe should clamp the extent returned by find_first_extent_bit(),\nso the start of the extent won\u0027t smaller than the start of the\nblock group.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\n"
    },
    {
      "commit": "d25223a0d22f7ec4203ec285dc6e51f696591ba3",
      "tree": "f54428e64f692edfa5bf75f8eb301329e32a895f",
      "parents": [
        "396e6e49c58bb23d1814d3c240c736c9f01523c5",
        "08c422c27f855d27b0b3d9fa30ebd938d4ae6f1f"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 11 09:54:49 2012 +0800"
      },
      "committer": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jan 11 09:54:49 2012 +0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs into for-linus\n"
    },
    {
      "commit": "1bb91902dc90e25449893e693ad45605cb08fbe5",
      "tree": "17f514fb0f2c1b0de7681638ba3b2cc69cf28d01",
      "parents": [
        "fc7c1077ceb99c35e5f9d0ce03dc7740565bb2bf"
      ],
      "author": {
        "name": "Alexandre Oliva",
        "email": "lxoliva@fsfla.org",
        "time": "Fri Oct 14 12:10:36 2011 -0300"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Jan 07 19:15:15 2012 -0500"
      },
      "message": "Btrfs: revamp clustered allocation logic\n\nParameterize clusters on minimum total size, minimum chunk size and\nminimum contiguous size for at least one chunk, without limits on\ncluster, window or gap sizes.  Don\u0027t tolerate any fragmentation for\nSSD_SPREAD; accept it for metadata, but try to keep data dense.\n\nSigned-off-by: Alexandre Oliva \u003coliva@lsd.ic.unicamp.br\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "fc7c1077ceb99c35e5f9d0ce03dc7740565bb2bf",
      "tree": "ae10e2989f33b45529c2474a5668b5cecc65bf08",
      "parents": [
        "a5f6f719a5cd7caeee8ed8137cf3f94c3bbebc65"
      ],
      "author": {
        "name": "Alexandre Oliva",
        "email": "lxoliva@fsfla.org",
        "time": "Mon Nov 28 12:36:17 2011 -0200"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Jan 07 19:15:14 2012 -0500"
      },
      "message": "Btrfs: don\u0027t set up allocation result twice\n\nWe store the allocation start and length twice in ins, once right\nafter the other, but with intervening calls that may prevent the\nduplicate from being optimized out by the compiler.  Remove one of the\nassignments.\n\nSigned-off-by: Alexandre Oliva \u003coliva@lsd.ic.unicamp.br\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "a5f6f719a5cd7caeee8ed8137cf3f94c3bbebc65",
      "tree": "622a4a4399eae8e81b152670aa71c621d31b1878",
      "parents": [
        "1100373f8aa69e377386499350496e3d8565605f"
      ],
      "author": {
        "name": "Alexandre Oliva",
        "email": "lxoliva@fsfla.org",
        "time": "Mon Dec 12 04:48:19 2011 -0200"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jan 06 15:48:21 2012 -0500"
      },
      "message": "Btrfs: test free space only for unclustered allocation\n\nSince the clustered allocation may be taking extents from a different\nblock group, there\u0027s no point in spin-locking and testing the current\nblock group free space before attempting to allocate space from a\ncluster, even more so when we might refrain from even trying the\ncluster in the current block group because, after the cluster was set\nup, not enough free space remained.  Furthermore, cluster creation\nattempts fail fast when the block group doesn\u0027t have enough free\nspace, so the test was completely superfluous.\n\nI\u0027ve move the free space test past the cluster allocation attempt,\nwhere it is more useful, and arranged for a cluster in the current\nblock group to be released before trying an unclustered allocation,\nwhen we reach the LOOP_NO_EMPTY_SIZE stage, so that the free space in\nthe cluster stands a chance of being combined with additional free\nspace in the block group so as to succeed in the allocation attempt.\n\nSigned-off-by: Alexandre Oliva \u003coliva@lsd.ic.unicamp.br\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "1100373f8aa69e377386499350496e3d8565605f",
      "tree": "e090858231ee4f3bf0b51ba4cf3dc592f4e007e8",
      "parents": [
        "cf1d72c9ceec391d34c48724da57282e97f01122"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jan 06 15:47:38 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jan 06 15:47:38 2012 -0500"
      },
      "message": "Btrfs: use bigger metadata chunks on bigger filesystems\n\nThe 256MB chunk is a little small on a huge FS.  This scales up the\nchunk size.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "cf1d72c9ceec391d34c48724da57282e97f01122",
      "tree": "addcb347d4c00d724f86d309ad26b75438b7a814",
      "parents": [
        "203bf287cb01a5dc26c20bd3737cecf3aeba1d48"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jan 06 15:41:34 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jan 06 15:41:34 2012 -0500"
      },
      "message": "Btrfs: lower the bar for chunk allocation\n\nThe chunk allocation code has tried to keep a pretty tight lid on creating new\nmetadata chunks.  This is partially because in the past the reservation\ncode didn\u0027t give us an accurate idea of how much space was being used.\n\nThe new code is much more accurate, so we\u0027re able to get rid of some of these\nchecks.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "203bf287cb01a5dc26c20bd3737cecf3aeba1d48",
      "tree": "f9ce9d7c82360bd6059b5ef16166cf79d16b1380",
      "parents": [
        "c1111b1fcee6359922ad8e5f6d72ed43815ad8f9"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jan 06 15:23:57 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jan 06 15:23:57 2012 -0500"
      },
      "message": "Btrfs: run chunk allocations while we do delayed refs\n\nBtrfs tries to batch extent allocation tree changes to improve performance\nand reduce metadata trashing.  But it doesn\u0027t allocate new metadata chunks\nwhile it is doing allocations for the extent allocation tree.\n\nThis commit changes the delayed refence code to do chunk allocations if we\u0027re\ngetting low on room.  It prevents crashes and improves performance.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "6bf7e080d5bcb0d399ee38ce3dabbfad64448192",
      "tree": "954fc4c3ae899b1bb4b89af03582a81546eda4bf",
      "parents": [
        "4692cf58aa7b81f721c1653d48db99ea41421d58"
      ],
      "author": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Thu Dec 01 14:35:19 2011 +0100"
      },
      "committer": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Thu Jan 05 15:11:55 2012 +0100"
      },
      "message": "Btrfs: make sure we\u0027re not using obsolete code in btrfs_get_extent\n\nThere\u0027s code in btrfs_get_extent that should never be used. This patch turns\na WARN_ON(1) into a BUG(), hoping we can remove the transaction code from\nbtrfs_get_extent soon.\n\nSigned-off-by: Jan Schmidt \u003clist.btrfs@jan-o-sch.net\u003e\n"
    },
    {
      "commit": "4692cf58aa7b81f721c1653d48db99ea41421d58",
      "tree": "0a5bf889142252d91bcc8df33a9c63c18024fe70",
      "parents": [
        "8da6d5815c592b713ecaf4f4f8b631f8359c96c4"
      ],
      "author": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Fri Dec 02 14:56:41 2011 +0100"
      },
      "committer": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Thu Jan 05 10:49:43 2012 +0100"
      },
      "message": "Btrfs: new backref walking code\n\nThe old backref iteration code could only safely be used on commit roots.\nBesides this limitation, it had bugs in finding the roots for these\nreferences. This commit replaces large parts of it by btrfs_find_all_roots()\nwhich a) really finds all roots and the correct roots, b) works correctly\nunder heavy file system load, c) considers delayed refs.\n\nSigned-off-by: Jan Schmidt \u003clist.btrfs@jan-o-sch.net\u003e\n"
    },
    {
      "commit": "805a6af8dba5dfdd35ec35dc52ec0122400b2610",
      "tree": "f6f7009c0b6a896ff1ea22aac7f17f23bd5a9e4f",
      "parents": [
        "869682384e78605897f9332700fe26c358ecf21c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 04 15:55:44 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 04 15:55:44 2012 -0800"
      },
      "message": "Linux 3.2\n"
    },
    {
      "commit": "869682384e78605897f9332700fe26c358ecf21c",
      "tree": "8b0654cec2ccfbf70f163caa66c98f6316b91f0d",
      "parents": [
        "d6042eac44b54dc5c7cb839175eb51dfd03d7633",
        "d8f46ff11081f03b09efe82245a3257bab6bf60e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 04 15:03:49 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 04 15:03:49 2012 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:\n  fix CAN MAINTAINERS SCM tree type\n  mwifiex: fix crash during simultaneous scan and connect\n  b43: fix regression in PIO case\n  ath9k: Fix kernel panic in AR2427 in AP mode\n  CAN MAINTAINERS update\n  net: fsl: fec: fix build for mx23-only kernel\n  sch_qfq: fix overflow in qfq_update_start()\n  Revert \"Bluetooth: Increase HCI reset timeout in hci_dev_do_close\"\n"
    },
    {
      "commit": "d6042eac44b54dc5c7cb839175eb51dfd03d7633",
      "tree": "b2a1c5878771f4d7a5aada868bdbc7eafc4eba3b",
      "parents": [
        "8a88951b5878dc475dcd841cefc767e36397d14e"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Wed Jan 04 10:51:03 2012 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 04 15:03:06 2012 -0800"
      },
      "message": "minixfs: misplaced checks lead to dentry leak\n\nbitmap size sanity checks should be done *before* allocating -\u003es_root;\nthere their cleanup on failure would be correct.  As it is, we do iput()\non root inode, but leak the root dentry...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: Josh Boyer \u003cjwboyer@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8a88951b5878dc475dcd841cefc767e36397d14e",
      "tree": "c31fd8cdfa08dce4768f42e556d97929deac2343",
      "parents": [
        "50b8d257486a45cba7b65ca978986ed216bbcc10"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jan 04 17:29:20 2012 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 04 15:01:59 2012 -0800"
      },
      "message": "ptrace: ensure JOBCTL_STOP_SIGMASK is not zero after detach\n\nThis is the temporary simple fix for 3.2, we need more changes in this\narea.\n\n1. do_signal_stop() assumes that the running untraced thread in the\n   stopped thread group is not possible. This was our goal but it is\n   not yet achieved: a stopped-but-resumed tracee can clone the running\n   thread which can initiate another group-stop.\n\n   Remove WARN_ON_ONCE(!current-\u003eptrace).\n\n2. A new thread always starts with -\u003ejobctl \u003d 0. If it is auto-attached\n   and this group is stopped, __ptrace_unlink() sets JOBCTL_STOP_PENDING\n   but JOBCTL_STOP_SIGMASK part is zero, this triggers WANR_ON(!signr)\n   in do_jobctl_trap() if another debugger attaches.\n\n   Change __ptrace_unlink() to set the artificial SIGSTOP for report.\n\n   Alternatively we could change ptrace_init_task() to copy signr from\n   current, but this means we can copy it for no reason and hide the\n   possible similar problems.\n\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[3.1]\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "50b8d257486a45cba7b65ca978986ed216bbcc10",
      "tree": "0bcbb7eefaaf3da47a23c259e91baf414319ff96",
      "parents": [
        "8d9cbf8240023f5b6d19f2106aff3d7077fc4a3b"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Jan 04 17:29:02 2012 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 04 15:01:59 2012 -0800"
      },
      "message": "ptrace: partially fix the do_wait(WEXITED) vs EXIT_DEAD-\u003eEXIT_ZOMBIE race\n\nTest-case:\n\n\tint main(void)\n\t{\n\t\tint pid, status;\n\n\t\tpid \u003d fork();\n\t\tif (!pid) {\n\t\t\tfor (;;) {\n\t\t\t\tif (!fork())\n\t\t\t\t\treturn 0;\n\t\t\t\tif (waitpid(-1, \u0026status, 0) \u003c 0) {\n\t\t\t\t\tprintf(\"ERR!! wait: %m\\n\");\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tassert(ptrace(PTRACE_ATTACH, pid, 0,0) \u003d\u003d 0);\n\t\tassert(waitpid(-1, NULL, 0) \u003d\u003d pid);\n\n\t\tassert(ptrace(PTRACE_SETOPTIONS, pid, 0,\n\t\t\t\t\tPTRACE_O_TRACEFORK) \u003d\u003d 0);\n\n\t\tdo {\n\t\t\tptrace(PTRACE_CONT, pid, 0, 0);\n\t\t\tpid \u003d waitpid(-1, NULL, 0);\n\t\t} while (pid \u003e 0);\n\n\t\treturn 1;\n\t}\n\nIt fails because -\u003ereal_parent sees its child in EXIT_DEAD state\nwhile the tracer is going to change the state back to EXIT_ZOMBIE\nin wait_task_zombie().\n\nThe offending commit is 823b018e which moved the EXIT_DEAD check,\nbut in fact we should not blame it. The original code was not\ncorrect as well because it didn\u0027t take ptrace_reparented() into\naccount and because we can\u0027t really trust -\u003eptrace.\n\nThis patch adds the additional check to close this particular\nrace but it doesn\u0027t solve the whole problem. We simply can\u0027t\nrely on -\u003eptrace in this case, it can be cleared if the tracer\nis multithreaded by the exiting -\u003eparent.\n\nI think we should kill EXIT_DEAD altogether, we should always\nremove the soon-to-be-reaped child from -\u003echildren or at least\nwe should never do the DEAD-\u003eZOMBIE transition. But this is too\ncomplex for 3.2.\n\nReported-and-tested-by: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\nTested-by: Lukasz Michalik \u003clmi@ift.uni.wroc.pl\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[3.0+]\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8d9cbf8240023f5b6d19f2106aff3d7077fc4a3b",
      "tree": "f795383da4de9b99efb933f02b26d2bdf2746f0d",
      "parents": [
        "f423fc627b05f47bc9305f9661630fce30f208f9",
        "225de11e31c1cecd04839b859a0b8f81d490a50b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 04 14:57:55 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 04 14:57:55 2012 -0800"
      },
      "message": "Merge git://git.samba.org/sfrench/cifs-2.6\n\n* git://git.samba.org/sfrench/cifs-2.6:\n  [CIFS] default ntlmv2 for cifs mount delayed to 3.3\n  cifs: fix bad buffer length check in coalesce_t2\n"
    },
    {
      "commit": "d8f46ff11081f03b09efe82245a3257bab6bf60e",
      "tree": "fe47a5fe5ef62920ee3e1ffe5a2fd7a29918c6b0",
      "parents": [
        "405cc2736527bd506fd8f652308b03b2c8a1e8b9",
        "b015dbc0f95eef34819515bd403a62569bca23df"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jan 04 11:37:30 2012 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Wed Jan 04 11:37:30 2012 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem\n"
    },
    {
      "commit": "f423fc627b05f47bc9305f9661630fce30f208f9",
      "tree": "f2d9589bc443e99c8843a8ca18c44956d61fcf28",
      "parents": [
        "157e8bf8b4823bfcdefa6c1548002374b61f61df"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 04 07:57:22 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 04 07:57:22 2012 -0800"
      },
      "message": "Revert \"rtc: Expire alarms after the time is set.\"\n\nThis reverts commit 93b2ec0128c431148b216b8f7337c1a52131ef03.\n\nThe call to \"schedule_work()\" in rtc_initialize_alarm() happens too\nearly, and can cause oopses at bootup\n\nNeil Brown explains why we do it:\n\n  \"If you set an alarm in the future, then shutdown and boot again after\n   that time, then you will end up with a timer_queue node which is in\n   the past.\n\n   When this happens the queue gets stuck.  That entry-in-the-past won\u0027t\n   get removed until and interrupt happens and an interrupt won\u0027t happen\n   because the RTC only triggers an interrupt when the alarm is \"now\".\n\n   So you\u0027ll find that e.g.  \"hwclock\" will always tell you that\n   \u0027select\u0027 timed out.\n\n   So we force the interrupt work to happen at the start just in case.\"\n\nand has a patch that convert it to do things in-process rather than with\nthe worker thread, but right now it\u0027s too late to play around with this,\nso we just revert the patch that caused problems for now.\n\nReported-by: Sander Eikelenboom \u003clinux@eikelenboom.it\u003e\nRequested-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nRequested-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8da6d5815c592b713ecaf4f4f8b631f8359c96c4",
      "tree": "1dac6f55dd37193eee821b9d29ff59ee61edb853",
      "parents": [
        "a168650c08300434e1456abe7b6451f1448230d3"
      ],
      "author": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Wed Nov 23 18:55:04 2011 +0100"
      },
      "committer": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Wed Jan 04 16:26:38 2012 +0100"
      },
      "message": "Btrfs: added btrfs_find_all_roots()\n\nThis function gets a byte number (a data extent), collects all the leafs\npointing to it and walks up the trees to find all fs roots pointing to those\nleafs. It also returns the list of all leafs pointing to that extent.\n\nIt does proper locking for the involved trees, can be used on busy file\nsystems and honors delayed refs.\n\nSigned-off-by: Arne Jansen \u003csensille@gmx.net\u003e\nSigned-off-by: Jan Schmidt \u003clist.btrfs@jan-o-sch.net\u003e\n"
    },
    {
      "commit": "a168650c08300434e1456abe7b6451f1448230d3",
      "tree": "addddb060b018eb569e97c11e1a1451feef11c7a",
      "parents": [
        "d1270cd91f308c9d22b2804720c36ccd32dbc35e"
      ],
      "author": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Mon Dec 12 16:10:07 2011 +0100"
      },
      "committer": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Wed Jan 04 16:12:48 2012 +0100"
      },
      "message": "Btrfs: add waitqueue instead of doing busy waiting for more delayed refs\n\nNow that we may be holding back delayed refs for a limited period, we\nmight end up having no runnable delayed refs. Without this commit, we\u0027d\ndo busy waiting in that thread until another (runnable) ref arives.\nInstead, we\u0027re detecting this situation and use a waitqueue, such that\nwe only try to run more refs after\n\ta) another runnable ref was added  or\n\tb) delayed refs are no longer held back\n\nSigned-off-by: Jan Schmidt \u003clist.btrfs@jan-o-sch.net\u003e\n"
    },
    {
      "commit": "d1270cd91f308c9d22b2804720c36ccd32dbc35e",
      "tree": "3dfa3109f7df9983ce88dad5bcb4515f7d4b26b5",
      "parents": [
        "00f04b88791ff49dc64ada18819d40a5b0671709"
      ],
      "author": {
        "name": "Arne Jansen",
        "email": "sensille@gmx.net",
        "time": "Tue Sep 13 15:16:43 2011 +0200"
      },
      "committer": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Wed Jan 04 16:12:45 2012 +0100"
      },
      "message": "Btrfs: put back delayed refs that are too new\n\nWhen processing a delayed ref, first check if there are still old refs in\nthe process of being added. If so, put this ref back to the tree. To avoid\nlooping on this ref, choose a newer one in the next loop.\nbtrfs_find_ref_cluster has to take care of that.\n\nSigned-off-by: Arne Jansen \u003csensille@gmx.net\u003e\nSigned-off-by: Jan Schmidt \u003clist.btrfs@jan-o-sch.net\u003e\n"
    },
    {
      "commit": "00f04b88791ff49dc64ada18819d40a5b0671709",
      "tree": "fd85a5f4b374aac035388b0cbf8ef572578d5578",
      "parents": [
        "5b25f70f4200766355cdabda604e131d2fb6010d"
      ],
      "author": {
        "name": "Arne Jansen",
        "email": "sensille@gmx.net",
        "time": "Wed Sep 14 12:37:00 2011 +0200"
      },
      "committer": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Wed Jan 04 16:12:42 2012 +0100"
      },
      "message": "Btrfs: add sequence numbers to delayed refs\n\nSequence numbers are needed to reconstruct the backrefs of a given extent to\na certain point in time. The total set of backrefs consist of the set of\nbackrefs recorded on disk plus the enqueued delayed refs for it that existed\nat that moment.\n\nThis patch also adds a list that records all delayed refs which are\ncurrently in the process of being added.\n\nWhen walking all refs of an extent in btrfs_find_all_roots(), we freeze the\ncurrent state of delayed refs, honor anythinh up to this point and prevent\nprocessing newer delayed refs to assert consistency.\n\nSigned-off-by: Arne Jansen \u003csensille@gmx.net\u003e\nSigned-off-by: Jan Schmidt \u003clist.btrfs@jan-o-sch.net\u003e\n"
    },
    {
      "commit": "5b25f70f4200766355cdabda604e131d2fb6010d",
      "tree": "20749d5e90763e8c1746d36b00c5beec5e3660b9",
      "parents": [
        "eebe063b7f916087cd5c61de57b20a3a30894a96"
      ],
      "author": {
        "name": "Arne Jansen",
        "email": "sensille@gmx.net",
        "time": "Tue Sep 13 10:55:48 2011 +0200"
      },
      "committer": {
        "name": "Jan Schmidt",
        "email": "list.btrfs@jan-o-sch.net",
        "time": "Wed Jan 04 16:12:29 2012 +0100"
      },
      "message": "Btrfs: add nested locking mode for paths\n\nThis patch adds the possibilty to read-lock an extent even if it is already\nwrite-locked from the same thread. btrfs_find_all_roots() needs this\ncapability.\n\nSigned-off-by: Arne Jansen \u003csensille@gmx.net\u003e\nSigned-off-by: Jan Schmidt \u003clist.btrfs@jan-o-sch.net\u003e\n"
    },
    {
      "commit": "225de11e31c1cecd04839b859a0b8f81d490a50b",
      "tree": "1d4ac4f71cad1ff9be6dd122b0bd388153189ff1",
      "parents": [
        "497728e11a9deeaea18be19fadcf7f1c85efbcf7"
      ],
      "author": {
        "name": "Steve French",
        "email": "smfrench@gmail.com",
        "time": "Tue Jan 03 23:08:24 2012 -0600"
      },
      "committer": {
        "name": "Steve French",
        "email": "smfrench@gmail.com",
        "time": "Wed Jan 04 07:54:40 2012 -0600"
      },
      "message": "[CIFS] default ntlmv2 for cifs mount delayed to 3.3\n\nTurned out the ntlmv2 (default security authentication)\nupgrade was harder to test than expected, and we ran\nout of time to test against Apple and a few other servers\nthat we wanted to.  Delay upgrade of default security\nfrom ntlm to ntlmv2 (on mount) to 3.3.  Still works\nfine to specify it explicitly via \"sec\u003dntlmv2\" so this\nshould be fine.\n\nAcked-by: Jeff Layton \u003cjlayton@samba.org\u003e\nSigned-off-by: Steve French \u003csmfrench@gmail.com\u003e\n"
    },
    {
      "commit": "497728e11a9deeaea18be19fadcf7f1c85efbcf7",
      "tree": "426b57623483588f7bdc15dc01cbd0930949fac1",
      "parents": [
        "f9fab10bbd768b0e5254e53a4a8477a94bfc4b96"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Sun Jan 01 10:34:39 2012 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "smfrench@gmail.com",
        "time": "Tue Jan 03 20:34:17 2012 -0600"
      },
      "message": "cifs: fix bad buffer length check in coalesce_t2\n\nThe current check looks to see if the RFC1002 length is larger than\nCIFSMaxBufSize, and fails if it is. The buffer is actually larger than\nthat by MAX_CIFS_HDR_SIZE.\n\nThis bug has been around for a long time, but the fact that we used to\ncap the clients MaxBufferSize at the same level as the server tended\nto paper over it. Commit c974befa changed that however and caused this\nbug to bite in more cases.\n\nReported-and-Tested-by: Konstantinos Skarlatos \u003ck.skarlatos@gmail.com\u003e\nTested-by: Shirish Pargaonkar \u003cshirishpargaonkar@gmail.com\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csmfrench@gmail.com\u003e\n"
    },
    {
      "commit": "157e8bf8b4823bfcdefa6c1548002374b61f61df",
      "tree": "fb3918eeb8635b7ea6662ef2290dc834efc81b70",
      "parents": [
        "f9fab10bbd768b0e5254e53a4a8477a94bfc4b96"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 03 17:32:13 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 03 17:32:13 2012 -0800"
      },
      "message": "Revert \"rtc: Disable the alarm in the hardware\"\n\nThis reverts commit c0afabd3d553c521e003779c127143ffde55a16f.\n\nIt causes failures on Toshiba laptops - instead of disabling the alarm,\nit actually seems to enable it on the affected laptops, resulting in\n(for example) the laptop powering on automatically five minutes after\nshutdown.\n\nThere\u0027s a patch for it that appears to work for at least some people,\nbut it\u0027s too late to play around with this, so revert for now and try\nagain in the next merge window.\n\nSee for example\n\n\thttp://bugs.debian.org/652869\n\nReported-and-bisected-by: Andreas Friedrich \u003cafrie@gmx.net\u003e (Toshiba Tecra)\nReported-by: Antonio-M. Corbi Bellot \u003cantonio.corbi@ua.es\u003e (Toshiba Portege R500)\nReported-by: Marco Santos \u003cmarco.santos@waynext.com\u003e (Toshiba Portege Z830)\nReported-by: Christophe Vu-Brugier \u003ccvubrugier@yahoo.fr\u003e  (Toshiba Portege R830)\nCc: Jonathan Nieder \u003cjrnieder@gmail.com\u003e\nRequested-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: stable@kernel.org  # for the versions that applied this\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f9fab10bbd768b0e5254e53a4a8477a94bfc4b96",
      "tree": "7f4efb5c46582765c12249f652a8975a1956f781",
      "parents": [
        "30e053248da178cf6154bb7e950dc8713567e3fa"
      ],
      "author": {
        "name": "Mandeep Singh Baines",
        "email": "msb@chromium.org",
        "time": "Tue Jan 03 14:41:13 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 03 16:14:32 2012 -0800"
      },
      "message": "hung_task: fix false positive during vfork\n\nvfork parent uninterruptibly and unkillably waits for its child to\nexec/exit. This wait is of unbounded length. Ignore such waits\nin the hung_task detector.\n\nSigned-off-by: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nReported-by: Sasha Levin \u003clevinsasha928@gmail.com\u003e\nLKML-Reference: \u003c1325344394.28904.43.camel@lappy\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "30e053248da178cf6154bb7e950dc8713567e3fa",
      "tree": "3ef4cb7f85f581fe53361ea0eb2586a8b6e696c2",
      "parents": [
        "4376eee92e5a8332b470040e672ea99cd44c826a"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Jan 03 13:14:29 2012 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 03 16:12:19 2012 -0800"
      },
      "message": "security: Fix security_old_inode_init_security() when CONFIG_SECURITY is not set\n\nCommit 1e39f384bb01 (\"evm: fix build problems\") makes the stub version\nof security_old_inode_init_security() return 0 when CONFIG_SECURITY is\nnot set.\n\nBut that makes callers such as reiserfs_security_init() assume that\nsecurity_old_inode_init_security() has set name, value, and len\narguments properly - but security_old_inode_init_security() left them\nuninitialized which then results in interesting failures.\n\nRevert security_old_inode_init_security() to the old behavior of\nreturning EOPNOTSUPP since both callers (reiserfs and ocfs2) handle this\njust fine.\n\n[ Also fixed the S_PRIVATE(inode) case of the actual non-stub\n  security_old_inode_init_security() function to return EOPNOTSUPP\n  for the same reason, as pointed out by Mimi Zohar.\n\n  It got incorrectly changed to match the new function in commit\n  fb88c2b6cbb1: \"evm: fix security/security_old_init_security return\n  code\".   - Linus ]\n\nReported-by: Jorge Bastos \u003cmysql.jorge@decimal.pt\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "405cc2736527bd506fd8f652308b03b2c8a1e8b9",
      "tree": "970d3df10ee1b51bbf6fff872623be1585d9ae8c",
      "parents": [
        "ec78213acd6de3e9fa83c78b1046ebbe1d0ca8bf"
      ],
      "author": {
        "name": "Oliver Hartkopp",
        "email": "socketcan@hartkopp.net",
        "time": "Tue Jan 03 14:57:43 2012 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 03 14:57:43 2012 -0500"
      },
      "message": "fix CAN MAINTAINERS SCM tree type\n\nAs pointed out by Joe Perches the SCM tree type was missing in my patch.\n\nSigned-off-by: Oliver Hartkopp \u003csocketcan@hartkopp.net\u003e\n\nCC: Oliver Hartkopp \u003coliver.hartkopp@volkswagen.de\u003e\nCC: Urs Thuermann \u003curs.thuermann@volkswagen.de\u003e\nCC: Wolfgang Grandegger \u003cwg@grandegger.com\u003e\nCC: Marc Kleine-Budde \u003cmkl@pengutronix.de\u003e\nCC: linux-can@vger.kernel.org\n"
    },
    {
      "commit": "b015dbc0f95eef34819515bd403a62569bca23df",
      "tree": "628a5820226435e6f3b2e302c5dda8a80368c1d7",
      "parents": [
        "09009512e5e7ab341b1554a256f81dd512c1f4bf"
      ],
      "author": {
        "name": "Amitkumar Karwar",
        "email": "akarwar@marvell.com",
        "time": "Mon Jan 02 16:18:40 2012 -0800"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 03 14:40:45 2012 -0500"
      },
      "message": "mwifiex: fix crash during simultaneous scan and connect\n\nIf \u0027iw connect\u0027 command is fired when driver is already busy in\nserving \u0027iw scan\u0027 command, ssid specific scan operation for connect\nis skipped. In this case cmd wait queue handler gets called with no\ncommand in queue (i.e. adapter-\u003ecmd_queued \u003d NULL).\n\nThis patch adds a NULL check in mwifiex_wait_queue_complete()\nroutine to fix crash observed during simultaneous scan and assoc\noperations.\n\nSigned-off-by: Amitkumar Karwar \u003cakarwar@marvell.com\u003e\nSigned-off-by: Bing Zhao \u003cbzhao@marvell.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "09009512e5e7ab341b1554a256f81dd512c1f4bf",
      "tree": "58d8b7a6ab90137138dc4d22ec4b4d85be708b2c",
      "parents": [
        "b25bfda38236f349cde0d1b28952f4eea2148d3f"
      ],
      "author": {
        "name": "Guennadi Liakhovetski",
        "email": "g.liakhovetski@gmx.de",
        "time": "Mon Dec 26 18:28:08 2011 +0100"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 03 14:40:45 2012 -0500"
      },
      "message": "b43: fix regression in PIO case\n\nThis patch fixes the regression, introduced by\n\ncommit 17030f48e31adde5b043741c91ba143f5f7db0fd\nFrom: Rafał Miłecki \u003czajec5@gmail.com\u003e\nDate: Thu, 11 Aug 2011 17:16:27 +0200\nSubject: [PATCH] b43: support new RX header, noticed to be used in 598.314+ fw\n\nin PIO case.\n\nSigned-off-by: Guennadi Liakhovetski \u003cg.liakhovetski@gmx.de\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "b25bfda38236f349cde0d1b28952f4eea2148d3f",
      "tree": "1718455482594b815df027f44065abbdc71550b0",
      "parents": [
        "f9dc73e541348288b530c62c21d0fb8fdc7bbd0f"
      ],
      "author": {
        "name": "Mohammed Shafi Shajakhan",
        "email": "mohammed@qca.qualcomm.com",
        "time": "Mon Dec 26 10:42:15 2011 +0530"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 03 14:40:45 2012 -0500"
      },
      "message": "ath9k: Fix kernel panic in AR2427 in AP mode\n\ndon\u0027t do aggregation related stuff for \u0027AP mode client power save\nhandling\u0027 if aggregation is not enabled in the driver, otherwise it\nwill lead to panic because those data structures won\u0027t be never\nintialized in \u0027ath_tx_node_init\u0027 if aggregation is disabled\n\n\tEIP is at ath_tx_aggr_wakeup+0x37/0x80 [ath9k]\n\tEAX: e8c09a20 EBX: f2a304e8 ECX: 00000001 EDX: 00000000\n\tESI: e8c085e0 EDI: f2a304ac EBP: f40e1ca4 ESP: f40e1c8c\n\tDS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068\n\tProcess swapper/1 (pid: 0, ti\u003df40e0000 task\u003df408e860\n\ttask.ti\u003df40dc000)\n\tStack:\n\t0001e966 e8c09a20 00000000 f2a304ac e8c085e0 f2a304ac\n\tf40e1cb0 f8186741\n\tf8186700 f40e1d2c f922988d f2a304ac 00000202 00000001\n\tc0b4ba43 00000000\n\t0000000f e8eb75c0 e8c085e0 205b0001 34383220 f2a304ac\n\tf2a30000 00010020\n\tCall Trace:\n\t[\u003cf8186741\u003e] ath9k_sta_notify+0x41/0x50 [ath9k]\n\t[\u003cf8186700\u003e] ? ath9k_get_survey+0x110/0x110 [ath9k]\n\t[\u003cf922988d\u003e] ieee80211_sta_ps_deliver_wakeup+0x9d/0x350\n\t[mac80211]\n\t[\u003cc018dc75\u003e] ? __module_address+0x95/0xb0\n\t[\u003cf92465b3\u003e] ap_sta_ps_end+0x63/0xa0 [mac80211]\n\t[\u003cf9246746\u003e] ieee80211_rx_h_sta_process+0x156/0x2b0\n\t[mac80211]\n\t[\u003cf9247d1e\u003e] ieee80211_rx_handlers+0xce/0x510 [mac80211]\n\t[\u003cc018440b\u003e] ? trace_hardirqs_on+0xb/0x10\n\t[\u003cc056936e\u003e] ? skb_queue_tail+0x3e/0x50\n\t[\u003cf9248271\u003e] ieee80211_prepare_and_rx_handle+0x111/0x750\n\t[mac80211]\n\t[\u003cf9248bf9\u003e] ieee80211_rx+0x349/0xb20 [mac80211]\n\t[\u003cf9248949\u003e] ? ieee80211_rx+0x99/0xb20 [mac80211]\n\t[\u003cf818b0b8\u003e] ath_rx_tasklet+0x818/0x1d00 [ath9k]\n\t[\u003cf8187a75\u003e] ? ath9k_tasklet+0x35/0x1c0 [ath9k]\n\t[\u003cf8187a75\u003e] ? ath9k_tasklet+0x35/0x1c0 [ath9k]\n\t[\u003cf8187b33\u003e] ath9k_tasklet+0xf3/0x1c0 [ath9k]\n\t[\u003cc0151b7e\u003e] tasklet_action+0xbe/0x180\n\nCc: stable@kernel.org\nCc: Senthil Balasubramanian \u003csenthilb@qca.qualcomm.com\u003e\nCc: Rajkumar Manoharan \u003crmanohar@qca.qualcomm.com\u003e\nReported-by: Ashwin Mendonca \u003cashwinloyal@gmail.com\u003e\nTested-by: Ashwin Mendonca \u003cashwinloyal@gmail.com\u003e\nSigned-off-by: Mohammed Shafi Shajakhan \u003cmohammed@qca.qualcomm.com\u003e\nSigned-off-by: John W. Linville \u003clinville@tuxdriver.com\u003e\n"
    },
    {
      "commit": "f9dc73e541348288b530c62c21d0fb8fdc7bbd0f",
      "tree": "caf6201912169f847c0a2b6ab85c4ac1ca65f0dd",
      "parents": [
        "96f1f05af76b601ab21a7dc603ae0a1cea4efc3d",
        "cad44c2bf6165e46e309d4db0ffd286a9259aa2a"
      ],
      "author": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 03 14:26:56 2012 -0500"
      },
      "committer": {
        "name": "John W. Linville",
        "email": "linville@tuxdriver.com",
        "time": "Tue Jan 03 14:26:56 2012 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/padovan/bluetooth\n"
    },
    {
      "commit": "ec78213acd6de3e9fa83c78b1046ebbe1d0ca8bf",
      "tree": "1d5e547d31f3ba6560a6a745c873f774bab66710",
      "parents": [
        "0d9032477f4ba2323079466efef0c1419613eebf"
      ],
      "author": {
        "name": "Oliver Hartkopp",
        "email": "socketcan@hartkopp.net",
        "time": "Tue Jan 03 08:40:28 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 03 13:55:15 2012 -0500"
      },
      "message": "CAN MAINTAINERS update\n\nUpdate the CAN MAINTAINERS section:\n\n- point out active maintainers\n- pull the CAN driver discussion away from netdev ML\n- point to the new CAN web site on gitorious.org\n- add CAN development git repository URL to submit patches\n\nSigned-off-by: Oliver Hartkopp \u003csocketcan@hartkopp.net\u003e\n\nCC: Oliver Hartkopp \u003coliver.hartkopp@volkswagen.de\u003e\nCC: Urs Thuermann \u003curs.thuermann@volkswagen.de\u003e\nCC: Wolfgang Grandegger \u003cwg@grandegger.com\u003e\nCC: Marc Kleine-Budde \u003cmkl@pengutronix.de\u003e\nCC: linux-can@vger.kernel.org\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0d9032477f4ba2323079466efef0c1419613eebf",
      "tree": "7a3ebd8e4d6acaf48d5f5b45f93fab473ffc6ca7",
      "parents": [
        "6bafcac3238758203703bdd4abe9c1f38d259584"
      ],
      "author": {
        "name": "Wolfram Sang",
        "email": "w.sang@pengutronix.de",
        "time": "Tue Jan 03 03:46:47 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 03 13:48:41 2012 -0500"
      },
      "message": "net: fsl: fec: fix build for mx23-only kernel\n\nIf one only selects mx23-based boards, compile fails:\n\ndrivers/net/ethernet/freescale/fec.c:410:2: error: \u0027FEC_HASH_TABLE_HIGH\u0027 undeclared (first use in this function)\ndrivers/net/ethernet/freescale/fec.c:411:2: error: \u0027FEC_HASH_TABLE_LOW\u0027 undeclared (first use in this function)\n\nThis is because fec.h uses CONFIG_SOC_IMX28 to determine the register\nlayout of the core which makes sense since the MX23 does not have a fec.\nHowever, Kconfig uses the broader ARCH_MXS symbol and this way even\nmakes the fec-driver default for MX23. Adapt Kconfig to use the more\nprecise SOC_IMX28 as well.\n\nSigned-off-by: Wolfram Sang \u003cw.sang@pengutronix.de\u003e\nCc: Fabio Estevam \u003cfabio.estevam@freescale.com\u003e\nCc: Uwe Kleine-König \u003cu.kleine-koenig@pengutronix.de\u003e\nCc: Shawn Guo \u003cshawn.guo@linaro.org\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Fabio Estevam \u003cfabio.estevam@freescale.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6bafcac3238758203703bdd4abe9c1f38d259584",
      "tree": "b5413ecd31f0fa3229b04bd415c870041fe30d95",
      "parents": [
        "115e8e705e4be071b9e06ff72578e3b603f2ba65"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Jan 02 05:47:57 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 03 12:58:23 2012 -0500"
      },
      "message": "sch_qfq: fix overflow in qfq_update_start()\n\ngrp-\u003eslot_shift is between 22 and 41, so using 32bit wide variables is\nprobably a typo.\n\nThis could explain QFQ hangs Dave reported to me, after 2^23 packets ?\n\n(23 \u003d 64 - 41)\n\nReported-by: Dave Taht \u003cdave.taht@gmail.com\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nCC: Dave Taht \u003cdave.taht@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4376eee92e5a8332b470040e672ea99cd44c826a",
      "tree": "d26e398b57d3d907423eb709f9e221d9fe1ab616",
      "parents": [
        "115e8e705e4be071b9e06ff72578e3b603f2ba65"
      ],
      "author": {
        "name": "Alexander Müller",
        "email": "serveralex@gmail.com",
        "time": "Fri Dec 30 12:55:48 2011 -0500"
      },
      "committer": {
        "name": "Dave Airlie",
        "email": "airlied@redhat.com",
        "time": "Tue Jan 03 09:17:16 2012 +0000"
      },
      "message": "drm/radeon/kms/atom: fix possible segfault in pm setup\n\nIf we end up with no power states, don\u0027t look up\ncurrent vddc.\n\nfixes:\nhttps://bugs.freedesktop.org/show_bug.cgi?id\u003d44130\n\nagd5f: fix patch formatting\n\nSigned-off-by: Alex Deucher \u003calexander.deucher@amd.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Dave Airlie \u003cairlied@redhat.com\u003e\n"
    },
    {
      "commit": "115e8e705e4be071b9e06ff72578e3b603f2ba65",
      "tree": "8ef96f62ed5239442cd55ad54ea5c97b0441e613",
      "parents": [
        "733bbb7e1c3acb8fabc55595bf1df8973dde7736",
        "f88e1ae8acb8affac29034ed79d4fff95ac8c29d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 02 12:34:03 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 02 12:34:03 2012 -0800"
      },
      "message": "Merge branch \u0027devicetree/merge\u0027 of git://git.secretlab.ca/git/linux-2.6\n\n* \u0027devicetree/merge\u0027 of git://git.secretlab.ca/git/linux-2.6:\n  dt/device: Fix auxdata matching to handle entries without a name override\n"
    },
    {
      "commit": "733bbb7e1c3acb8fabc55595bf1df8973dde7736",
      "tree": "779bc62fda19d2176ff7059fa59b0932c9ebc4c5",
      "parents": [
        "c7f46b7aa4ae5cbef32eb5e016512a14f936affa",
        "c121638277a71c1e1fb44c3e654ea353357bbc2c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 01 19:36:08 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 01 19:36:08 2012 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:\n  netfilter: ctnetlink: fix timeout calculation\n  ipvs: try also real server with port 0 in backup server\n  skge: restore rx multicast filter on resume and after config changes\n  mlx4_en: nullify cq-\u003evector field when closing completion queue\n"
    },
    {
      "commit": "c7f46b7aa4ae5cbef32eb5e016512a14f936affa",
      "tree": "b375999b892699e4fe92415fdd460dcf53fc7baa",
      "parents": [
        "ac97ecc886472e97ff22a81c298163d180d24605",
        "990fc3d0b2c27a9633b8f4566273da60aebe5941"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 31 11:55:06 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 31 11:55:06 2011 -0800"
      },
      "message": "Merge branch \u0027fix/asoc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound\n\n* \u0027fix/asoc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:\n  ASoC: wm8776: add missing break in sample size switch\n"
    },
    {
      "commit": "ac97ecc886472e97ff22a81c298163d180d24605",
      "tree": "7807a27faa7228cf6545220c2027103aadb2c8a1",
      "parents": [
        "e6780f7243eddb133cc20ec37fa69317c218b709"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Sat Dec 31 11:32:03 2011 -0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 31 11:53:58 2011 -0800"
      },
      "message": "gspca: Fix falling back to lower isoc alt settings\n\nThe current gspca core code has a regression where it no longer properly\nfalls back to lower alt settings when there is not enough bandwidth.\n\nThis causes many iso based usb-1 cameras to not work when plugged into a\nusb2 hub or a sandybridge chipset motherboard!\n\nThis patch fixes this.\n\nSigned-off-by: Hans de Goede \u003chdegoede@redhat.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e6780f7243eddb133cc20ec37fa69317c218b709",
      "tree": "81e427161f0604a8935180f8c454593142c0f272",
      "parents": [
        "06867fbb8abc936192195e5dcc4b63e12cc78f72"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Sat Dec 31 11:44:01 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 31 11:48:28 2011 -0800"
      },
      "message": "futex: Fix uninterruptible loop due to gate_area\n\nIt was found (by Sasha) that if you use a futex located in the gate\narea we get stuck in an uninterruptible infinite loop, much like the\nZERO_PAGE issue.\n\nWhile looking at this problem, PeterZ realized you\u0027ll get into similar\ntrouble when hitting any install_special_pages() mapping.  And are there\nstill drivers setting up their own special mmaps without page-\u003emapping,\nand without special VM or pte flags to make get_user_pages fail?\n\nIn most cases, if page-\u003emapping is NULL, we do not need to retry at all:\nLinus points out that even /proc/sys/vm/drop_caches poses no problem,\nbecause it ends up using remove_mapping(), which takes care not to\ninterfere when the page reference count is raised.\n\nBut there is still one case which does need a retry: if memory pressure\ncalled shmem_writepage in between get_user_pages_fast dropping page\ntable lock and our acquiring page lock, then the page gets switched from\nfilecache to swapcache (and -\u003emapping set to NULL) whatever the refcount.\nFault it back in to get the page-\u003emapping needed for key-\u003eshared.inode.\n\nReported-by: Sasha Levin \u003clevinsasha928@gmail.com\u003e\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c121638277a71c1e1fb44c3e654ea353357bbc2c",
      "tree": "eacfd2881aa785c462587ab8173461b96c396771",
      "parents": [
        "52793dbe3d60bd73bbebe28b2bfc9f6b4b920d4c"
      ],
      "author": {
        "name": "Xi Wang",
        "email": "xi.wang@gmail.com",
        "time": "Fri Dec 30 10:40:17 2011 -0500"
      },
      "committer": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Sat Dec 31 16:59:04 2011 +0100"
      },
      "message": "netfilter: ctnetlink: fix timeout calculation\n\nThe sanity check (timeout \u003c 0) never works; the dividend is unsigned\nand so is the division, which should have been a signed division.\n\n\tlong timeout \u003d (ct-\u003etimeout.expires - jiffies) / HZ;\n\tif (timeout \u003c 0)\n\t\ttimeout \u003d 0;\n\nThis patch converts the time values to signed for the division.\n\nSigned-off-by: Xi Wang \u003cxi.wang@gmail.com\u003e\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\n"
    },
    {
      "commit": "52793dbe3d60bd73bbebe28b2bfc9f6b4b920d4c",
      "tree": "845ae88e96de3b28884bab1e868e00ba4687fd02",
      "parents": [
        "fe3c8cc9226c7487c053edad9229dc85e93534d7"
      ],
      "author": {
        "name": "Julian Anastasov",
        "email": "ja@ssi.bg",
        "time": "Fri Dec 30 14:19:02 2011 +0900"
      },
      "committer": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Sat Dec 31 16:06:29 2011 +0100"
      },
      "message": "ipvs: try also real server with port 0 in backup server\n\n\tWe should not forget to try for real server with port 0\nin the backup server when processing the sync message. We should\ndo it in all cases because the backup server can use different\nforwarding method.\n\nSigned-off-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: Simon Horman \u003chorms@verge.net.au\u003e\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\n"
    },
    {
      "commit": "fe3c8cc9226c7487c053edad9229dc85e93534d7",
      "tree": "03464412dfe99191c846eb4f0561b0dc4e30a27e",
      "parents": [
        "cd3109d23c32452c85d73cc1a01282846a23582c"
      ],
      "author": {
        "name": "Florian Zumbiehl",
        "email": "florz@florz.de",
        "time": "Fri Dec 30 17:30:09 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 30 23:32:45 2011 -0500"
      },
      "message": "skge: restore rx multicast filter on resume and after config changes\n\nRestore skge hardware registers for multicast filtering to their\nappropriate values after system resume and after hardware restarts\nthat are done when changing certain settings.\n\nSigned-off-by: Florian Zumbiehl \u003cflorz@florz.de\u003e\nAcked-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cd3109d23c32452c85d73cc1a01282846a23582c",
      "tree": "95195ca3c3a6955cb08bf813265950888c3e3f36",
      "parents": [
        "89307babf966165171547f105e2253dec261cfa5"
      ],
      "author": {
        "name": "Yevgeny Petrilin",
        "email": "yevgenyp@mellanox.co.il",
        "time": "Thu Dec 29 05:49:58 2011 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 30 17:15:41 2011 -0500"
      },
      "message": "mlx4_en: nullify cq-\u003evector field when closing completion queue\n\nCaused loss of connectivity when changing ring size.\n\nSigned-off-by: Yevgeny Petrilin \u003cyevgenyp@mellanox.co.il\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "06867fbb8abc936192195e5dcc4b63e12cc78f72",
      "tree": "8f9f6cd2006c2bd3d4d6b4047f84c89e60673605",
      "parents": [
        "604a16b74c8ca2fd29861723a62ad57f0c692333",
        "abb959f8a3f125a6e6641abbd020111516dfc8f6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 30 13:45:34 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 30 13:45:34 2011 -0800"
      },
      "message": "Merge branch \u0027fixes\u0027 of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm\n\n* \u0027fixes\u0027 of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm:\n  ARM: 7237/1: PL330: Fix driver freeze\n  ARM: 7197/1: errata: Remove SMP dependency for erratum 751472\n  ARM: 7196/1: errata: Remove SMP dependency for erratum 720789\n  ARM: 7220/1: mmc: mmci: Fixup error handling for dma\n  ARM: 7214/1: mmc: mmci: Fixup handling of MCI_STARTBITERR\n"
    },
    {
      "commit": "604a16b74c8ca2fd29861723a62ad57f0c692333",
      "tree": "4f90ac336c6811aa5a3088a626012b707b824746",
      "parents": [
        "c63c4edcc8cf0f1ed2c6a1c9ba7a56bc50aa8199",
        "00ca4e4c8f72f2a67466a41b12714ed8c9e10f64"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 30 13:43:45 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 30 13:43:45 2011 -0800"
      },
      "message": "Merge branch \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc\n\n* \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:\n  ARM: plat-orion: make gpiochip label unique\n  enable uncompress log on cpuimx35sd\n  cpuimx35: fix touchscreen support\n  cpuimx35sd: fix Kconfig\n  clock-imx35: fix reboot in internal boot mode\n  dma: MX3_IPU fix depends\n  imx_v4_v5_defconfig: update default configuration\n  cpuimx25sd: fix Kconfig\n  arm/imx: fix cpufreq section mismatch\n  ARM:imx:fix pwm period value\n  ARM: OMAP: hwmod data: fix iva and mailbox hwmods for OMAP 3\n"
    },
    {
      "commit": "c63c4edcc8cf0f1ed2c6a1c9ba7a56bc50aa8199",
      "tree": "1b056ba1685657554b19065b2a4f926d5c84f72a",
      "parents": [
        "d65616a92c9fab8fc3caa120d18b7be7b6285914",
        "6ccbcf2cb41131f8d56ef0723bf3f7c1f8486076"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 30 13:42:41 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 30 13:42:41 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:\n  Input: sentelic - fix retrieving number of buttons\n  Input: sentelic - release mutex upon register write failure\n"
    },
    {
      "commit": "d65616a92c9fab8fc3caa120d18b7be7b6285914",
      "tree": "2d0609ba93a869e44db795f2777f87756cdae3a2",
      "parents": [
        "e95bf44fbabf35706e0703bf77b62984909de980",
        "a4d46363ce96c8fd7534c6f79051c78b52464132"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 30 13:34:22 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 30 13:34:22 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:\n  ceph: disable use of dcache for readdir etc.\n"
    },
    {
      "commit": "e95bf44fbabf35706e0703bf77b62984909de980",
      "tree": "095d66072d94b4168b614bcda33273fdf10645bf",
      "parents": [
        "3b87487ac5008072f138953b07505a7e3493327f",
        "9edf52621de9b1822be2576f66269ad2cb6292b6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 30 13:34:00 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 30 13:34:00 2011 -0800"
      },
      "message": "Merge branch \u0027v3.2-samsung-fixes-4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung\n\n* \u0027v3.2-samsung-fixes-4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:\n  ARM: EXYNOS: Remove duplicated SROMC static memory mapping\n  ARM: SAMSUNG: Fix build error when selecting CPU_FREQ_S3C24XX_DEBUGFS on S3C2440\n"
    },
    {
      "commit": "3b87487ac5008072f138953b07505a7e3493327f",
      "tree": "b70e9422c1abe7ce0e771a52202572dbb0ee25aa",
      "parents": [
        "995b4103a78b9bef0ff834f9ecac42b2b56e01a8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 30 13:24:40 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 30 13:24:40 2011 -0800"
      },
      "message": "Revert \"clockevents: Set noop handler in clockevents_exchange_device()\"\n\nThis reverts commit de28f25e8244c7353abed8de0c7792f5f883588c.\n\nIt results in resume problems for various people. See for example\n\n  http://thread.gmane.org/gmane.linux.kernel/1233033\n  http://thread.gmane.org/gmane.linux.kernel/1233389\n  http://thread.gmane.org/gmane.linux.kernel/1233159\n  http://thread.gmane.org/gmane.linux.kernel/1227868/focus\u003d1230877\n\nand the fedora and ubuntu bug reports\n\n  https://bugzilla.redhat.com/show_bug.cgi?id\u003d767248\n  https://bugs.launchpad.net/ubuntu/+source/linux/+bug/904569\n\nwhich got bisected down to the stable version of this commit.\n\nReported-by: Jonathan Nieder \u003cjrnieder@gmail.com\u003e\nReported-by: Phil Miller \u003cmille121@illinois.edu\u003e\nReported-by: Philip Langdale \u003cphilipl@overt.org\u003e\nReported-by: Tim Gardner \u003ctim.gardner@canonical.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Greg KH \u003cgregkh@suse.de\u003e\nCc: stable@kernel.org    # for stable kernels that applied the original\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "995b4103a78b9bef0ff834f9ecac42b2b56e01a8",
      "tree": "2914c6906dfbf9b9c5b8c0ca6699da0844939e0f",
      "parents": [
        "89307babf966165171547f105e2253dec261cfa5",
        "0d098587cec70048336a3809bcde8044c7e9aa08"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 30 12:13:03 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 30 12:13:03 2011 -0800"
      },
      "message": "Merge git://www.linux-watchdog.org/linux-watchdog\n\n* git://www.linux-watchdog.org/linux-watchdog:\n  watchdog: iTCO_wdt.c - problems with newer hardware due to SMI clearing (part 2)\n  watchdog: hpwdt: Changes to handle NX secure bit in 32bit path\n  watchdog: sp805: Fix section mismatch in ID table.\n  watchdog: move coh901327 state holders\n"
    },
    {
      "commit": "89307babf966165171547f105e2253dec261cfa5",
      "tree": "74225500fcdf8ca4f11dcfa3e54738cdd33702f0",
      "parents": [
        "50b2abed6b0812cbeda9f6dd48cc4c247be80643",
        "8bd6960c6ae65d7f92bfb708154ee813417d7b26"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 29 17:36:15 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 29 17:36:15 2011 -0800"
      },
      "message": "Merge branch \u0027iommu/fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu\n\n* \u0027iommu/fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:\n  iommu: Initialize domain-\u003ehandler in iommu_domain_alloc()\n"
    },
    {
      "commit": "50b2abed6b0812cbeda9f6dd48cc4c247be80643",
      "tree": "43da2b779fafe2d86c63ae1db4725db84b148588",
      "parents": [
        "7578ed02e4b08c9b7b07443b44cf0ccfdf55c91e",
        "aef950b4ba3196622a5bd5e21ab1d63f30658285"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 29 17:35:33 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 29 17:35:33 2011 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:\n  packet: fix possible dev refcnt leak when bind fail\n  netem: dont call vfree() under spinlock and BH disabled\n  netfilter: ctnetlink: fix scheduling while atomic if helper is autoloaded\n  netfilter: ctnetlink: fix return value of ctnetlink_get_expect()\n"
    },
    {
      "commit": "7578ed02e4b08c9b7b07443b44cf0ccfdf55c91e",
      "tree": "7f9dc872e8df1e332c9bfc198179a6d28e968c72",
      "parents": [
        "d2bac6ab932a407008a95d1993702f0a92f8f35e",
        "2e64694de21a812d637dcbea4471ad1f7897b049"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 29 17:09:16 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 29 17:09:16 2011 -0800"
      },
      "message": "Merge branch \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  perf/x86: Fix raw_spin_unlock_irqrestore() usage\n  oprofile, arm/sh: Fix oprofile_arch_exit() linkage issue\n"
    },
    {
      "commit": "d2bac6ab932a407008a95d1993702f0a92f8f35e",
      "tree": "d09fb1504fa650200e761a54f6ebc05a4a60623b",
      "parents": [
        "1cac8e884fbea0b10ee5692cd97e456b58c34ce5",
        "be4f1ac828776bbc7868a68b465cd8eedb733cfd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 29 17:05:45 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 29 17:05:45 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: log all dirty inodes in xfs_fs_sync_fs\n  xfs: log the inode in -\u003ewrite_inode calls for kupdate\n"
    },
    {
      "commit": "1cac8e884fbea0b10ee5692cd97e456b58c34ce5",
      "tree": "ae6417c9015085e275caa84f755ee6f3a54d234e",
      "parents": [
        "b0365c8d0cb6e79eb5f21418ae61ab511f31b575",
        "f2b20d436534f22ccc3f5ad172499fcb013bb315"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 29 16:33:37 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 29 16:33:37 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-block:\n  block: fix blk_queue_end_tag()\n  block: re-use existing \u0027reading\u0027 variable instead of checking direction again\n  block, cfq: fix empty queue crash caused by request merge\n"
    },
    {
      "commit": "b0365c8d0cb6e79eb5f21418ae61ab511f31b575",
      "tree": "2e8abddb0f0f7829e48d00464f95b835bdb6ff51",
      "parents": [
        "34845636a184f3be91a531098192592cbe6db587"
      ],
      "author": {
        "name": "Hillf Danton",
        "email": "dhillf@gmail.com",
        "time": "Wed Dec 28 15:57:16 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 29 16:31:57 2011 -0800"
      },
      "message": "mm: hugetlb: fix non-atomic enqueue of huge page\n\nIf a huge page is enqueued under the protection of hugetlb_lock, then the\noperation is atomic and safe.\n\nSigned-off-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\t\t[2.6.37+]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "34845636a184f3be91a531098192592cbe6db587",
      "tree": "1c216e37f536a71dae94e41db3f1e059f9ac70a5",
      "parents": [
        "e26a51148f3ebd859bca8bf2e0f212839b447f62"
      ],
      "author": {
        "name": "Andreas Schwab",
        "email": "schwab@linux-m68k.org",
        "time": "Wed Dec 28 15:57:15 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 29 16:31:57 2011 -0800"
      },
      "message": "procfs: do not confuse jiffies with cputime64_t\n\nCommit 2a95ea6c0d129b4 (\"procfs: do not overflow get_{idle,iowait}_time\nfor nohz\") did not take into account that one some architectures jiffies\nand cputime use different units.\n\nThis causes get_idle_time() to return numbers in the wrong units, making\nthe idle time fields in /proc/stat wrong.\n\nInstead of converting the usec value returned by\nget_cpu_{idle,iowait}_time_us to units of jiffies, use the new function\nusecs_to_cputime64 to convert it to the correct unit of cputime64_t.\n\nSigned-off-by: Andreas Schwab \u003cschwab@linux-m68k.org\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: \"Artem S. Tashkinov\" \u003ct.artem@mailcity.com\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e26a51148f3ebd859bca8bf2e0f212839b447f62",
      "tree": "aa3a328dabee8a9f1dccc8c8178f690d0eacbf1e",
      "parents": [
        "757e55c23dc62eb5adf45368a72f6b26d6a71ae5"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Wed Dec 28 15:57:11 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 29 16:31:57 2011 -0800"
      },
      "message": "mm/mempolicy.c: refix mbind_range() vma issue\n\ncommit 8aacc9f550 (\"mm/mempolicy.c: fix pgoff in mbind vma merge\") is the\nslightly incorrect fix.\n\nWhy? Think following case.\n\n1. map 4 pages of a file at offset 0\n\n   [0123]\n\n2. map 2 pages just after the first mapping of the same file but with\n   page offset 2\n\n   [0123][23]\n\n3. mbind() 2 pages from the first mapping at offset 2.\n   mbind_range() should treat new vma is,\n\n   [0123][23]\n     |23|\n     mbind vma\n\n   but it does\n\n   [0123][23]\n     |01|\n     mbind vma\n\n   Oops. then, it makes wrong vma merge and splitting ([01][0123] or similar).\n\nThis patch fixes it.\n\n[testcase]\n  test result - before the patch\n\n\tcase4: 126: test failed. expect \u00272,4\u0027, actual \u00272,2,2\u0027\n       \tcase5: passed\n\tcase6: passed\n\tcase7: passed\n\tcase8: passed\n\tcase_n: 246: test failed. expect \u00274,2\u0027, actual \u00271,4\u0027\n\n\t------------[ cut here ]------------\n\tkernel BUG at mm/filemap.c:135!\n\tinvalid opcode: 0000 [#4] SMP DEBUG_PAGEALLOC\n\n\t(snip long bug on messages)\n\n  test result - after the patch\n\n\tcase4: passed\n       \tcase5: passed\n\tcase6: passed\n\tcase7: passed\n\tcase8: passed\n\tcase_n: passed\n\n  source:  mbind_vma_test.c\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\n #include \u003cnumaif.h\u003e\n #include \u003cnuma.h\u003e\n #include \u003csys/mman.h\u003e\n #include \u003cstdio.h\u003e\n #include \u003cunistd.h\u003e\n #include \u003cstdlib.h\u003e\n #include \u003cstring.h\u003e\n\nstatic unsigned long pagesize;\nvoid* mmap_addr;\nstruct bitmask *nmask;\nchar buf[1024];\nFILE *file;\nchar retbuf[10240] \u003d \"\";\nint mapped_fd;\n\nchar *rubysrc \u003d \"ruby -e \u0027\\\n  pid \u003d %d; \\\n  vstart \u003d 0x%llx; \\\n  vend \u003d 0x%llx; \\\n  s \u003d `pmap -q #{pid}`; \\\n  rary \u003d []; \\\n  s.each_line {|line|; \\\n    ary\u003dline.split(\\\" \\\"); \\\n    addr \u003d ary[0].to_i(16); \\\n    if(vstart \u003c\u003d addr \u0026\u0026 addr \u003c vend) then \\\n      rary.push(ary[1].to_i()/4); \\\n    end; \\\n  }; \\\n  print rary.join(\\\",\\\"); \\\n\u0027\";\n\nvoid init(void)\n{\n\tvoid* addr;\n\tchar buf[128];\n\n\tnmask \u003d numa_allocate_nodemask();\n\tnuma_bitmask_setbit(nmask, 0);\n\n\tpagesize \u003d getpagesize();\n\n\tsprintf(buf, \"%s\", \"mbind_vma_XXXXXX\");\n\tmapped_fd \u003d mkstemp(buf);\n\tif (mapped_fd \u003d\u003d -1)\n\t\tperror(\"mkstemp \"), exit(1);\n\tunlink(buf);\n\n\tif (lseek(mapped_fd, pagesize*8, SEEK_SET) \u003c 0)\n\t\tperror(\"lseek \"), exit(1);\n\tif (write(mapped_fd, \"\\0\", 1) \u003c 0)\n\t\tperror(\"write \"), exit(1);\n\n\taddr \u003d mmap(NULL, pagesize*8, PROT_NONE,\n\t\t    MAP_SHARED, mapped_fd, 0);\n\tif (addr \u003d\u003d MAP_FAILED)\n\t\tperror(\"mmap \"), exit(1);\n\n\tif (mprotect(addr+pagesize, pagesize*6, PROT_READ|PROT_WRITE) \u003c 0)\n\t\tperror(\"mprotect \"), exit(1);\n\n\tmmap_addr \u003d addr + pagesize;\n\n\t/* make page populate */\n\tmemset(mmap_addr, 0, pagesize*6);\n}\n\nvoid fin(void)\n{\n\tvoid* addr \u003d mmap_addr - pagesize;\n\tmunmap(addr, pagesize*8);\n\n\tmemset(buf, 0, sizeof(buf));\n\tmemset(retbuf, 0, sizeof(retbuf));\n}\n\nvoid mem_bind(int index, int len)\n{\n\tint err;\n\n\terr \u003d mbind(mmap_addr+pagesize*index, pagesize*len,\n\t\t    MPOL_BIND, nmask-\u003emaskp, nmask-\u003esize, 0);\n\tif (err)\n\t\tperror(\"mbind \"), exit(err);\n}\n\nvoid mem_interleave(int index, int len)\n{\n\tint err;\n\n\terr \u003d mbind(mmap_addr+pagesize*index, pagesize*len,\n\t\t    MPOL_INTERLEAVE, nmask-\u003emaskp, nmask-\u003esize, 0);\n\tif (err)\n\t\tperror(\"mbind \"), exit(err);\n}\n\nvoid mem_unbind(int index, int len)\n{\n\tint err;\n\n\terr \u003d mbind(mmap_addr+pagesize*index, pagesize*len,\n\t\t    MPOL_DEFAULT, NULL, 0, 0);\n\tif (err)\n\t\tperror(\"mbind \"), exit(err);\n}\n\nvoid Assert(char *expected, char *value, char *name, int line)\n{\n\tif (strcmp(expected, value) \u003d\u003d 0) {\n\t\tfprintf(stderr, \"%s: passed\\n\", name);\n\t\treturn;\n\t}\n\telse {\n\t\tfprintf(stderr, \"%s: %d: test failed. expect \u0027%s\u0027, actual \u0027%s\u0027\\n\",\n\t\t\tname, line,\n\t\t\texpected, value);\n//\t\texit(1);\n\t}\n}\n\n/*\n      AAAA\n    PPPPPPNNNNNN\n    might become\n    PPNNNNNNNNNN\n    case 4 below\n*/\nvoid case4(void)\n{\n\tinit();\n\tsprintf(buf, rubysrc, getpid(), mmap_addr, mmap_addr+pagesize*6);\n\n\tmem_bind(0, 4);\n\tmem_unbind(2, 2);\n\n\tfile \u003d popen(buf, \"r\");\n\tfread(retbuf, sizeof(retbuf), 1, file);\n\tAssert(\"2,4\", retbuf, \"case4\", __LINE__);\n\n\tfin();\n}\n\n/*\n       AAAA\n PPPPPPNNNNNN\n might become\n PPPPPPPPPPNN\n case 5 below\n*/\nvoid case5(void)\n{\n\tinit();\n\tsprintf(buf, rubysrc, getpid(), mmap_addr, mmap_addr+pagesize*6);\n\n\tmem_bind(0, 2);\n\tmem_bind(2, 2);\n\n\tfile \u003d popen(buf, \"r\");\n\tfread(retbuf, sizeof(retbuf), 1, file);\n\tAssert(\"4,2\", retbuf, \"case5\", __LINE__);\n\n\tfin();\n}\n\n/*\n\t    AAAA\n\tPPPPNNNNXXXX\n\tmight become\n\tPPPPPPPPPPPP 6\n*/\nvoid case6(void)\n{\n\tinit();\n\tsprintf(buf, rubysrc, getpid(), mmap_addr, mmap_addr+pagesize*6);\n\n\tmem_bind(0, 2);\n\tmem_bind(4, 2);\n\tmem_bind(2, 2);\n\n\tfile \u003d popen(buf, \"r\");\n\tfread(retbuf, sizeof(retbuf), 1, file);\n\tAssert(\"6\", retbuf, \"case6\", __LINE__);\n\n\tfin();\n}\n\n/*\n    AAAA\nPPPPNNNNXXXX\nmight become\nPPPPPPPPXXXX 7\n*/\nvoid case7(void)\n{\n\tinit();\n\tsprintf(buf, rubysrc, getpid(), mmap_addr, mmap_addr+pagesize*6);\n\n\tmem_bind(0, 2);\n\tmem_interleave(4, 2);\n\tmem_bind(2, 2);\n\n\tfile \u003d popen(buf, \"r\");\n\tfread(retbuf, sizeof(retbuf), 1, file);\n\tAssert(\"4,2\", retbuf, \"case7\", __LINE__);\n\n\tfin();\n}\n\n/*\n    AAAA\nPPPPNNNNXXXX\nmight become\nPPPPNNNNNNNN 8\n*/\nvoid case8(void)\n{\n\tinit();\n\tsprintf(buf, rubysrc, getpid(), mmap_addr, mmap_addr+pagesize*6);\n\n\tmem_bind(0, 2);\n\tmem_interleave(4, 2);\n\tmem_interleave(2, 2);\n\n\tfile \u003d popen(buf, \"r\");\n\tfread(retbuf, sizeof(retbuf), 1, file);\n\tAssert(\"2,4\", retbuf, \"case8\", __LINE__);\n\n\tfin();\n}\n\nvoid case_n(void)\n{\n\tinit();\n\tsprintf(buf, rubysrc, getpid(), mmap_addr, mmap_addr+pagesize*6);\n\n\t/* make redundunt mappings [0][1234][34][7] */\n\tmmap(mmap_addr + pagesize*4, pagesize*2, PROT_READ|PROT_WRITE,\n\t     MAP_FIXED|MAP_SHARED, mapped_fd, pagesize*3);\n\n\t/* Expect to do nothing. */\n\tmem_unbind(2, 2);\n\n\tfile \u003d popen(buf, \"r\");\n\tfread(retbuf, sizeof(retbuf), 1, file);\n\tAssert(\"4,2\", retbuf, \"case_n\", __LINE__);\n\n\tfin();\n}\n\nint main(int argc, char** argv)\n{\n\tcase4();\n\tcase5();\n\tcase6();\n\tcase7();\n\tcase8();\n\tcase_n();\n\n\treturn 0;\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\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Caspar Zhang \u003ccaspar@casparzhang.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\t\t[3.1.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "757e55c23dc62eb5adf45368a72f6b26d6a71ae5",
      "tree": "ce4ea7a534f5d3808735cf827064fd8695559d30",
      "parents": [
        "371de6e4e0042adf4f9b54c414154f57414ddd37"
      ],
      "author": {
        "name": "Hans de Goede",
        "email": "hdegoede@redhat.com",
        "time": "Thu Dec 29 19:09:21 2011 -0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 29 16:29:00 2011 -0800"
      },
      "message": "gspca: Fix bulk mode cameras no longer working (regression fix)\n\nThe new iso bandwidth calculation code accidentally has broken support\nfor bulk mode cameras. This has broken the following drivers:\nfinepix, jeilinj, ovfx2, ov534, ov534_9, se401, sq905, sq905c, sq930x,\nstv0680, vicam.\n\nThix patch fixes this. Fix tested with: se401, sq905, sq905c, stv0680 \u0026 vicam\ncams.\n\nSigned-off-by: Hans de Goede \u003chdegoede@redhat.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6ccbcf2cb41131f8d56ef0723bf3f7c1f8486076",
      "tree": "a0f8635baccce6f4a19b8c97911aed883b7c48ba",
      "parents": [
        "d9bae67a7a91a6cc2e7a99d5ae72ada62abcc993"
      ],
      "author": {
        "name": "Tai-hwa Liang",
        "email": "avatar@sentelic.com",
        "time": "Thu Dec 29 09:47:36 2011 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Dec 29 09:52:59 2011 -0800"
      },
      "message": "Input: sentelic - fix retrieving number of buttons\n\nFixing wrong register offset which is used to retrieve the number of buttons\nattached to the hardware.\n\nSigned-off-by: Tai-hwa Liang \u003cavatar@sentelic.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "a4d46363ce96c8fd7534c6f79051c78b52464132",
      "tree": "8d41ef517efe09f7783204fffe56ec2102d70f90",
      "parents": [
        "9d5a09e659f8414dd3713e2acbfaf8a9e9794aa1"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Dec 29 08:05:14 2011 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Dec 29 08:05:14 2011 -0800"
      },
      "message": "ceph: disable use of dcache for readdir etc.\n\nCeph attempts to use the dcache to satisfy negative lookups and readdir\nwhen the entire directory contents are in cache.  Disable this behavior\nuntil lingering bugs in this code are shaken out; we\u0027ll re-enable these\nhooks once things are fully stable.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "f2b20d436534f22ccc3f5ad172499fcb013bb315",
      "tree": "5c5df70a252ea14da6063d2c6c3de4a4e769ecae",
      "parents": [
        "609f6ea1c9cdfe0c43a927e13205a57d0c266d5a"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Thu Dec 29 09:16:28 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu Dec 29 09:16:28 2011 +0100"
      },
      "message": "block: fix blk_queue_end_tag()\n\nCommit 5e081591 \"block: warn if tag is greater than real_max_depth\"\ncleaned up blk_queue_end_tag() to warn when the tag is truly invalid\n(greater than real_max_depth).  However, it changed behavior in the tag \u003c\nmax_depth case to not end the request.  Leading to triggering of\nBUG_ON(blk_queued_rq(rq)) in the request completion path:\n\n  http://marc.info/?l\u003dlinux-kernel\u0026m\u003d132204370518629\u0026w\u003d2\n\nIn order to allow blk_queue_resize_tags() to shrink the tag space\nblk_queue_end_tag() must always complete tags with a value less than\nreal_max_depth regardless of the current max_depth.  The comment about\n\"handling the shrink case\" seems to be what prompted changes in this\nspace, so remove it and BUG on all invalid tags (made even simpler by\nMatthew\u0027s suggestion to use an unsigned compare).\n\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nCc: Tao Ma \u003cboyu.mt@taobao.com\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nReported-by: Meelis Roos \u003cmroos@ut.ee\u003e\nReported-by: Ed Nadolski \u003cedmund.nadolski@intel.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    }
  ],
  "next": "9edf52621de9b1822be2576f66269ad2cb6292b6"
}
