)]}'
{
  "log": [
    {
      "commit": "73dfd078cf8bfee4018fb22f1e2a24f2e05b69dc",
      "tree": "e5cc81262315df5c44d13d5a2eb731cfe7f8ea86",
      "parents": [
        "17aa03326d40614db94bc51fbbc92df628a5c97c"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Dec 10 23:52:34 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:34 2009 +0000"
      },
      "message": "dm snapshot: trigger exceptions in remaining snapshots during merge\n\nWhen there is one merging snapshot and other non-merging snapshots,\nsnapshot_merge_process() must make exceptions in the non-merging\nsnapshots.\n\nUse a sequence count to resolve the race between I/O to chunks that are\nabout to be merged.  The count increases each time an exception\nreallocation finishes.  Use wait_event() to wait until the count\nchanges.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "17aa03326d40614db94bc51fbbc92df628a5c97c",
      "tree": "a9661a11274731b6b8e2fcbaace7d4424b9cefb6",
      "parents": [
        "9fe862548821b0c206c58e8057b782530a173703"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Dec 10 23:52:33 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:33 2009 +0000"
      },
      "message": "dm snapshot: delay merging a chunk until writes to it complete\n\nTrack writes to chunks that are currently being merged and delay merging\na chunk until all writes to that chunk finish.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nReviewed-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "9fe862548821b0c206c58e8057b782530a173703",
      "tree": "1a23bec091d5163dfec29750b5daf3e93637c5ab",
      "parents": [
        "1e03f97e4301f75a2f3b649787f7876516764929"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Dec 10 23:52:33 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:33 2009 +0000"
      },
      "message": "dm snapshot: queue writes to chunks being merged\n\nWhile a set of chunks is being merged, any overlapping writes need to be\nqueued.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "1e03f97e4301f75a2f3b649787f7876516764929",
      "tree": "37f4baa83145c011245a83f1e18acf9348aac3c3",
      "parents": [
        "9d3b15c4c776b041f9ee81810cbd375275411829"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Dec 10 23:52:32 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:32 2009 +0000"
      },
      "message": "dm snapshot: add merging\n\nMerging is started when origin is resumed and it is stopped when\norigin is suspended or when the merging snapshot is destroyed or\nerrors are detected.\n\nMerging is not yet interlocked with writes: this will be handled in\nsubsequent patches.\n\nThe code relies on callbacks from a private kcopyd thread.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "9d3b15c4c776b041f9ee81810cbd375275411829",
      "tree": "8298b50b4d9cf11355e622e6b7c314628e5c6256",
      "parents": [
        "10b8106a70433e14153469ebbdd189776500e238"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Dec 10 23:52:32 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:32 2009 +0000"
      },
      "message": "dm snapshot: permit only one merge at once\n\nMerging more than one snapshot is not supported, so prevent\nthis happening.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "10b8106a70433e14153469ebbdd189776500e238",
      "tree": "5d46ee65e40d165494ef1d4342e03f2fcfaa0492",
      "parents": [
        "3452c2a1eb5b93c1b9fb0d22bd5b07c0cee4dc29"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Thu Dec 10 23:52:31 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:31 2009 +0000"
      },
      "message": "dm snapshot: support barriers in snapshot merge target\n\nSets num_flush_requests\u003d2 to support flushing both the origin and cow\ndevices used by the snapshot-merge target.\n\nAlso, snapshot_ctr() now gets the origin device using FMODE_WRITE if the\ntarget is snapshot-merge (which writes to the origin device).\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "3452c2a1eb5b93c1b9fb0d22bd5b07c0cee4dc29",
      "tree": "65d4af8d6cf36ac4bcc8c226f8be891740d343ee",
      "parents": [
        "515ad66cc4c82f210d726340349c8f7c1ec6b125"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Dec 10 23:52:31 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:31 2009 +0000"
      },
      "message": "dm snapshot: avoid allocating exceptions in merge\n\nThe snapshot-merge target should not allocate new exceptions because the\nintent is to merge all of its exceptions as quickly and safely as\npossible.\n\nThis patch introduces the snapshot-merge mapping function and updates\n__origin_write() so that it doesn\u0027t allocate exceptions on any snapshots\nthat are being merged.\n\nIf a write request to a merging snapshot device is to be dispatched\ndirectly to the origin (because the chunk is not remapped or was already\nmerged), snapshot_merge_map() must make exceptions in other snapshots so\ncalls do_origin().\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "515ad66cc4c82f210d726340349c8f7c1ec6b125",
      "tree": "e6ae5591a7906f3ce9ae0fb0a62419acffcdcbcd",
      "parents": [
        "d698aa4500aa3ca9559142060caf0f79da998744"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Dec 10 23:52:30 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:30 2009 +0000"
      },
      "message": "dm snapshot: rework writing to origin\n\nTo track the completion of exceptions relating to the same location on\nthe device, the current code selects one exception as primary_pe, links\nthe other exceptions to it and uses reference counting to wait until all\nthe reallocations are complete.\n\nIt is considered too complicated to extend this code to handle the new\nsnapshot-merge target, where sets of non-overlapping chunks would also\nneed to become linked.\n\nInstead, a simpler (but less efficient) approach is taken.  Bios are\nlinked to one exception.  When it completes, bios are simply retried,\nand if other related exceptions are still outstanding, they\u0027ll get\nqueued again to wait for another one.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "d698aa4500aa3ca9559142060caf0f79da998744",
      "tree": "175577ce2c8ae0918e6f38a2a27ad2b124bb2466",
      "parents": [
        "4454a6216f75a9ef8c4bd0a65e34b101f725ef1e"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Dec 10 23:52:30 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:30 2009 +0000"
      },
      "message": "dm snapshot: add merge target\n\nThe snapshot-merge target allows a snapshot to be merged back into the\nsnapshot\u0027s origin device.\n\nOne anticipated use of snapshot merging is the rollback of filesystems\nto back out problematic system upgrades.\n\nThis patch adds snapshot-merge target management to both\ndm_snapshot_init() and dm_snapshot_exit().  As an initial place-holder,\nsnapshot-merge is identical to the snapshot target.  Documentation is\nprovided.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "4454a6216f75a9ef8c4bd0a65e34b101f725ef1e",
      "tree": "25b97b629954702692397072dd6cd20f34221b5c",
      "parents": [
        "615d1eb9cad9b34ed17c18c604254e8db533ac6f"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Dec 10 23:52:29 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:29 2009 +0000"
      },
      "message": "dm exception store: add merge specific methods\n\nAdd functions that decide how many consecutive chunks of snapshot to\nmerge back into the origin next and to update the metadata afterwards.\n\nprepare_merge provides a pointer to the most recent still-to-be-merged\nchunk and returns how many previous ones are consecutive and can be\nprocessed together.\n\ncommit_merge removes the nr_merged most-recent chunks permanently from\nthe exception store.  The number must not exceed that returned by\nprepare_merge.\n\nIntroduce NUM_SNAPSHOT_HDR_CHUNKS to show where the snapshot header\nchunk is accounted for.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nReviewed-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "615d1eb9cad9b34ed17c18c604254e8db533ac6f",
      "tree": "0937db148422cad3057db39ec2eaecf7b87e21a9",
      "parents": [
        "9eaae8ffbc340fc034fed1e5d0dc9ca0e943f817"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Thu Dec 10 23:52:29 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:29 2009 +0000"
      },
      "message": "dm snapshot: create function for chunk_is_tracked wait\n\nMove the __chunk_is_tracked() loop into a separate function as we will\nalso need to call it from the write path in the rare case of conflicting\nwrites to the same chunk.\n\nOriginally introduced in commit a8d41b59f3f5a7ac19452ef442a7fc1b5fa17366\n(\"dm snapshot: fix race during exception creation\").\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "9eaae8ffbc340fc034fed1e5d0dc9ca0e943f817",
      "tree": "b40361de2cde4ecd14f569a82b18df87f7f9cbc7",
      "parents": [
        "c2f3d24b783fda20618b73d65678eb5dfae31a5d"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Dec 10 23:52:28 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:28 2009 +0000"
      },
      "message": "dm snapshot: make bio optional in __origin_write\n\nTo support the merging of snapshots back into their origin we need\nto trigger exceptions in other snapshots not being merged without\nany incoming bio on the origin device.  The bio parameter to\n__origin_write() becomes optional and the sector needs supplying\nseparately.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "c2f3d24b783fda20618b73d65678eb5dfae31a5d",
      "tree": "0c5f266885460a4829c1f7c2083cd66004bd1ec2",
      "parents": [
        "64dbce580d5a7e89e8de20b91f80c7267cdad91d"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Thu Dec 10 23:52:27 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:27 2009 +0000"
      },
      "message": "dm mpath: reject messages when device is suspended\n\nThis patch rejects messages that can generate I/O while the device\nitself is suspended.\n\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nCc: Mike Anderson \u003candmike@linux.vnet.ibm.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "64dbce580d5a7e89e8de20b91f80c7267cdad91d",
      "tree": "9d8a8bb8afd9d7b856d90abd7c5c35137547d09a",
      "parents": [
        "4f186f8bbfa92bf1a2b39f7a8674348bfdba9437"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Thu Dec 10 23:52:27 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:27 2009 +0000"
      },
      "message": "dm: export suspended state to targets\n\nThis patch adds the exported dm_suspended() function so that targets\ncan check whether or not they are suspended.\n\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nCc: Mike Anderson \u003candmike@linux.vnet.ibm.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "4f186f8bbfa92bf1a2b39f7a8674348bfdba9437",
      "tree": "9fd65776c0314abf6774f30e542d565e22ae4698",
      "parents": [
        "4d4471cb5c1ec426c0f24818b270dc7b3ad7e655"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Thu Dec 10 23:52:26 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:26 2009 +0000"
      },
      "message": "dm: rename dm_suspended to dm_suspended_md\n\nThis patch renames dm_suspended() to dm_suspended_md() and\nkeeps it internal to dm.\nNo functional change.\n\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nCc: Mike Anderson \u003candmike@linux.vnet.ibm.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "4d4471cb5c1ec426c0f24818b270dc7b3ad7e655",
      "tree": "37407a97b8a9a96bae462860b1ed5c13da3da24f",
      "parents": [
        "61afef614b013ee1b767cdd10325acae1db1f4d2"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Thu Dec 10 23:52:26 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:26 2009 +0000"
      },
      "message": "dm: swap target postsuspend call and setting suspended flag\n\nThis patch moves DMF_SUSPENDED flag set before postsuspend.\nNo one should care about the ordering, because the flag set and\nthe postsuspend are protected by a single lock, md-\u003esuspend_lock,\nand all strict flag-checkers take the lock.\n\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nCc: Mike Anderson \u003candmike@linux.vnet.ibm.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "61afef614b013ee1b767cdd10325acae1db1f4d2",
      "tree": "a0ece8668c2d210b4c57ef6c4bec2d9184437357",
      "parents": [
        "6db4ccd6357f28c9ef7058b3bc48904c4b2ac419"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Thu Dec 10 23:52:25 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:25 2009 +0000"
      },
      "message": "dm crypt: add plain64 iv\n\nThe default plain IV is 32-bit only.\n\nThis plain64 IV provides a compatible mode for encrypted devices bigger\nthan 4TB.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "6db4ccd6357f28c9ef7058b3bc48904c4b2ac419",
      "tree": "affd099b88123c0717ec4bbfbb2503c3d7cc91f8",
      "parents": [
        "c1f0c183f6acc6d32c5a1d0249ec68bf783af7b1"
      ],
      "author": {
        "name": "Jun\u0027ichi Nomura",
        "email": "j-nomura@ce.jp.nec.com",
        "time": "Thu Dec 10 23:52:25 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:25 2009 +0000"
      },
      "message": "dm: trace request based remapping\n\nThis patch adds a remapping trace to request-based dm.\nBIO-based dm already has the equivalent tracepoint.\n\nFor example, under this dm stack (linear LV on multipath):\n  # dmsetup ls --tree -o ascii\n  vg-lv0 (253:1)\n   `-mpath0 (253:0)\n      |- (8:160)\n      |- (66:80)\n      |- (65:176)\n      `- (65:160)\n\nTrace of \u0027dd of\u003d/dev/vg/lv0 bs\u003d128k count\u003d1 oflag\u003ddirect\u0027 looks like this:\n\nwithout the patch:\n  dd-6674  [000]   539.727384: block_bio_queue: 253,1 WS 0 + 256 [dd]\n  dd-6674  [000]   539.727392: block_remap: 253,0 WS 384 + 256 \u003c- (253,1) 0\n  dd-6674  [000]   539.727394: block_bio_queue: 253,0 WS 384 + 256 [dd]\n  dd-6674  [000]   539.727405: block_getrq: 253,0 WS 384 + 256 [dd]\n  dd-6674  [000]   539.727409: block_plug: [dd]\n  dd-6674  [000]   539.727410: block_rq_insert: 253,0 W 0 () 384 + 256 [dd]\n  dd-6674  [000]   539.727416: block_rq_issue: 253,0 W 0 () 384 + 256 [dd]\n  dd-6674  [000]   539.727426: block_rq_insert: 65,176 W 0 () 384 + 256 [dd]\n  dd-6674  [000]   539.727427: block_rq_issue: 65,176 W 0 () 384 + 256 [dd]\n  ...\n\nand with the patch: (the line with \u0027**\u0027 is the trace added by this patch)\n  dd-6617  [002]   162.914301: block_bio_queue: 253,1 WS 0 + 256 [dd]\n  dd-6617  [002]   162.914314: block_remap: 253,0 WS 384 + 256 \u003c- (253,1) 0\n  dd-6617  [002]   162.914316: block_bio_queue: 253,0 WS 384 + 256 [dd]\n  dd-6617  [002]   162.914331: block_getrq: 253,0 WS 384 + 256 [dd]\n  dd-6617  [002]   162.914335: block_plug: [dd]\n  dd-6617  [002]   162.914337: block_rq_insert: 253,0 W 0 () 384 + 256 [dd]\n  dd-6617  [002]   162.914347: block_rq_issue: 253,0 W 0 () 384 + 256 [dd]\n**dd-6617  [002]   162.914356: block_rq_remap: 65,176 W 384 + 256 \u003c- (253,0) 384\n  dd-6617  [002]   162.914358: block_rq_insert: 65,176 W 0 () 384 + 256 [dd]\n  dd-6617  [002]   162.914359: block_rq_issue: 65,176 W 0 () 384 + 256 [dd]\n  ...\n\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "c1f0c183f6acc6d32c5a1d0249ec68bf783af7b1",
      "tree": "f8e8e88e5403a9dbbebff14dc4afd6d475d1c03a",
      "parents": [
        "042d2a9bcd80fe12d4b0871706aa9dd2231e8238"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Thu Dec 10 23:52:24 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:24 2009 +0000"
      },
      "message": "dm snapshot: allow live exception store handover between tables\n\nPermit in-use snapshot exception data to be \u0027handed over\u0027 from one\nsnapshot instance to another.  This is a pre-requisite for patches\nthat allow the changes made in a snapshot device to be merged back into\nits origin device and also allows device resizing.\n\nThe basic call sequence is:\n\n  dmsetup load new_snapshot (referencing the existing in-use cow device)\n     - the ctr code detects that the cow is already in use and allows the\n       two snapshot target instances to be linked together\n  dmsetup suspend original_snapshot\n  dmsetup resume new_snapshot\n     - the new_snapshot becomes live, and if anything now tries to access\n       the original one it will receive -EIO\n  dmsetup remove original_snapshot\n\n(There can only be two snapshot targets referencing the same cow device\nsimultaneously.)\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "042d2a9bcd80fe12d4b0871706aa9dd2231e8238",
      "tree": "69a7b6675e2cd020807729de50cd99747f6470f4",
      "parents": [
        "a794015597a2d9b437470c7692aac77e5fc08cd2"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:24 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:24 2009 +0000"
      },
      "message": "dm: keep old table until after resume succeeded\n\nWhen swapping a new table into place, retain the old table until\nits replacement is in place.\n\nAn old check for an empty table is removed because this is enforced\nin populate_table().\n\n__unbind() becomes redundant when followed by __bind().\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "a794015597a2d9b437470c7692aac77e5fc08cd2",
      "tree": "d25dd56edd53f8f1890ed005b5531ccfa07c28ee",
      "parents": [
        "1d0f3ce83200edc5d43723c77c62b09ad6560294"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:23 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:23 2009 +0000"
      },
      "message": "dm: bind new table before destroying old\n\nWhen replacing a mapped device\u0027s table during a \u0027resume\u0027, delay the\ndestruction of the old table until the new one is successfully in place.\n\nThis will make it easier for a later patch to transfer internal state\ninformation from the old table to the new one (something we do not currently\nsupport) while giving us more options for reversion if a later part\nof the operation fails.\n\nDevices are always in the suspended state during dm_swap_table().\nThis patch reinforces the requirement that all I/O must have been\nflushed from the table targets while in this state (including any in\nworkqueues).  In the case of \u0027noflush\u0027 suspending, unprocessed\nI/O should have been \u0027pushed back\u0027 to the dm core prior to this point,\nfor resubmission after the new table is in place.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "1d0f3ce83200edc5d43723c77c62b09ad6560294",
      "tree": "dd7f0306c14334d8cb2fbcabe18243c94da4b869",
      "parents": [
        "12fc0f49dc994d8d90dcf3df13f5b1ee5441288d"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Thu Dec 10 23:52:22 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:22 2009 +0000"
      },
      "message": "dm ioctl: retrieve status from inactive table\n\nAdd the flag DM_QUERY_INACTIVE_TABLE_FLAG to the ioctls to return\ninfomation about the loaded-but-not-yet-active table instead of the live\ntable.  Prior to this patch it was impossible to obtain this information\nuntil the device had been \u0027resumed\u0027.\n\nUserspace dmsetup and libdevmapper support the flag as of version 1.02.40.\ne.g. dmsetup info --inactive vg1-lv1\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "12fc0f49dc994d8d90dcf3df13f5b1ee5441288d",
      "tree": "60959c326d01807f3e9a72bd1799717d0166ac6e",
      "parents": [
        "67a46dad25ccc8910995d8671f7ec17a6bc823cb"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Dec 10 23:52:22 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:22 2009 +0000"
      },
      "message": "dm io: handle empty barriers\n\nAccept empty barriers in dm-io.\n\ndm-io will process empty write barrier requests just like the other\nread/write requests.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "67a46dad25ccc8910995d8671f7ec17a6bc823cb",
      "tree": "6e5221b6fdd5ad8de5e88e2c45737f788288c6cf",
      "parents": [
        "6380f26f0424034345461cabaab9a7030d905b59"
      ],
      "author": {
        "name": "Mike Anderson",
        "email": "andmike@linux.vnet.ibm.com",
        "time": "Thu Dec 10 23:52:21 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:21 2009 +0000"
      },
      "message": "dm mpath: prevent io from work queue while suspended\n\nReject messages that can generate I/O while the device itself\nis suspended.\n\nSigned-off-by: Mike Anderson \u003candmike@linux.vnet.ibm.com\u003e\nAcked-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "6380f26f0424034345461cabaab9a7030d905b59",
      "tree": "cc9fbd6e8d990bf3ee2f577ae7f842a4df1d5ef6",
      "parents": [
        "c50abeb38026ea721a812cf8a9b2fac5d3b7684b"
      ],
      "author": {
        "name": "Mike Anderson",
        "email": "andmike@linux.vnet.ibm.com",
        "time": "Thu Dec 10 23:52:21 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:21 2009 +0000"
      },
      "message": "dm mpath: add mutex to synchronize adding and flushing work\n\nAdd a mutex to allow possible creators of new work to synchronize with\nflushing work queues.\n\nSigned-off-by: Mike Anderson \u003candmike@linux.vnet.ibm.com\u003e\nAcked-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "c50abeb38026ea721a812cf8a9b2fac5d3b7684b",
      "tree": "755a412a2aa8bacf35a278f1009229c64424b03c",
      "parents": [
        "432a212c0dd0f4ca386cf37c5b740ac9dbda4479"
      ],
      "author": {
        "name": "Mike Anderson",
        "email": "andmike@linux.vnet.ibm.com",
        "time": "Thu Dec 10 23:52:20 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:20 2009 +0000"
      },
      "message": "dm ioctl: forbid messages to devices being deleted\n\nOnce we begin deleting a device, prevent any further messages being sent\nto targets of its table (to avoid races).\n\nSigned-off-by: Mike Anderson \u003candmike@linux.vnet.ibm.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "432a212c0dd0f4ca386cf37c5b740ac9dbda4479",
      "tree": "0eb05111e9290856c9e7543e5d12e1e3ee0c8ef3",
      "parents": [
        "6df400ab64c68fc4072a13019fc20fd7e3d51303"
      ],
      "author": {
        "name": "Mike Anderson",
        "email": "andmike@linux.vnet.ibm.com",
        "time": "Thu Dec 10 23:52:20 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:20 2009 +0000"
      },
      "message": "dm: add dm_deleting_md function\n\nAdd dm_deleting_md to check whether or not a given mapped\ndevice is currently being deleted.\n\nSigned-off-by: Mike Anderson \u003candmike@linux.vnet.ibm.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "6df400ab64c68fc4072a13019fc20fd7e3d51303",
      "tree": "69a9e9060b6c8ad87acc3514d4c8981767efb3b5",
      "parents": [
        "7c6664114b7342a36f14a6836564e865669b3cea"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Thu Dec 10 23:52:19 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:19 2009 +0000"
      },
      "message": "dm mpath: flush workqueues before suspend completes\n\nThis patch stops the remaining dm-mpath activity during the suspend\nsequence by flushing workqueues in postsuspend function.\n\nThe current dm-mpath target may not be quiet even after suspend completes\nbecause some workqueues (e.g. device_handler\u0027s work, event handling)\nare not flushed during the suspend sequence, even though suspended\ndevices/targets are supposed to be quiet in this state.\n\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "7c6664114b7342a36f14a6836564e865669b3cea",
      "tree": "0f00dcd89bec3ae1e4003b23018a2b1bf5464ff0",
      "parents": [
        "d0bcb8786532b01206f04258eb6b7d4ac858436a"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:19 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:19 2009 +0000"
      },
      "message": "dm: rename dm_get_table to dm_get_live_table\n\nRename dm_get_table to dm_get_live_table.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "d0bcb8786532b01206f04258eb6b7d4ac858436a",
      "tree": "49c27a02ebd5f58072f5d2234609fa0e6816038e",
      "parents": [
        "980691e5f3a1b5ebbb2d34014e028fd7f1c6e4fb"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Thu Dec 10 23:52:18 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:18 2009 +0000"
      },
      "message": "dm: add request based barrier support\n\nThis patch adds barrier support for request-based dm.\n\nCORE DESIGN\n\nThe design is basically same as bio-based dm, which emulates barrier\nby mapping empty barrier bios before/after a barrier I/O.\nBut request-based dm has been using struct request_queue for I/O\nqueueing, so the block-layer\u0027s barrier mechanism can be used.\n\no Summary of the block-layer\u0027s behavior (which is depended by dm-core)\n  Request-based dm uses QUEUE_ORDERED_DRAIN_FLUSH ordered mode for\n  I/O barrier.  It means that when an I/O requiring barrier is found\n  in the request_queue, the block-layer makes pre-flush request and\n  post-flush request just before and just after the I/O respectively.\n\n  After the ordered sequence starts, the block-layer waits for all\n  in-flight I/Os to complete, then gives drivers the pre-flush request,\n  the barrier I/O and the post-flush request one by one.\n  It means that the request_queue is stopped automatically by\n  the block-layer until drivers complete each sequence.\n\no dm-core\n  For the barrier I/O, treats it as a normal I/O, so no additional\n  code is needed.\n\n  For the pre/post-flush request, flushes caches by the followings:\n    1. Make the number of empty barrier requests required by target\u0027s\n       num_flush_requests, and map them (dm_rq_barrier()).\n    2. Waits for the mapped barriers to complete (dm_rq_barrier()).\n       If error has occurred, save the error value to md-\u003ebarrier_error\n       (dm_end_request()).\n       (*) Basically, the first reported error is taken.\n           But -EOPNOTSUPP supersedes any error and DM_ENDIO_REQUEUE\n           follows.\n    3. Requeue the pre/post-flush request if the error value is\n       DM_ENDIO_REQUEUE.  Otherwise, completes with the error value\n       (dm_rq_barrier_work()).\n  The pre/post-flush work above is done in the kernel thread (kdmflush)\n  context, since memory allocation which might sleep is needed in\n  dm_rq_barrier() but sleep is not allowed in dm_request_fn(), which is\n  an irq-disabled context.\n  Also, clones of the pre/post-flush request share an original, so\n  such clones can\u0027t be completed using the softirq context.\n  Instead, complete them in the context of underlying device drivers.\n  It should be safe since there is no I/O dispatching during\n  the completion of such clones.\n\n  For suspend, the workqueue of kdmflush needs to be flushed after\n  the request_queue has been stopped.  Otherwise, the next flush work\n  can be kicked even after the suspend completes.\n\nTARGET INTERFACE\n\nNo new interface is added.\nJust use the existing num_flush_requests in struct target_type\nas same as bio-based dm.\n\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "980691e5f3a1b5ebbb2d34014e028fd7f1c6e4fb",
      "tree": "a4d593cf3818a54c41e6a4115cad63128b738c0b",
      "parents": [
        "11a68244e16b0c35e122dd55b4e7c595e0fb67a1"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Thu Dec 10 23:52:17 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:17 2009 +0000"
      },
      "message": "dm: move dm_end_request\n\nThis patch moves dm_end_request() to make the next patch more readable.\nNo functional change.\n\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "11a68244e16b0c35e122dd55b4e7c595e0fb67a1",
      "tree": "ac982eb9abf6eca76ae35a9e0900323b54bb3ab9",
      "parents": [
        "b4324feeae304ae39e631a254d238a7d63be004b"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Thu Dec 10 23:52:17 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:17 2009 +0000"
      },
      "message": "dm: refactor request based completion functions\n\nThis patch factors out the clone completion code, dm_done(),\nfrom dm_softirq_done() in preparation for a subsequent patch.\nNo functional change.\n\ndm_done() will be used in barrier completion, which can\u0027t use and\ndoesn\u0027t need softirq.  The softirq_done callback needs to get a clone\nfrom an original request but it can\u0027t in the case of barrier, where\nan original request is shared by multiple clones.  On the other hand,\nthe completion of barrier clones doesn\u0027t involve re-submitting requests,\nwhich was the primary reason of the need for softirq.\n\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "b4324feeae304ae39e631a254d238a7d63be004b",
      "tree": "12495362c9301129912a8d706de0f6cdb7de8ccf",
      "parents": [
        "9f518b27cf682dd5155a4c1679d52cd4b5be82f2"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Thu Dec 10 23:52:16 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:16 2009 +0000"
      },
      "message": "dm: use md pending for in flight IO counting\n\nThis patch changes the counter for the number of in_flight I/Os\nto md-\u003epending from q-\u003ein_flight in preparation for a later patch.\nNo functional change.\n\nRequest-based dm used q-\u003ein_flight to count the number of in-flight\nclones assuming the counter is always incremented for an in-flight\noriginal request and original:clone is 1:1 relationship.\nHowever, it this no longer true for barrier requests.\nSo use md-\u003epending to count the number of in-flight clones.\n\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "9f518b27cf682dd5155a4c1679d52cd4b5be82f2",
      "tree": "3515037fb33d11065cbc02a8aa8c13ef6a406fa9",
      "parents": [
        "6facdaff229f2b25d0de82be9be99b9f562e72ba"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Thu Dec 10 23:52:16 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:16 2009 +0000"
      },
      "message": "dm: simplify request based suspend\n\nThe semantics of bio-based dm were changed recently in the case of\nsuspend with \"--nolockfs\" but without \"--noflush\".\nBefore 2.6.30, I/Os submitted before the suspend invocation were always\nflushed.  From 2.6.30 onwards, I/Os submitted before the suspend\ninvocation might not be flushed.  (For details, see\nhttp://marc.info/?t\u003d123994433400003\u0026r\u003d1\u0026w\u003d2)\n\nThis patch brings the behaviour of request-based dm into line with\nbio-based dm, simplifying the code and preparing for a subsequent patch\nthat will wait for all in_flight I/Os to complete without stopping\nrequest_queue and use dm_wait_for_completion() for it.\n\nThis change in semantics simplifies the suspend code as follows:\n  o Suspend is implemented as stopping request_queue\n    in request-based dm, and all I/Os are queued in the request_queue\n    even after suspend is invoked.\n  o In the old semantics, we had to track whether I/Os were\n    queued before or after the suspend invocation, so a special\n    barrier-like request called \u0027suspend marker\u0027 was introduced.\n  o With the new semantics, we don\u0027t need to flush any I/O\n    so we can remove the marker and the code related to the marker\n    handling and I/O flushing.\n\nAfter removing this codes, the suspend sequence is now:\n  1. Flush all I/Os by lock_fs() if needed.\n  2. Stop dispatching any I/O by stopping the request_queue.\n  3. Wait for all in-flight I/Os to be completed or requeued.\n\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "6facdaff229f2b25d0de82be9be99b9f562e72ba",
      "tree": "4faa8e98b33e804525c7873d160cb0d7014a2a0d",
      "parents": [
        "0888564393a1277ce2d0564d819e1bcff1120343"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Thu Dec 10 23:52:15 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:15 2009 +0000"
      },
      "message": "dm: abstract clone_rq\n\nThis patch factors out the request cloning code in dm_prep_fn()\nas clone_rq().  No functional change.\n\nThis patch is a preparation for a later patch in this series which needs to\nmake clones from an original barrier request.\n\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "0888564393a1277ce2d0564d819e1bcff1120343",
      "tree": "cac54095a48b4662ee5a3ff17550693300be2692",
      "parents": [
        "598de40947909e6b948569710383661ecc0ddc8e"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Thu Dec 10 23:52:15 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:15 2009 +0000"
      },
      "message": "dm: pass gfp_mask to alloc_rq_tio\n\nThis patch adds the gfp_mask argument to alloc_rq_tio().\nNo functional change.\n\nThis patch is a preparation for a later patch in this series which needs to\nallocate tio (for barrier I/O) with different allocation flag (GFP_NOIO) from\nthe one in the normal I/O code path.\n\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "598de40947909e6b948569710383661ecc0ddc8e",
      "tree": "05d342fb20877b9c8944ba9309f46f62094ef021",
      "parents": [
        "90abb8c4cec8f0aa4ce58790542e3cf13071601a"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Thu Dec 10 23:52:14 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:14 2009 +0000"
      },
      "message": "dm: use clone in map_request function\n\nThis patch changes the argument of map_request() to clone request\nfrom original request.  No functional change.\n\nThis patch is a preparation for PATCH 9, which needs to use\nmap_request() for clones sharing an original barrier request.\n\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "90abb8c4cec8f0aa4ce58790542e3cf13071601a",
      "tree": "4233757994b2ff97c29c81d5aae9f4660dcea1b3",
      "parents": [
        "9ca170a3c0cbb0d5251cef6f5a3300fa436ba8ec"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Thu Dec 10 23:52:13 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:13 2009 +0000"
      },
      "message": "dm: abstract dm_in_flight function\n\nThis patch adds md_in_flight() to get the number of in_flight I/Os.\nNo functional change.\n\nThis patch is a preparation for a later patch in this series, which\nchanges I/O counter to md-\u003epending from q-\u003ein_flight in request-based dm.\n\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "9ca170a3c0cbb0d5251cef6f5a3300fa436ba8ec",
      "tree": "78c023bd85bcbf01b5e81ae9586093aabe201312",
      "parents": [
        "c26655ca3ca7550740a63820ee981e5c7c797523"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Dec 10 23:52:13 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:13 2009 +0000"
      },
      "message": "dm kcopyd: accept zero size jobs\n\ndm-kcopyd: accept zero-size jobs\n\nThis patch changes dm-kcopyd so that it accepts zero-size jobs and completes\nthem immediatelly via its completion thread.\n\nIt is needed for multisnapshots snapshot resizing. When we are writing to\na chunk beyond origin end, no copying is done. To simplify the code, we submit\nan empty request to kcopyd and let kcopyd complete it. If we didn\u0027t submit\na request to kcopyd and called the completion routine immediatelly, it would\nviolate the principle that completion is called only from one thread and\nit would need additional locking.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "c26655ca3ca7550740a63820ee981e5c7c797523",
      "tree": "1ac39d32d93a6fd5dbcfb5fa95304aecb6cb5efe",
      "parents": [
        "fc56f6fbcca3672c63c93c65f45105faacfc13cb"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Thu Dec 10 23:52:12 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:12 2009 +0000"
      },
      "message": "dm snapshot: track suspended state in target\n\nKeep track of whether or not the device is suspended within the snapshot\ntarget module, the same as we do in dm-raid1.\n\nWe will use this later to enforce the correct sequence of ioctls to\ntransfer the in-core exceptions from a snapshot target instance in\none table to a replacement one capable of merging them back\ninto the origin.\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "fc56f6fbcca3672c63c93c65f45105faacfc13cb",
      "tree": "f50f42a461ef33f8617fbdb781879e6ae77b62c4",
      "parents": [
        "985903bb3a6d98623360ab6c855417f638840029"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Thu Dec 10 23:52:12 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:12 2009 +0000"
      },
      "message": "dm snapshot: move cow ref from exception store to snap core\n\nStore the reference to the snapshot cow device in the core snapshot\ncode instead of each exception store.  It can be accessed through the\nnew function dm_snap_cow().  Exception stores should each now maintain a\nreference to their parent snapshot struct.\n\nThis is cleaner and makes part of the forthcoming snapshot merge code simpler.\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nReviewed-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nCc: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\n"
    },
    {
      "commit": "985903bb3a6d98623360ab6c855417f638840029",
      "tree": "64e7582e0b7827aa318c4fe1c497ebc541d9ce8b",
      "parents": [
        "3510cb94ff7b04b016bd22bfee913e2c1c05c066"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Thu Dec 10 23:52:11 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:11 2009 +0000"
      },
      "message": "dm snapshot: add allocated metadata to snapshot status\n\nAdd number of sectors used by metadata to the end of the snapshot\u0027s status\nline.\n\nRenamed dm_exception_store_type\u0027s \u0027fraction_full\u0027 to \u0027usage\u0027.  Renamed\narguments to be clearer about what is being returned.  Also added\n\u0027metadata_sectors\u0027.\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "3510cb94ff7b04b016bd22bfee913e2c1c05c066",
      "tree": "6d8f1d3a8873d52b561c26b5b631763908d0f015",
      "parents": [
        "191437a53c8269df3a2c6199206781e742c57bb5"
      ],
      "author": {
        "name": "Jon Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Thu Dec 10 23:52:11 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:11 2009 +0000"
      },
      "message": "dm snapshot: rename exception functions\n\nRename exception functions.  Preparing to pull them out of\ndm-snap.c for broader use.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nReviewed-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "191437a53c8269df3a2c6199206781e742c57bb5",
      "tree": "cf0c03388fe387a7f2e40a1eb5cf1b8761cf7db6",
      "parents": [
        "1d4989c858093bda0426be536fc7f9c415857836"
      ],
      "author": {
        "name": "Jon Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Thu Dec 10 23:52:10 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:10 2009 +0000"
      },
      "message": "dm snapshot: rename exception_table to dm_exception_table\n\nRename exception_table for broader use outside dm-snap.c\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nReviewed-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "1d4989c858093bda0426be536fc7f9c415857836",
      "tree": "f3d831048cb65b39d5fb89178d2a6de599518a2b",
      "parents": [
        "d32a6ea65fbc33621f9c790da3dff10201640b2a"
      ],
      "author": {
        "name": "Jon Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Thu Dec 10 23:52:10 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:10 2009 +0000"
      },
      "message": "dm snapshot: rename dm_snap_exception to dm_exception\n\nThe exception structure is not necessarily just a snapshot\nelement (especially after we pull it out of dm-snap.c).\n\nRenaming appropriately.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nReviewed-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "d32a6ea65fbc33621f9c790da3dff10201640b2a",
      "tree": "a352ceb4ed92812bda57dd33806417da84adbc7b",
      "parents": [
        "7e201b35132a1f02c931a0a06760766c846bb49b"
      ],
      "author": {
        "name": "Jon Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Thu Dec 10 23:52:09 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:09 2009 +0000"
      },
      "message": "dm snapshot: consolidate insert exception functions\n\nConsolidate the insert_*exception functions.  \u0027insert_completed_exception\u0027\nalready contains all the logic to handle \u0027insert_exception\u0027 (via\ncheck for a hash_shift of 0), so remove redundant function.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nReviewed-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "7e201b35132a1f02c931a0a06760766c846bb49b",
      "tree": "02ab2bcf4609763ab9780db2a87b9f37aa77186f",
      "parents": [
        "102c6ddb1d081a6a1fede38c43a42c9811313ec7"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Dec 10 23:52:08 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:08 2009 +0000"
      },
      "message": "dm snapshot: abstract minimum_chunk_size fn\n\nThe origin needs to find minimum chunksize of all snapshots.  This logic is\nmoved to a separate function because it will be used at another place in\nthe snapshot merge patches.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nReviewed-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nReviewed-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "102c6ddb1d081a6a1fede38c43a42c9811313ec7",
      "tree": "2274305e73dccefa6a4620180339ec04504f93fb",
      "parents": [
        "f5acc834287dd4f6cf712093ce0e779e38caad70"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Dec 10 23:52:08 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:08 2009 +0000"
      },
      "message": "dm snapshot: simplify sector_to_chunk expression\n\nRemoved unnecessary \u0027and\u0027 masking: The right shift discards the lower\nbits so there is no need to clear them.\n\n(A later patch needs this change to support a 32-bit chunk_mask.)\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nReviewed-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nReviewed-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "f5acc834287dd4f6cf712093ce0e779e38caad70",
      "tree": "d3100f28c096a79d487a79b832fa8964af4e2274",
      "parents": [
        "a518b86d0b1b6a474f154697dc6f33e0a317ae72"
      ],
      "author": {
        "name": "Jon Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Thu Dec 10 23:52:07 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:07 2009 +0000"
      },
      "message": "dm snapshot: avoid else clause in persistent_read_metadata\n\nMinor code touch-up.  We don\u0027t need the \u0027else\u0027.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nReviewed-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nReviewed-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "a518b86d0b1b6a474f154697dc6f33e0a317ae72",
      "tree": "759b2ddb2a6a7f3745ee88d817652de5568da509",
      "parents": [
        "5339fc2d47d1d720e027b9b832bf5aae8fba2ac0"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "roel.kluin@gmail.com",
        "time": "Thu Dec 10 23:52:07 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:07 2009 +0000"
      },
      "message": "dm ioctl: prefer strlcpy over strncpy\n\nstrlcpy() will always null terminate the string.\n\n    The code should already guarantee this as the last bytes are already\n    NULs and the string lengths were restricted before being stored in\n    hc.  Removing the \u0027-1\u0027 becomes necessary so strlcpy() doesn\u0027t\n    lose the last character of a maximum-length string.\n\t- agk\n\nSigned-off-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "5339fc2d47d1d720e027b9b832bf5aae8fba2ac0",
      "tree": "370c3c4e31bca9737d0fc92918eaf7fceb94854a",
      "parents": [
        "929be8fcb4b4b65d038e73d3bb34715851a95ca2"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Dec 10 23:52:06 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:06 2009 +0000"
      },
      "message": "dm raid1: explicitly initialise bio_lists\n\nExplicitly initialize bio lists instead of relying on kzalloc.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nReviewed-by: Takahiro Yasui \u003ctyasui@redhat.com\u003e\nTested-by: Takahiro Yasui \u003ctyasui@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "929be8fcb4b4b65d038e73d3bb34715851a95ca2",
      "tree": "7c008317d90232b5b2d3869b9fa68c1ec023d7f6",
      "parents": [
        "60f355ead31e2be8d06ac8acb163df91a1c64e3b"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Dec 10 23:52:06 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:06 2009 +0000"
      },
      "message": "dm raid1: hold all write bios when leg fails\n\nHold all write bios when leg fails and errors are handled\n\nWhen using a userspace daemon such as dmeventd to handle errors, we must\ndelay completing  bios until it has done its job.\nThis patch prevents the following race:\n  - primary leg fails\n  - write \"1\" fail, the write is held, secondary leg is set default\n  - write \"2\" goes straight to the secondary leg\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nReviewed-by: Takahiro Yasui \u003ctyasui@redhat.com\u003e\nTested-by: Takahiro Yasui \u003ctyasui@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "60f355ead31e2be8d06ac8acb163df91a1c64e3b",
      "tree": "11a011cb6bcbf4adc27b871556a6d475b6826dd3",
      "parents": [
        "c58098be979509a54021e837a47fcad08db31f94"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Dec 10 23:52:05 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:05 2009 +0000"
      },
      "message": "dm raid1: hold write bios when errors are handled\n\nHold all write bios when errors are handled.\n\nPreviously the failures list was used only when handling errors with\na userspace daemon such as dmeventd.  Now, it is always used for all bios.\nThe regions where some writes failed must be marked as nosync. This can only\nbe done in process context (i.e. in raid1 workqueue), not in the\nwrite_callback function.\n\nPreviously the write would succeed if writing to at least one leg\nsucceeded.  This is wrong because data from the failed leg may be\nreplicated to the correct leg.  Now, if using a userspace daemon, the\nwrite with some failures will be held until the daemon has done its job\nand reconfigured the array.  If not using a daemon, the write still\nsucceeds if at least one leg succeeds. This is bad, but it is consistent\nwith current behavior.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nReviewed-by: Takahiro Yasui \u003ctyasui@redhat.com\u003e\nTested-by: Takahiro Yasui \u003ctyasui@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "c58098be979509a54021e837a47fcad08db31f94",
      "tree": "88ab7b21dbdac01756d0e835e3e9bc7a1bff7f28",
      "parents": [
        "87968ddd2f3be1c21b932cac30157a83a1c4f935"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Dec 10 23:52:05 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:05 2009 +0000"
      },
      "message": "dm raid1: remove bio_endio from dm_rh_mark_nosync\n\nMove bio completion out of dm_rh_mark_nosync in preparation for the\nnext patch.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nReviewed-by: Takahiro Yasui \u003ctyasui@redhat.com\u003e\nTested-by: Takahiro Yasui \u003ctyasui@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "87968ddd2f3be1c21b932cac30157a83a1c4f935",
      "tree": "f4d4caa4ec52f697ed5745a88322d3620cf7ee0a",
      "parents": [
        "0f398a8403e31c737b429fddc3850093d0bf58d0"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Dec 10 23:52:04 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:04 2009 +0000"
      },
      "message": "dm raid1: abstract get_valid_mirror function\n\nMove the logic to get a valid mirror leg into a function for re-use\nin a later patch.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nReviewed-by: Takahiro Yasui \u003ctyasui@redhat.com\u003e\nTested-by: Takahiro Yasui \u003ctyasui@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "0f398a8403e31c737b429fddc3850093d0bf58d0",
      "tree": "4acfeaf25e028f4700d88c8b685fa7e6d83e8b96",
      "parents": [
        "04788507686d184d8166918b70ef52311bc36dcb"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Dec 10 23:52:04 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:04 2009 +0000"
      },
      "message": "dm raid1: use hold framework in do_failures\n\nUse the hold framework in do_failures.\n\nThis patch doesn\u0027t change the bio processing logic, it just simplifies\nfailure handling and avoids periodically polling the failures list.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nReviewed-by: Takahiro Yasui \u003ctyasui@redhat.com\u003e\nTested-by: Takahiro Yasui \u003ctyasui@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "04788507686d184d8166918b70ef52311bc36dcb",
      "tree": "c17fb1f8f9ac8d2a137f9c523d059f5918940c93",
      "parents": [
        "64b30c46e866bbff8a9e17883a18636adc358455"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Dec 10 23:52:03 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:03 2009 +0000"
      },
      "message": "dm raid1: add framework to hold bios during suspend\n\nAdd framework to delay bios until a suspend and then resubmit them with\neither DM_ENDIO_REQUEUE (if the suspend was noflush) or complete them\nwith -EIO.  I/O barrier support will use this.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nReviewed-by: Takahiro Yasui \u003ctyasui@redhat.com\u003e\nTested-by: Takahiro Yasui \u003ctyasui@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "64b30c46e866bbff8a9e17883a18636adc358455",
      "tree": "e79ecbec9170dad5704df2ceddda7b65b1e5d1f6",
      "parents": [
        "c0da3748b9a894b9f9b561ecc2d090a913988a0f"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Dec 10 23:52:02 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:02 2009 +0000"
      },
      "message": "dm raid1: report flush errors separately in status\n\nReport flush errors as \u0027F\u0027 instead of \u0027D\u0027 for log and mirror devices.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "c0da3748b9a894b9f9b561ecc2d090a913988a0f",
      "tree": "85213c004d3b39dae3d64ab8e4a641958421b231",
      "parents": [
        "076010e2e6ea5b66dfd1f81a6133fb014c9b291d"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Dec 10 23:52:02 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:02 2009 +0000"
      },
      "message": "dm raid1: implement mirror_flush\n\nImplement flush callee. It uses dm_io to send zero-size barrier synchronously\nand concurrently to all the mirror legs.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "076010e2e6ea5b66dfd1f81a6133fb014c9b291d",
      "tree": "b8b6e7ebeb1b60166611e3bbd536818748689a6d",
      "parents": [
        "87a8f240e9bcf025ba45e4563c842b0d59c5e8ef"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Dec 10 23:52:01 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:01 2009 +0000"
      },
      "message": "dm log: use flush callback fn\n\nCall the flush callback from the log.\n\nIf flush failed, we have no alternative but to mark the whole log as dirty.\nAlso we set the variable flush_failed to prevent any bits ever being marked as\nclean again.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "87a8f240e9bcf025ba45e4563c842b0d59c5e8ef",
      "tree": "b6b42a74fc1135c11656d8cf4bf5ea4005c74a77",
      "parents": [
        "5adc78d0d231b030405b31759f125f13404fdb64"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Dec 10 23:52:01 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:01 2009 +0000"
      },
      "message": "dm log: add flush callback fn\n\nIntroduce a callback pointer from the log to dm-raid1 layer.\n\nBefore some region is set as \"in-sync\", we need to flush hardware cache on\nall the disks. But the log module doesn\u0027t have access to the mirror_set\nstructure. So it will use this callback.\n\nSo far the callback is unused, it will be used in further patches.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "5adc78d0d231b030405b31759f125f13404fdb64",
      "tree": "8906799cb47e78790335eac122987872ef193dab",
      "parents": [
        "20a34a8ecc7d03eaa5054f58169ebff12f5f1f8c"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Dec 10 23:52:00 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:00 2009 +0000"
      },
      "message": "dm log: introduce flush_failed variable\n\nIntroduce \"flush failed\" variable.  When a flush before clearing a bit\nin the log fails, we don\u0027t know anything about which which regions are\nin-sync and which not.\n\nSo we need to set all regions as not-in-sync and set the variable\n\"flush_failed\" to prevent setting the in-sync bit in the future.\n\nA target reload is the only way to get out of this situation.\n\nThe variable will be set in following patches.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "20a34a8ecc7d03eaa5054f58169ebff12f5f1f8c",
      "tree": "87dd9a93e2bd11c8917d9c4bb000c3acb85723c8",
      "parents": [
        "b09acf1aa79462bdacfe6744b469a17722a52702"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Dec 10 23:52:00 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:52:00 2009 +0000"
      },
      "message": "dm log: add flush_header function\n\nIntroduce flush_header and use it to flush the log device.\n\nNote that we don\u0027t have to flush if all the regions transition\nfrom \"dirty\" to \"clean\" state.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "b09acf1aa79462bdacfe6744b469a17722a52702",
      "tree": "27ef83ed0d0bbf35938814f8ba3206e7881a170d",
      "parents": [
        "4184153f9e483f9bb63339ed316e059962fe9794"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Dec 10 23:51:59 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:51:59 2009 +0000"
      },
      "message": "dm raid1: split touched state into two\n\nSplit the variable \"touched\" into two, \"touched_dirtied\" and\n\"touched_cleaned\", set when some region was dirtied or cleaned.\n\nThis will be used to optimize flushes.\n\nAfter a transition from \"dirty\" to \"clean\" state we don\u0027t have flush hardware\ncache on the log device. After a transition from \"clean\" to \"dirty\" the cache\nmust be flushed.\n\nBefore a transition from \"clean\" to \"dirty\" state we don\u0027t have to flush all\nthe raid legs. Before a transition from \"dirty\" to \"clean\" we must flush all\nthe legs to make sure that they are really in sync.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "4184153f9e483f9bb63339ed316e059962fe9794",
      "tree": "054ae52af1a464d49bded004de64cdf342f40e68",
      "parents": [
        "f1e539874655ae9e74c1644fd54133b19f1b14e2"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Dec 10 23:51:59 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:51:59 2009 +0000"
      },
      "message": "dm raid1: support flush\n\nFlush support for dm-raid1.\n\nWhen it receives an empty barrier, submit it to all the devices via dm-io.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "f1e539874655ae9e74c1644fd54133b19f1b14e2",
      "tree": "72dd2956c3915a45984321c192964ce7a88dbe07",
      "parents": [
        "952b355760c196ec014dd0b6878f85a11496e3da"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Dec 10 23:51:58 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:51:58 2009 +0000"
      },
      "message": "dm io: remove extra bi_io_vec region hack\n\nRemove the hack where we allocate an extra bi_io_vec to store additional\nprivate data.  This hack prevents us from supporting barriers in\ndm-raid1 without first making another little block layer change.\nInstead of doing that, this patch eliminates the bi_io_vec abuse by\nstoring the region number directly in the low bits of bi_private.\n\nWe need to store two things for each bio, the pointer to the main io\nstructure and, if parallel writes were requested, an index indicating\nwhich of these writes this bio belongs to.  There can be at most\nBITS_PER_LONG regions - 32 or 64.\n\nThe index (region number) was stored in the last (hidden) bio vector and\nthe pointer to struct io was stored in bi_private.\n\nThis patch now aligns \"struct io\" on BITS_PER_LONG bytes and stores the\nregion number in the low BITS_PER_LONG bits of bi_private.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "952b355760c196ec014dd0b6878f85a11496e3da",
      "tree": "0a6907fa6dce2bac8afdc2efea774f19bdbb9a17",
      "parents": [
        "542da317668c35036e8471822a564b609d05af66"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Dec 10 23:51:57 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:51:57 2009 +0000"
      },
      "message": "dm io: use slab for struct io\n\nAllocate \"struct io\" from a slab.\n\nThis patch changes dm-io, so that \"struct io\" is allocated from a slab cache.\nIt used to be allocated with kmalloc. Allocating from a slab will be needed\nfor the next patch, because it requires a special alignment of \"struct io\"\nand kmalloc cannot meet this alignment.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "542da317668c35036e8471822a564b609d05af66",
      "tree": "3c553eda1e52cde6b7270fb0b7aa3b5db80d58d9",
      "parents": [
        "b95bf2d3d5a48b095bffe2a0cd8c40453cf59557"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Thu Dec 10 23:51:57 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:51:57 2009 +0000"
      },
      "message": "dm crypt: make wipe message also wipe essiv key\n\nThe \"wipe key\" message is used to wipe the volume key from memory\ntemporarily, for example when suspending to RAM.\n\nBut the initialisation vector in ESSIV mode is calculated from the\nhashed volume key, so the wipe message should wipe this IV key too and\nreinitialise it when the volume key is reinstated.\n\nThis patch adds an IV wipe method called from a wipe message callback.\nESSIV is then reinitialised using the init function added by the\nlast patch.\n\nCc: stable@kernel.org\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "b95bf2d3d5a48b095bffe2a0cd8c40453cf59557",
      "tree": "bcb6bdd0e5b67eb0aa2277aac125686bb911950a",
      "parents": [
        "5861f1be00b3b70f8ab5e5a81392a6cf69666cd2"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Thu Dec 10 23:51:56 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:51:56 2009 +0000"
      },
      "message": "dm crypt: separate essiv allocation from initialisation\n\nThis patch separates the construction of IV from its initialisation.\n(For ESSIV it is a hash calculation based on volume key.)\n\nConstructor code now preallocates hash tfm and salt array\nand saves it in a private IV structure.\n\nThe next patch requires this to reinitialise the wiped IV\nwithout reallocating memory when resuming a suspended device.\n\nCc: stable@kernel.org\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "5861f1be00b3b70f8ab5e5a81392a6cf69666cd2",
      "tree": "6b794de58bd1ad4a1b0919ea641fc5a675a4a26a",
      "parents": [
        "6047359277517c4e56d8bfd6ea4966d7a3924151"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Thu Dec 10 23:51:56 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:51:56 2009 +0000"
      },
      "message": "dm crypt: restructure essiv error path\n\nUse kzfree for salt deallocation because it is derived from the volume\nkey.  Use a common error path in ESSIV constructor.\n\nRequired by a later patch which fixes the way key material is wiped\nfrom memory.\n\nCc: stable@kernel.org\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "6047359277517c4e56d8bfd6ea4966d7a3924151",
      "tree": "f7e28344ace2714ff5346a758dd02682c8761852",
      "parents": [
        "0b4309581b5be8749afdd5a9087fd82a2a5c9932"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Thu Dec 10 23:51:55 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:51:55 2009 +0000"
      },
      "message": "dm crypt: move private iv fields to structs\n\nDefine private structures for IV so it\u0027s easy to add further attributes\nin a following patch which fixes the way key material is wiped from\nmemory.  Also move ESSIV destructor and remove unnecessary \u0027status\u0027\noperation.\n\nThere are no functional changes in this patch.\n\nCc: stable@kernel.org\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "0b4309581b5be8749afdd5a9087fd82a2a5c9932",
      "tree": "4e29641aa1da9e8dc7ab8394f12162976ebef986",
      "parents": [
        "8e87b9b81b3c370f7e53c1ab6e1c3519ef37a644"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Thu Dec 10 23:51:55 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:51:55 2009 +0000"
      },
      "message": "dm crypt: make wipe message also wipe tfm key\n\nThe \"wipe key\" message is used to wipe a volume key from memory\ntemporarily, for example when suspending to RAM.\n\nThere are two instances of the key in memory (inside crypto tfm)\nbut only one got wiped.  This patch wipes them both.\n\nCc: stable@kernel.org\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "8e87b9b81b3c370f7e53c1ab6e1c3519ef37a644",
      "tree": "272a8532e12749c6c8419dcab0c341604646c571",
      "parents": [
        "94e76572b5dd37b1f0f4b3742ee8a565daead932"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Dec 10 23:51:54 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:51:54 2009 +0000"
      },
      "message": "dm snapshot: cope with chunk size larger than origin\n\nUnder some special conditions the snapshot hash_size is calculated as zero.\nThis patch instead sets a minimum value of 64, the same as for the\npending exception table.\n\nrounddown_pow_of_two(0) is an undefined operation (it expands to shift\nby -1).  init_exception_table with an argument of 0 would fail with -ENOMEM.\n\nThe way to trigger the problem is to create a snapshot with a chunk size\nthat is larger than the origin device.\n\nCc: stable@kernel.org\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "94e76572b5dd37b1f0f4b3742ee8a565daead932",
      "tree": "2e7737f21d99a881b7a2d0977adad1d2bd9bfb87",
      "parents": [
        "d2bb7df8cac647b92f51fb84ae735771e7adbfa7"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Dec 10 23:51:53 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:51:53 2009 +0000"
      },
      "message": "dm snapshot: only take lock for statustype info not table\n\nTake snapshot lock only for STATUSTYPE_INFO, not STATUSTYPE_TABLE.\n\nCommit 4c6fff445d7aa753957856278d4d93bcad6e2c14\n(dm-snapshot-lock-snapshot-while-supplying-status.patch)\nintroduced this use of the lock, but userspace applications using\nlibdevmapper have been found to request STATUSTYPE_TABLE while the device\nis suspended and the lock is already held, leading to deadlock.  Since\nthe lock is not necessary in this case, don\u0027t try to take it.\n\nCc: stable@kernel.org\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "d2bb7df8cac647b92f51fb84ae735771e7adbfa7",
      "tree": "a9da22b1a5b857c80ff459dbb5da7578547bae7d",
      "parents": [
        "613978f8711c7fd4d0aa856872375d2abd7c92ff"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Thu Dec 10 23:51:53 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:51:53 2009 +0000"
      },
      "message": "dm: sysfs add empty release function to avoid debug warning\n\nThis patch just removes an unnecessary warning:\n kobject: \u0027dm\u0027: does not have a release() function,\n it is broken and must be fixed.\n\nThe kobject is embedded in mapped device struct, so\ncode does not need to release memory explicitly here.\n\nCc: stable@kernel.org\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "613978f8711c7fd4d0aa856872375d2abd7c92ff",
      "tree": "d921894bb5329ac92f8b598e30481a3b058fea4d",
      "parents": [
        "6076905b5ef39e0ea58db32583c9e0036c05e47b"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Thu Dec 10 23:51:52 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:51:52 2009 +0000"
      },
      "message": "dm exception store: free tmp_store on persistent flag error\n\nError handling code following a kmalloc should free the allocated data.\n\nCc: stable@kernel.org\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "6076905b5ef39e0ea58db32583c9e0036c05e47b",
      "tree": "918a8da9778d93e8ff6aff6497eb698d7a45edab",
      "parents": [
        "3067e02f8f3ae2f3f02ba76400d03b8bcb4942b0"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Dec 10 23:51:52 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Dec 10 23:51:52 2009 +0000"
      },
      "message": "dm: avoid _hash_lock deadlock\n\nFix a reported deadlock if there are still unprocessed multipath events\non a device that is being removed.\n\n_hash_lock is held during dev_remove while trying to send the\noutstanding events.  Sending the events requests the _hash_lock\nagain in dm_copy_name_and_uuid.\n\nThis patch introduces a separate lock around regions that modify the\nlink to the hash table (dm_set_mdptr) or the name or uuid so that\ndm_copy_name_and_uuid no longer needs _hash_lock.\n\nAdditionally, dm_copy_name_and_uuid can only be called if md exists\nso we can drop the dm_get() and dm_put() which can lead to a BUG()\nwhile md is being freed.\n\nThe deadlock:\n #0 [ffff8106298dfb48] schedule at ffffffff80063035\n #1 [ffff8106298dfc20] __down_read at ffffffff8006475d\n #2 [ffff8106298dfc60] dm_copy_name_and_uuid at ffffffff8824f740\n #3 [ffff8106298dfc90] dm_send_uevents at ffffffff88252685\n #4 [ffff8106298dfcd0] event_callback at ffffffff8824c678\n #5 [ffff8106298dfd00] dm_table_event at ffffffff8824dd01\n #6 [ffff8106298dfd10] __hash_remove at ffffffff882507ad\n #7 [ffff8106298dfd30] dev_remove at ffffffff88250865\n #8 [ffff8106298dfd60] ctl_ioctl at ffffffff88250d80\n #9 [ffff8106298dfee0] do_ioctl at ffffffff800418c4\n#10 [ffff8106298dff00] vfs_ioctl at ffffffff8002fab9\n#11 [ffff8106298dff40] sys_ioctl at ffffffff8004bdaf\n#12 [ffff8106298dff80] tracesys at ffffffff8005d28d (via system_call)\n\nCc: stable@kernel.org\nReported-by: guy keren \u003cchoo@actcom.co.il\u003e\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "3067e02f8f3ae2f3f02ba76400d03b8bcb4942b0",
      "tree": "761e19d279b27a03714a6673811e76e0b1cf2081",
      "parents": [
        "f71eaf68406cfee91b6a96bcdf7ce33dc78829c5",
        "b00eb796f1b67c46036b5490e83b31741f1eebaf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:57:06 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:57:06 2009 -0800"
      },
      "message": "Merge branch \u0027acpica\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6\n\n* \u0027acpica\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6:\n  ACPICA: Update version to 20091112.\n  ACPICA: Add additional module-level code support\n  ACPICA: Deploy new create integer interface where appropriate\n  ACPICA: New internal utility function to create Integer objects\n  ACPICA: Add repair for predefined methods that must return sorted lists\n  ACPICA: Fix possible fault if return Package objects contain NULL elements\n  ACPICA: Add post-order callback to acpi_walk_namespace\n  ACPICA: Change package length error message to an info message\n  ACPICA: Reduce severity of predefined repair messages, Warning to Info\n  ACPICA: Update version to 20091013\n  ACPICA: Fix possible memory leak for Scope ASL operator\n  ACPICA: Remove possibility of executing _REG methods twice\n  ACPICA: Add repair for bad _MAT buffers\n  ACPICA: Add repair for bad _BIF/_BIX packages\n"
    },
    {
      "commit": "f71eaf68406cfee91b6a96bcdf7ce33dc78829c5",
      "tree": "92a1663ae15d521f25849d28ebb4dfad10567892",
      "parents": [
        "78f1ae193d1662c22cfebb916e788e1ca896c0fe",
        "54fe4671aa5853ca88da72d67e969a3d8de6dcf6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:53:11 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:53:11 2009 -0800"
      },
      "message": "Merge branch \u0027hwmon-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging\n\n* \u0027hwmon-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging: (41 commits)\n  hwmon: (adt7475) Add VID support for the ADT7476\n  hwmon: (adt7475) Add an entry in MAINTAINERS\n  hwmon: (adt7475) Add support for the ADT7476\n  hwmon: (adt7475) Voltage attenuators can be bypassed\n  hwmon: (adt7475) Print device information on probe\n  hwmon: (adt7475) Handle alternative pin functions\n  hwmon: (adt7475) Move sysfs files removal to a separate function\n  hwmon: (adt7475) Add support for the ADT7490\n  hwmon: (adt7475) Improve device detection\n  hwmon: (adt7475) Add missing static marker\n  hwmon: (adt7475) Rework voltage inputs handling\n  hwmon: (adt7475) Implement pwm_use_point2_pwm_at_crit\n  hwmon: (adt7475) New documentation\n  hwmon: (adt7475) Add support for the ADT7473\n  hwmon: (f71882fg) Add support for the f71889fg (version 2)\n  hwmon: (f71882fg) Fix sysfs file removal\n  hwmon: (f71882fg) Cleanup sysfs attr creation 2/2\n  hwmon: (f71882fg) Cleanup sysfs attr creation 1/2\n  hwmon: (thmc50) Stop using I2C_CLIENT_MODULE_PARM\n  hwmon: Add Freescale MC13783 ADC driver\n  ...\n"
    },
    {
      "commit": "78f1ae193d1662c22cfebb916e788e1ca896c0fe",
      "tree": "0cca2c3d68c8ea48786cd3e9912f822fee7d1e17",
      "parents": [
        "fa395aaec823b9d1a5800913a6b5d0e6d1c5ced2",
        "84194883bcf89383ea4230116bb0195af5ec5829"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:52:13 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:52:13 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:\n  ALSA: ice1724 - aureon - modify WM8770 Master \u0026 DAC volume\n  ALSA: hda/realtek: quirk for D945GCLF2 mainboard\n  ALSA: hda - Terradici HDA controllers does not support 64-bit mode\n  ALSA: document: Add direct git link to grub hda-analyzer\n  ALSA: radio/sound/miro: fix build, cleanup depends/selects\n  ALSA: hda - Generalize EAPD inversion check in patch_analog.c\n  ASoC: Wrong variable returned on error\n  ALSA: snd-usb-us122l: add product IDs of US-122MKII and US-144MKII\n  ALSA: hda - Exclude unusable ADCs for ALC88x\n  ALSA: hda - Add missing Line-Out and PCM switches as slave\n  ALSA: hda - iMac 9,1 sound patch.\n  ALSA: opti93x: set MC indirect registers base from PnP data\n"
    },
    {
      "commit": "fa395aaec823b9d1a5800913a6b5d0e6d1c5ced2",
      "tree": "d599abe9f4f48f1737da50fa9a48dadfd08100e3",
      "parents": [
        "3e7468313758913c5e4d372f35b271b96bad1298",
        "1f26978afd123deb22dd3c7dc75771a02f6e03f6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:52:01 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:52:01 2009 -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: (51 commits)\n  Input: appletouch - give up maintainership\n  Input: dm355evm_kbd - switch to using sparse keymap library\n  Input: wistron_btns - switch to using sparse keymap library\n  Input: add generic support for sparse keymaps\n  Input: fix memory leak in force feedback core\n  Input: wistron - remove identification strings from DMI table\n  Input: psmouse - remove identification strings from DMI tables\n  Input: atkbd - remove identification strings from DMI table\n  Input: i8042 - remove identification strings from DMI tables\n  DMI: allow omitting ident strings in DMI tables\n  Input: psmouse - do not carry DMI data around\n  Input: matrix-keypad - switch to using dev_pm_ops\n  Input: keyboard - fix lack of locking when traversing handler-\u003eh_list\n  Input: gpio_keys - scan gpio state at probe and resume time\n  Input: keyboard - add locking around event handling\n  Input: usbtouchscreen - add support for ET\u0026T TC5UH touchscreen controller\n  Input: xpad - add two new Xbox 360 devices\n  Input: polled device - do not start polling if interval is zero\n  Input: polled device - schedule first poll immediately\n  Input: add S3C24XX touchscreen driver\n  ...\n"
    },
    {
      "commit": "3e7468313758913c5e4d372f35b271b96bad1298",
      "tree": "eb612d252a9e2349a1173451cd779beebd18a33e",
      "parents": [
        "6825fbc4cb219f2c98bb7d157915d797cf5cb823",
        "e97f4677961f68e29bd906022ebf60a6df7f530a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:50:49 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:50:49 2009 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6: (345 commits)\n  V4L/DVB (13542): ir-keytable: Allow dynamic table change\n  V4L/DVB (13541): atbm8830: replace 64-bit division and floating point usage\n  V4L/DVB (13540): ir-common: Cleanup get key evdev code\n  V4L/DVB (13539): ir-common: add __func__ for debug messages\n  V4L/DVB (13538): ir-common: Use a dynamic keycode table\n  V4L/DVB (13537): ir: Prepare the code for dynamic keycode table allocation\n  V4L/DVB (13536): em28xx: Use the full RC5 code on HVR-950 Remote Controller\n  V4L/DVB (13535): ir-common: Add a hauppauge new table with the complete RC5 code\n  V4L/DVB (13534): ir-common: Remove some unused fields/structs\n  V4L/DVB (13533): ir: use dynamic tables, instead of static ones\n  V4L/DVB (13532): ir-common: Add infrastructure to use a dynamic keycode table\n  V4L/DVB (13531): ir-common: rename the debug routine to allow exporting it\n  V4L/DVB (13458): go7007: subdev conversion\n  V4L/DVB (13457): s2250: subdev conversion\n  V4L/DVB (13456): s2250: Change module structure\n  V4L/DVB (13528): em28xx: add support for em2800 VC211A card\n  em28xx: don\u0027t reduce scale to half size for em2800\n  em28xx: don\u0027t load audio modules when AC97 is mis-detected\n  em28xx: em2800 chips support max width of 640\n  V4L/DVB (13523): dvb-bt8xx: fix compile warning\n  ...\n\nFix up trivial conflicts due to spelling fixes from the trivial tree in\n\tDocumentation/video4linux/gspca.txt\n\tdrivers/media/video/cx18/cx18-mailbox.h\n"
    },
    {
      "commit": "6825fbc4cb219f2c98bb7d157915d797cf5cb823",
      "tree": "180e175e3d1fe29fc44e97e7ef7fc95444ac8645",
      "parents": [
        "6bb951a0a6212486a3bab3d765c32295f46f24c2",
        "155a49319fabae97c14c7eb474562f2bdfe5af1f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:46:12 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:46:12 2009 -0800"
      },
      "message": "Merge branch \u0027next-i2c\u0027 of git://git.fluff.org/bjdooks/linux\n\n* \u0027next-i2c\u0027 of git://git.fluff.org/bjdooks/linux: (25 commits)\n  i2c-pnx: Map I2C adapter number to platform ID number\n  i2c-omap: OMAP3: PM: (re)init for every transfer to support off-mode\n  i2c-designware: i2c_dw_handle_tx_abort: Use dev_dbg() for NOACK cases\n  i2c-designware: Cosmetic cleanups\n  i2c-designware: Tx abort cleanups\n  i2c-designware: Skip RX_FULL and TX_EMPTY bits on tx abort errors\n  i2c-designware: i2c_dw_xfer_msg: Fix error handling procedures\n  i2c-designware: Disable TX_EMPTY when all i2c_msg msgs has been processed\n  i2c-designware: Process all i2c_msg messages in the interrupt handler\n  i2c-designware: i2c_dw_read: Remove redundant target address checker\n  i2c-designware: i2c_dw_func: Set I2C_FUNC_SMBUS_foo bits\n  i2c-designware: Initialize byte count variables just prior to being used\n  i2c-designware: i2c_dw_xfer_msg: Introduce a local \"buf\" pointer\n  i2c-designware: Divide i2c_dw_xfer_msg into two functions\n  i2c-designware: Enable RX_FULL interrupt\n  i2c-designware: Set Tx/Rx FIFO threshold levels\n  i2c-designware: Process i2c_msg messages in the interrupt handler\n  i2c-designware: i2c_dw_xfer_msg: Fix i2c_msg search bug\n  i2c-designware: Improved _HCNT/_LCNT calculation\n  i2c-designware: Remove an useless local variable \"num\"\n  ...\n"
    },
    {
      "commit": "6bb951a0a6212486a3bab3d765c32295f46f24c2",
      "tree": "669eee646735ec3029d4c5fd43cef494758b428e",
      "parents": [
        "e49aedb594dc9cd4add2f0fd7360952c11017532",
        "947a2462792a89b8aa168a1108288e0d0ae36d12"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:45:58 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:45:58 2009 -0800"
      },
      "message": "Merge branch \u0027s3c24xx-updates\u0027 of git://git.fluff.org/bjdooks/linux\n\n* \u0027s3c24xx-updates\u0027 of git://git.fluff.org/bjdooks/linux:\n  ARM: S3C24XX: DMA: Use valid index when accessing array\n  ARM: S3C: move s3c_pwm_remove to .devexit.text\n  ARM: S3C24XX: Export s3c24xx_set_fiq for modules.\n  ARM: S3C: move s3c_adc_remove to .devexit.text\n"
    },
    {
      "commit": "e49aedb594dc9cd4add2f0fd7360952c11017532",
      "tree": "d29262a962727020206abd9b4cba70c47041476a",
      "parents": [
        "4ef58d4e2ad1fa2a3e5bbf41af2284671fca8cf8",
        "4e5b932c829e9a6bf32ec80c6e1ce60121eef124"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:45:38 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:45:38 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide-next-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide-next-2.6:\n  sl82c105: remove no longer needed debugging code\n  sis5513: remove stale TODO\n  pdc202xx_old: remove no longer needed debugging code\n  cy82c693: remove no longer needed debugging code\n  cmd64x: remove no longer needed debugging code\n  alim15x3: remove obsolete and dangerous wdc_udma parameter\n  ide: Increase WAIT_DRQ to accomodate some CF cards and SSD drives.\n  cs5535: add pci id for AMD based CS5535 controllers\n  slc90e66: fix UDMA handling\n  drivers/ide/tx4938ide.c: use resource_size()\n  drivers/ide/ide_platform.c: use resource_size()\n  drivers/ide/au1xxx-ide.c: use resource_size()\n  hpt366: remove dead old timing tables\n  ide: update Kconfig text to mark as deprecated\n  ide-tape: remove the BKL\n  hpt366: kill unused #define\u0027s\n"
    },
    {
      "commit": "4ef58d4e2ad1fa2a3e5bbf41af2284671fca8cf8",
      "tree": "856ba96302a36014736747e8464f80eeb827bbdd",
      "parents": [
        "f6c4c8195b5e7878823caa1181be404d9e86d369",
        "d014d043869cdc591f3a33243d3481fa4479c2d0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:43:33 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:43:33 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (42 commits)\n  tree-wide: fix misspelling of \"definition\" in comments\n  reiserfs: fix misspelling of \"journaled\"\n  doc: Fix a typo in slub.txt.\n  inotify: remove superfluous return code check\n  hdlc: spelling fix in find_pvc() comment\n  doc: fix regulator docs cut-and-pasteism\n  mtd: Fix comment in Kconfig\n  doc: Fix IRQ chip docs\n  tree-wide: fix assorted typos all over the place\n  drivers/ata/libata-sff.c: comment spelling fixes\n  fix typos/grammos in Documentation/edac.txt\n  sysctl: add missing comments\n  fs/debugfs/inode.c: fix comment typos\n  sgivwfb: Make use of ARRAY_SIZE.\n  sky2: fix sky2_link_down copy/paste comment error\n  tree-wide: fix typos \"couter\" -\u003e \"counter\"\n  tree-wide: fix typos \"offest\" -\u003e \"offset\"\n  fix kerneldoc for set_irq_msi()\n  spidev: fix double \"of of\" in comment\n  comment typo fix: sybsystem -\u003e subsystem\n  ...\n"
    },
    {
      "commit": "f6c4c8195b5e7878823caa1181be404d9e86d369",
      "tree": "7fdc8b9c71cbf6793f699ddaa53e20a94647cd4a",
      "parents": [
        "382f51fe2f2276344d8a21447656778cdf6583b6",
        "447753d97764b0ae3969936ec495e794baa88052"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:43:19 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:43:19 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:\n  HID: add multi-input quirk for NextWindow Touchscreen.\n  HID: add support for Acan FG-8100 barcode reader\n  HID: make Media key on Logitech DiNovo Mini work\n  HID: support Logitech/3DConnexion SpaceTraveler and SpaceNavigator\n  HID: remove BKL from hiddev_ioctl_usage()\n  HID: fixup quirk for NCR devices\n  HID: pidff - fix unnecessary loop iterations on reset\n  HID: add NOGET quirk for another device from CH Products\n  HID: remove useless DRIVER_VERSION macro\n  HID: fix MODULE_AUTHOR usage in HID modules\n  HID: blacklist Acer Ferrari 4005 optical mouse\n"
    },
    {
      "commit": "382f51fe2f2276344d8a21447656778cdf6583b6",
      "tree": "c2836a2cca4126c9c026ce5aa2fdf9f1c8ccded6",
      "parents": [
        "701791cc3c8fc6dd83f6ec8af7e2541b4a316606",
        "54987386ee3790f3900de4df2ed4deb0e18dfc9f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:42:25 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:42:25 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (222 commits)\n  [SCSI] zfcp: Remove flag ZFCP_STATUS_FSFREQ_TMFUNCNOTSUPP\n  [SCSI] zfcp: Activate fc4s attributes for zfcp in FC transport class\n  [SCSI] zfcp: Block scsi_eh thread for rport state BLOCKED\n  [SCSI] zfcp: Update FSF error reporting\n  [SCSI] zfcp: Improve ELS ADISC handling\n  [SCSI] zfcp: Simplify handling of ct and els requests\n  [SCSI] zfcp: Remove ZFCP_DID_MASK\n  [SCSI] zfcp: Move WKA port to zfcp FC code\n  [SCSI] zfcp: Use common code definitions for FC CT structs\n  [SCSI] zfcp: Use common code definitions for FC ELS structs\n  [SCSI] zfcp: Update FCP protocol related code\n  [SCSI] zfcp: Dont fail SCSI commands when transitioning to blocked fc_rport\n  [SCSI] zfcp: Assign scheduled work to driver queue\n  [SCSI] zfcp: Remove STATUS_COMMON_REMOVE flag as it is not required anymore\n  [SCSI] zfcp: Implement module unloading\n  [SCSI] zfcp: Merge trace code for fsf requests in one function\n  [SCSI] zfcp: Access ports and units with container_of in sysfs code\n  [SCSI] zfcp: Remove suspend callback\n  [SCSI] zfcp: Remove global config_mutex\n  [SCSI] zfcp: Replace local reference counting with common kref\n  ...\n"
    },
    {
      "commit": "701791cc3c8fc6dd83f6ec8af7e2541b4a316606",
      "tree": "3a8fce994dc9ca0fb5401f0d3aeb0ff8b9a2a821",
      "parents": [
        "4ba152596de23038e5bca413d23c3fe6fa92ff45",
        "96c612427edab65dddd88ad61d732501cc5f128d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:09:42 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:09:42 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:\n  m68knommu: export clk_* symbols in clk.c\n  m68knommu: Split the .init section into INIT_TEXT_SECTION and INIT_DATA_SECTION.\n  m68knommu: Move __init_end out of the .init section.\n  m68knommu: Move __init_begin out of the .init section.\n  m68knommu: Use more macros inside the .init section.\n  m68knommu: Use INIT_TASK_DATA and CACHELINE_ALIGNED_DATA.\n  m68knommu: Make THREAD_SIZE available to assembly files.\n  m68knommu: Don\u0027t hardcode the value of PAGE_SIZE in the linker script.\n  m68knommu: rename BSS define in linker script\n  m68knommu: add a task_pt_regs() macro\n  m68knommu: define arch_has_single_step() and friends\n  m68knommu: add uboot commandline argument passing support\n  m68knommu: Coldfire GPIO corrections\n  m68knommu: move mcf_remove to .devexit.text\n\nFixed up (?) conflict in arch/m68k/include/asm/ptrace.h\n"
    },
    {
      "commit": "4ba152596de23038e5bca413d23c3fe6fa92ff45",
      "tree": "39d6823f12cd1f9d760146294128c093b962ffb3",
      "parents": [
        "3a43aaa31790c36b69ebf8a6396f37fade86b531",
        "27a338a69ed9a8a672cd620f5fd7fa450209313c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:03:49 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:03:49 2009 -0800"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6\n\n* \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:\n  [IA64] Fix cut/paste detritus from unistd.h\n"
    },
    {
      "commit": "3a43aaa31790c36b69ebf8a6396f37fade86b531",
      "tree": "7c7f8da6219d546f2b44534cb7be1fb5591d6ac4",
      "parents": [
        "aed886ce777590eac87f7ce2897d9f8357754331",
        "6a5a0b9139b19dd1a107870269a35bc9cf18d2dc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:03:16 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:03:16 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (137 commits)\n  sh: include empty zero page in romImage\n  sh: Make associative cache writes fatal on all SH-4A parts.\n  sh: Drop associative writes for SH-4 cache flushes.\n  sh: Partial revert of copy/clear_user_highpage() optimizations.\n  sh: Add default uImage rule for se7724, ap325rxa, and migor.\n  sh: allow runtime pm without suspend/resume callbacks\n  sh: mach-ecovec24: Remove un-defined settings for VPU\n  sh: mach-ecovec24: LCDC drive ability become high\n  sh: fix sh7724 VEU3F resource size\n  serial: sh-sci: Fix too early port disabling.\n  sh: pfc: pr_info() -\u003e pr_debug() cleanups.\n  sh: pfc: Convert from ctrl_xxx() to __raw_xxx() I/O routines.\n  sh: Improve kfr2r09 serial port setup code\n  sh: Break out SuperH PFC code\n  sh: Move KEYSC header file\n  sh: convert /proc/cpu/aligmnent, /proc/cpu/kernel_alignment to seq_file\n  sh: Add CPG save/restore code for sh7724 R-standby\n  sh: Add SDHI power control support to Ecovec\n  mfd: Add power control platform data to SDHI driver\n  sh: mach-ecovec24: modify address map\n  ...\n"
    },
    {
      "commit": "aed886ce777590eac87f7ce2897d9f8357754331",
      "tree": "9a86f2c0a68f8aa43192e51a3155286a5a95e0c8",
      "parents": [
        "67dd2f5a669f48e48ea1013fb80522adca8287f4",
        "c16fe26701013b9f55aa554fc0a13a7320b164ee"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:02:46 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:02:46 2009 -0800"
      },
      "message": "Merge branch \u0027davinci-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-davinci\n\n* \u0027davinci-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-davinci: (69 commits)\n  davinci: Initial support for Neuros OSD2 platform.\n  davinci: remove unused variable in arch/arm/mach-davinci/board-sffsdr.c\n  davinci: fix section mismatch warning in arch/arm/mach-davinci/board-dm646x-evm.c\n  DaVinci: DM365: Enable DaVinci RTC support for DM365 EVM\n  DA8xx/OMAP-L1xx: Add high speed SD/MMC capabilities\n  davinci: DA8XX/OMAP-L1XX: enable cpuidle and regulator in defconfig\n  davinci: DA850/OMAP-L138: avoid using separate initcall for initializing regulator\n  davinci: DA850/OMAP-L138 EVM: register for cpuidle support\n  davinci: DA8XX/OMAP-L1XX: add support for cpuidle driver register\n  davinci: add CPU idle driver\n  davinci: DA8XX/OMAP-L1XX: fix compiler warning\n  davinci: DA850/OMAP-L138: eliminate static function declaration\n  davinci: DA850/OMAP-L138 EVM: simplify configuration of emac in MII/RMII mode\n  davinci: DA850/OMAP-L138 EVM: get rid of DA850_UI_EXP config option\n  davinci: DA850/OMAP-L138 EVM: implement autodetect of RMII PHY\n  davinci: DA830/OMAP-L137 EVM: do not configure NAND on UI card when MMC/SD is selected\n  davinci: DA830/OMAP-L137 EVM: use runtime detection for UI card\n  davinci: DA830/OMAP-L137 EVM: remove ifdefs inside da830_evm_init()\n  davinci: DA830/OMAP-L137 EVM: fix warning with default config\n  davinci: Add NAND support for DA830/OMAP-L137 EVM platform\n  ...\n"
    },
    {
      "commit": "67dd2f5a669f48e48ea1013fb80522adca8287f4",
      "tree": "eee4e7f15df90f899211cde0a669d661085de05d",
      "parents": [
        "5327b9b83a9c45a3fcbcda224a2b02d9eea9f6bb",
        "42d61b9b415686d81eaa022b846737548876e51d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:01:47 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:01:47 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git390.marist.edu/pub/scm/linux-2.6\n\n* \u0027for-linus\u0027 of git://git390.marist.edu/pub/scm/linux-2.6: (72 commits)\n  [S390] 3215/3270 console: remove wrong comment\n  [S390] dasd: remove BKL from extended error reporting code\n  [S390] vmlogrdr: remove BKL\n  [S390] vmur: remove BKL\n  [S390] zcrypt: remove BKL\n  [S390] 3270: remove BKL\n  [S390] vmwatchdog: remove lock_kernel() from open() function\n  [S390] monwriter: remove lock_kernel() from open() function\n  [S390] monreader: remove lock_kernel() from open() function\n  [S390] s390: remove unused nfsd #includes\n  [S390] ftrace: build ftrace.o when CONFIG_FTRACE_SYSCALLS is set for s390\n  [S390] etr/stp: put correct per cpu variable\n  [S390] tty3270: move keyboard compat ioctls\n  [S390] sclp: improve servicability setting\n  [S390] s390: use change recording override for kernel mapping\n  [S390] MAINTAINERS: Add s390 drivers block\n  [S390] use generic sockios.h header file\n  [S390] use generic termbits.h header file\n  [S390] smp: remove unused typedef and defines\n  [S390] cmm: free pages on hibernate.\n  ...\n"
    },
    {
      "commit": "5327b9b83a9c45a3fcbcda224a2b02d9eea9f6bb",
      "tree": "757452708d27b1459945d651aae064e15f9ccfe4",
      "parents": [
        "e3cc2226e99cfadbf300dde892c4a16d742a0856"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Sun Dec 06 18:30:44 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 18:59:52 2009 -0800"
      },
      "message": "Doc: use misc-devices/ dir for drivers\n\nWe have a directory for misc drivers documentation, let\u0027s use it.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: \"Darrick J. Wong\" \u003cdjwong@us.ibm.com\u003e\nCc: Rodolfo Giometti \u003cgiometti@linux.it\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e3cc2226e99cfadbf300dde892c4a16d742a0856",
      "tree": "88eb2361112f7147d11ccc04e3a511edd7a51078",
      "parents": [
        "bfc9dcabd513334c1d888ab66f7b7d84a3159571"
      ],
      "author": {
        "name": "Luis Garces-Erice",
        "email": "lge@ieee.org",
        "time": "Sun Dec 06 18:30:44 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 18:59:52 2009 -0800"
      },
      "message": "Doc: better explanation of procs_running\n\nthe description in Documentation/filesystems/proc.txt of the\nprocs_running entry in /proc/stat is confusing (according to that\ndescription, it looks as if procs_running could only be a number\nbetween 0 and the number of CPUs).\n\nChanged it to a more accurate description in the patch attached.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bfc9dcabd513334c1d888ab66f7b7d84a3159571",
      "tree": "66638fc446addaef69f9d9e0578e41bb3418a5b9",
      "parents": [
        "2770f189b7a5582869c137e5617fb88cc0ad0fd3"
      ],
      "author": {
        "name": "Dominik D. Geyer",
        "email": "dominik.geyer@gmx.de",
        "time": "Sun Dec 06 18:30:44 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 18:59:52 2009 -0800"
      },
      "message": "correct gpio.txt typos\n\nCorrected sysfs gpio chip node name and fixed punctuation.\n\nSigned-off-by: Dominik D. Geyer \u003cdominik.geyer@gmx.de\u003e\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2770f189b7a5582869c137e5617fb88cc0ad0fd3",
      "tree": "68f965895cb39593b06f7f3f712c0e37125a0636",
      "parents": [
        "038f7d0027d208df8fd59f5ff2bcf5c2d2fbba3f"
      ],
      "author": {
        "name": "Shawn Bohrer",
        "email": "shawn.bohrer@gmail.com",
        "time": "Sun Dec 06 18:30:44 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 18:59:52 2009 -0800"
      },
      "message": "docbook: fix signal_pending() argument\n\nSince signal_pending() takes a task_struct pointer as an argument, update\nthe example to pass in \u0027current\u0027.\n\nSigned-off-by: Shawn Bohrer \u003cshawn.bohrer@gmail.com\u003e\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "038f7d0027d208df8fd59f5ff2bcf5c2d2fbba3f",
      "tree": "4b2be7b64069f50ca6e0535fdfc421bf661109d5",
      "parents": [
        "472c06441a62e02c2ea5ea73d3d7fc51e146636a"
      ],
      "author": {
        "name": "Marin Mitov",
        "email": "mitov@issp.bas.bg",
        "time": "Sun Dec 06 18:30:44 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 18:59:52 2009 -0800"
      },
      "message": "use DMA_BIT_MASK instead of inline constant\n\nUse DMA_BIT_MASK(24) instead of 0x00ffffff in DMA-mapping.txt\n\nSigned-off-by: Marin Mitov \u003cmitov@issp.bas.bg\u003e\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "472c06441a62e02c2ea5ea73d3d7fc51e146636a",
      "tree": "cf49e7f36baec1cac9499008a13d29c0bca40717",
      "parents": [
        "79a56ed0e11c7d924762062a0e2a46b87014498d"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Sun Dec 06 18:30:44 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 18:59:52 2009 -0800"
      },
      "message": "Use KERN_WARNING instead of KERN_WARN, which does not exist\n\nReported-by: Andrew Lyon \u003candrew.lyon@gmail.com\u003e\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "79a56ed0e11c7d924762062a0e2a46b87014498d",
      "tree": "08e2cb925f85dd691fbc4b90f77b7018c67d2010",
      "parents": [
        "2588465badb648a50cd19623f0dd0063c90d4e31"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Dec 09 18:31:53 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 18:53:23 2009 -0800"
      },
      "message": "nvram: Fix missing smp_lock.h in nvram\n\nThe bkl has been removed from nvram_llseek() and smp_lock.h was removed\nbecause another patch in the same tree zapped the remaining usage of bkl\nin the same file.  But this patch must have been excluded later, then we\nstill need the smp_lock.h headers for the bkl use in nvram_open().\n\nThis fixes the following build error:\n\n  drivers/char/nvram.c: In function ‘nvram_open’:\n  drivers/char/nvram.c:332: erreur: implicit declaration of function ‘lock_kernel’\n  drivers/char/nvram.c:339: erreur: implicit declaration of function ‘unlock_kernel’\n  make[2]: *** [drivers/char/nvram.o] Erreur 1\n  make[1]: *** [drivers/char] Erreur 2\n  make: *** [drivers] Erreur 2\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "54fe4671aa5853ca88da72d67e969a3d8de6dcf6"
}
