)]}'
{
  "log": [
    {
      "commit": "28f4197e5d4707311febeec8a0eb97cb5fd93c97",
      "tree": "9f7c5808e0c069b449b67856207c5ee4f740bd34",
      "parents": [
        "713b686494a577b3c4f4f9f585a4705fc30d51c2"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Jun 01 12:23:18 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Jun 01 12:23:18 2010 +0200"
      },
      "message": "block: disable preemption before using sched_clock()\n\nCommit 9195291e5f05e01d67f9a09c756b8aca8f009089 added calls to\nsched_clock() from preemptible code. sched_clock() is both the\nwrong interface AND cannot be called without preempt disabled.\n\nApply a temporary fix to get rid of the warnings, a real patch\nis in the works.\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "713b686494a577b3c4f4f9f585a4705fc30d51c2",
      "tree": "3b7fa639a3b1bf1a6addd0d317558ca66bf9dd6c",
      "parents": [
        "099c5c310e9744bd0654881bb55c137051228e56"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Tue Jun 01 12:17:48 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Jun 01 12:17:48 2010 +0200"
      },
      "message": "cciss: call BUG() earlier\n\nI moved the range check after the increment.  The current code would\nwrite past the end of the array once before calling BUG().\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "099c5c310e9744bd0654881bb55c137051228e56",
      "tree": "819e89bc3187d231cd0c82025ff8924152357099",
      "parents": [
        "2a0ab2cd73c26835e635ed4e3868f983519048fb"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Thu May 27 13:46:35 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Jun 01 11:12:28 2010 +0200"
      },
      "message": "Preparing 8.3.8rc2\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": "2a0ab2cd73c26835e635ed4e3868f983519048fb",
      "tree": "3809dc43507fc168d1982b460527232255bb9bde",
      "parents": [
        "7383506c87237dbd627f0b8b72b50117f25c5ca2"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 26 17:59:55 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Jun 01 11:12:27 2010 +0200"
      },
      "message": "drbd: Reduce verbosity\n\nThe \"Local READ/WRITE failed\" messages are too verbose.\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": "7383506c87237dbd627f0b8b72b50117f25c5ca2",
      "tree": "aa4a84c35452398547b021f75861bf9e0b4581e2",
      "parents": [
        "d255e5ff5fc6cc6c60dd014d1261448a7bbc8134"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu May 27 11:51:56 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Jun 01 11:12:27 2010 +0200"
      },
      "message": "drbd: use drbd specific ratelimit instead of global printk_ratelimit\n\nusing the global printk_ratelimit() may mask other messages.\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": "d255e5ff5fc6cc6c60dd014d1261448a7bbc8134",
      "tree": "af933be5ddb81b1e47be2f91ff558c5c792f2f0f",
      "parents": [
        "32fa7e91f923d8b2578c42016ff3a94efc9968a2"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Thu May 27 09:45:45 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Jun 01 11:12:27 2010 +0200"
      },
      "message": "drbd: fix hang on local read errors while disconnected\n\n\"canceled\" w_read_retry_remote never completed, if they have been\ncanceled after drbd_disconnect connection teardown cleanup has already\nrun (or we are currently not connected anyways).\n\nFixed by not queueing a remote retry if we already know it won\u0027t work\n(pdsk not uptodate), and cleanup ourselves on \"cancel\", in case we hit a\nrace with drbd_disconnect.\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": "32fa7e91f923d8b2578c42016ff3a94efc9968a2",
      "tree": "29195d8636831d92d421d816ff1d9961b059908f",
      "parents": [
        "039e1fb65496636778e24c881a5e58ed7c39fbb3"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Wed May 26 17:13:18 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Jun 01 11:12:27 2010 +0200"
      },
      "message": "drbd: Removed the now empty w_io_error() function\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": "039e1fb65496636778e24c881a5e58ed7c39fbb3",
      "tree": "2c567ca6a2fa65d2e61f0919b6321dc12a99b6a3",
      "parents": [
        "ba11ad9a3b9dd2dbb9c6686ea9d41a9a77d94327"
      ],
      "author": {
        "name": "Andrea Gelmini",
        "email": "andrea.gelmini@gelma.net",
        "time": "Sun May 23 21:48:13 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Jun 01 11:12:27 2010 +0200"
      },
      "message": "drbd: removed duplicated #includes\n\ndrbd/drbd_receiver.c: linux/mm.h is included more than once.\n\nSigned-off-by: Andrea Gelmini \u003candrea.gelmini@gelma.net\u003e\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": "ba11ad9a3b9dd2dbb9c6686ea9d41a9a77d94327",
      "tree": "d1aa2d5a2673a063e7cc8b9a4bba5305c608f6a1",
      "parents": [
        "5dbf1673383f2f1554f0634fdfc390d59dc2c7d6"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Tue May 25 16:26:16 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Jun 01 11:12:27 2010 +0200"
      },
      "message": "drbd: improve usage of MSG_MORE\n\nIt seems to improve performance if we allow the \"p_data\" header in its\nown frame (no MSG_MORE), but sendpage all but the last page with MSG_MORE.\nThis is also in preparation of a later zero copy receive implementation.\n\nSuggested by Eduard.Guzovsky@stratus.com on drbd-dev.\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": "5dbf1673383f2f1554f0634fdfc390d59dc2c7d6",
      "tree": "a63a9ed3528b35f943100072b88add3fca72dbaf",
      "parents": [
        "344fa462e3246bd102059ccc3c59deef416676dd"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Tue May 25 16:18:01 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Jun 01 11:12:27 2010 +0200"
      },
      "message": "drbd: need to set socket bufsize early to take effect\n\nquoting tcp(7):\n    On individual connections, the socket buffer size must be set prior to the\n    listen(2) or connect(2) calls in order to have it take effect.\n\nThis adds a wrapper to do so, and uses it appropriately.\nImproves performance in certain situations.\n\nNote that because we cannot easily determine which socket will be\n\"meta\" and wich \"data\" (bulk) socket, we adjust both sockets.\nPreviously, DRBD only adjusted the bufsizes of the \"data\" socket.\n\nThanks again to Eduard.Guzovsky@stratus.com.\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": "344fa462e3246bd102059ccc3c59deef416676dd",
      "tree": "1e66ef2ce11d25214004468d16bac6b7a1dc24c6",
      "parents": [
        "2c8d196759054b632788633b20e39167df36041d"
      ],
      "author": {
        "name": "Lars Ellenberg",
        "email": "lars.ellenberg@linbit.com",
        "time": "Tue May 25 14:23:57 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Jun 01 11:12:27 2010 +0200"
      },
      "message": "drbd: improve network latency, TCP_QUICKACK\n\nOn Thu, Apr 29, 2010 at 04:00:50PM -0400, Eduard.Guzovsky@stratus.com\n wrote on drbd-dev@lists.linbit.com\n Subject: [Drbd-dev] DRBD small synchronous writes performance improvements\n\n\u003e 1. TCP_QUICKACK option is set incorrectly. The goal was force TCP to\n\u003e send and ACK as a  \"one time\" event.  Instead the code permanently sets\n\u003e connection in the QUICKACK mode.\n\nHe is right, we actually want to use an even val with TCP_QUICKACK.\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": "2c8d196759054b632788633b20e39167df36041d",
      "tree": "d4e5016e6d796b748f43ff7fca21045c6c890a5b",
      "parents": [
        "b7c335713ea130d707c22d7f7c57a8eca75ded7e"
      ],
      "author": {
        "name": "Philipp Reisner",
        "email": "philipp.reisner@linbit.com",
        "time": "Tue May 25 14:32:03 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Jun 01 11:12:26 2010 +0200"
      },
      "message": "drbd: Revert \"drbd: Create new current UUID as late as possible\"\n\nThe late-UUID writing is delayed until the next release.\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": "b7c335713ea130d707c22d7f7c57a8eca75ded7e",
      "tree": "302213166522d0af8bcb01417b69cd7bd445cb49",
      "parents": [
        "0e3c9a2284f5417f196e327c254d0b84c9ee8929"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed May 26 15:41:14 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jun 01 11:09:20 2010 +0200"
      },
      "message": "brd: support discard\n\nSupport discard requests in brd by zeroing or deleting the underlying backing\npages. This is simply to help with testing and documentation nature of\nbrd code.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "0e3c9a2284f5417f196e327c254d0b84c9ee8929",
      "tree": "e3fb40ebe7d042b4b3c1042bc7f2edaf7fb6eee0",
      "parents": [
        "f17625b318d9b151e7bd41e31223e9d89b2aaa77"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Jun 01 11:08:43 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Jun 01 11:08:43 2010 +0200"
      },
      "message": "Revert \"writeback: fix WB_SYNC_NONE writeback from umount\"\n\nThis reverts commit e913fc825dc685a444cb4c1d0f9d32f372f59861.\n\nWe are investigating a hang associated with the WB_SYNC_NONE changes,\nso revert them for now.\n\nConflicts:\n\n\tfs/fs-writeback.c\n\tmm/page-writeback.c\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "f17625b318d9b151e7bd41e31223e9d89b2aaa77",
      "tree": "6b4f04ff35d9bfcc73fc4d3f08120347b0ab4706",
      "parents": [
        "0ae0b5d0557264bad65e22f1e2da4b83a02c4535"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jun 01 11:05:22 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jun 01 11:05:22 2010 +0200"
      },
      "message": "Revert \"writeback: ensure that WB_SYNC_NONE writeback with sb pinned is sync\"\n\nThis reverts commit 7c8a3554c683f512dbcee26faedb42e4c05f12fa.\n\nWe are investigating a hang associated with the WB_SYNC_NONE changes,\nso revert them for now.\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "0ae0b5d0557264bad65e22f1e2da4b83a02c4535",
      "tree": "f2834779f1cadae37376e72c208471f657f0e358",
      "parents": [
        "d02a2c077fb81f3224c770be62a318165b23b486"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue May 25 10:25:26 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue May 25 10:25:26 2010 +0200"
      },
      "message": "fs/splice.c: fix mapping_gfp_mask usage\n\nmapping_gfp_mask() is not supposed to store allocation contex details,\nonly page location details.  So mapping_gfp_mask should be applied to the\npagecache page allocation, wheras normal (kernel mapped) memory should be\nused for surrounding allocations such as radix-tree nodes allocated by\nadd_to_page_cache.  Context modifiers should be applied on a per-callsite\nbasis.\n\nSo change splice to follow this convention (which is followed in similar\ncode patterns in core code).\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "d02a2c077fb81f3224c770be62a318165b23b486",
      "tree": "74696554d35fe81d52236d4059ef2af51d870d84",
      "parents": [
        "b9598db3401282bb27b4aef77e3eee12015f7f29"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Tue May 25 10:16:53 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue May 25 10:17:26 2010 +0200"
      },
      "message": "cfq-iosched: fix an oops caused by slab leak\n\nI got below oops when unloading cfq-iosched. Considering scenario:\nqueue A merge to B, C merge to D and B will be merged to D. Before B is merged\nto D, we do split B. We should put B\u0027s reference for D.\n\n[  807.768536] \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[  807.768539] BUG cfq_queue: Objects remaining on kmem_cache_close()\n[  807.768541] -----------------------------------------------------------------------------\n[  807.768543]\n[  807.768546] INFO: Slab 0xffffea0003e6b4e0 objects\u003d26 used\u003d1 fp\u003d0xffff88011d584fd8 flags\u003d0x200000000004082\n[  807.768550] Pid: 5946, comm: rmmod Tainted: G        W   2.6.34-07097-gf4b87de-dirty #724\n[  807.768552] Call Trace:\n[  807.768560]  [\u003cffffffff81104e8d\u003e] slab_err+0x8f/0x9d\n[  807.768564]  [\u003cffffffff811059e1\u003e] ? flush_cpu_slab+0x0/0x93\n[  807.768569]  [\u003cffffffff8164be52\u003e] ? add_preempt_count+0xe/0xca\n[  807.768572]  [\u003cffffffff8164bd9c\u003e] ? sub_preempt_count+0xe/0xb6\n[  807.768577]  [\u003cffffffff81648871\u003e] ? _raw_spin_unlock+0x15/0x30\n[  807.768580]  [\u003cffffffff8164bd9c\u003e] ? sub_preempt_count+0xe/0xb6\n[  807.768584]  [\u003cffffffff811061bc\u003e] list_slab_objects+0x9b/0x19f\n[  807.768588]  [\u003cffffffff8164bf0a\u003e] ? add_preempt_count+0xc6/0xca\n[  807.768591]  [\u003cffffffff81109e27\u003e] kmem_cache_destroy+0x13f/0x21d\n[  807.768597]  [\u003cffffffffa000ff13\u003e] cfq_slab_kill+0x1a/0x43 [cfq_iosched]\n[  807.768601]  [\u003cffffffffa000ffcf\u003e] cfq_exit+0x93/0x9e [cfq_iosched]\n[  807.768606]  [\u003cffffffff810973a2\u003e] sys_delete_module+0x1b1/0x219\n[  807.768612]  [\u003cffffffff8102fb5b\u003e] system_call_fastpath+0x16/0x1b\n[  807.768618] INFO: Object 0xffff88011d584618 @offset\u003d1560\n[  807.768622] INFO: Allocated in cfq_get_queue+0x11e/0x274 [cfq_iosched] age\u003d7173 cpu\u003d1 pid\u003d5496\n[  807.768626] \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nCc: stable@kernel.org\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "b9598db3401282bb27b4aef77e3eee12015f7f29",
      "tree": "614f6d8df9613905ab8625c0985d0c0c96cfb39c",
      "parents": [
        "0191f8697bbdfefcd36e7b8dc3eeddfe82893e4b"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 24 19:34:43 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 24 19:34:43 2010 +0200"
      },
      "message": "pipe: make F_{GET,SET}PIPE_SZ deal with byte sizes\n\nInstead of requiring an exact number of pages as the argument and\nreturn value, change the API to deal with number of bytes instead.\n\nThis also relaxes the requirement that the passed in size must\nresult in a power-of-2 page array size. Round up to the nearest\npower-of-2 automatically and return the resulting size of the pipe\non success.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "0191f8697bbdfefcd36e7b8dc3eeddfe82893e4b",
      "tree": "2be5e7911e227b46d2e7b6ba3db9795ede71d8f6",
      "parents": [
        "e36f724b4ae70e443a7d152929b60059cbfa1a26"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 24 19:15:57 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 24 19:15:57 2010 +0200"
      },
      "message": "pipe: F_SETPIPE_SZ should return -EPERM for non-root\n\nIf the passed in size is larger than what has been set as the\nsystem wide limit and the user is not root, we want to return\npermission denied (not invalid value).\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "e36f724b4ae70e443a7d152929b60059cbfa1a26",
      "tree": "9eed1cf285d4693c1e239315f629a1a7a81df4e9",
      "parents": [
        "80b15c7389caa81a3860f9fc2ee47ec0ea572a63"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Mon May 24 09:07:32 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 24 09:07:32 2010 +0200"
      },
      "message": "block: Adjust elv_iosched_show to return \"none\" for bio-based DM\n\nBio-based DM doesn\u0027t use an elevator (queue is !blk_queue_stackable()).\n\nLonger-term DM will not allocate an elevator for bio-based DM.  But even\nthen there will be small potential for an elevator to be allocated for\na request-based DM table only to have a bio-based table be loaded in the\nend.\n\nDisplaying \"none\" for bio-based DM will help avoid user confusion.\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "80b15c7389caa81a3860f9fc2ee47ec0ea572a63",
      "tree": "469486c0371134b18f32741be35bce59f783d864",
      "parents": [
        "bca4b914b5da3d8e7b9b647f620b71dc85c0c394"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Thu May 20 23:21:41 2010 +0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 24 09:06:59 2010 +0200"
      },
      "message": "cfq-iosched: compact io_context radix_tree\n\nUse small consequent indexes as radix tree keys instead of sparse cfqd address.\n\nThis change will reduce radix tree depth from 11 (6 for 32-bit hosts)\nto 1 if host have \u003c\u003d64 disks under cfq control, or to 0 if there only one disk.\nSo, this patch save 10*560 bytes for each process (5*296 for 32-bit hosts)\n\nFor each cfqd allocate cic index from ida.\nTo unlink dead cic from tree without cfqd access store index into -\u003ekey.\n(bit 0 -- dead mark, bits 1..30 -- index: ida produce id in range 0..2^31-1)\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "bca4b914b5da3d8e7b9b647f620b71dc85c0c394",
      "tree": "ed9c468396ec6ca6a04da9f7fbc341eee95e3930",
      "parents": [
        "f4b87dee923342505e1ddba8d34ce9de33e75050"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Thu May 20 23:21:34 2010 +0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 24 09:06:59 2010 +0200"
      },
      "message": "cfq-iosched: remove dead_key from cfq_io_context\n\nRemove -\u003edead_key field from cfq_io_context to shrink its size to 128 bytes.\n(64 bytes for 32-bit hosts)\n\nUse lower bit in -\u003ekey as dead-mark, instead of moving key to separate field.\nAfter this for dead cfq_io_context we got cic-\u003ekey !\u003d cfqd automatically.\nThus, io_context\u0027s last-hit cache should work without changing.\n\nNow to check -\u003ekey for non-dead state compare it with cfqd,\ninstead of checking -\u003ekey for non-null value as it was before.\n\nPlus remove obsolete race protection in cfq_cic_lookup.\nThis race gone after v2.6.24-1728-g4ac845a\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "f4b87dee923342505e1ddba8d34ce9de33e75050",
      "tree": "8940649c70ce9cee1186e602d7ad81de06bbbcec",
      "parents": [
        "2faa4cf76e7d229016240b79b50a43d81f458323"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Fri May 21 12:44:47 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 20:30:33 2010 -0700"
      },
      "message": "fbmem: avoid printk format warning with 32-bit resources\n\nFix printk formats:\n\n  drivers/video/fbmem.c: In function \u0027fb_do_apertures_overlap\u0027:\n  drivers/video/fbmem.c:1494: warning: format \u0027%llx\u0027 expects type \u0027long long unsigned int\u0027, but argument 2 has type \u0027resource_size_t\u0027\n  drivers/video/fbmem.c:1494: warning: format \u0027%llx\u0027 expects type \u0027long long unsigned int\u0027, but argument 3 has type \u0027resource_size_t\u0027\n  drivers/video/fbmem.c:1494: warning: format \u0027%llx\u0027 expects type \u0027long long unsigned int\u0027, but argument 4 has type \u0027resource_size_t\u0027\n  drivers/video/fbmem.c:1494: warning: format \u0027%llx\u0027 expects type \u0027long long unsigned int\u0027, but argument 5 has type \u0027resource_size_t\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2faa4cf76e7d229016240b79b50a43d81f458323",
      "tree": "587b7ccc902ef1f6946e57a6ccdbb4fa7e16bf41",
      "parents": [
        "e8bebe2f71d26871b0970ae1d9cf0ed3cdd9569d"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri May 21 20:16:50 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 20:29:10 2010 -0700"
      },
      "message": "linux/elfcore.h: hide kernel functions\n\nThe declarations for elf_core_extra_phdrs() et al got added on the\nwrong side of #ifdef __KERNEL__ in linux/elfcore.h so they leak into\nthe user header copy and we get a warning at build time about it.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e8bebe2f71d26871b0970ae1d9cf0ed3cdd9569d",
      "tree": "c0d82cbd11daaf579b74121c6641d58947091094",
      "parents": [
        "6109e2ce2600e2db26cd0424bb9c6ed019723288",
        "82f3952c02add60b15eea9151d4d99b6b82066c6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 19:37:45 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 19:37:45 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (69 commits)\n  fix handling of offsets in cris eeprom.c, get rid of fake on-stack files\n  get rid of home-grown mutex in cris eeprom.c\n  switch ecryptfs_write() to struct inode *, kill on-stack fake files\n  switch ecryptfs_get_locked_page() to struct inode *\n  simplify access to ecryptfs inodes in -\u003ereadpage() and friends\n  AFS: Don\u0027t put struct file on the stack\n  Ban ecryptfs over ecryptfs\n  logfs: replace inode uid,gid,mode initialization with helper function\n  ufs: replace inode uid,gid,mode initialization with helper function\n  udf: replace inode uid,gid,mode init with helper\n  ubifs: replace inode uid,gid,mode initialization with helper function\n  sysv: replace inode uid,gid,mode initialization with helper function\n  reiserfs: replace inode uid,gid,mode initialization with helper function\n  ramfs: replace inode uid,gid,mode initialization with helper function\n  omfs: replace inode uid,gid,mode initialization with helper function\n  bfs: replace inode uid,gid,mode initialization with helper function\n  ocfs2: replace inode uid,gid,mode initialization with helper function\n  nilfs2: replace inode uid,gid,mode initialization with helper function\n  minix: replace inode uid,gid,mode init with helper\n  ext4: replace inode uid,gid,mode init with helper\n  ...\n\nTrivial conflict in fs/fs-writeback.c (mark bitfields unsigned)\n"
    },
    {
      "commit": "6109e2ce2600e2db26cd0424bb9c6ed019723288",
      "tree": "54b5d347bf12e0a987edfb52f287399f748a9a38",
      "parents": [
        "0961d6581c870850342ad6ea25263763433d666f",
        "ac81860ea073daed50246af54db706c6e491f240"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 18:58:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 18:58:52 2010 -0700"
      },
      "message": "Merge branch \u0027linux-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6\n\n* \u0027linux-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6: (36 commits)\n  PCI: hotplug: pciehp: Removed check for hotplug of display devices\n  PCI: read memory ranges out of Broadcom CNB20LE host bridge\n  PCI: Allow manual resource allocation for PCI hotplug bridges\n  x86/PCI: make ACPI MCFG reserved error messages ACPI specific\n  PCI hotplug: Use kmemdup\n  PM/PCI: Update PCI power management documentation\n  PCI: output FW warning in pci_read/write_vpd\n  PCI: fix typos pci_device_dis/enable to pci_dis/enable_device in comments\n  PCI quirks: disable msi on AMD rs4xx internal gfx bridges\n  PCI: Disable MSI for MCP55 on P5N32-E SLI\n  x86/PCI: irq and pci_ids patch for additional Intel Cougar Point DeviceIDs\n  PCI: aerdrv: trivial cleanup for aerdrv_core.c\n  PCI: aerdrv: trivial cleanup for aerdrv.c\n  PCI: aerdrv: introduce default_downstream_reset_link\n  PCI: aerdrv: rework find_aer_service\n  PCI: aerdrv: remove is_downstream\n  PCI: aerdrv: remove magical ROOT_ERR_STATUS_MASKS\n  PCI: aerdrv: redefine PCI_ERR_ROOT_*_SRC\n  PCI: aerdrv: rework do_recovery\n  PCI: aerdrv: rework get_e_source()\n  ...\n"
    },
    {
      "commit": "0961d6581c870850342ad6ea25263763433d666f",
      "tree": "371c61fd7f621397907983031003e784a040402e",
      "parents": [
        "1756ac3d3c41341297ea25b818b7fce505bb2a9a",
        "fd0c8894893cba722bdea12de25b49f980795d06"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 17:25:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 17:25:01 2010 -0700"
      },
      "message": "Merge git://git.infradead.org/iommu-2.6\n\n* git://git.infradead.org/iommu-2.6:\n  intel-iommu: Set a more specific taint flag for invalid BIOS DMAR tables\n  intel-iommu: Combine the BIOS DMAR table warning messages\n  panic: Add taint flag TAINT_FIRMWARE_WORKAROUND (\u0027I\u0027)\n  panic: Allow warnings to set different taint flags\n  intel-iommu: intel_iommu_map_range failed at very end of address space\n  intel-iommu: errors with smaller iommu widths\n  intel-iommu: Fix boot inside 64bit virtualbox with io-apic disabled\n  intel-iommu: use physfn to search drhd for VF\n  intel-iommu: Print out iommu seq_id\n  intel-iommu: Don\u0027t complain that ACPI_DMAR_SCOPE_TYPE_IOAPIC is not supported\n  intel-iommu: Avoid global flushes with caching mode.\n  intel-iommu: Use correct domain ID when caching mode is enabled\n  intel-iommu mistakenly uses offset_pfn when caching mode is enabled\n  intel-iommu: use for_each_set_bit()\n  intel-iommu: Fix section mismatch dmar_ir_support() uses dmar_tbl.\n"
    },
    {
      "commit": "1756ac3d3c41341297ea25b818b7fce505bb2a9a",
      "tree": "96382220afbb82fd5c576c4c08b3c3e13282851f",
      "parents": [
        "98edb6ca4174f17a64890a02f44c211c8b44fb3c",
        "0643e4c6e4fd67778fa886a89e6ec2320e0ff4d3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 17:22:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 17:22:52 2010 -0700"
      },
      "message": "Merge branch \u0027virtio\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus\n\n* \u0027virtio\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus: (27 commits)\n  drivers/char: Eliminate use after free\n  virtio: console: Accept console size along with resize control message\n  virtio: console: Store each console\u0027s size in the console structure\n  virtio: console: Resize console port 0 on config intr only if multiport is off\n  virtio: console: Add support for nonblocking write()s\n  virtio: console: Rename wait_is_over() to will_read_block()\n  virtio: console: Don\u0027t always create a port 0 if using multiport\n  virtio: console: Use a control message to add ports\n  virtio: console: Move code around for future patches\n  virtio: console: Remove config work handler\n  virtio: console: Don\u0027t call hvc_remove() on unplugging console ports\n  virtio: console: Return -EPIPE to hvc_console if we lost the connection\n  virtio: console: Let host know of port or device add failures\n  virtio: console: Add a __send_control_msg() that can send messages without a valid port\n  virtio: Revert \"virtio: disable multiport console support.\"\n  virtio: add_buf_gfp\n  trans_virtio: use virtqueue_xxx wrappers\n  virtio-rng: use virtqueue_xxx wrappers\n  virtio_ring: remove a level of indirection\n  virtio_net: use virtqueue_xxx wrappers\n  ...\n\nFix up conflicts in drivers/net/virtio_net.c due to new virtqueue_xxx\nwrappers changes conflicting with some other cleanups.\n"
    },
    {
      "commit": "98edb6ca4174f17a64890a02f44c211c8b44fb3c",
      "tree": "033bc5f7da410046d28dd1cefcd2d63cda33d25b",
      "parents": [
        "a8251096b427283c47e7d8f9568be6b388dd68ec",
        "8fbf065d625617bbbf6b72d5f78f84ad13c8b547"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 17:16:21 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 17:16:21 2010 -0700"
      },
      "message": "Merge branch \u0027kvm-updates/2.6.35\u0027 of git://git.kernel.org/pub/scm/virt/kvm/kvm\n\n* \u0027kvm-updates/2.6.35\u0027 of git://git.kernel.org/pub/scm/virt/kvm/kvm: (269 commits)\n  KVM: x86: Add missing locking to arch specific vcpu ioctls\n  KVM: PPC: Add missing vcpu_load()/vcpu_put() in vcpu ioctls\n  KVM: MMU: Segregate shadow pages with different cr0.wp\n  KVM: x86: Check LMA bit before set_efer\n  KVM: Don\u0027t allow lmsw to clear cr0.pe\n  KVM: Add cpuid.txt file\n  KVM: x86: Tell the guest we\u0027ll warn it about tsc stability\n  x86, paravirt: don\u0027t compute pvclock adjustments if we trust the tsc\n  x86: KVM guest: Try using new kvm clock msrs\n  KVM: x86: export paravirtual cpuid flags in KVM_GET_SUPPORTED_CPUID\n  KVM: x86: add new KVMCLOCK cpuid feature\n  KVM: x86: change msr numbers for kvmclock\n  x86, paravirt: Add a global synchronization point for pvclock\n  x86, paravirt: Enable pvclock flags in vcpu_time_info structure\n  KVM: x86: Inject #GP with the right rip on efer writes\n  KVM: SVM: Don\u0027t allow nested guest to VMMCALL into host\n  KVM: x86: Fix exception reinjection forced to true\n  KVM: Fix wallclock version writing race\n  KVM: MMU: Don\u0027t read pdptrs with mmu spinlock held in mmu_alloc_roots\n  KVM: VMX: enable VMXON check with SMX enabled (Intel TXT)\n  ...\n"
    },
    {
      "commit": "a8251096b427283c47e7d8f9568be6b388dd68ec",
      "tree": "edc9747e30b4b4413aa99acfbd3104d81b1c303b",
      "parents": [
        "27a3353a4525afe984f3b793681869d636136b69",
        "480b02df3aa9f07d1c7df0cd8be7a5ca73893455"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 17:15:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 17:15:44 2010 -0700"
      },
      "message": "Merge branch \u0027modules\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus\n\n* \u0027modules\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:\n  module: drop the lock while waiting for module to complete initialization.\n  MODULE_DEVICE_TABLE(isapnp, ...) does nothing\n  hisax_fcpcipnp: fix broken isapnp device table.\n  isapnp: move definitions to mod_devicetable.h so file2alias can reach them.\n"
    },
    {
      "commit": "27a3353a4525afe984f3b793681869d636136b69",
      "tree": "6c89654b6203b5b3196c128ced8a6b6c8b60b58a",
      "parents": [
        "6f68fbaafbaa033205cd131d3e1f3c4b914e9b78",
        "785cfc0324b9321efb85b0935af2b474d615daa1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 17:13:24 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 17:13:24 2010 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mjg59/platform-drivers-x86\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mjg59/platform-drivers-x86: (32 commits)\n  Move N014, N051 and CR620 dmi information to load scm dmi table\n  drivers/platform/x86/eeepc-wmi.c: fix build warning\n  X86 platfrom wmi: Add debug facility to dump WMI data in a readable way\n  X86 platform wmi: Also log GUID string when an event happens and debug is set\n  X86 platform wmi: Introduce debug param to log all WMI events\n  Clean up all objects used by scm model when driver initial fail or exit\n  msi-laptop: fix up some coding style issues found by checkpatch\n  msi-laptop: Add i8042 filter to sync sw state with BIOS when function key pressed\n  msi-laptop: Set rfkill init state when msi-laptop intiial\n  msi-laptop: Add MSI CR620 notebook dmi information to scm models table\n  msi-laptop: Add N014 N051 dmi information to scm models table\n  drivers/platform/x86: Use kmemdup\n  drivers/platform/x86: Use kzalloc\n  drivers/platform/x86: Clarify the MRST IPC driver description slightly\n  eeepc-wmi: depends on BACKLIGHT_CLASS_DEVICE\n  IPC driver for Intel Mobile Internet Device (MID) platforms\n  classmate-laptop: Add RFKILL support.\n  thinkpad-acpi: document backlight level writeback at driver init\n  thinkpad-acpi: clean up ACPI handles handling\n  thinkpad-acpi: don\u0027t depend on led_path for led firmware type (v2)\n  ...\n"
    },
    {
      "commit": "6f68fbaafbaa033205cd131d3e1f3c4b914e9b78",
      "tree": "56b434496064ed170f94381e3ec4c6c340b71376",
      "parents": [
        "6e4513972a5ad28517477d21f301a02ac7a0df76",
        "0b28330e39bbe0ffee4c56b09fc415fcec595ea3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 17:05:46 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 17:05:46 2010 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx:\n  DMAENGINE: extend the control command to include an arg\n  async_tx: trim dma_async_tx_descriptor in \u0027no channel switch\u0027 case\n  DMAENGINE: DMA40 fix for allocation of logical channel 0\n  DMAENGINE: DMA40 support paused channel status\n  dmaengine: mpc512x: Use resource_size\n  DMA ENGINE: Do not reset \u0027private\u0027 of channel\n  ioat: Remove duplicated devm_kzalloc() calls for ioatdma_device\n  ioat3: disable cacheline-unaligned transfers for raid operations\n  ioat2,3: convert to producer/consumer locking\n  ioat: convert to circ_buf\n  DMAENGINE: Support for ST-Ericssons DMA40 block v3\n  async_tx: use of kzalloc/kfree requires the include of slab.h\n  dmaengine: provide helper for setting txstate\n  DMAENGINE: generic channel status v2\n  DMAENGINE: generic slave control v2\n  dma: timb-dma: Update comment and fix compiler warning\n  dma: Add timb-dma\n  DMAENGINE: COH 901 318 fix bytesleft\n  DMAENGINE: COH 901 318 rename confusing vars\n"
    },
    {
      "commit": "6e4513972a5ad28517477d21f301a02ac7a0df76",
      "tree": "c88abe8297ea3971f722e0787842fb790d14767a",
      "parents": [
        "d79df0b1eda0099a22cbcece01ce5e7d222450de",
        "19fdb9eefb21b72edbc365b838502780c392bad6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 15:49:14 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 15:49:14 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://neil.brown.name/md\n\n* \u0027for-linus\u0027 of git://neil.brown.name/md: (45 commits)\n  md: don\u0027t insist on valid event count for spare devices.\n  md: simplify updating of event count to sometimes avoid updating spares.\n  md/raid6: Fix raid-6 read-error correction in degraded state\n  md: restore ability of spare drives to spin down.\n  md: Fix read balancing in RAID1 and RAID10 on drives \u003e 2TB\n  md/linear: standardise all printk messages\n  md/raid0: tidy up printk messages.\n  md/raid10: tidy up printk messages.\n  md/raid1: improve printk messages\n  md/raid5: improve consistency of error messages.\n  md: remove EXPERIMENTAL designation from RAID10\n  md: allow integers to be passed to md/level\n  md: notify mdstat waiters of level change\n  md/raid4: permit raid0 takeover\n  md/raid1: delay reads that could overtake behind-writes.\n  md/raid1: fix confusing \u0027redirect sector\u0027 message.\n  md: don\u0027t unregister the thread in mddev_suspend\n  md: factor out init code for an mddev\n  md: pass mddev to make_request functions rather than request_queue\n  md: call md_stop_writes from md_stop\n  ...\n"
    },
    {
      "commit": "19fdb9eefb21b72edbc365b838502780c392bad6",
      "tree": "deae04c48532d6eab64ed4b0396737bb854b5506",
      "parents": [
        "be6800a73aa2f3dc14744c3b80e676d189789f04",
        "3ff195b011d7decf501a4d55aeed312731094796"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sat May 22 08:31:36 2010 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sat May 22 08:31:36 2010 +1000"
      },
      "message": "Merge commit \u00273ff195b011d7decf501a4d55aeed312731094796\u0027 into for-linus\n\nConflicts:\n\tdrivers/md/md.c\n\n- Resolved conflict in md_update_sb\n- Added extra \u0027NULL\u0027 arg to new instance of sysfs_get_dirent.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "82f3952c02add60b15eea9151d4d99b6b82066c6",
      "tree": "31a30c82aaea4472df7f40d98619cb3ae8016816",
      "parents": [
        "4f0447b8184acb1d21b0fd71683d72ef2b83167b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 11:26:35 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:29 2010 -0400"
      },
      "message": "fix handling of offsets in cris eeprom.c, get rid of fake on-stack files\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4f0447b8184acb1d21b0fd71683d72ef2b83167b",
      "tree": "4a6e07c4211f0c88f246d3c459b080b99078adcb",
      "parents": [
        "48c1e44aceca577aa35be509714bd9ec4b4c3837"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 11:19:18 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:29 2010 -0400"
      },
      "message": "get rid of home-grown mutex in cris eeprom.c\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "48c1e44aceca577aa35be509714bd9ec4b4c3837",
      "tree": "5fe7c1f352e21bf1d58763cb2f4158d94e080923",
      "parents": [
        "02bd97997a07a89cb9311c7f00864cfc785c37f9"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 11:09:58 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:28 2010 -0400"
      },
      "message": "switch ecryptfs_write() to struct inode *, kill on-stack fake files\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "02bd97997a07a89cb9311c7f00864cfc785c37f9",
      "tree": "c962381bd79b8611bc4d3b3e369f2ce8fe3c6174",
      "parents": [
        "bef5bc2464517cbbf8f85f09b5ade46904afec9a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 11:02:14 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:28 2010 -0400"
      },
      "message": "switch ecryptfs_get_locked_page() to struct inode *\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bef5bc2464517cbbf8f85f09b5ade46904afec9a",
      "tree": "34a41e84884e431647af4535147e4fab91cbf88e",
      "parents": [
        "f6d335c08df48b318187a087c9c38ba3d416e115"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 10:56:12 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:28 2010 -0400"
      },
      "message": "simplify access to ecryptfs inodes in -\u003ereadpage() and friends\n\nwe can get to them from page-\u003emapping-\u003ehost, no need to mess with\nfile.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f6d335c08df48b318187a087c9c38ba3d416e115",
      "tree": "ccee5ad0c46fea4c34d435d5d869f43394dd9a81",
      "parents": [
        "4403158ba295c8e36f6736b1bb12d0f7e1923dac"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Fri May 21 15:27:09 2010 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:28 2010 -0400"
      },
      "message": "AFS: Don\u0027t put struct file on the stack\n\nDon\u0027t put struct file on the stack as it takes up quite a lot of space\nand violates lifetime rules for struct file.\n\nRather than calling afs_readpage() indirectly from the directory routines by\nway of read_mapping_page(), split afs_readpage() to have afs_page_filler()\nthat\u0027s given a key instead of a file and call read_cache_page(), specifying the\nnew function directly.  Use it in afs_readpages() as well.\n\nAlso make use of this in afs_mntpt_check_symlink() too for the same reason.\n\nReported-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "4403158ba295c8e36f6736b1bb12d0f7e1923dac",
      "tree": "a85c276c7ba414ecc65a93488dcb2ef7972779c0",
      "parents": [
        "ab9a79b9669c28734a69fa9384df6fb93152e53a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon May 17 00:59:46 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:27 2010 -0400"
      },
      "message": "Ban ecryptfs over ecryptfs\n\nThis is a seriously simplified patch from Eric Sandeen; copy of\nrationale follows:\n\u003d\u003d\u003d\n  mounting stacked ecryptfs on ecryptfs has been shown to lead to bugs\n  in testing.  For crypto info in xattr, there is no mechanism for handling\n  this at all, and for normal file headers, we run into other trouble:\n\n  BUG: unable to handle kernel NULL pointer dereference at 0000000000000008\n  IP: [\u003cffffffffa015b0b3\u003e] ecryptfs_d_revalidate+0x43/0xa0 [ecryptfs]\n  ...\n\n  There doesn\u0027t seem to be any good usecase for this, so I\u0027d suggest just\n  disallowing the configuration.\n\n  Based on a patch originally, I believe, from Mike Halcrow.\n\u003d\u003d\u003d\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ab9a79b9669c28734a69fa9384df6fb93152e53a",
      "tree": "588fc95da1d5769eab4b0a70202d3ac17ababc8e",
      "parents": [
        "be8ded5974c69d0d2128a508b0900ef541d0e7da"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat May 15 04:02:54 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:27 2010 -0400"
      },
      "message": "logfs: replace inode uid,gid,mode initialization with helper function\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "be8ded5974c69d0d2128a508b0900ef541d0e7da",
      "tree": "c2aa3cb2ca904c3d89b2e36b3ca0d7d1f0fcc948",
      "parents": [
        "a6c5a0342a95f9c7cf18adef79ca52a35cd5e4da"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:32:23 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:27 2010 -0400"
      },
      "message": "ufs: replace inode uid,gid,mode initialization with helper function\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a6c5a0342a95f9c7cf18adef79ca52a35cd5e4da",
      "tree": "b653744e21077ebaf8ea0d7d9deff828e30d42de",
      "parents": [
        "abf5d08acaca942b49daf0ed87a9deddc94b183a"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:32:22 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:27 2010 -0400"
      },
      "message": "udf: replace inode uid,gid,mode init with helper\n\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "abf5d08acaca942b49daf0ed87a9deddc94b183a",
      "tree": "5786fc14e4de0c7058f07aa2338594f522a8d4f9",
      "parents": [
        "85640bd9d47f6ad0290558009e9313632a45861b"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:32:21 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:26 2010 -0400"
      },
      "message": "ubifs: replace inode uid,gid,mode initialization with helper function\n\nAcked-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "85640bd9d47f6ad0290558009e9313632a45861b",
      "tree": "469dd09544b668ed0dd5166e339d6d500367b0ad",
      "parents": [
        "04b7ed0d33eee161b223d64f16e1f521a84ace76"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:32:20 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:26 2010 -0400"
      },
      "message": "sysv: replace inode uid,gid,mode initialization with helper function\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "04b7ed0d33eee161b223d64f16e1f521a84ace76",
      "tree": "a01bef0d4329c017f370e1e4ed09f9d965587a5a",
      "parents": [
        "454abafe9d8beb3fe7da06131b3d81d6d352a959"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:32:19 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:26 2010 -0400"
      },
      "message": "reiserfs: replace inode uid,gid,mode initialization with helper function\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "454abafe9d8beb3fe7da06131b3d81d6d352a959",
      "tree": "4be9c50d76aecd2c43959550814fb4337d27c6d9",
      "parents": [
        "6a9e652c88fad648ea088ac07dbc671a9813f75e"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:32:18 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:26 2010 -0400"
      },
      "message": "ramfs: replace inode uid,gid,mode initialization with helper function\n\n- seems what ramfs_get_inode is only locally, make it static.\n[AV: the hell it is; it\u0027s used by shmem, so shmem needed conversion too\nand no, that function can\u0027t be made static]\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6a9e652c88fad648ea088ac07dbc671a9813f75e",
      "tree": "d3462e1e4c24eb12a20dbc65b3d3cda3ce713611",
      "parents": [
        "e6ecdc70fb76490719bf5aa20c35d23c0a392ead"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:32:17 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:25 2010 -0400"
      },
      "message": "omfs: replace inode uid,gid,mode initialization with helper function\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e6ecdc70fb76490719bf5aa20c35d23c0a392ead",
      "tree": "ea43271757d63d2248060f26af5d135ef50ea1d9",
      "parents": [
        "75fe0a2477dab30f00c228f9a4d79009d5677bde"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:31:46 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:25 2010 -0400"
      },
      "message": "bfs: replace inode uid,gid,mode initialization with helper function\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "75fe0a2477dab30f00c228f9a4d79009d5677bde",
      "tree": "d52b2118634196ae6d3d89431acbbf43432db835",
      "parents": [
        "73459dcc67e77aa5cb28d51b2d84dd145977ace3"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:32:16 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:25 2010 -0400"
      },
      "message": "ocfs2: replace inode uid,gid,mode initialization with helper function\n\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "73459dcc67e77aa5cb28d51b2d84dd145977ace3",
      "tree": "140b6bc33f01b5549b7ab9c0a0ad085a382169e9",
      "parents": [
        "9eed1fb721c6c512795f8847bccc413f3a1143bb"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:32:15 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:25 2010 -0400"
      },
      "message": "nilfs2: replace inode uid,gid,mode initialization with helper function\n\nAcked-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9eed1fb721c6c512795f8847bccc413f3a1143bb",
      "tree": "9c475b2254491b60474907345be010a0daa6c068",
      "parents": [
        "b10b8520903204c9a1e4ef4a6827c2f1569aae9b"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:32:14 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:24 2010 -0400"
      },
      "message": "minix: replace inode uid,gid,mode init with helper\n\n- also redesign minix_new_inode interface\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b10b8520903204c9a1e4ef4a6827c2f1569aae9b",
      "tree": "49b78527451cf32cfc16be194261308b8c27a6be",
      "parents": [
        "aab99c2c26f74d90f615fcca534172dfc1c8bec2"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:31:51 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:24 2010 -0400"
      },
      "message": "ext4: replace inode uid,gid,mode init with helper\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "aab99c2c26f74d90f615fcca534172dfc1c8bec2",
      "tree": "9747a677845b657549c71c298c34259984c010d6",
      "parents": [
        "ffba102d75a2e79ac9754841c6cf4a6dd6892c42"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:31:50 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:24 2010 -0400"
      },
      "message": "ext3: replace inode uid,gid,mode init with helper\n\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ffba102d75a2e79ac9754841c6cf4a6dd6892c42",
      "tree": "b7bb51be713a8b665ac97f53ec5872f9abaa9e9c",
      "parents": [
        "e00117f14f68d9e54c8aa3d52ebdc76cdbbc4f87"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:31:49 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:24 2010 -0400"
      },
      "message": "ext2: replace inode uid,gid,mode init with helper\n\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e00117f14f68d9e54c8aa3d52ebdc76cdbbc4f87",
      "tree": "150ee8e968cef8bf448aaeff258a36c790db8856",
      "parents": [
        "ecc11fabf7ce16309112afe68fac466193ee7520"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:31:48 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:23 2010 -0400"
      },
      "message": "exofs: replace inode uid,gid,mode initialization with helper function\n\nAck-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ecc11fabf7ce16309112afe68fac466193ee7520",
      "tree": "946cf29541cfb4632d455ea84be052480b8ca677",
      "parents": [
        "319b2be49e91398eae07db4dfc29972846dec649"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:31:47 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:23 2010 -0400"
      },
      "message": "btrfs: replace inode uid,gid,mode initialization with helper function\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "319b2be49e91398eae07db4dfc29972846dec649",
      "tree": "a2d2b58332bcbaa217aa26c4300a6ecc904fc84c",
      "parents": [
        "217f206d68e12285d55d05678e361221ebebd046"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:30:58 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:23 2010 -0400"
      },
      "message": "jfs: replace inode uid,gid,mode init with helper\n\nAcked-by: Dave Kleikamp \u003cshaggy@linux.vnet.ibm.com\u003e\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "217f206d68e12285d55d05678e361221ebebd046",
      "tree": "77d5f4448cd4b8ffe5fafee3d07911d235763af3",
      "parents": [
        "a1bd120d13e586ea1c424048fd2c8420a442852a"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:30:57 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:23 2010 -0400"
      },
      "message": "9p: replace inode uid,gid,mode initialization with helper function\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a1bd120d13e586ea1c424048fd2c8420a442852a",
      "tree": "fdac342d7ab0fbaaeb1dd7d61a86b457a6938672",
      "parents": [
        "52957fe1c709d5ca3732456d73f4e4d95492c72c"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:29:14 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:22 2010 -0400"
      },
      "message": "vfs: Add inode uid,gid,mode init helper\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "52957fe1c709d5ca3732456d73f4e4d95492c72c",
      "tree": "c1e1f92cefbc9c03620af6c97ba50d8de1011f8e",
      "parents": [
        "9a2296832c43da93a88e1edd59f3d17acffca36c"
      ],
      "author": {
        "name": "H Hartley Sweeten",
        "email": "hartleys@visionengravers.com",
        "time": "Thu Apr 01 20:36:30 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:22 2010 -0400"
      },
      "message": "fs-writeback.c: bitfields should be unsigned\n\nThis fixes sparse noise:\n  error: dubious one-bit signed bitfield\n\nSigned-off-by: H Hartley Sweeten \u003chsweeten@visionengravers.com\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9a2296832c43da93a88e1edd59f3d17acffca36c",
      "tree": "e55b77c403c60291344d0961d2f0e4f2e9a2bb7f",
      "parents": [
        "51ee049e771c14a29aaee8ecd6cbbe14db088f3a"
      ],
      "author": {
        "name": "Huang Shijie",
        "email": "shijie8@gmail.com",
        "time": "Fri Apr 02 17:37:13 2010 +0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:22 2010 -0400"
      },
      "message": "namei.c : update mnt when it needed\n\nupdate the mnt of the path when it is not equal to the new one.\n\nSigned-off-by: Huang Shijie \u003cshijie8@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "51ee049e771c14a29aaee8ecd6cbbe14db088f3a",
      "tree": "594c6676eb50a59ce82625ee09fee73fd700a5ed",
      "parents": [
        "cc9106247de92549e50abb0ba12d6b2fdbf0be55"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "rdreier@cisco.com",
        "time": "Tue Apr 27 14:23:57 2010 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:22 2010 -0400"
      },
      "message": "vfs: add lockdep annotation to s_vfs_rename_key for ecryptfs\n\n \u003e  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n \u003e  [ INFO: possible recursive locking detected ]\n \u003e  2.6.31-2-generic #14~rbd3\n \u003e  ---------------------------------------------\n \u003e  firefox-3.5/4162 is trying to acquire lock:\n \u003e   (\u0026s-\u003es_vfs_rename_mutex){+.+.+.}, at: [\u003cffffffff81139d31\u003e] lock_rename+0x41/0xf0\n \u003e\n \u003e  but task is already holding lock:\n \u003e   (\u0026s-\u003es_vfs_rename_mutex){+.+.+.}, at: [\u003cffffffff81139d31\u003e] lock_rename+0x41/0xf0\n \u003e\n \u003e  other info that might help us debug this:\n \u003e  3 locks held by firefox-3.5/4162:\n \u003e   #0:  (\u0026s-\u003es_vfs_rename_mutex){+.+.+.}, at: [\u003cffffffff81139d31\u003e] lock_rename+0x41/0xf0\n \u003e   #1:  (\u0026sb-\u003es_type-\u003ei_mutex_key#11/1){+.+.+.}, at: [\u003cffffffff81139d5a\u003e] lock_rename+0x6a/0xf0\n \u003e   #2:  (\u0026sb-\u003es_type-\u003ei_mutex_key#11/2){+.+.+.}, at: [\u003cffffffff81139d6f\u003e] lock_rename+0x7f/0xf0\n \u003e\n \u003e  stack backtrace:\n \u003e  Pid: 4162, comm: firefox-3.5 Tainted: G         C 2.6.31-2-generic #14~rbd3\n \u003e  Call Trace:\n \u003e   [\u003cffffffff8108ae74\u003e] print_deadlock_bug+0xf4/0x100\n \u003e   [\u003cffffffff8108ce26\u003e] validate_chain+0x4c6/0x750\n \u003e   [\u003cffffffff8108d2e7\u003e] __lock_acquire+0x237/0x430\n \u003e   [\u003cffffffff8108d585\u003e] lock_acquire+0xa5/0x150\n \u003e   [\u003cffffffff81139d31\u003e] ? lock_rename+0x41/0xf0\n \u003e   [\u003cffffffff815526ad\u003e] __mutex_lock_common+0x4d/0x3d0\n \u003e   [\u003cffffffff81139d31\u003e] ? lock_rename+0x41/0xf0\n \u003e   [\u003cffffffff81139d31\u003e] ? lock_rename+0x41/0xf0\n \u003e   [\u003cffffffff8120eaf9\u003e] ? ecryptfs_rename+0x99/0x170\n \u003e   [\u003cffffffff81552b36\u003e] mutex_lock_nested+0x46/0x60\n \u003e   [\u003cffffffff81139d31\u003e] lock_rename+0x41/0xf0\n \u003e   [\u003cffffffff8120eb2a\u003e] ecryptfs_rename+0xca/0x170\n \u003e   [\u003cffffffff81139a9e\u003e] vfs_rename_dir+0x13e/0x160\n \u003e   [\u003cffffffff8113ac7e\u003e] vfs_rename+0xee/0x290\n \u003e   [\u003cffffffff8113c212\u003e] ? __lookup_hash+0x102/0x160\n \u003e   [\u003cffffffff8113d512\u003e] sys_renameat+0x252/0x280\n \u003e   [\u003cffffffff81133eb4\u003e] ? cp_new_stat+0xe4/0x100\n \u003e   [\u003cffffffff8101316a\u003e] ? sysret_check+0x2e/0x69\n \u003e   [\u003cffffffff8108c34d\u003e] ? trace_hardirqs_on_caller+0x14d/0x190\n \u003e   [\u003cffffffff8113d55b\u003e] sys_rename+0x1b/0x20\n \u003e   [\u003cffffffff81013132\u003e] system_call_fastpath+0x16/0x1b\n\nThe trace above is totally reproducible by doing a cross-directory\nrename on an ecryptfs directory.\n\nThe issue seems to be that sys_renameat() does lock_rename() then calls\ninto the filesystem; if the filesystem is ecryptfs, then\necryptfs_rename() again does lock_rename() on the lower filesystem, and\nlockdep can\u0027t tell that the two s_vfs_rename_mutexes are different.  It\nseems an annotation like the following is sufficient to fix this (it\ndoes get rid of the lockdep trace in my simple tests); however I would\nlike to make sure I\u0027m not misunderstanding the locking, hence the CC\nlist...\n\nSigned-off-by: Roland Dreier \u003crdreier@cisco.com\u003e\nCc: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\nCc: Dustin Kirkland \u003ckirkland@canonical.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "cc9106247de92549e50abb0ba12d6b2fdbf0be55",
      "tree": "f0e76e94e4b0041c255b9f3d4f3e5217b37951d2",
      "parents": [
        "8018ab057480974e7f26a387bf4ce040e9a5f6f1"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Sat Apr 17 19:28:09 2010 -0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:21 2010 -0400"
      },
      "message": "fs/partitions: use ADDPART_FLAG_RAID instead of magic number\n\nADDPART_FLAG_RAID was introduced in commit d18d768, and most places were\nconverted to use it instead of a hardcoded value. However, some places seem\nto have been missed.\n\nChange all of them to the symbolic names via the following semantic patch:\n\n@@\nstruct parsed_partitions *state;\nexpression E;\n@@\n(\n- state-\u003eparts[E].flags \u003d 1\n+ state-\u003eparts[E].flags \u003d ADDPART_FLAG_RAID\n|\n- state-\u003eparts[E].flags |\u003d 1\n+ state-\u003eparts[E].flags |\u003d ADDPART_FLAG_RAID\n|\n- state-\u003eparts[E].flags \u003d 2\n+ state-\u003eparts[E].flags \u003d ADDPART_FLAG_WHOLEDISK\n|\n- state-\u003eparts[E].flags |\u003d 2\n+ state-\u003eparts[E].flags |\u003d ADDPART_FLAG_WHOLEDISK\n)\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8018ab057480974e7f26a387bf4ce040e9a5f6f1",
      "tree": "98298180bf60797a028eca4f24234dc67d38a9d4",
      "parents": [
        "e970a573ce30a3976234dcfb67906c164b0df9ee"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Mar 22 17:32:25 2010 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:21 2010 -0400"
      },
      "message": "sanitize vfs_fsync calling conventions\n\nNow that the last user passing a NULL file pointer is gone we can remove\nthe redundant dentry argument and associated hacks inside vfs_fsynmc_range.\n\nThe next step will be removig the dentry argument from -\u003efsync, but given\nthe luck with the last round of method prototype changes I\u0027d rather\ndefer this until after the main merge window.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e970a573ce30a3976234dcfb67906c164b0df9ee",
      "tree": "767cbc42caf0956c0251efb23828cfdf6a8a48c9",
      "parents": [
        "2e147f1ef7d593b36c0e27a393b7d7ec0765f54b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Mar 22 17:32:14 2010 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:21 2010 -0400"
      },
      "message": "nfsd: open a file descriptor for fsync in nfs4 recovery\n\nInstead of just looking up a path use do_filp_open to get us a file\nstructure for the nfs4 recovery directory.  This allows us to get\nrid of the last non-standard vfs_fsync caller with a NULL file\npointer.\n\n[AV: should be using fput(), not filp_close()]\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2e147f1ef7d593b36c0e27a393b7d7ec0765f54b",
      "tree": "cc7746744467dfcedd8e5068eac982fc9c308515",
      "parents": [
        "a7cf4145bb86aaf85d4d4d29a69b50b688e2e49d"
      ],
      "author": {
        "name": "Richard Kennedy",
        "email": "richard@rsk.demon.co.uk",
        "time": "Fri May 14 10:49:22 2010 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:21 2010 -0400"
      },
      "message": "fs: inode.c use atomic_inc_return in __iget\n\nUsing atomic_inc_return in __iget(struct inode *inode) makes the intent\nof this code clearer and generates less code on processors that have\nthis operation.\n\nOn x86_64 this patch reduces the text size of inode.o by 12 bytes.\n\nSigned-off-by: Richard Kennedy \u003crichard@rsk.demon.co.uk\u003e\n\n----\npatch against 2.6.34-rc7\ncompiled \u0026 tested on x86_64 AMD X2\n\nI\u0027ve been running with this patch applied for several weeks with no\nobvious problems.\nregards\nRichard\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a7cf4145bb86aaf85d4d4d29a69b50b688e2e49d",
      "tree": "485e378b9fd42ff88663fbb149387173856fa67d",
      "parents": [
        "b7bb0a12913a582dbb0954bf463b1152b540c1a6"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Fri May 14 11:44:10 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:20 2010 -0400"
      },
      "message": "anon_inode: set S_IFREG on the anon_inode\n\nanon_inode_mkinode() sets inode-\u003ei_mode \u003d S_IRUSR | S_IWUSR;  This means\nthat (inode-\u003ei_mode \u0026 S_IFMT) \u003d\u003d 0.  This trips up some SELinux code that\nneeds to determine if a given inode is a regular file, a directory, etc.\nThe easiest solution is to just make sure that the anon_inode also sets\nS_IFREG.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b7bb0a12913a582dbb0954bf463b1152b540c1a6",
      "tree": "fa0d945d9e7e66d403ab7d7d2997a4405cc32e92",
      "parents": [
        "537d81ca7c5338e4f13f3e7e7b50e87ba293ec68"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu May 13 17:53:23 2010 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:20 2010 -0400"
      },
      "message": "gfs: constify xattr_handler\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "537d81ca7c5338e4f13f3e7e7b50e87ba293ec68",
      "tree": "7dd6ece3385c60dedc4c9d556ab4e7d38c8cc7e9",
      "parents": [
        "365f0cb9d2d5eea911798935133e8dd27ea5f3fc"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu May 13 17:53:22 2010 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:20 2010 -0400"
      },
      "message": "ocfs: constify xattr_handler\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "365f0cb9d2d5eea911798935133e8dd27ea5f3fc",
      "tree": "e5933598e73facb959e43cd374029a85e89e38de",
      "parents": [
        "46e58764f0c502847ed1f4662aa37eefa602a8f9"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu May 13 17:53:21 2010 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:20 2010 -0400"
      },
      "message": "jffs2: constify xattr_handler\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "46e58764f0c502847ed1f4662aa37eefa602a8f9",
      "tree": "c3dc3f8aae37014726a372106e6028df1a5e63ab",
      "parents": [
        "94d09a98cdb163be12fb5c76841fa295f0bee22a"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu May 13 17:53:20 2010 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:19 2010 -0400"
      },
      "message": "xfs: constify xattr_handler\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "94d09a98cdb163be12fb5c76841fa295f0bee22a",
      "tree": "32f8e25bd707de3fe5fd34d49329d9510d7d0af2",
      "parents": [
        "11e27528076e7dee63f1db78bffbef6310f076f4"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu May 13 17:53:19 2010 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:19 2010 -0400"
      },
      "message": "reiserfs: constify xattr_handler\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "11e27528076e7dee63f1db78bffbef6310f076f4",
      "tree": "e8b3ce42cb10d5172fe5caf2b302a09e272e6b27",
      "parents": [
        "d1f21049f9185e589849051d94c9a50151c6a7dc"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu May 13 17:53:18 2010 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:19 2010 -0400"
      },
      "message": "ext4: constify xattr_handler\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d1f21049f9185e589849051d94c9a50151c6a7dc",
      "tree": "4b95bea7124f036b1e949605e5a44e2901347603",
      "parents": [
        "749c72efa4bd91dad3a8c2ac8bfaa7c45490ceef"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu May 13 17:53:17 2010 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:19 2010 -0400"
      },
      "message": "ext3: constify xattr handlers\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "749c72efa4bd91dad3a8c2ac8bfaa7c45490ceef",
      "tree": "3c475251243b0e8c686daed4ae1113efbaf49d6e",
      "parents": [
        "f01cbd3f8148f2056567f829e07c157b28b2dd1e"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu May 13 17:53:16 2010 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:18 2010 -0400"
      },
      "message": "ext2: constify xattr_handler\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f01cbd3f8148f2056567f829e07c157b28b2dd1e",
      "tree": "18d4a35bf25c9e17e11ce7a42015fae8ca5d009e",
      "parents": [
        "bb4354538eb7b92f32cfedbad68c7be266c0b467"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu May 13 17:53:15 2010 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:18 2010 -0400"
      },
      "message": "btrfs: constify xattr_handler\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bb4354538eb7b92f32cfedbad68c7be266c0b467",
      "tree": "5ecc43dabf5a0ecb511c74411272eba70415cdaf",
      "parents": [
        "18e9e5104fcd9a973ffe3eed3816c87f2a1b6cd2"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu May 13 17:53:14 2010 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:18 2010 -0400"
      },
      "message": "fs: xattr_handler table should be const\n\nThe entries in xattr handler table should be immutable (ie const)\nlike other operation tables.\n\nLater patches convert common filesystems. Uncoverted filesystems\nwill still work, but will generate a compiler warning.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "18e9e5104fcd9a973ffe3eed3816c87f2a1b6cd2",
      "tree": "635369c866fcb384223618c878e0b4c317790634",
      "parents": [
        "e1e46bf1866317d4f86f66bf18d3f07317d9f9ee"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Mar 23 10:34:56 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:18 2010 -0400"
      },
      "message": "Introduce freeze_super and thaw_super for the fsfreeze ioctl\n\nCurrently the way we do freezing is by passing sb\u003es_bdev to freeze_bdev and then\nletting it do all the work.  But freezing is more of an fs thing, and doesn\u0027t\nreally have much to do with the bdev at all, all the work gets done with the\nsuper.  In btrfs we do not populate s_bdev, since we can have multiple bdev\u0027s\nfor one fs and setting s_bdev makes removing devices from a pool kind of tricky.\nThis means that freezing a btrfs filesystem fails, which causes us to corrupt\nwith things like tux-on-ice which use the fsfreeze mechanism.  So instead of\npopulating sb-\u003es_bdev with a random bdev in our pool, I\u0027ve broken the actual fs\nfreezing stuff into freeze_super and thaw_super.  These just take the\nsuper_block that we\u0027re freezing and does the appropriate work.  It\u0027s basically\njust copy and pasted from freeze_bdev.  I\u0027ve then converted freeze_bdev over to\nuse the new super helpers.  I\u0027ve tested this with ext4 and btrfs and verified\neverything continues to work the same as before.\n\nThe only new gotcha is multiple calls to the fsfreeze ioctl will return EBUSY if\nthe fs is already frozen.  I thought this was a better solution than adding a\nfreeze counter to the super_block, but if everybody hates this idea I\u0027m open to\nsuggestions.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e1e46bf1866317d4f86f66bf18d3f07317d9f9ee",
      "tree": "cbaf0c3d64beff26bb9e37f1640811492fb3c617",
      "parents": [
        "d3f2147307cce9eac56dd91d381709aa3f1615b3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 23 13:56:07 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:17 2010 -0400"
      },
      "message": "Trim includes in fs/super.c\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d3f2147307cce9eac56dd91d381709aa3f1615b3",
      "tree": "c1512bc87bdd657d379c6cf67f9c84436ad8fb52",
      "parents": [
        "7ed1ee6118ae77330cae2a6d5e9383532f7dfb48"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 23 11:11:05 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:17 2010 -0400"
      },
      "message": "Move grabbing s_umount to callers of grab_super()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7ed1ee6118ae77330cae2a6d5e9383532f7dfb48",
      "tree": "5f91faf8ddb9b210f9f66b15bd5c82c04e9a54e9",
      "parents": [
        "e8c26255992474a2161c63ce9d385827302e4530"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 23 10:37:36 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:17 2010 -0400"
      },
      "message": "Take statfs variants to fs/statfs.c\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e8c26255992474a2161c63ce9d385827302e4530",
      "tree": "08d247a53eca56a6e161ca784a4536b3ea7662f7",
      "parents": [
        "01a05b337a5b647909e1d6670f57e7202318a5fb"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 23 06:36:54 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:17 2010 -0400"
      },
      "message": "switch selinux delayed superblock handling to iterate_supers()\n\n... kill their private list, while we are at it\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "01a05b337a5b647909e1d6670f57e7202318a5fb",
      "tree": "7877f08db14877d06346c8e1ef52aa17f2483e93",
      "parents": [
        "35cf7ba0b46dc3582a01c3860b14bff122662aa3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 23 06:06:58 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:16 2010 -0400"
      },
      "message": "new helper: iterate_supers()\n\n... and switch the simple \"loop over superblocks and do something\"\nloops to it.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "35cf7ba0b46dc3582a01c3860b14bff122662aa3",
      "tree": "2b38e9333600f468f0c8371c657c02e3aa8ec43b",
      "parents": [
        "79893c17b45dec0d3c25bc22d28d9f319b14f573"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 22 21:13:53 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:16 2010 -0400"
      },
      "message": "Bury __put_super_and_need_restart()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "79893c17b45dec0d3c25bc22d28d9f319b14f573",
      "tree": "560c5f13193cbb1e2d2bf5dc1fd6f25d49c01165",
      "parents": [
        "df40c01a9249873e4ad0625ae5d9fb831962b75c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 22 20:27:55 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:16 2010 -0400"
      },
      "message": "fix prune_dcache()/umount() race\n\n... and get rid of the last __put_super_and_need_restart() caller\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "df40c01a9249873e4ad0625ae5d9fb831962b75c",
      "tree": "9d049e176ad6a329e040faa32d6ee5933d1cea58",
      "parents": [
        "1494583de59dfad2e3a6788ce9817e658d32df22"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 22 20:23:25 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:16 2010 -0400"
      },
      "message": "In get_super() and user_get_super() restarts are unconditional\n\nIf superblock had been still alive, we would\u0027ve returned it...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1494583de59dfad2e3a6788ce9817e658d32df22",
      "tree": "6f0a0fe022af703aa18ecc5f65a616fe44b9f8ad",
      "parents": [
        "e7fe0585ca8793e2d43c57e77d4ca79042806acf"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 22 20:15:33 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:15 2010 -0400"
      },
      "message": "fix get_active_super()/umount() race\n\nThis one needs restarts...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e7fe0585ca8793e2d43c57e77d4ca79042806acf",
      "tree": "a68234ce86f5ff221f3f6260374f3a6437d77ce3",
      "parents": [
        "6754af64641e8224c281ee5714e012e3ed41f701"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 22 20:11:53 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:15 2010 -0400"
      },
      "message": "fix do_emergency_remount()/umount() races\n\nneed list_for_each_entry_safe() here.  Original didn\u0027t even\nhave restart logics, so if you race with umount() it blew up.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6754af64641e8224c281ee5714e012e3ed41f701",
      "tree": "248a8c01aae46f98505d8c196393fae629f9691a",
      "parents": [
        "8edd64bd6089e21f47dcdebb14b598b713213ddc"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 22 20:09:33 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:15 2010 -0400"
      },
      "message": "Convert simple loops over superblocks to list_for_each_entry_safe\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8edd64bd6089e21f47dcdebb14b598b713213ddc",
      "tree": "c356a358c7b823433728869ff430ad205c4b8a5d",
      "parents": [
        "551de6f34dfeefbeeadb32909c387d393114ecc8"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 22 19:56:42 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:15 2010 -0400"
      },
      "message": "get rid of restarts in sync_filesystems()\n\nAt the same time we can kill s_need_restart and local mutex in there.\n__put_super() made public for a while; will be gone later.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "551de6f34dfeefbeeadb32909c387d393114ecc8",
      "tree": "822af803e7e75ed476b0a176639c162e0395910d",
      "parents": [
        "1712ac8fda7d8bc4dc921f5777b7423aacad7263"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 22 19:36:35 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:14 2010 -0400"
      },
      "message": "Leave superblocks on s_list until the end\n\nWe used to remove from s_list and s_instances at the same\ntime.  So let\u0027s *not* do the former and skip superblocks\nthat have empty s_instances in the loops over s_list.\n\nThe next step, of course, will be to get rid of rescan logics\nin those loops.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1712ac8fda7d8bc4dc921f5777b7423aacad7263",
      "tree": "1493bc7166ace04d9ac2f4d5383eaab1d43e17c4",
      "parents": [
        "b20bd1a5e78af267dc4b6e1ffed48d5d776302c5"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 22 15:22:31 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:14 2010 -0400"
      },
      "message": "Saner locking around deactivate_super()\n\nMake sure that s_umount is acquired *before* we drop the final\nactive reference; we still have the fast path (atomic_dec_unless)\nand we have gotten rid of the window between the moment when\ns_active hits zero and s_umount is acquired.  Which simplifies\nthe living hell out of grab_super() and inotify pin_to_kill()\nstuff.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b20bd1a5e78af267dc4b6e1ffed48d5d776302c5",
      "tree": "d50982ee42500712d9add489435d4455580b9cac",
      "parents": [
        "389b8be6ef419397e4f176652927ebad6ebb4b77"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 22 08:53:19 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:14 2010 -0400"
      },
      "message": "get rid of S_BIAS\n\nuse atomic_inc_not_zero(\u0026sb-\u003es_active) instead of playing games with\nchecking -\u003es_count \u003e S_BIAS\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "389b8be6ef419397e4f176652927ebad6ebb4b77",
      "tree": "941037c2296b94b30f4a883235f54930b6aa485e",
      "parents": [
        "79d7e39ee1d4b423206f6cfd2cd2eed6253d95fe"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Mar 21 22:34:11 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:14 2010 -0400"
      },
      "message": "get rid of open-coded grab_super() in get_active_super()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "79d7e39ee1d4b423206f6cfd2cd2eed6253d95fe",
      "tree": "72cda49fac91729b68edbec086dd5f36178448d5",
      "parents": [
        "3981f2e2a04df4b95129ddbb8bb869ef1d57bea9"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Mar 21 19:24:23 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:13 2010 -0400"
      },
      "message": "sb_entry() has been killed a couple of years ago and resurrected on mismerge\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3981f2e2a04df4b95129ddbb8bb869ef1d57bea9",
      "tree": "56b59b8e02b8a505f70126cbe98b81a6c798de83",
      "parents": [
        "2ccde7c631f992bf79da8007b5fc8b6425eb0d6d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Mar 21 19:22:29 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:13 2010 -0400"
      },
      "message": "ceph: should use deactivate_locked_super() on failure exits\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2ccde7c631f992bf79da8007b5fc8b6425eb0d6d",
      "tree": "d99cbae607223c76916fd373d7a827515ed022c0",
      "parents": [
        "decabd6650915a9534dad09e967115513be12b24"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Mar 21 12:24:29 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:13 2010 -0400"
      },
      "message": "Clean ecryptfs -\u003eget_sb() up\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "decabd6650915a9534dad09e967115513be12b24",
      "tree": "3e4aa8ed78535f3a34b60e363e7b13efbd7ea62c",
      "parents": [
        "894680710d813137077ad7cb351b713f64cabbdf"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 20 22:32:26 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:13 2010 -0400"
      },
      "message": "fix a couple of ecryptfs leaks\n\nFirst of all, get_sb_nodev() grabs anon dev minor and we\nnever free it in ecryptfs -\u003ekill_sb().  Moreover, on one\nof the failure exits in ecryptfs_get_sb() we leak things -\nit happens before we set -\u003es_root and -\u003eput_super() won\u0027t\nbe called in that case.  Solution: kill -\u003eput_super(), do\nall that stuff in -\u003ekill_sb().  And use kill_anon_sb() instead\nof generic_shutdown_super() to deal with anon dev leak.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    }
  ],
  "next": "894680710d813137077ad7cb351b713f64cabbdf"
}
