)]}'
{
  "log": [
    {
      "commit": "e7f52dfb4f378ea1bbfd4476f4e8ba42f5fb332c",
      "tree": "1f31f9c3fd2f3c9150d08c9429b3c2a36f15d5f5",
      "parents": [
        "85f4cc17a62c3ac9edeaf120cdae7261df458053"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Tue Aug 03 20:20:20 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:53:57 2010 +0200"
      },
      "message": "drbd: revert \"delay probes\", feature is being re-implemented differently\n\nIt was a now abandoned attempt to throttle resync bandwidth\nbased on the delay it causes on the bulk data socket.\nIt has no userbase yet, and has been disabled by\n9173465ccb51c09cc3102a10af93e9f469a0af6f already.\nThis removes the now unused code.\n\nThe basic feature, namely using up \"idle\" bandwith\nof network and disk IO subsystem, with minimal impact\nto application IO, is being reimplemented differently.\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "85f4cc17a62c3ac9edeaf120cdae7261df458053",
      "tree": "c2895160d9748d0cbe57494083370ba048c9a82a",
      "parents": [
        "6710a5760355be8f2e51682f41b0d3fc76550309"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue Jun 29 17:35:34 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:53:57 2010 +0200"
      },
      "message": "drbd: Initialize all members of sync_conf to their defaults [Bugz 315]\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "6710a5760355be8f2e51682f41b0d3fc76550309",
      "tree": "29b40f369bcc165f97e09547540c2df9ff62007e",
      "parents": [
        "c284de61db31669cce547ffc99efda971146719d"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Mon Jul 19 15:04:57 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:53:57 2010 +0200"
      },
      "message": "drbd: Disable delay probes for the upcomming release\n\nSigned-off-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nSigned-off-by: Lars Ellenberg \u003clars.ellenberg@linbit.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "c284de61db31669cce547ffc99efda971146719d",
      "tree": "d4b05dd00d1e33dd34917f3d2a9476f69ca9ac99",
      "parents": [
        "603320239fb436f175c8b6bfa43d5023c47a6dc2"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Jul 25 14:29:25 2010 +0300"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:53:57 2010 +0200"
      },
      "message": "writeback: cleanup bdi_register\n\nThis patch makes sure we first initialize everything and set the BDI_registered\nflag, and only after this we add the bdi to \u0027bdi_list\u0027. Current code adds the\nbdi to the list too early, and as a result I the\n\nWARN(!test_bit(BDI_registered, \u0026bdi-\u003estate)\n\nin bdi forker is triggered. Also, it is in general good practice to make things\nvisible only when they are fully initialized.\n\nAlso, this patch does few micro clean-ups:\n1. Removes the \u0027exit\u0027 label which does not do anything, just returns. This\n   allows to get rid of few braces and \u0027ret\u0027 variable and make the code smaller.\n2. If \u0027kthread_run()\u0027 fails, remove the error code it returns, not hard-coded\n   \u0027-ENOMEM\u0027. Theoretically, some day \u0027kthread_run()\u0027 can return something\n   else. Also, in case of failure it is not necessary to set \u0027bdi-\u003ewb.task\u0027 to\n   NULL.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "603320239fb436f175c8b6bfa43d5023c47a6dc2",
      "tree": "efe1e78de6c2b8029cdcdcad2e98e3ef6c017900",
      "parents": [
        "b5048a6cb5455a16bdff26a4c5ae9534f070d94c"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Jul 25 14:29:24 2010 +0300"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:53:56 2010 +0200"
      },
      "message": "writeback: add new tracepoints\n\nAdd 2 new trace points to the periodic write-back wake up case, just like we do\nin the \u0027bdi_queue_work()\u0027 function. Namely, introduce:\n\n1. trace_writeback_wake_thread(bdi)\n2. trace_writeback_wake_forker_thread(bdi)\n\nThe first event is triggered every time we wake up a bdi thread to start\nperiodic background write-out. The second event is triggered only when the bdi\nthread does not exist and should be created by the forker thread.\n\nThis patch was suggested by Dave Chinner and Christoph Hellwig.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "b5048a6cb5455a16bdff26a4c5ae9534f070d94c",
      "tree": "fe66278b6ff27a6ef9dbef0cd3db1d8640e10bbd",
      "parents": [
        "6467716a37673e8d47b4984eb19839bdad0a8353"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Jul 25 14:29:23 2010 +0300"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:53:56 2010 +0200"
      },
      "message": "writeback: remove unnecessary init_timer call\n\nThe \u0027setup_timer()\u0027 function also calls \u0027init_timer()\u0027, so the extra\n\u0027init_timer()\u0027 call is not needed. Indeed, \u0027setup_timer()\u0027 is basically\n\u0027init_timer()\u0027 plus callback function and data pointers initialization.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "6467716a37673e8d47b4984eb19839bdad0a8353",
      "tree": "8b2bfd38d53e31c47654162d4ce9220c4424a31d",
      "parents": [
        "253c34e9b10c30d3064be654b5b78fbc1a8b1896"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Jul 25 14:29:22 2010 +0300"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:53:56 2010 +0200"
      },
      "message": "writeback: optimize periodic bdi thread wakeups\n\nWhe the first inode for a bdi is marked dirty, we wake up the bdi thread which\nshould take care of the periodic background write-out. However, the write-out\nwill actually start only \u0027dirty_writeback_interval\u0027 centisecs later, so we can\ndelay the wake-up.\n\nThis change was requested by Nick Piggin who pointed out that if we delay the\nwake-up, we weed out 2 unnecessary contex switches, which matters because\n\u0027__mark_inode_dirty()\u0027 is a hot-path function.\n\nThis patch introduces a new function - \u0027bdi_wakeup_thread_delayed()\u0027, which\nsets up a timer to wake-up the bdi thread and returns. So the wake-up is\ndelayed.\n\nWe also delete the timer in bdi threads just before writing-back. And\nsynchronously delete it when unregistering bdi. At the unregister point the bdi\ndoes not have any users, so no one can arm it again.\n\nSince now we take \u0027bdi-\u003ewb_lock\u0027 in the timer, which can execute in softirq\ncontext, we have to use \u0027spin_lock_bh()\u0027 for \u0027bdi-\u003ewb_lock\u0027. This patch makes\nthis change as well.\n\nThis patch also moves the \u0027bdi_wb_init()\u0027 function down in the file to avoid\nforward-declaration of \u0027bdi_wakeup_thread_delayed()\u0027.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "253c34e9b10c30d3064be654b5b78fbc1a8b1896",
      "tree": "1ee077a52fd1036fe26ddfe8cabd5a5315dc1285",
      "parents": [
        "fff5b85aa4225a7be157f208277a055822039a9e"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Jul 25 14:29:21 2010 +0300"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:53:56 2010 +0200"
      },
      "message": "writeback: prevent unnecessary bdi threads wakeups\n\nFinally, we can get rid of unnecessary wake-ups in bdi threads, which are very\nbad for battery-driven devices.\n\nThere are two types of activities bdi threads do:\n1. process bdi works from the \u0027bdi-\u003ework_list\u0027\n2. periodic write-back\n\nSo there are 2 sources of wake-up events for bdi threads:\n\n1. \u0027bdi_queue_work()\u0027 - submits bdi works\n2. \u0027__mark_inode_dirty()\u0027 - adds dirty I/O to bdi\u0027s\n\nThe former already has bdi wake-up code. The latter does not, and this patch\nadds it.\n\n\u0027__mark_inode_dirty()\u0027 is hot-path function, but this patch adds another\n\u0027spin_lock(\u0026bdi-\u003ewb_lock)\u0027 there. However, it is taken only in rare cases when\nthe bdi has no dirty inodes. So adding this spinlock should be fine and should\nnot affect performance.\n\nThis patch makes sure bdi threads and the forker thread do not wake-up if there\nis nothing to do. The forker thread will nevertheless wake up at least every\n5 min. to check whether it has to kill a bdi thread. This can also be optimized,\nbut is not worth it.\n\nThis patch also tidies up the warning about unregistered bid, and turns it from\nan ugly crocodile to a simple \u0027WARN()\u0027 statement.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "fff5b85aa4225a7be157f208277a055822039a9e",
      "tree": "f4310bf188ef0a1dac52da39b61968aa566a717e",
      "parents": [
        "adf392407076b85816d48714fb8eeaedb2157884"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Jul 25 14:29:20 2010 +0300"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:53:56 2010 +0200"
      },
      "message": "writeback: move bdi threads exiting logic to the forker thread\n\nCurrently, bdi threads can decide to exit if there were no useful activities\nfor 5 minutes. However, this causes nasty races: we can easily oops in the\n\u0027bdi_queue_work()\u0027 if the bdi thread decides to exit while we are waking it up.\n\nAnd even if we do not oops, but the bdi tread exits immediately after we wake\nit up, we\u0027d lose the wake-up event and have an unnecessary delay (up to 5 secs)\nin the bdi work processing.\n\nThis patch makes the forker thread to be the central place which not only\ncreates bdi threads, but also kills them if they were inactive long enough.\nThis better design-wise.\n\nAnother reason why this change was done is to prepare for the further changes\nwhich will prevent the bdi threads from waking up every 5 sec and wasting\npower. Indeed, when the task does not wake up periodically anymore, it won\u0027t be\nable to exit either.\n\nThis patch also moves the the \u0027wake_up_bit()\u0027 call from the bdi thread to the\nforker thread as well. So now the forker thread sets the BDI_pending bit, then\nforks the task or kills it, then clears the bit and wakes up the waiting\nprocess.\n\nThe only process which may wain on the bit is \u0027bdi_wb_shutdown()\u0027. This\nfunction was changed as well - now it first removes the bdi from the\n\u0027bdi_list\u0027, then waits on the \u0027BDI_pending\u0027 bit. Once it wakes up, it is\nguaranteed that the forker thread won\u0027t race with it, because the bdi is not\nvisible. Note, the forker thread sets the \u0027BDI_pending\u0027 bit under the\n\u0027bdi-\u003ewb_lock\u0027 which is essential for proper serialization.\n\nAnd additionally, when we change \u0027bdi-\u003ewb.task\u0027, we now take the\n\u0027bdi-\u003ework_lock\u0027, to make sure that we do not lose wake-ups which we otherwise\nwould when raced with, say, \u0027bdi_queue_work()\u0027.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "adf392407076b85816d48714fb8eeaedb2157884",
      "tree": "e926a18b55e67724e0267fe359caf51d530d5b09",
      "parents": [
        "ecd584030da67ede1bf17955746a6ce834d9fc6b"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Jul 25 14:29:19 2010 +0300"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:53:56 2010 +0200"
      },
      "message": "writeback: restructure bdi forker loop a little\n\nThis patch re-structures the bdi forker a little:\n1. Add \u0027bdi_cap_flush_forker(bdi)\u0027 condition check to the bdi loop. The reason\n   for this is that the forker thread can start _before_ the \u0027BDI_registered\u0027\n   flag is set (see \u0027bdi_register()\u0027), so the WARN() statement will fire for\n   the default bdi. I observed this warning at boot-up.\n\n2. Introduce an enum \u0027action\u0027 and use \"switch\" statement in the outer loop.\n   This is a preparation to the further patch which will teach the forker\n   thread killing bdi threads, so we\u0027ll have another case in the \"switch\"\n   statement. This change was suggested by Christoph Hellwig.\n\nThis patch is just a small step towards the coming change where the forker\nthread will kill the bdi threads. It should simplify reviewing the following\nchanges, which would otherwise be larger.\n\nThis patch also amends comments a little.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "ecd584030da67ede1bf17955746a6ce834d9fc6b",
      "tree": "3f26260102a84e8cb047249e65cdde6b9aadcb96",
      "parents": [
        "78c40cb6581a74adc48821f3de6b864a54d4c34d"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Jul 25 14:29:18 2010 +0300"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:53:56 2010 +0200"
      },
      "message": "writeback: move last_active to bdi\n\nCurrently bdi threads use local variable \u0027last_active\u0027 which stores last time\nwhen the bdi thread did some useful work. Move this local variable to \u0027struct\nbdi_writeback\u0027. This is just a preparation for the further patches which will\nmake the forker thread decide when bdi threads should be killed.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "78c40cb6581a74adc48821f3de6b864a54d4c34d",
      "tree": "9ef19e68f6c28ded34f42de8a21b139006bfceaa",
      "parents": [
        "080dcec41709be72613133f695be75b98dd43e88"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Jul 25 14:29:17 2010 +0300"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:53:56 2010 +0200"
      },
      "message": "writeback: do not remove bdi from bdi_list\n\nThe forker thread removes bdis from \u0027bdi_list\u0027 before forking the bdi thread.\nBut this is wrong for at least 2 reasons.\n\nReason #1: if we temporary remove a bdi from the list, we may miss works which\n           would otherwise be given to us.\n\nReason #2: this is racy; indeed, \u0027bdi_wb_shutdown()\u0027 expects that bdis are\n           always in the \u0027bdi_list\u0027 (see \u0027bdi_remove_from_list()\u0027), and when\n           it races with the forker thread, it can shut down the bdi thread\n           at the same time as the forker creates it.\n\nThis patch makes sure the forker thread never removes bdis from \u0027bdi_list\u0027\n(which was suggested by Christoph Hellwig).\n\nIn order to make sure that we do not race with \u0027bdi_wb_shutdown()\u0027, we have to\nhold the \u0027bdi_lock\u0027 while walking the \u0027bdi_list\u0027 and setting the \u0027BDI_pending\u0027\nflag.\n\nNOTE! The error path is interesting. Currently, when we fail to create a bdi\nthread, we move the bdi to the tail of \u0027bdi_list\u0027. But if we never remove the\nbdi from the list, we cannot move it to the tail either, because then we can\nmess up the RCU readers which walk the list. And also, we\u0027ll have the race\ndescribed above in \"Reason #2\".\n\nBut I not think that adding to the tail is any important so I just do not do\nthat.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "080dcec41709be72613133f695be75b98dd43e88",
      "tree": "8f453a9fe9b2a144662aad4e06944722610a1056",
      "parents": [
        "297252c81de8043ca6c36e5984c24fdb5aab9013"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Jul 25 14:29:16 2010 +0300"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:53:56 2010 +0200"
      },
      "message": "writeback: simplify bdi code a little\n\nThis patch simplifies bdi code a little by removing the \u0027pending_list\u0027 which is\nredundant. Indeed, currently the forker thread (\u0027bdi_forker_thread()\u0027) is\nworking like this:\n\n1. In a loop, fetch all bdi\u0027s which have works but have no writeback thread and\n   move them to the \u0027pending_list\u0027.\n2. If the list is empty, sleep for 5 sec.\n3. Otherwise, take one bdi from the list, fork the writeback thread for this\n   bdi, and repeat the loop.\n\nIOW, it first moves everything to the \u0027pending_list\u0027, then process only one\nelement, and so on. This patch simplifies the algorithm, which is now as\nfollows.\n\n1. Find the first bdi which has a work and remove it from the global list of\n   bdi\u0027s (bdi_list).\n2. If there was not such bdi, sleep 5 sec.\n3. Fork the writeback thread for this bdi and repeat the loop.\n\nIOW, now we find the first bdi to process, process it, and so on. This is\nsimpler and involves less lists.\n\nThe bonus now is that we can get rid of a couple of functions, as well as\nremove complications which involve \u0027rcu_call()\u0027 and \u0027bdi-\u003ercu_head\u0027.\n\nThis patch also makes sure we use \u0027list_add_tail_rcu()\u0027, instead of plain\n\u0027list_add_tail()\u0027, but this piece of code is going to be removed in the next\npatch anyway.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "297252c81de8043ca6c36e5984c24fdb5aab9013",
      "tree": "d94a35abcd3b227b072955622f703a2cdc3c309d",
      "parents": [
        "c4ec7908c2c5125f75fabd100e7a95626a6883ee"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Jul 25 14:29:15 2010 +0300"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:53:55 2010 +0200"
      },
      "message": "writeback: do not lose wake-ups in bdi threads\n\nCurrently, bdi threads (\u0027bdi_writeback_thread()\u0027) can lose wake-ups. For\nexample, if \u0027bdi_queue_work()\u0027 is executed after the bdi thread have had\nfinished \u0027wb_do_writeback()\u0027 but before it called\n\u0027schedule_timeout_interruptible()\u0027.\n\nTo fix this issue, we have to check whether we have works to process after we\nhave changed the task state to \u0027TASK_INTERRUPTIBLE\u0027.\n\nThis patch also clean-ups handling of the cases when \u0027dirty_writeback_interval\u0027\nis zero or non-zero.\n\nAdditionally, this patch also removes unneeded \u0027list_empty_careful()\u0027 call.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "c4ec7908c2c5125f75fabd100e7a95626a6883ee",
      "tree": "d58ee401205de8385c74a04e9b66101fc9a6e22b",
      "parents": [
        "c5f7ad233b8805dae06e694538d8095b19f3c560"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Jul 25 14:29:14 2010 +0300"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:53:55 2010 +0200"
      },
      "message": "writeback: do not lose wake-ups in the forker thread - 2\n\nCurrently, if someone submits jobs for the default bdi, we can lose wake-up\nevents. E.g., this can happen if \u0027bdi_queue_work()\u0027 is called when\n\u0027bdi_forker_thread()\u0027 is executing code after \u0027wb_do_writeback(me, 0)\u0027, but\nbefore \u0027set_current_state(TASK_INTERRUPTIBLE)\u0027.\n\nThis situation is unlikely, and the result is not very severe - we\u0027ll just\ndelay the execution of the work, but this is still not very nice.\n\nThis patch fixes the issue by checking whether the default bdi has works before\nthe forker thread goes sleep.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "c5f7ad233b8805dae06e694538d8095b19f3c560",
      "tree": "c47a1991fe1de055cfd06f5cecb8cfaa9f497ed7",
      "parents": [
        "94eac5e62364df4e605e451218ee6024a7ba664f"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Jul 25 14:29:13 2010 +0300"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:53:55 2010 +0200"
      },
      "message": "writeback: do not lose wake-ups in the forker thread - 1\n\nCurrently the forker thread can lose wake-ups which may lead to unnecessary\ndelays in processing bdi works. E.g., consider the following scenario.\n\n1. \u0027bdi_forker_thread()\u0027 walks the \u0027bdi_list\u0027, finds out there is nothing to\n   do, and is about to finish the loop.\n2. A bdi thread decides to exit because it was inactive for long time.\n3. \u0027bdi_queue_work()\u0027 adds a work to the bdi which just exited, so it wakes up\n   the forker thread.\n4. but \u0027bdi_forker_thread()\u0027 executes \u0027set_current_state(TASK_INTERRUPTIBLE)\u0027\n   and goes sleep. We lose a wake-up.\n\nLosing the wake-up is not fatal, but this means that the bdi work processing\nwill be delayed by up to 5 sec. This race is theoretical, I never hit it, but\nit is worth fixing.\n\nThe fix is to execute \u0027set_current_state(TASK_INTERRUPTIBLE)\u0027 _before_ walking\n\u0027bdi_list\u0027, not after.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "94eac5e62364df4e605e451218ee6024a7ba664f",
      "tree": "5e4b7d85361ad20821ba3371acc1536262846f22",
      "parents": [
        "6f904ff0e39ea88f81eb77e8dfb4e1238492f0a8"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Jul 25 14:29:12 2010 +0300"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:53:19 2010 +0200"
      },
      "message": "writeback: fix possible race when creating bdi threads\n\nThis patch fixes a very unlikely race condition on the bdi forker thread error\npath: when bdi thread creation fails, \u0027bdi-\u003ewb.task\u0027 may contain the error code\nfor a short period of time. If at the same time someone submits a work to this\nbdi, we can end up with an oops \u0027bdi_queue_work()\u0027 while executing\n\u0027wake_up_process(wb-\u003etask)\u0027.\n\nThis patch fixes the issue by introducing a temporary variable \u0027task\u0027 and\nstoring the possible error code there, so that \u0027wb-\u003etask\u0027 would never take\nerroneous values.\n\nNote, this race is very unlikely and I never hit it, so it is theoretical, but\nnevertheless worth fixing.\n\nThis patch also merges 2 comments which were previously separate.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "6f904ff0e39ea88f81eb77e8dfb4e1238492f0a8",
      "tree": "8a22ff5ffe31e221554915ac9135da15d3adad8d",
      "parents": [
        "4aeefdc69f7b6f3f287e6fd8d4b213953b9e92d8"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Jul 25 14:29:11 2010 +0300"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:53:16 2010 +0200"
      },
      "message": "writeback: harmonize writeback threads naming\n\nThe write-back code mixes words \"thread\" and \"task\" for the same things. This\nis not a big deal, but still an inconsistency.\n\nhch: a convention I tend to use and I\u0027ve seen in various places\nis to always use _task for the storage of the task_struct pointer,\nand thread everywhere else.  This especially helps with having\nfoo_thread for the actual thread and foo_task for a global\nvariable keeping the task_struct pointer\n\nThis patch renames:\n* \u0027bdi_add_default_flusher_task()\u0027 -\u003e \u0027bdi_add_default_flusher_thread()\u0027\n* \u0027bdi_forker_task()\u0027              -\u003e \u0027bdi_forker_thread()\u0027\n\nbecause bdi threads are \u0027bdi_writeback_thread()\u0027, so these names are more\nconsistent.\n\nThis patch also amends commentaries and makes them refer the forker and bdi\nthreads as \"thread\", not \"task\".\n\nAlso, while on it, make \u0027bdi_add_default_flusher_thread()\u0027 declaration use\n\u0027static void\u0027 instead of \u0027void static\u0027 and make checkpatch.pl happy.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "4aeefdc69f7b6f3f287e6fd8d4b213953b9e92d8",
      "tree": "97564b5639b65e5b1c475a50b9676c0468a18253",
      "parents": [
        "7cc015811ef8992dfcce314d0ed9642bc18143d1"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Aug 03 13:22:51 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:53:13 2010 +0200"
      },
      "message": "coda: fixup clash with block layer REQ_* defines\n\nCODA should not be using defines in the global name space of\nthat nature, prefix them with CODA_.\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "7cc015811ef8992dfcce314d0ed9642bc18143d1",
      "tree": "cae16766d233563bef102032eb954c05f1814f77",
      "parents": [
        "aca27ba9618276dd2f777bcd5a1419589ccf1ca8"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Aug 03 13:14:58 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:53:10 2010 +0200"
      },
      "message": "bio, fs: separate out bio_types.h and define READ/WRITE constants in terms of BIO_RW_* flags\n\nlinux/fs.h hard coded READ/WRITE constants which should match BIO_RW_*\nflags.  This is fragile and caused breakage during BIO_RW_* flag\nrearrangement.  The hardcoding is to avoid include dependency hell.\n\nCreate linux/bio_types.h which contatins definitions for bio data\nstructures and flags and include it from bio.h and fs.h, and make fs.h\ndefine all READ/WRITE related constants in terms of BIO_RW_* flags.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "aca27ba9618276dd2f777bcd5a1419589ccf1ca8",
      "tree": "9ef27a70973a96a30c17d31ac0be643ce531cb66",
      "parents": [
        "edca4a380584a65a16839bdee33ec82244f0f88e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Aug 03 13:14:33 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:53:07 2010 +0200"
      },
      "message": "bio, fs: update RWA_MASK, READA and SWRITE to match the corresponding BIO_RW_* bits\n\nCommit a82afdf (block: use the same failfast bits for bio and request)\nmoved BIO_RW_* bits around such that they match up with REQ_* bits.\nUnfortunately, fs.h hard coded RW_MASK, RWA_MASK, READ, WRITE, READA\nand SWRITE as 0, 1, 2 and 3, and expected them to match with BIO_RW_*\nbits.  READ/WRITE didn\u0027t change but BIO_RW_AHEAD was moved to bit 4\ninstead of bit 1, breaking RWA_MASK, READA and SWRITE.\n\nThis patch updates RWA_MASK, READA and SWRITE such that they match the\nBIO_RW_* bits again.  A follow up patch will update the definitions to\ndirectly use BIO_RW_* bits so that this kind of breakage won\u0027t happen\nagain.\n\nNeil also spotted missing RWA_MASK conversion.\n\nStable: The offending commit a82afdf was released with v2.6.32, so\nthis patch should be applied to all kernels since then but it must\n_NOT_ be applied to kernels earlier than that.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-and-bisected-by: Vladislav Bolkhovitin \u003cvst@vlnb.net\u003e\nRoot-caused-by: Neil Brown \u003cneilb@suse.de\u003e\nCc: stable@kernel.org\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "edca4a380584a65a16839bdee33ec82244f0f88e",
      "tree": "f0e24d4712cf98eb5876157ae1f49bebc6d701ef",
      "parents": [
        "f6c4c8e19a087dae7dc651ccbd1ff8b843eedee2"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Tue Aug 03 12:54:51 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:53:04 2010 +0200"
      },
      "message": "block: disallow FS recursion from sb_issue_discard allocation\n\nFilesystems can call sb_issue_discard on a memory reclaim path\n(e.g. ext4 calls sb_issue_discard during journal commit).\n\nUse GFP_NOFS in sb_issue_discard to avoid recursing back into the FS.\n\nReported-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "f6c4c8e19a087dae7dc651ccbd1ff8b843eedee2",
      "tree": "49ef8d3044def969cd6bac6a3ef9e09d19a18803",
      "parents": [
        "08852b6d6c40f387f2b75e199e2ca1df68970f4c"
      ],
      "author": {
        "name": "Kulikov Vasiliy",
        "email": "segooon@gmail.com",
        "time": "Tue Aug 03 12:52:55 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:53:03 2010 +0200"
      },
      "message": "cpqarray: check put_user() result\n\nput_user() may fail, if so return -EFAULT.\n\nSigned-off-by: Kulikov Vasiliy \u003csegooon@gmail.com\u003e\nAcked-by: Mike Miller \u003cmike.miller@hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "08852b6d6c40f387f2b75e199e2ca1df68970f4c",
      "tree": "a5c10224444a93e014337e577dbd5a8aacc50e59",
      "parents": [
        "6965031d331a642e31278fa1b5bd47f372ffdd5d"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Tue Aug 03 12:51:16 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:53:01 2010 +0200"
      },
      "message": "writeback: remove wb in get_next_work_item\n\n83ba7b07 cleans up the writeback.\nSo we don\u0027t use wb any more in get_next_work_item.\nLet\u0027s remove unnecessary argument.\n\nCC: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "6965031d331a642e31278fa1b5bd47f372ffdd5d",
      "tree": "403363107b75f4efedd877c75ed8099377d41ec7",
      "parents": [
        "7901d14144311c930918b1222aae7611284c63eb"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Tue Aug 03 12:48:50 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:52:56 2010 +0200"
      },
      "message": "splice: fix misuse of SPLICE_F_NONBLOCK\n\nSPLICE_F_NONBLOCK is clearly documented to only affect blocking on the\npipe.  In __generic_file_splice_read(), however, it causes an EAGAIN\nif the page is currently being read.\n\nThis makes it impossible to write an application that only wants\nfailure if the pipe is full.  For example if the same process is\nhandling both ends of a pipe and isn\u0027t otherwise able to determine\nwhether a splice to the pipe will fill it or not.\n\nWe could make the read non-blocking on O_NONBLOCK or some other splice\nflag, but for now this is the simplest fix.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCC: stable@kernel.org\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "7901d14144311c930918b1222aae7611284c63eb",
      "tree": "53e882fd0b0588b0c43c2935d634ea97a9e1c9ed",
      "parents": [
        "4dab46ff26c6003a13ec769312c50938b93c359d"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy.fitzhardinge@citrix.com",
        "time": "Wed Jul 28 10:49:29 2010 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:52:53 2010 +0200"
      },
      "message": "xen/blkfront: Use QUEUE_ORDERED_DRAIN for old backends\n\nIf there\u0027s no feature-barrier key in xenstore, then it means its a fairly\nold backend which does uncached in-order writes, which means ORDERED_DRAIN\nis appropriate.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\n"
    },
    {
      "commit": "4dab46ff26c6003a13ec769312c50938b93c359d",
      "tree": "02d6f99222034dfeb73ccb388663570db883cb52",
      "parents": [
        "e96f6abe02fc3320d669985443e8c68ff8e83294"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy.fitzhardinge@citrix.com",
        "time": "Thu Jul 22 14:17:00 2010 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:52:53 2010 +0200"
      },
      "message": "xen/blkfront: use tagged queuing for barriers\n\nWhen barriers are supported, then use QUEUE_ORDERED_TAG to tell the block\nsubsystem that it doesn\u0027t need to do anything else with the barriers.\nPreviously we used ORDERED_DRAIN which caused the block subsystem to\ndrain all pending IO before submitting the barrier, which would be\nvery expensive.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\n"
    },
    {
      "commit": "e96f6abe02fc3320d669985443e8c68ff8e83294",
      "tree": "52129ba43d1e57fb4446facde52071efb3a65ff0",
      "parents": [
        "16f2319fd67b169c0b34391d3fa0870fff129891"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Fri Jul 09 09:38:26 2010 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:52:41 2010 +0200"
      },
      "message": "scsi: use REQ_TYPE_FS for flush request\n\nscsi-ml uses REQ_TYPE_BLOCK_PC for flush requests from file\nsystems. The definition of REQ_TYPE_BLOCK_PC is that we don\u0027t retry\nrequests even when we can (e.g. UNIT ATTENTION) and we send the\nresponse to the callers (then the callers can decide what they want).\nWe need a workaround such as the commit\n77a4229719e511a0d38d9c355317ae1469adeb54 to retry BLOCK_PC flush\nrequests. We will need the similar workaround for discard requests too\nsince SCSI-ml handle them as BLOCK_PC internally.\n\nThis uses REQ_TYPE_FS for flush requests from file systems instead of\nREQ_TYPE_BLOCK_PC.\n\nscsi-ml retries only REQ_TYPE_FS requests that have data to\ntransfer when we can retry them (e.g. UNIT_ATTENTION). However, we\nalso need to retry REQ_TYPE_FS requests without data because the\ncallers don\u0027t.\n\nThis also changes scsi_check_sense() to retry all the REQ_TYPE_FS\nrequests when appropriate. Thanks to scsi_noretry_cmd(),\nREQ_TYPE_BLOCK_PC requests don\u0027t be retried as before.\n\nNote that basically, this reverts the commit\n77a4229719e511a0d38d9c355317ae1469adeb54 since now we use REQ_TYPE_FS\nfor flush requests.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "16f2319fd67b169c0b34391d3fa0870fff129891",
      "tree": "986105ef1ea459ad54a28cd19a1585a7e23e850f",
      "parents": [
        "28e18d0188b9e3ab82ebd09d9b1d1c7f8d1822aa"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Fri Jul 09 09:38:25 2010 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:52:41 2010 +0200"
      },
      "message": "block: set up rq-\u003erq_disk properly for flush requests\n\nq-\u003ebar_rq.rq_disk is NULL. Use the rq_disk of the original request\ninstead.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "28e18d0188b9e3ab82ebd09d9b1d1c7f8d1822aa",
      "tree": "cad96b3566ee8da92003689cdba800f8a4f7ca04",
      "parents": [
        "3b06c21e8462b77186613e70db286cfa8616088b"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Fri Jul 09 09:38:24 2010 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:52:40 2010 +0200"
      },
      "message": "block: set REQ_TYPE_FS on flush requests\n\nthe block layer doesn\u0027t set rq-\u003ecmd_type on flush requests. By\ndefinition, it should be REQ_TYPE_FS (the lower layers build a command\nand interpret the result of it, that is, the block layer doesn\u0027t know\nthe details).\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "3b06c21e8462b77186613e70db286cfa8616088b",
      "tree": "04884723e559da077a0eb83dfec3259212885bc8",
      "parents": [
        "ad96a7a7ea950d5bc9755f2f568be185c7070f1e"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Tue Jul 20 20:09:00 2010 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:52:31 2010 +0200"
      },
      "message": "floppy: make controller const\n\nThe struct cont_t is just a set of virtual function pointers.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "ad96a7a7ea950d5bc9755f2f568be185c7070f1e",
      "tree": "ec2d2c8e2d48c241e05d2acf6506a7105d3ed17c",
      "parents": [
        "6a32a8aed509e71137043d464db4a7fcd88c903e"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Tue Jul 20 20:08:59 2010 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:52:31 2010 +0200"
      },
      "message": "drivers/block: use memdup_user\n\nUse memdup_user when user data is immediately copied into the\nallocated region.  Some checkpatch cleanups in nearby code.\n\nThe semantic patch that makes this change is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\nexpression from,to,size,flag;\nposition p;\nidentifier l1,l2;\n@@\n\n-  to \u003d \\(kmalloc@p\\|kzalloc@p\\)(size,flag);\n+  to \u003d memdup_user(from,size);\n   if (\n-      to\u003d\u003dNULL\n+      IS_ERR(to)\n                 || ...) {\n   \u003c+... when !\u003d goto l1;\n-  -ENOMEM\n+  PTR_ERR(to)\n   ...+\u003e\n   }\n-  if (copy_from_user(to, from, size) !\u003d 0) {\n-    \u003c+... when !\u003d goto l2;\n-    -EFAULT\n-    ...+\u003e\n-  }\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Chirag Kantharia \u003cchirag.kantharia@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "6a32a8aed509e71137043d464db4a7fcd88c903e",
      "tree": "66689f31e570805a29ef129cc9ebe4c088d47837",
      "parents": [
        "8112586063fe53958d60218631d661533f304504"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Wed Jul 21 10:29:37 2010 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:52:31 2010 +0200"
      },
      "message": "scsi: convert discard to REQ_TYPE_FS from REQ_TYPE_BLOCK_PC\n\nJens, any reason why this isn\u0027t included in your for-2.6.36 yet?\n\n\u003d\nFrom: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSubject: [PATCH resend] scsi: convert discard to REQ_TYPE_FS from REQ_TYPE_BLOCK_PC\n\nThe block layer (file systems) sends discard requests as REQ_TYPE_FS\n(the role of REQ_TYPE_FS is that setting up commands and interpreting\nthe results). But SCSI-ml treats discard requests as\nREQ_TYPE_BLOCK_PC.\n\nscsi-ml can handle discard requests as REQ_TYPE_FS\neasily. scsi_setup_discard_cmnd() sets up struct request and the bio\nnicely. Only remaining issue is that discard requests can\u0027t be\ncompleted partially so we need to modify sd_done.\n\nThis conversion also fixes the problem that discard requests aren\u0027t\nretried when possible (e.g. UNIT ATTENTION).\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "8112586063fe53958d60218631d661533f304504",
      "tree": "7ee667fe782fe1c6b14fece28fbab5c3d24a0e4e",
      "parents": [
        "b2a4a43dbaf10383703d512bbe560d5a24da0bf2"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Mon Jul 19 13:46:54 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:52:30 2010 +0200"
      },
      "message": "cciss: cleanup interrupt_not_for_us\n\ncciss: cleanup interrupt_not_for_us\nIn the case of MSI/MSIX interrutps, we don\u0027t need to check\nif the interrupt is for us, and in the case of the intx interrupt\nhandler, when checking if the interrupt is for us, we don\u0027t need\nto check if we\u0027re using MSI/MSIX, we know we\u0027re not.\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "b2a4a43dbaf10383703d512bbe560d5a24da0bf2",
      "tree": "def1e43e1d67d9a2a515c77eacdd94e6b209ef67",
      "parents": [
        "6b4d96b878d67c6768766e682c188a2a8bdc804a"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Mon Jul 19 13:46:48 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:52:30 2010 +0200"
      },
      "message": "cciss: change printks to dev_warn, etc.\n\ncciss: change printks to dev_warn, etc.\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "6b4d96b878d67c6768766e682c188a2a8bdc804a",
      "tree": "c879de9d10eb2b28e0d3f7382057206035a51734",
      "parents": [
        "f70dba83669bf718c2f1731f0f58b8149e883593"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Mon Jul 19 13:46:43 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:52:30 2010 +0200"
      },
      "message": "cciss: separate cmd_alloc() and cmd_special_alloc()\n\ncciss: separate cmd_alloc() and cmd_special_alloc()\ncmd_alloc() took a parameter which caused it to either allocate\nfrom a pre-allocated pool, or allocate using pci_alloc_consistent.\nThis parameter is always known at compile time, so this would\nbe better handled by breaking the function into two functions\nand differentiating the cases by function names.  Same goes\nfor cmd_free().\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "f70dba83669bf718c2f1731f0f58b8149e883593",
      "tree": "cb0c2a5cff4678a860e230d33bea580b9e73aba0",
      "parents": [
        "058a0f9f31283d5eb9d8686d3b4f69e55d1589f1"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Mon Jul 19 13:46:38 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:52:30 2010 +0200"
      },
      "message": "cciss: use consistent variable names\n\ncciss: use consistent variable names\n\"h\", for the hba structure and \"c\" for the command structures.\nand get rid of trivial CCISS_LOCK macro.\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "058a0f9f31283d5eb9d8686d3b4f69e55d1589f1",
      "tree": "df9b1bc7ff388df0f7cad99226a852e46ca3e5c8",
      "parents": [
        "adfbc1ff342ece2e482254bcc5381fadfffbbb89"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Mon Jul 19 13:46:33 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:52:30 2010 +0200"
      },
      "message": "cciss: forbid hard reset of 640x boards\n\ncciss: forbid hard reset of 640x boards\nThe 6402/6404 are two PCI devices -- two Smart Array controllers\n-- that fit into one slot.  It is possible to reset them independently,\nhowever, they share a battery backed cache module.  One of the pair\ncontrols the cache and the 2nd one access the cache through the first\none.  If you reset the one controlling the cache, the other one will\nnot be a happy camper.  So we just forbid resetting this conjoined\nmess.\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "adfbc1ff342ece2e482254bcc5381fadfffbbb89",
      "tree": "aefa1482a22f0378a1397546595e7980fb4acf75",
      "parents": [
        "a6528d017234b483283274fbdd360f3541befe19"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Mon Jul 19 13:46:28 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:52:30 2010 +0200"
      },
      "message": "cciss: sanitize max commands\n\ncciss: sanitize max commands\nSome controllers might try to tell us they support 0 commands\nin performant mode.  This is a lie told by buggy firmware.\nWe have to be wary of this lest we try to allocate a negative\nnumber of command blocks, which will be treated as unsigned,\nand get an out of memory condition.\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "a6528d017234b483283274fbdd360f3541befe19",
      "tree": "c273b7e7752a4f846d4e8cba2bf6cedd890dab23",
      "parents": [
        "83123cb11b5a5205233c59357da2c8d9a8dc9d24"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Mon Jul 19 13:46:22 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:52:30 2010 +0200"
      },
      "message": "cciss: fix hard reset code.\n\ncciss: Fix hard reset code.\nSmart Array controllers newer than the P600 do not honor the\nPCI power state method of resetting the controllers.  Instead,\nin these cases we can get them to reset via the \"doorbell\" register.\n\nThis escaped notice until we began using \"performant\" mode because\nthe fact that the controllers did not reset did not normally\nimpede subsequent operation, and so things generally appeared to\n\"work\".  Once the performant mode code was added, if the controller\ndoes not reset, it remains in performant mode.  The code immediately\nafter the reset presumes the controller is in \"simple\" mode\n(which previously, it had remained in simple mode the whole time).\nIf the controller remains in performant mode any code which presumes\nit is in simple mode will not work.  So the reset needs to be fixed.\n\nUnfortunately there are some controllers which cannot be reset by\neither method. (eg. p800).  We detect these cases by noticing that\nthe controller seems to remain in performant mode even after a\nreset has been attempted.  In those cases we ignore the controller,\nas any commands outstanding on it will result in stale completions.\nTo sum up, we try to do a better job of resetting the controller if\n\"reset_devices\" is set, and if it doesn\u0027t work, we ignore that\ncontroller.\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "83123cb11b5a5205233c59357da2c8d9a8dc9d24",
      "tree": "6f74b67b9de4e59223efdeeb774ce17a1e7bf5d7",
      "parents": [
        "8e93bf6d6c9c6d864c17b7743f2cc5f2e052fe46"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Mon Jul 19 13:46:17 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:52:12 2010 +0200"
      },
      "message": "cciss: factor out cciss_reset_devices()\n\ncciss: factor out cciss_reset_devices()\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "8e93bf6d6c9c6d864c17b7743f2cc5f2e052fe46",
      "tree": "71352d0d1f28ddd82fecc5e1684276c6e2602ab6",
      "parents": [
        "b993313540de341e4c4df8f529d585e9400f43bd"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Mon Jul 19 13:46:12 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:52:12 2010 +0200"
      },
      "message": "cciss: factor out cciss_find_cfg_addrs.\n\nRationale for this is that I will also need to use this code\nin fixing kdump host reset code prior to having the hba structure.\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "b993313540de341e4c4df8f529d585e9400f43bd",
      "tree": "1ba180653427a690b528e3801a8ed759782a019b",
      "parents": [
        "0f8a6a1e7b7162a51daee7df28f1b898da1a4165"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Mon Jul 19 13:46:07 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:52:12 2010 +0200"
      },
      "message": "cciss: factor out cciss_enter_performant_mode\n\ncciss: factor out cciss_enter_performant_mode\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "0f8a6a1e7b7162a51daee7df28f1b898da1a4165",
      "tree": "dccfec7d8d744e17d1d9a21e7be63c75de33e7a1",
      "parents": [
        "fe3b7527dbf1e717ccb3492bb2d84481ca7be6f9"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Mon Jul 19 13:46:01 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:52:11 2010 +0200"
      },
      "message": "cciss: factor out cciss_wait_for_mode_change_ack()\n\ncciss: factor out cciss_wait_for_mode_change_ack()\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "fe3b7527dbf1e717ccb3492bb2d84481ca7be6f9",
      "tree": "c65e9ce84663fb1f60f87d686460b3e2ccfa26f9",
      "parents": [
        "ff5f58f06deb3f7b9a865093d7f580bbc2b9b498"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Mon Jul 19 13:45:56 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:52:11 2010 +0200"
      },
      "message": "cciss: make cciss_put_controller_into_performant_mode as __devinit\n\ncciss: make cciss_put_controller_into_performant_mode as __devinit\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "ff5f58f06deb3f7b9a865093d7f580bbc2b9b498",
      "tree": "69e68e8b25fae3eb641c96752959565746eba1b7",
      "parents": [
        "bfd63ee571ed2a1ab7af99544e326483f84c0544"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Mon Jul 19 13:45:51 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:52:11 2010 +0200"
      },
      "message": "cciss: cleanup some debug ifdefs\n\ncciss: cleanup some debug ifdefs\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "bfd63ee571ed2a1ab7af99544e326483f84c0544",
      "tree": "8cc6305c52d66fcafb6ae935359c76059339330e",
      "parents": [
        "322e304c4d71b79b3950ca560db4868cc3e04ee6"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Mon Jul 19 13:45:46 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:52:11 2010 +0200"
      },
      "message": "cciss: factor out cciss_p600_dma_prefetch_quirk()\n\ncciss: factor out cciss_p600_dma_prefetch_quirk()\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "322e304c4d71b79b3950ca560db4868cc3e04ee6",
      "tree": "6e49b3739233490a5023b9d99814b047677e9375",
      "parents": [
        "501b92cd6b394ba56bb978fd55606b5639b4d3fb"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Mon Jul 19 13:45:41 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:52:11 2010 +0200"
      },
      "message": "cciss: factor out cciss_enable_scsi_prefetch()\n\ncciss: factor out cciss_enable_scsi_prefetch()\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "501b92cd6b394ba56bb978fd55606b5639b4d3fb",
      "tree": "47e806135b45b687f64a1ed0e166ed8ba87f101a",
      "parents": [
        "afadbf4b9591f3318508792ad98c347336a1a95d"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Mon Jul 19 13:45:36 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:52:11 2010 +0200"
      },
      "message": "cciss: factor out CISS_signature_present()\n\ncciss: factor out CISS_signature_present()\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "afadbf4b9591f3318508792ad98c347336a1a95d",
      "tree": "972ee859710e44bd1e0e824265ac2ad676eb6fc4",
      "parents": [
        "da5503217d7421dbf04a0557d16cae6d5fc0960e"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Mon Jul 19 13:45:31 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:52:11 2010 +0200"
      },
      "message": "cciss: factor out cciss_find_board_params\n\ncciss: factor out cciss_find_board_params\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "da5503217d7421dbf04a0557d16cae6d5fc0960e",
      "tree": "2244d419c6e13f4fc5af36071384a92a1751122d",
      "parents": [
        "4809d0988f10e305511d1a3e223880fa4b21f90e"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Mon Jul 19 13:45:26 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:52:11 2010 +0200"
      },
      "message": "cciss: fix leak of ioremapped memory\n\ncciss: fix leak of ioremapped memory\nin cciss_pci_init error path.\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "4809d0988f10e305511d1a3e223880fa4b21f90e",
      "tree": "ffabdf7aaf8871327ab7af234a7a31822c5ca3c0",
      "parents": [
        "e99ba1362723df14bbe36da6eeaadf81d95782e6"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Mon Jul 19 13:45:21 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:52:11 2010 +0200"
      },
      "message": "cciss: factor out cciss_find_cfgtables\n\ncciss: factor out cciss_find_cfgtables\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "e99ba1362723df14bbe36da6eeaadf81d95782e6",
      "tree": "5bf701fa79a250f1fde71b1b22cf6e35b21e9c59",
      "parents": [
        "d474830da6218c0b7f81eab03aff7d8c539bdb57"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Mon Jul 19 13:45:15 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:52:11 2010 +0200"
      },
      "message": "cciss: factor out cciss_wait_for_board_ready()\n\ncciss: factor out cciss_wait_for_board_ready()\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "d474830da6218c0b7f81eab03aff7d8c539bdb57",
      "tree": "0ca26c1ab067fec7ca9b57e0255373710fe32126",
      "parents": [
        "dac5488a9ed6b6e59749e161209a6678980803f1"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Mon Jul 19 13:45:10 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:52:10 2010 +0200"
      },
      "message": "cciss: factor out cciss_find_memory_BAR()\n\ncciss: factor out cciss_find_memory_BAR()\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "dac5488a9ed6b6e59749e161209a6678980803f1",
      "tree": "8224965f78921d6852650b6b0a1b8a1efa906ca1",
      "parents": [
        "dd9c426e92d0cbd710c8df5b84afe9a2eeda3918"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Mon Jul 19 13:45:05 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:52:10 2010 +0200"
      },
      "message": "cciss: remove board_id parameter from cciss_interrupt_mode()\n\ncciss: remove board_id parameter from cciss_interrupt_mode()\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "dd9c426e92d0cbd710c8df5b84afe9a2eeda3918",
      "tree": "55e41244dc36cf448112131d657e33547bc112f8",
      "parents": [
        "6539fa9b2e2e7fc3b3fe819e54aa7be83f0370fa"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Mon Jul 19 13:45:00 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:52:10 2010 +0200"
      },
      "message": "cciss: factor out cciss_board_disabled\n\ncciss: factor out cciss_board_disabled\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "6539fa9b2e2e7fc3b3fe819e54aa7be83f0370fa",
      "tree": "45d9ca79fc33769094f66c868940a43b0e5058c3",
      "parents": [
        "292e50dd393a8359798f1f20ac4d48ec835ffa04"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Mon Jul 19 13:44:55 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:52:10 2010 +0200"
      },
      "message": "cciss: factor out cciss_lookup_board_id\n\ncciss: factor out cciss_lookup_board_id\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "292e50dd393a8359798f1f20ac4d48ec835ffa04",
      "tree": "d8efd1362c07c25da077256e40ea381ab5590dc1",
      "parents": [
        "373b45f7b691bf7faafeed46b0b3dcd5b281cd5f"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Mon Jul 19 13:44:50 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:52:10 2010 +0200"
      },
      "message": "cciss: save pdev pointer in per hba structure early to avoid passing it around so much.\n\ncciss: save pdev pointer in per hba structure early to avoid passing it around so much.\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "373b45f7b691bf7faafeed46b0b3dcd5b281cd5f",
      "tree": "f7a1e66e95c0df96d5b58c2a0055d824ddf9a1c2",
      "parents": [
        "d54142c71f05b608b7360d80bdab74eed0f17a98"
      ],
      "author": {
        "name": "Stephen M. Cameron",
        "email": "scameron@beardog.cce.hp.com",
        "time": "Mon Jul 19 13:44:45 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:52:10 2010 +0200"
      },
      "message": "cciss: Set the performant mode bit in the scsi half of the driver\n\ncciss: Set the performant mode bit in the scsi half of the driver\nIn a couple of places, the performant mode bit wasn\u0027t being set in\nthe scsi half of the driver, causing commands to seem to hang.  Use\nenqueue_cmd_and_start_io() where appropriate.  This fixes a bug that\n\n\techo engage scsi \u003e /proc/driver/cciss/cciss0\n\nwould hang.\n\nSigned-off-by: Stephen M. Cameron \u003cscameron@beardog.cce.hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "d54142c71f05b608b7360d80bdab74eed0f17a98",
      "tree": "05bae4d49f360b4b18b8a69014f1489fae8a9fe5",
      "parents": [
        "7b32d1044ae791a1e53a53023bf2668438d5301b"
      ],
      "author": {
        "name": "Daniel Stodden",
        "email": "daniel.stodden@citrix.com",
        "time": "Sat Aug 07 18:51:21 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:51:21 2010 +0200"
      },
      "message": "blkfront: Klog the unclean release path\n\nSigned-off-by: Daniel Stodden \u003cdaniel.stodden@citrix.com\u003e\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "7b32d1044ae791a1e53a53023bf2668438d5301b",
      "tree": "8e751d41c7754f8b89eb4076ae76e2e7b028f152",
      "parents": [
        "acfca3c622a009fb62b566604452ab9fb3a11019"
      ],
      "author": {
        "name": "Daniel Stodden",
        "email": "daniel.stodden@citrix.com",
        "time": "Fri Apr 30 22:01:23 2010 +0000"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:49:20 2010 +0200"
      },
      "message": "blkfront: Remove obsolete info-\u003eusers\n\nThis is just bd_openers, protected by the bd_mutex.\n\nSigned-off-by: Daniel Stodden \u003cdaniel.stodden@citrix.com\u003e\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "acfca3c622a009fb62b566604452ab9fb3a11019",
      "tree": "3125607a3f41283839605d18f004765d0268e5d5",
      "parents": [
        "fa1bd3591a669b92b635dbdb11d1a32a5630821b"
      ],
      "author": {
        "name": "Daniel Stodden",
        "email": "daniel.stodden@citrix.com",
        "time": "Sat Aug 07 18:47:26 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:47:26 2010 +0200"
      },
      "message": "blkfront: Remove obsolete info-\u003eusers\n\nThis is just bd_openers, protected by the bd_mutex.\n\nSigned-off-by: Daniel Stodden \u003cdaniel.stodden@citrix.com\u003e\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "fa1bd3591a669b92b635dbdb11d1a32a5630821b",
      "tree": "41309de6425e854420b26bdcfd94accaf52c3cee",
      "parents": [
        "7fd152f4b6ae4f3cf89e4b7a0383cc3c470772fc"
      ],
      "author": {
        "name": "Daniel Stodden",
        "email": "daniel.stodden@citrix.com",
        "time": "Fri Apr 30 22:01:22 2010 +0000"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:45:27 2010 +0200"
      },
      "message": "blkfront: Lock blockfront_info during xbdev removal\n\nSame approach as blkfront_closing:\n * Grab the bdev safely, holding the info mutex.\n * Zap xbdev safely, holding the info mutex.\n * Try bdev removal safely, holding bd_mutex.\n\nSigned-off-by: Daniel Stodden \u003cdaniel.stodden@citrix.com\u003e\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\n"
    },
    {
      "commit": "7fd152f4b6ae4f3cf89e4b7a0383cc3c470772fc",
      "tree": "105d00acbdd635aa30f0a0f8257714d5cbb6699e",
      "parents": [
        "139617437aff1f0d3b57c2d7cc60e60efc8fe6c3"
      ],
      "author": {
        "name": "Daniel Stodden",
        "email": "daniel.stodden@citrix.com",
        "time": "Sat Aug 07 18:45:12 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:45:12 2010 +0200"
      },
      "message": "blkfront: Fix blkfront backend switch race (bdev release)\n\nWe cannot read backend state within bdev operations, because it risks\ngrabbing the state change before xenbus gets to do it.\n\nFixed by tracking deferral with a frontend switch to Closing. State\nexposure isn\u0027t strictly necessary, but the backends won\u0027t mind.\n\nFor a \u0027clean\u0027 deferral this seems actually a more decent protocol than\nraising errors.\n\nSigned-off-by: Daniel Stodden \u003cdaniel.stodden@citrix.com\u003e\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "139617437aff1f0d3b57c2d7cc60e60efc8fe6c3",
      "tree": "2c903b3f6456ab4a7d70c16c864ceb63bc366a5e",
      "parents": [
        "b70f5fa043b318659c936d8c3c696250e6528944"
      ],
      "author": {
        "name": "Daniel Stodden",
        "email": "daniel.stodden@citrix.com",
        "time": "Sat Aug 07 18:36:53 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:38:43 2010 +0200"
      },
      "message": "blkfront: Fix blkfront backend switch race (bdev open)\n\nWe need not mind if users grab a late handle on a closing disk. We\nprobably even should not. But we have to make sure it\u0027s not a dead\none already\n\nLet the bdev deal with a gendisk deleted under its feet. Takes the\ninfo mutex to decide a race against backend closing.\n\nSigned-off-by: Daniel Stodden \u003cdaniel.stodden@citrix.com\u003e\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "b70f5fa043b318659c936d8c3c696250e6528944",
      "tree": "ca627bca1a32250206d0af888b2c9e98a7a3c4ef",
      "parents": [
        "a66b5aebb7dc9e695dcb4b528906fd398b63f3d9"
      ],
      "author": {
        "name": "Daniel Stodden",
        "email": "daniel.stodden@citrix.com",
        "time": "Fri Apr 30 22:01:19 2010 +0000"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:38:43 2010 +0200"
      },
      "message": "blkfront: Lock blkfront_info when closing\n\nThe bdev .open/.release fops race against backend switches to Closing,\nhandled by the XenBus thread.\n\nThe original code attempted to serialize block device holders and\nxenbus only via bd_mutex. This is insufficient, the info-\u003ebd pointer\nmay already be stale (or null) while xenbus tries to bump up the\nrefcount.\n\nProtect blkfront_info with a dedicated mutex.\n\nSigned-off-by: Daniel Stodden \u003cdaniel.stodden@citrix.com\u003e\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\n"
    },
    {
      "commit": "a66b5aebb7dc9e695dcb4b528906fd398b63f3d9",
      "tree": "684df2ec45c83f1dc267803f4fdf4ac684bf30d0",
      "parents": [
        "9897cb532382f075b337f7933b5a50f0ffc32d35"
      ],
      "author": {
        "name": "Daniel Stodden",
        "email": "daniel.stodden@citrix.com",
        "time": "Sat Aug 07 18:33:17 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:38:43 2010 +0200"
      },
      "message": "blkfront: Clean up vbd release\n\n * Current blkfront_closing is rather a xlvbd_release_gendisk.\n   Renamed in preparation of later patches (need the name again).\n\n * Removed the misleading comment -- this only applied to the backend\n   switch handler, and the queue is already flushed btw.\n\n * Break out the xenbus call, callers know better when to switch\n   frontend state.\n\nSigned-off-by: Daniel Stodden \u003cdaniel.stodden@citrix.com\u003e\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "9897cb532382f075b337f7933b5a50f0ffc32d35",
      "tree": "9e8c94e27f2e7a773c6703b249f420bc1be3973d",
      "parents": [
        "89de1669ace055b56f1de1c9f5aca26dd7f17f25"
      ],
      "author": {
        "name": "Daniel Stodden",
        "email": "daniel.stodden@citrix.com",
        "time": "Fri Apr 30 22:01:17 2010 +0000"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:31:37 2010 +0200"
      },
      "message": "blkfront: Fix gendisk leak\n\nSigned-off-by: Daniel Stodden \u003cdaniel.stodden@citrix.com\u003e\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\n"
    },
    {
      "commit": "89de1669ace055b56f1de1c9f5aca26dd7f17f25",
      "tree": "c67f2fa68f79eb9e4c31ef6991b23a58602039d6",
      "parents": [
        "5b61cb90c2ad8c853b4dd53eec200bacd2f02172"
      ],
      "author": {
        "name": "Daniel Stodden",
        "email": "daniel.stodden@citrix.com",
        "time": "Fri Apr 30 22:01:16 2010 +0000"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:31:35 2010 +0200"
      },
      "message": "blkfront: Fix backtrace in del_gendisk\n\nThe call to del_gendisk follows an non-refcounted gd-\u003equeue\npointer. We release the last ref in blk_cleanup_queue. Fixed by\nreordering releases accordingly.\n\nSigned-off-by: Daniel Stodden \u003cdaniel.stodden@citrix.com\u003e\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\n"
    },
    {
      "commit": "5b61cb90c2ad8c853b4dd53eec200bacd2f02172",
      "tree": "d518fde8701ce437ac87ee36732401fc115e9d7b",
      "parents": [
        "2def141e71d54eccac98dc2c2ba71a82c91b324e"
      ],
      "author": {
        "name": "Daniel Stodden",
        "email": "daniel.stodden@citrix.com",
        "time": "Fri Apr 30 22:01:15 2010 +0000"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:31:34 2010 +0200"
      },
      "message": "xenbus: Make xenbus_switch_state transactional\n\nAccording to the comments, this was how it\u0027s been done years ago, but\napparently took an xbt pointer from elsewhere back then. The code was\nremoved because of consistency issues: cancellation wont\u0027t roll back\nthe saved xbdev-\u003estate.\n\nStill, unsolicited writes to the state field remain an issue,\nespecially if device shutdown takes thread synchronization, and subtle\nraces cause accidental recreation of the device node.\n\nFixed by reintroducing the transaction. An internal one is sufficient,\nso the xbdev-\u003estate value remains consistent.\n\nAlso fixes the original hack to prevent infinite recursion. Instead of\nbailing out on the first attempt to switch to Closing, checks call\ndepth now.\n\nSigned-off-by: Daniel Stodden \u003cdaniel.stodden@citrix.com\u003e\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\n"
    },
    {
      "commit": "2def141e71d54eccac98dc2c2ba71a82c91b324e",
      "tree": "434ce86801037c7c8cee21f24b310a43db2f9445",
      "parents": [
        "b4dddb498c0feaff413b2a79c64e910021983775"
      ],
      "author": {
        "name": "K. Y. Srinivasan",
        "email": "ksrinivasan@novell.com",
        "time": "Thu Mar 18 15:00:54 2010 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:31:31 2010 +0200"
      },
      "message": "xen/blkfront: revalidate after setting capacity\n\nSigned-off-by: K. Y. Srinivasan \u003cksrinivasan@novell.com\u003e\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\n"
    },
    {
      "commit": "b4dddb498c0feaff413b2a79c64e910021983775",
      "tree": "9db2959caadbf22f8bd7de160ff0ec0805e0f435",
      "parents": [
        "1fa73be6be65028a7543bba8f14474b42e064a1b"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy.fitzhardinge@citrix.com",
        "time": "Thu Mar 11 15:10:40 2010 -0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:31:29 2010 +0200"
      },
      "message": "xen/blkfront: avoid compiler warning from missing cases\n\nFix:\ndrivers/block/xen-blkfront.c: In function ‘blkfront_connect’:\ndrivers/block/xen-blkfront.c:933: warning: enumeration value ‘BLKIF_STATE_DISCONNECTED’ not handled in switch\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\n"
    },
    {
      "commit": "1fa73be6be65028a7543bba8f14474b42e064a1b",
      "tree": "1bd0e5a44c99231afefe53e447bddc4b73d091cb",
      "parents": [
        "5d7ed20e822ef82117a4d9928b030fa0247b789d"
      ],
      "author": {
        "name": "K. Y. Srinivasan",
        "email": "ksrinivasan@novell.com",
        "time": "Thu Mar 11 13:42:26 2010 -0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:31:27 2010 +0200"
      },
      "message": "xen/front: Propagate changed size of VBDs\n\nSupport dynamic resizing of virtual block devices. This patch supports\nboth file backed block devices as well as physical devices that can be\ndynamically resized on the host side.\n\nSigned-off-by: K. Y. Srinivasan \u003cksrinivasan@novell.com\u003e\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\n"
    },
    {
      "commit": "5d7ed20e822ef82117a4d9928b030fa0247b789d",
      "tree": "dff5db85b4c7ff8f978a3f737c5c595baf82519b",
      "parents": [
        "0e34582699392d67910bd3919bc8fd9bedce115e"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "jbeulich@novell.com",
        "time": "Sat Aug 07 18:31:12 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:31:12 2010 +0200"
      },
      "message": "blkfront: don\u0027t access freed struct xenbus_device\n\nUnfortunately commit \"blkfront: fixes for \u0027xm block-detach ... --force\u0027\"\nstill wasn\u0027t quite right - there was a reference to freed memory left\nfrom blkfront_closing().\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "0e34582699392d67910bd3919bc8fd9bedce115e",
      "tree": "8726f57eead44ecce90112e969e12a33e119acd9",
      "parents": [
        "203fd61f42fec81f43bc5abbf2d3755e04e000af"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "jbeulich@novell.com",
        "time": "Sat Aug 07 18:28:55 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:28:55 2010 +0200"
      },
      "message": "blkfront: fixes for \u0027xm block-detach ... --force\u0027\n\nPrevent prematurely freeing \u0027struct blkfront_info\u0027 instances (when the\nxenbus data structures are gone, but the Linux ones are still needed).\n\nPrevent adding a disk with the same (major, minor) [and hence the same\nname and sysfs entries, which leads to oopses] when the previous\ninstance wasn\u0027t fully de-allocated yet.\n\nThis still doesn\u0027t address all issues resulting from forced detach:\nI/O submitted after the detach still blocks forever, likely preventing\nsubsequent un-mounting from completing. It\u0027s not clear to me (not\nknowing much about the block layer) how this can be avoided.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "203fd61f42fec81f43bc5abbf2d3755e04e000af",
      "tree": "6069f457c559327b52f5fe2b68d74d625dd80057",
      "parents": [
        "96dccab1d63cb35d3f5e75d2ef275fdbff4d5f3b"
      ],
      "author": {
        "name": "Ian Campbell",
        "email": "ian.campbell@citrix.com",
        "time": "Fri Dec 04 15:33:54 2009 +0000"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:26:39 2010 +0200"
      },
      "message": "xen: use less generic names in blkfront driver.\n\nAll Xen frontend drivers have a couple of identically named functions which\nmakes figuring out which device went wrong from a stacktrace harder than it\nneeds to be. Rename them to something specificto the device type.\n\nSigned-off-by: Ian Campbell \u003cian.campbell@citrix.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\n"
    },
    {
      "commit": "96dccab1d63cb35d3f5e75d2ef275fdbff4d5f3b",
      "tree": "d4baab082b2760be1bee774762c595ef389146e9",
      "parents": [
        "10d1f9e2ccfff40665a00ea0e0a0d11e54c9cbb1"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Mon Jul 19 16:49:17 2010 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:26:35 2010 +0200"
      },
      "message": "writeback.h: needs linux/device.h\n\ninclude/trace/events/writeback.h uses dev_name(), so it needs to\ninclude linux/device.h.\n\ninclude/trace/events/writeback.h:12: error: implicit declaration of function \u0027dev_name\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "10d1f9e2ccfff40665a00ea0e0a0d11e54c9cbb1",
      "tree": "222c661376d8530a1bdf4e18cf5ff84267529bb3",
      "parents": [
        "f10d9f617a65905c556c3b37c9b9646ae7d04ed7"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Jul 15 10:49:31 2010 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:26:33 2010 +0200"
      },
      "message": "block: fix problem with sending down discard that isn\u0027t of correct granularity\n\nIf the queue doesn\u0027t have a limit set, or it just set UINT_MAX like\nwe default to, we coud be sending down a discard request that isn\u0027t\nof the correct granularity if the block size is \u003e 512b.\n\nFix this by adjusting max_discard_sectors down to the proper\nalignment.\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "f10d9f617a65905c556c3b37c9b9646ae7d04ed7",
      "tree": "0e1d1a28578e8c1b2115b8486add3b235f7e3619",
      "parents": [
        "2669b19fa4debcdd6a660ace1a124c0900f113e6"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Jul 13 17:50:50 2010 +1000"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:26:29 2010 +0200"
      },
      "message": "blkdev: check for valid request queue before issuing flush\n\nIssuing a blkdev_issue_flush() on an unconfigured loop device causes a panic as\nq-\u003emake_request_fn is not configured. This can occur when trying to mount the\nunconfigured loop device as an XFS filesystem. There are no guards that catch\nthe bio before the request function is called because we don\u0027t add a payload to\nthe bio. Instead, manually check this case as soon as we have a pointer to the\nqueue to flush.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "2669b19fa4debcdd6a660ace1a124c0900f113e6",
      "tree": "a9d301e93bf3540137436c60b380d369257ffc03",
      "parents": [
        "2daa672b1a736d41b3e7a2e3a05f1909a1f96530"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Fri Jul 09 14:24:38 2010 +1000"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:26:29 2010 +0200"
      },
      "message": "block: fix for block tracing build error\n\nblock/compat_ioctl.c: In function \u0027compat_blkdev_ioctl\u0027:\nblock/compat_ioctl.c:754: error: \u0027BLKTRACESETUP32\u0027 undeclared (first use in this function)\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "2daa672b1a736d41b3e7a2e3a05f1909a1f96530",
      "tree": "17a9b1f945307192e6cb9dec78472e39da32e727",
      "parents": [
        "409f3499a2cfcd1e9c2857c53af7fcce069f027f"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Thu Jul 08 14:57:03 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:26:29 2010 +0200"
      },
      "message": "scsi/i2o: restore ioctl changes\n\nThis restores the changes from \"scsi/i2o_block: cleanup ioctl\nhandling\", which accidentally got reverted.\n\nOrigignal changelog:\n      This fixes the ioctl function of the i2o_block driver, which\n      has multiple problems:\n\n      * The BLKI2OSRSTRAT and BLKI2OSWSTRAT commands always return\n        -ENOTTY on success, where they should return 0.\n      * Support for 32 bit compat is missing\n      * The driver should use the .ioctl function and because\n        .locked_ioctl is going away.\n\n      The use of the big kernel lock remains for now, but gets\n      made explictit in the ioctl function.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "409f3499a2cfcd1e9c2857c53af7fcce069f027f",
      "tree": "7275165954c7f1143d219f4b141888d6c0a5a4ab",
      "parents": [
        "15392efb9d427482754f6d267262452878667499"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Jul 07 16:51:29 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:26:08 2010 +0200"
      },
      "message": "scsi/sd: remove big kernel lock\n\nEvery user of the BKL in the sd driver is the\nresult of the pushdown from the block layer\ninto the open/close/ioctl functions.\n\nThe only place that used to rely on the BKL is\nthe sdkp-\u003eopeners variable, which gets converted\ninto an atomic_t.\n\nNothing else seems to rely on the BKL, since the\nfunctions do not touch global data without holding\nanother lock, and the open/close functions are\nstill protected from concurrent execution using\nthe bdev-\u003ebd_mutex.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: linux-scsi@vger.kernel.org\nCc: \"James E.J. Bottomley\" \u003cJames.Bottomley@suse.de\u003e\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "15392efb9d427482754f6d267262452878667499",
      "tree": "e71dd54c88454971750436f5b4e5e512b0c9368a",
      "parents": [
        "6de43703108bb1d3fc9495b3e8107d6ec72f97e4"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Jul 07 16:51:28 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:26:08 2010 +0200"
      },
      "message": "block: remove BKL from partition ioctls\n\nThe blkpg_ioctl and blkdev_reread_part access fields of\nthe bdev and gendisk structures, yet they always do so\nunder the protection of bdev-\u003ebd_mutex, which seems\nsufficient.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\ncked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "6de43703108bb1d3fc9495b3e8107d6ec72f97e4",
      "tree": "86a5e955f33b0478b61631d373ca01ecf1558bc6",
      "parents": [
        "62c2a7d969f30163f733c81158254b3095b23e72"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Jul 07 16:51:27 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:26:08 2010 +0200"
      },
      "message": "block: remove BKL from BLKROSET and BLKFLSBUF\n\nWe only call the functions set_device_ro(),\ninvalidate_bdev(), sync_filesystem() and sync_blockdev()\nwhile holding the BKL in these commands. All\nof these are also done in other code paths without\nthe BKL, which leads me to the conclusion that\nthe BKL is not needed here either.\n\nThe reason we hold it here is that it was originally\npushed down into the ioctl function from vfs_ioctl.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "62c2a7d969f30163f733c81158254b3095b23e72",
      "tree": "3e5dd79d874b996757814562b874a18415599a61",
      "parents": [
        "6e9624b8caec290d28b4c6d9ec75749df6372b87"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Jul 07 16:51:26 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:26:08 2010 +0200"
      },
      "message": "block: push BKL into blktrace ioctls\n\nThe blktrace driver currently needs the BKL, but\nwe should not need to take that in the block layer,\nso just push it down into the driver itself.\n\nIt is quite likely that the BKL is not actually\nrequired in blktrace code and could be removed\nin a follow-on patch.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "6e9624b8caec290d28b4c6d9ec75749df6372b87",
      "tree": "47225b544e1da82742795553dc4e8aa70c17afdc",
      "parents": [
        "8a6cfeb6deca3a8fefd639d898b0d163c0b5d368"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sat Aug 07 18:25:34 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:25:34 2010 +0200"
      },
      "message": "block: push down BKL into .open and .release\n\nThe open and release block_device_operations are currently\ncalled with the BKL held. In order to change that, we must\nfirst make sure that all drivers that currently rely\non this have no regressions.\n\nThis blindly pushes the BKL into all .open and .release\noperations for all block drivers to prepare for the\nnext step. The drivers can subsequently replace the BKL\nwith their own locks or remove it completely when it can\nbe shown that it is not needed.\n\nThe functions blkdev_get and blkdev_put are the only\nremaining users of the big kernel lock in the block\nlayer, besides a few uses in the ioctl code, none\nof which need to serialize with blkdev_{get,put}.\n\nMost of these two functions is also under the protection\nof bdev-\u003ebd_mutex, including the actual calls to\n-\u003eopen and -\u003erelease, and the common code does not\naccess any global data structures that need the BKL.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "8a6cfeb6deca3a8fefd639d898b0d163c0b5d368",
      "tree": "9a633ad48c3b1ada0519ee7bade0602f940037f6",
      "parents": [
        "34484062445fe905bf02c72f87ddda21881acda3"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Thu Jul 08 10:18:46 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:25:00 2010 +0200"
      },
      "message": "block: push down BKL into .locked_ioctl\n\nAs a preparation for the removal of the big kernel\nlock in the block layer, this removes the BKL\nfrom the common ioctl handling code, moving it\ninto every single driver still using it.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "34484062445fe905bf02c72f87ddda21881acda3",
      "tree": "d1eb872d04cc06b474d299746207864f0e085bd8",
      "parents": [
        "610a63498f7f366031a6327eaaa9963ffa110b2b"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Jul 07 16:51:23 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:24:31 2010 +0200"
      },
      "message": "scsi/i2o_block: cleanup ioctl handling\n\nThis fixes the ioctl function of the i2o_block driver, which\nhas multiple problems:\n\n* The BLKI2OSRSTRAT and BLKI2OSWSTRAT commands always return\n  -ENOTTY on success, where they should return 0.\n* Support for 32 bit compat is missing\n* The driver should use the .ioctl function and because\n  .locked_ioctl is going away.\n\nThe use of the big kernel lock remains for now, but gets\nmade explictit in the ioctl function.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "610a63498f7f366031a6327eaaa9963ffa110b2b",
      "tree": "8ea7f0c9e1e2f41ee09677909a3491adeee31799",
      "parents": [
        "9e094383b60066996fbc3b53891324e5d2ec858d"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Thu Jul 08 10:16:17 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:24:28 2010 +0200"
      },
      "message": "scsi: fix discard page leak\n\nWe leak a page allocated for discard on some error conditions\n(e.g. scsi_prep_state_check returns BLKPREP_DEFER in\nscsi_setup_blk_pc_cmnd).\n\nWe unprep on requests that weren\u0027t prepped in the error path of\nscsi_init_io. It makes the error path to clean up scsi commands messy.\n\nLet\u0027s strictly apply the rule that we can\u0027t unprep on a request that\nwasn\u0027t prepped.\n\nCalling just scsi_put_command() in the error path of scsi_init_io() is\nenough. We don\u0027t set REQ_DONTPREP yet.\n\nscsi_setup_discard_cmnd can safely free a page on the error case with\nthe above rule.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "9e094383b60066996fbc3b53891324e5d2ec858d",
      "tree": "a3f4af7e60781f62b52dcfddd2032c3bbf933644",
      "parents": [
        "028c2dd184c097809986684f2f0627eea5529fea"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Wed Jul 07 13:24:08 2010 +1000"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:24:26 2010 +0200"
      },
      "message": "writeback: Add tracing to write_cache_pages\n\nAdd a trace event to the -\u003ewritepage loop in write_cache_pages to give\nvisibility into how the -\u003ewritepage call is changing variables within the\nwriteback control structure. Of most interest is how wbc-\u003enr_to_write changes\nfrom call to call, especially with filesystems that write multiple pages\nin -\u003ewritepage.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "028c2dd184c097809986684f2f0627eea5529fea",
      "tree": "f6eb9e30a24d73597e5ce2a65b4638e9d1947504",
      "parents": [
        "455b2864686d3591b3b2f39eb46290c95f76471f"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Wed Jul 07 13:24:07 2010 +1000"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:24:25 2010 +0200"
      },
      "message": "writeback: Add tracing to balance_dirty_pages\n\nTracing high level background writeback events is good, but it doesn\u0027t\ngive the entire picture. Add visibility into write throttling to catch IO\ndispatched by foreground throttling of processing dirtying lots of pages.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "455b2864686d3591b3b2f39eb46290c95f76471f",
      "tree": "b88059e3691fc5ad4491518e9eb1f1f2ba21711a",
      "parents": [
        "a89f5c899db3c6be4bb426e4efb72ecee29a93b5"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Wed Jul 07 13:24:06 2010 +1000"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:24:23 2010 +0200"
      },
      "message": "writeback: Initial tracing support\n\nTrace queue/sched/exec parts of the writeback loop. This provides\ninsight into when and why flusher threads are scheduled to run. e.g\na sync invocation leaves traces like:\n\n     sync-[...]: writeback_queue: bdi 8:0: sb_dev 8:1 nr_pages\u003d7712 sync_mode\u003d0 kupdate\u003d0 range_cyclic\u003d0 background\u003d0\nflush-8:0-[...]: writeback_exec: bdi 8:0: sb_dev 8:1 nr_pages\u003d7712 sync_mode\u003d0 kupdate\u003d0 range_cyclic\u003d0 background\u003d0\n\nThis also lays the foundation for adding more writeback tracing to\nprovide deeper insight into the whole writeback path.\n\nThe original tracing code is from Jens Axboe, though this version is\na rewrite as a result of the code being traced changing\nsignificantly.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "a89f5c899db3c6be4bb426e4efb72ecee29a93b5",
      "tree": "b71bcb7885c1ff5dc2001800852b6144db640157",
      "parents": [
        "82b6d57fb11644fe25c8a1346627ad0027673dae"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Tue Jul 06 09:03:18 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:24:21 2010 +0200"
      },
      "message": "block: remove unused REQ_TYPE_LINUX_BLOCK\n\nNobody uses REQ_TYPE_LINUX_BLOCK (and its REQ_LB_OP_*).\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nAcked-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "82b6d57fb11644fe25c8a1346627ad0027673dae",
      "tree": "0270b7eb3e995f88cbe1e8626153af15a5cc05d8",
      "parents": [
        "00fff26539bfe3fad21c164fc4002d9ede056fb0"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Sat Jul 03 08:07:04 2010 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:24:15 2010 +0200"
      },
      "message": "scsi: need to reset unprep_rq_fn in sd_remove\n\nThis is for block\u0027s for-2.6.36.\n\nWe need to reset q-\u003eunprep_rq_fn in sd_remove. Otherwise we hit kernel\noops if we access to a scsi disk device via sg after removing scsi\ndisk module.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "00fff26539bfe3fad21c164fc4002d9ede056fb0",
      "tree": "4909c8eed03133b1d46f689e465ed1f579b8e282",
      "parents": [
        "afc23068103ccfbf1917eb2a007bc15ab5418cc9"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Sat Jul 03 17:45:40 2010 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:24:15 2010 +0200"
      },
      "message": "block: remove q-\u003eprepare_flush_fn completely\n\nThis removes q-\u003eprepare_flush_fn completely (changes the\nblk_queue_ordered API).\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "afc23068103ccfbf1917eb2a007bc15ab5418cc9",
      "tree": "57a4c920f07dc9447e08912ada3d3ab2e40ef31a",
      "parents": [
        "dd40e456a40ebb87330b7fc694359ce52f1996aa"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Sat Jul 03 17:45:39 2010 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:24:15 2010 +0200"
      },
      "message": "ide: stop using q-\u003eprepare_flush_fn\n\nuse REQ_FLUSH flag instead.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "dd40e456a40ebb87330b7fc694359ce52f1996aa",
      "tree": "d5d1bea7f754e54b1cc9c975652bc4dfa714991f",
      "parents": [
        "144d6ed551ce430084489b198826c89bac5680dc"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Sat Jul 03 17:45:38 2010 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:24:14 2010 +0200"
      },
      "message": "virtio_blk: stop using q-\u003eprepare_flush_fn\n\nuse REQ_FLUSH flag instead.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "144d6ed551ce430084489b198826c89bac5680dc",
      "tree": "78b59ca5c4487784bfc2a16bcd91c0cb41631f8a",
      "parents": [
        "98d8c8f40ed72d997e50bc107a5cc1a6cee19e76"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Sat Jul 03 17:45:37 2010 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:24:14 2010 +0200"
      },
      "message": "dm: stop using q-\u003eprepare_flush_fn\n\nuse REQ_FLUSH flag instead.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Alasdair G Kergon \u003cagk@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "98d8c8f40ed72d997e50bc107a5cc1a6cee19e76",
      "tree": "6aa864c867157e7c3b3962ab4beb8a01e182965d",
      "parents": [
        "7f9815f09dc201f2205981c11fadcf82a9e3cc42"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Sat Jul 03 17:45:36 2010 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:24:03 2010 +0200"
      },
      "message": "ps3disk: stop using q-\u003eprepare_flush_fn\n\nREQ_FLUSH flag enables us to kill ps3disk_prepare_flush().\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "7f9815f09dc201f2205981c11fadcf82a9e3cc42",
      "tree": "ffc8ca31584e269a87d0ebbcac16f8b5b1b763ff",
      "parents": [
        "90467c294aba7f911bdae72ed86995cf1de4d364"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Sat Jul 03 17:45:35 2010 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:24:00 2010 +0200"
      },
      "message": "osdblk: stop using q-\u003eprepare_flush_fn\n\nuse REQ_FLUSH flag instead.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    }
  ],
  "next": "90467c294aba7f911bdae72ed86995cf1de4d364"
}
