)]}'
{
  "log": [
    {
      "commit": "b545787dbb00a041c541a4759d938ddb0108295a",
      "tree": "7d64ee98012ee45726b79a32ed815e06c83c4ef9",
      "parents": [
        "e072f8aa3587710cd35cce0f6b6efd7b4276c327"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Thu Aug 26 11:12:38 2010 +0200"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Aug 26 09:26:50 2010 -0700"
      },
      "message": "ceph: fix get_ticket_handler() error handling\n\nget_ticket_handler() returns a valid pointer or it returns\nERR_PTR(-ENOMEM) if kzalloc() fails.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "e072f8aa3587710cd35cce0f6b6efd7b4276c327",
      "tree": "a0455b3ed1d76880a6553d39f017081a1832f5ba",
      "parents": [
        "f44c3890d9fd6e4284518ff3bb16879fee194a3a"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Aug 26 09:26:37 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Aug 26 09:26:37 2010 -0700"
      },
      "message": "ceph: don\u0027t BUG on ENOMEM during mds reconnect\n\nWe are in a position to return an error; do that instead.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "f44c3890d9fd6e4284518ff3bb16879fee194a3a",
      "tree": "d4b0415abdc334a02454326c05d93c91c2555368",
      "parents": [
        "ad8453ab0a5b98884074302ba3cc37664791e261"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Thu Aug 26 11:07:24 2010 +0200"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Aug 26 09:24:28 2010 -0700"
      },
      "message": "ceph: ceph_mdsc_build_path() returns an ERR_PTR\n\nceph_mdsc_build_path() returns an ERR_PTR but this code is set up to\nhandle NULL returns.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ad8453ab0a5b98884074302ba3cc37664791e261",
      "tree": "3e90b914db42bfa8b476b1d46aef7baee4adebb3",
      "parents": [
        "ac1f12ef569d49b013c3db86e11be7e15d66b1c3"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@linux.intel.com",
        "time": "Wed Aug 25 13:26:32 2010 +0100"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Aug 25 12:02:14 2010 -0700"
      },
      "message": "ceph: Fix warnings\n\nJust scrubbing some warnings so I can see real problem ones in the build\nnoise. For 32bit we need to coax gcc politely into believing we really\nhonestly intend to the casts. Using (u64)(unsigned long) means we cast from\na pointer to a type of the right size and then extend it. This stops the\nwarning spew.\n\nSigned-off-by: Alan Cox \u003calan@linux.intel.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ac1f12ef569d49b013c3db86e11be7e15d66b1c3",
      "tree": "79ca92f4f4c08a14629ff6b2b3b74d2eb7fac5eb",
      "parents": [
        "36e21687e6e51c4225c42e6291938363f7bbfa7c"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Wed Aug 25 09:11:35 2010 +0200"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Aug 25 12:01:54 2010 -0700"
      },
      "message": "ceph: ceph_get_inode() returns an ERR_PTR\n\nceph_get_inode() returns an ERR_PTR and it doesn\u0027t return a NULL.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "36e21687e6e51c4225c42e6291938363f7bbfa7c",
      "tree": "15f30bf1e622b564b6663217cf99c75aad03fae3",
      "parents": [
        "7d8cb26d7dcb911f110b7762bd5941e8f009d6c3"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Aug 24 16:23:48 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Aug 24 16:24:19 2010 -0700"
      },
      "message": "ceph: initialize fields on new dentry_infos\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "7d8cb26d7dcb911f110b7762bd5941e8f009d6c3",
      "tree": "2adf2f6303cc96ff14c951dc6966f68a0fc3cf25",
      "parents": [
        "07a27e226d1ed210d2d4218bd0642b40f5405c6a"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Aug 24 08:44:16 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Aug 24 16:24:18 2010 -0700"
      },
      "message": "ceph: maintain i_head_snapc when any caps are dirty, not just for data\n\nWe used to use i_head_snapc to keep track of which snapc the current epoch\nof dirty data was dirtied under.  It is used by queue_cap_snap to set up\nthe cap_snap.  However, since we queue cap snaps for any dirty caps, not\njust for dirty file data, we need to keep a valid i_head_snapc anytime\nwe have dirty|flushing caps.  This fixes a NULL pointer deref in\nqueue_cap_snap when writing back dirty caps without data (e.g.,\nsnaptest-authwb.sh).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "07a27e226d1ed210d2d4218bd0642b40f5405c6a",
      "tree": "7b24e5b3b88d8e682b70684b0df7ee0db333fe46",
      "parents": [
        "124514918b030d74f1f3e15483b7bf3b85268082"
      ],
      "author": {
        "name": "Henry C Chang",
        "email": "henry_c_chang@tcloudcomputing.com",
        "time": "Sun Aug 22 21:34:27 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 22 21:34:27 2010 -0700"
      },
      "message": "ceph: fix osd request lru adjustment when sending request\n\nFix argument order.  We want to move the item to the end of the list, not\nchange the position of the head.\n\nSigned-off-by: Henry C Chang \u003chenry_c_chang@tcloudcomputing.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "124514918b030d74f1f3e15483b7bf3b85268082",
      "tree": "78f539354383bf0820dc1cb20fd752b63f74760c",
      "parents": [
        "679ceace848e9fd570678396ffe1ef034e00e82d"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 22 21:33:32 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 22 21:33:32 2010 -0700"
      },
      "message": "ceph: don\u0027t improperly set dir complete when holding EXCL cap\n\nIf we hold the EXCL cap, we cannot trust the dir stats from the MDS (num\nfiles, subdirs) and must not incorrectly conclude that the directory is\nempty.  If we do, we get can bad results from lookup (bad ENOENT) and\nbad readdir results.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "679ceace848e9fd570678396ffe1ef034e00e82d",
      "tree": "670768527852f134cfe3e20d425534a16edd968a",
      "parents": [
        "eb6bb1c5bdc6e455a9d16cb845cc65afc9b0a617"
      ],
      "author": {
        "name": "Michael Rubin",
        "email": "mrubin@google.com",
        "time": "Fri Aug 20 02:31:26 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 22 15:16:51 2010 -0700"
      },
      "message": "mm: exporting account_page_dirty\n\nThis allows code outside of the mm core to safely manipulate page state\nand not worry about the other accounting. Not using these routines means\nthat some code will lose track of the accounting and we get bugs. This\nhas happened once already.\n\nSigned-off-by: Michael Rubin \u003cmrubin@google.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "eb6bb1c5bdc6e455a9d16cb845cc65afc9b0a617",
      "tree": "8bbdd454c7a528b7a9f7d84bf084311b7433757f",
      "parents": [
        "ed326044489ed89c740c50a3df5dffc9c3b20b96"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Aug 16 09:21:27 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 22 15:16:48 2010 -0700"
      },
      "message": "ceph: direct requests in snapped namespace based on nonsnap parent\n\nWhen making a request in the virtual snapdir or a snapped portion of the\nnamespace, we should choose the MDS based on the first nonsnap parent (and\nits caps).  If that is not the best place, we will get forward hints to\nfind the right MDS in the cluster.  This fixes ESTALE errors when using\nthe .snap directory and namespace with multiple MDSs.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ed326044489ed89c740c50a3df5dffc9c3b20b96",
      "tree": "364fb2896488cd2c7964960e01fa123d2b6ecb51",
      "parents": [
        "4a625be47243e0e07dedd0a1a6b94c66c2ab93ba"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Aug 16 13:37:31 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 22 15:16:47 2010 -0700"
      },
      "message": "ceph: queue cap snap writeback for realm children on snap update\n\nWhen a realm is updated, we need to queue writeback on inodes in that\nrealm _and_ its children.  Otherwise, if the inode gets cowed on the\nserver, we can get a hang later due to out-of-sync cap/snap state.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "4a625be47243e0e07dedd0a1a6b94c66c2ab93ba",
      "tree": "4224efef4f83bcf629934d6da17d2c122b49ba5c",
      "parents": [
        "082afec92d1052305af1195f591602f4d0f44277"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 22 15:03:56 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 22 15:16:46 2010 -0700"
      },
      "message": "ceph: include dirty xattrs state in snapped caps\n\nWhen we snapshot dirty metadata that needs to be written back to the MDS,\ninclude dirty xattr metadata.  Make the capsnap reference the encoded\nxattr blob so that it will be written back in the FLUSHSNAP op.\n\nAlso fix the capsnap creation guard to include dirty auth or file bits,\nnot just tests specific to dirty file data or file writes in progress\n(this fixes auth metadata writeback).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "082afec92d1052305af1195f591602f4d0f44277",
      "tree": "7012fc71ac7be7bd88f2b0d92f27a3ba46c354de",
      "parents": [
        "f3c60c5918f26ea16761ddc8b12d8401a3db626b"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 22 15:16:41 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 22 15:16:41 2010 -0700"
      },
      "message": "ceph: fix xattr cap writeback\n\nWe should include the xattr metadata blob in the cap update message any\ntime we are flushing dirty state, NOT just when we are also dropping the\ncap.  This fixes async xattr writeback.\n\nAlso, clean up the code slightly to avoid duplicating the bit test.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "f3c60c5918f26ea16761ddc8b12d8401a3db626b",
      "tree": "00bde7250b6753910a38b454c7a9cee2eb7e84e7",
      "parents": [
        "e56fa10e92e077d456cbc33b7025032887772b33"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Aug 11 14:51:23 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 22 15:04:43 2010 -0700"
      },
      "message": "ceph: fix multiple mds session shutdown\n\nThe use of a completion when waiting for session shutdown during umount is\ninappropriate, given the complexity of the condition.  For multiple MDS\u0027s,\nthis resulted in the umount thread spinning, often preventing the session\nclose message from being processed in some cases.\n\nSwitch to a waitqueue and defined a condition helper.  This cleans things\nup nicely.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "e56fa10e92e077d456cbc33b7025032887772b33",
      "tree": "ada8fefc9fdbe457a6f387b05e984478065a698b",
      "parents": [
        "0eb6cd49f6e3ec523787d09cf08d3179be270db4"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Mon May 17 12:40:28 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Aug 10 14:41:25 2010 -0700"
      },
      "message": "ceph: generalize mon requests, add pool op support\n\nGeneralize the current statfs synchronous requests, and support pool_ops.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "0eb6cd49f6e3ec523787d09cf08d3179be270db4",
      "tree": "7974963003e0b8ef26fdfb3a8120c6b4b588a01b",
      "parents": [
        "e9d177443134bc4ac1c1393af69e2a8704bcac09"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Aug 05 13:53:18 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Aug 05 13:53:40 2010 -0700"
      },
      "message": "ceph: only queue async writeback on cap revocation if there is dirty data\n\nNormally, if the Fb cap bit is being revoked, we queue an async writeback.\nIf there is no dirty data but we still hold the cap, this leaves the\nclient sitting around doing nothing until the cap timeouts expire and the\ncap is released on its own (as it would have been without the revocation).\n\nInstead, only queue writeback if the bit is actually used (i.e., we have\ndirty data).  If not, we can reply to the revocation immediately.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "e9d177443134bc4ac1c1393af69e2a8704bcac09",
      "tree": "77da337352fe11a62b1f712c30d28105175b4378",
      "parents": [
        "52dfb8ac0ef41168c1a10590b7259a5ab1cd2ab7"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Aug 02 16:23:49 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Aug 03 12:56:57 2010 -0700"
      },
      "message": "ceph: do not ignore osd_idle_ttl mount option\n\nActually apply the mount option to the mount_args struct.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "52dfb8ac0ef41168c1a10590b7259a5ab1cd2ab7",
      "tree": "b559e3232c32a1d5e97785aea6f9ccafbba054ce",
      "parents": [
        "213c99ee0cf17ff0fbffb6fb540bd29615cd19d5"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Aug 03 10:25:30 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Aug 03 10:25:30 2010 -0700"
      },
      "message": "ceph: constify dentry_operations\n\nThis makes checkpatch happy.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "213c99ee0cf17ff0fbffb6fb540bd29615cd19d5",
      "tree": "168f72ba71feff5bf24707be622135b1016cdff5",
      "parents": [
        "40819f6fb227c1832935b775ac22aef10aa6f6dd"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Aug 03 10:25:11 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Aug 03 10:25:11 2010 -0700"
      },
      "message": "ceph: whitespace cleanup\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "40819f6fb227c1832935b775ac22aef10aa6f6dd",
      "tree": "14f3e73f9585cc157ab2daab487c7b3964394fe2",
      "parents": [
        "fbaad9797a761c2d5ff6e755bbb4c046207a1ca2"
      ],
      "author": {
        "name": "Greg Farnum",
        "email": "gregf@hq.newdream.net",
        "time": "Mon Aug 02 15:34:23 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Aug 02 16:10:53 2010 -0700"
      },
      "message": "ceph: add flock/fcntl lock support\n\nImplement flock inode operation to support advisory file locking.  All\nlock/unlock operations are synchronous with the MDS.  Lock state is\nsent when reconnecting to a recovering MDS to restore the shared lock\nstate.\n\nSigned-off-by: Greg Farnum \u003cgregf@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "fbaad9797a761c2d5ff6e755bbb4c046207a1ca2",
      "tree": "abe5e3668294922e70282dab9c36072cac1939c9",
      "parents": [
        "c6f3fdc592d61847da0e2172e352dbcb53c83d39"
      ],
      "author": {
        "name": "Greg Farnum",
        "email": "gregf@hq.newdream.net",
        "time": "Mon Aug 02 15:30:08 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Aug 02 15:48:54 2010 -0700"
      },
      "message": "ceph: define on-wire types, constants for file locking support\n\nDefine the MDS operations and data types for doing file advisory locking\nwith the MDS.\n\nSigned-off-by: Greg Farnum \u003cgregf@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "c6f3fdc592d61847da0e2172e352dbcb53c83d39",
      "tree": "b658c608a71b3c373b529ec5d0b9930b1263166d",
      "parents": [
        "20cb34ae9e4b008a8789a48d52f5aa279dc400b6"
      ],
      "author": {
        "name": "Greg Farnum",
        "email": "gregf@hq.newdream.net",
        "time": "Mon Aug 02 14:55:24 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Aug 02 15:48:51 2010 -0700"
      },
      "message": "ceph: add CEPH_FEATURE_FLOCK to the supported feature bits\n\nThis informs the server that we will accept v2 client_caps format and v2\nclient_reconnect format messages.\n\nSigned-off-by: Greg Farnum \u003cgregf@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "20cb34ae9e4b008a8789a48d52f5aa279dc400b6",
      "tree": "03b0c011ebaec2cb26c81f122b5432119976dc6b",
      "parents": [
        "ce1fbc8dd657a4bbcf26c683c9d07c88db83fd86"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed May 12 15:21:32 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Aug 02 15:48:50 2010 -0700"
      },
      "message": "ceph: support v2 reconnect encoding\n\nEncode either old or v2 encoding of client_reconnect message, depending on\nwhether the peer has the FLOCK feature bit.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ce1fbc8dd657a4bbcf26c683c9d07c88db83fd86",
      "tree": "5ff998e85e35f6938cd316c2f9147c87a6a5faab",
      "parents": [
        "cbbfe499055f49c09210e04d9f88c2f483052384"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Aug 02 15:09:39 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Aug 02 15:48:49 2010 -0700"
      },
      "message": "ceph: support v2 client_caps encoding\n\nAdd support for v2 encoding of MClientCaps, which includes a flock blob.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "cbbfe499055f49c09210e04d9f88c2f483052384",
      "tree": "055a42f950c68b6ecd47f61a80fa15e813fdb381",
      "parents": [
        "73a7e693f9da464b0df07643af3f8ffc04dcc0b5"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Aug 02 15:48:23 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Aug 02 15:48:31 2010 -0700"
      },
      "message": "ceph: move AES iv definition to shared header\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "73a7e693f9da464b0df07643af3f8ffc04dcc0b5",
      "tree": "1e0e09dd0ee0390e4da8f2247187b283e48b228e",
      "parents": [
        "2d9c98ae97c18e8b1c363af6a2e51d5d9e8c5e04"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Aug 02 11:00:55 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Aug 02 11:10:07 2010 -0700"
      },
      "message": "ceph: fix decoding of pool snap info\n\nThe pool info contains a vector for snap_info_t, not snap ids.  This fixes\nthe broken decoding, which would declare teh update corrupt when a pool\nsnapshot was created.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "2d9c98ae97c18e8b1c363af6a2e51d5d9e8c5e04",
      "tree": "694895b1c66c7a1f382f8e7b6bc8c1b53165eab1",
      "parents": [
        "b8cd07e78eaa49857e882f4199309f86aeb80bbd"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Jul 30 09:38:13 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 01 20:11:42 2010 -0700"
      },
      "message": "ceph: make -\u003esync_fs not wait if wait\u003d\u003d0\n\nThe -\u003esync_fs() super op only needs to wait if wait is true.  Otherwise,\njust get some dirty cap writeback started.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "b8cd07e78eaa49857e882f4199309f86aeb80bbd",
      "tree": "91999adddd919b9f47d69d71800ac33ac40077fd",
      "parents": [
        "effcb9ed43d16db27ae5837d93879e067e902151"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Jul 16 12:00:02 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 01 20:11:42 2010 -0700"
      },
      "message": "ceph: warn on missing snap realm\n\nWell, this Shouldn\u0027t Happen, so it would be helpful to know the caller when\nit does.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "effcb9ed43d16db27ae5837d93879e067e902151",
      "tree": "bbcc99baff812d42a3bbaaa6a33a95ee3709e893",
      "parents": [
        "a8b763a9b34561fea8e616c1439a71913ff2c1bd"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Jul 09 11:00:08 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 01 20:11:42 2010 -0700"
      },
      "message": "ceph: print useful error message when crush rule not found\n\nInclude the crush_ruleset in the error message.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "a8b763a9b34561fea8e616c1439a71913ff2c1bd",
      "tree": "f8c90178e33cf7138296a9f36cf2cdc2d21d0408",
      "parents": [
        "f0b18d9f22ea4e50955945661b7e165a47705249"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jul 08 13:00:18 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 01 20:11:42 2010 -0700"
      },
      "message": "ceph: use %pU to print uuid (fsid)\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "f0b18d9f22ea4e50955945661b7e165a47705249",
      "tree": "736393b3c0ba0d7e983f06882e31acd61cb75c44",
      "parents": [
        "5cd068c200795537fd78c423254389c8a07e2d20"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Jul 07 08:39:03 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 01 20:11:42 2010 -0700"
      },
      "message": "ceph: sync header defs with server code\n\nDefine ROLLBACK op, IFLOCK inode lock (for advisory file locking).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "5cd068c200795537fd78c423254389c8a07e2d20",
      "tree": "303f92b1eb74bca53ab7c9abb2f8701487ac3883",
      "parents": [
        "9688f19a188e5ef6ac8a4b6a5b17273028d1090e"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Jul 07 08:38:17 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 01 20:11:42 2010 -0700"
      },
      "message": "ceph: clean up header guards\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "9688f19a188e5ef6ac8a4b6a5b17273028d1090e",
      "tree": "8805232333bedef21e5ec46e1f5d8137aa4467d2",
      "parents": [
        "6a2593823ababdada2636398ac190931517b51cf"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Jul 30 10:18:04 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 01 20:11:41 2010 -0700"
      },
      "message": "ceph: strip misleading/obsolete version, feature info\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "6a2593823ababdada2636398ac190931517b51cf",
      "tree": "7557b08cc90aa0d2c70ea5b0e6b22ff64a4c235d",
      "parents": [
        "c309f0ab26ca37663f368918553d02e90356c89d"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Jul 07 09:06:08 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 01 20:11:41 2010 -0700"
      },
      "message": "ceph: specify supported features in super.h\n\nSpecify the supported/required feature bits in super.h client code instead\nof using the definitions from the shared kernel/userspace headers (which\nwill go away shortly).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "c309f0ab26ca37663f368918553d02e90356c89d",
      "tree": "431be55e223cae146317fa46c94b7d9253d616a8",
      "parents": [
        "e0f9f9ee8f6cb60fe49e32e1df790a698ce0840c"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Jun 30 21:34:01 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 01 20:11:41 2010 -0700"
      },
      "message": "ceph: clean up fsid mount option\n\nSpecify the fsid mount option in hex, not via the major/minor u64 hackery we had\nbefore.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "e0f9f9ee8f6cb60fe49e32e1df790a698ce0840c",
      "tree": "a943edfd909954c5e62415c184f1ba850bb1b681",
      "parents": [
        "e55b71f802fd448a79275ba7b263fe1a8639be5f"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Jun 30 12:45:29 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 01 20:11:41 2010 -0700"
      },
      "message": "ceph: remove unused \u0027monport\u0027 mount option\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "e55b71f802fd448a79275ba7b263fe1a8639be5f",
      "tree": "fa17d2b0fbf1bc5e76a5e9ddac6c19a6bbe8d2bc",
      "parents": [
        "2bc50259fa0aa1868f8b2ba1d374406cb3c57f72"
      ],
      "author": {
        "name": "Greg Farnum",
        "email": "gregf@hq.newdream.net",
        "time": "Tue Jun 22 15:58:01 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 01 20:11:41 2010 -0700"
      },
      "message": "ceph: handle ESTALE properly; on receipt send to authority if it wasn\u0027t\n\nSigned-off-by: Greg Farnum \u003cgregf@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "2bc50259fa0aa1868f8b2ba1d374406cb3c57f72",
      "tree": "0c8d510478866b4fdeafeb7953395226f0b8fb25",
      "parents": [
        "154f42c2c3c3b66a7a63dad5648e8a9860a32af9"
      ],
      "author": {
        "name": "Greg Farnum",
        "email": "gregf@hq.newdream.net",
        "time": "Wed Jun 30 12:44:34 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 01 20:11:41 2010 -0700"
      },
      "message": "ceph: add ceph_get_cap_for_mds function.\n\nSigned-off-by: Greg Farnum \u003cgregf@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "154f42c2c3c3b66a7a63dad5648e8a9860a32af9",
      "tree": "408beec027a62dcb67f212b07590039aea22866b",
      "parents": [
        "cb170a22153730eb9c82b6c85ead2001dba6c41a"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jun 21 13:45:04 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 01 20:11:41 2010 -0700"
      },
      "message": "ceph: connect to export targets on cap export\n\nWhen we get a cap EXPORT message, make sure we are connected to all export\ntargets to ensure we can handle the matching IMPORT.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "cb170a22153730eb9c82b6c85ead2001dba6c41a",
      "tree": "d5a4d6135fae1fda0f033c206237f54567cad707",
      "parents": [
        "ed0552a1a21d2f2692b84c366ce04ad17377780c"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jun 21 13:38:35 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 01 20:11:40 2010 -0700"
      },
      "message": "ceph: connect to export targets if mds is laggy\n\nIf an MDS we are talking to may have failed, we need to open sessions to\nits potential export targets to ensure that any in-progress migration that\nmay have involved some of our caps is properly handled.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ed0552a1a21d2f2692b84c366ce04ad17377780c",
      "tree": "ac660be5e7e6dae6a50c96a3ef7ce633bf550f41",
      "parents": [
        "796d6955a51ce6768d0e033f27a2f8f5be6cb39a"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jun 21 13:38:25 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 01 20:11:40 2010 -0700"
      },
      "message": "ceph: introduce helper to connect to mds export targets\n\nThere are a few cases where we need to open sessions with a given mds\u0027s\npotential export targets.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "796d6955a51ce6768d0e033f27a2f8f5be6cb39a",
      "tree": "03672d617a25c43ff90f7f627aa2ed0c3f3ed1db",
      "parents": [
        "37151668bad3fd058368752bee476f2ba3645596"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jun 10 15:50:10 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 01 20:11:40 2010 -0700"
      },
      "message": "ceph: only set num_pages in calc_layout\n\nSetting it elsewhere is unnecessary and more fragile.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "37151668bad3fd058368752bee476f2ba3645596",
      "tree": "6eeae77dfa1c758ff03659b5677f474a72fbe7c0",
      "parents": [
        "0deb01c9998f8112c5e478e3fe3a930131abbc0a"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Thu Jun 17 16:16:12 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 01 20:11:40 2010 -0700"
      },
      "message": "ceph: do caps accounting per mds_client\n\nCaps related accounting is now being done per mds client instead\nof just being global. This prepares ground work for a later revision\nof the caps preallocated reservation list.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "0deb01c9998f8112c5e478e3fe3a930131abbc0a",
      "tree": "1b98a08ce630949268c4f26d5f232d07acb5c7ba",
      "parents": [
        "cd84db6e4051a9fb7941d49d31a0193a3371fd61"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jun 17 14:19:01 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 01 20:11:40 2010 -0700"
      },
      "message": "ceph: track laggy state of mds from mdsmap\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "cd84db6e4051a9fb7941d49d31a0193a3371fd61",
      "tree": "beb657b2cc6b4184d97a85502b29a291616a83ab",
      "parents": [
        "ca81f3f6bd759f90a4b940cddda1f8bc61a7725a"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Fri Jun 11 16:58:48 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 01 20:11:40 2010 -0700"
      },
      "message": "ceph: code cleanup\n\nMainly fixing minor issues reported by sparse.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ca81f3f6bd759f90a4b940cddda1f8bc61a7725a",
      "tree": "77b0f3a45d48303246f26e85b3945916f388805a",
      "parents": [
        "3b454c4945c756686e91d77eeefac80cb5d21baf"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jun 10 14:21:36 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 01 20:11:39 2010 -0700"
      },
      "message": "ceph: skip if no auth cap in flush_snaps\n\nIf we have a capsnap but no auth cap (e.g. because it is migrating to\nanother mds), bail out and do nothing for now.  Do NOT remove the capsnap\nfrom the flush list.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "3b454c4945c756686e91d77eeefac80cb5d21baf",
      "tree": "bd55ec2db3c234cf2fb1eebcf1ace3e4b9e2bc35",
      "parents": [
        "38e8883ee31667d901feb9106f4863af35948c91"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jun 10 13:20:33 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 01 20:11:39 2010 -0700"
      },
      "message": "ceph: simplify caps revocation, fix for multimds\n\nThe caps revocation should either initiate writeback, invalidateion, or\ncall check_caps to ack or do the dirty work.  The primary question is\nwhether we can get away with only checking the auth cap or whether all\ncaps need to be checked.\n\nThe old code was doing...something else.  At the very least, revocations\nfrom non-auth MDSs could break by triggering the \"check auth cap only\"\ncase.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "38e8883ee31667d901feb9106f4863af35948c91",
      "tree": "2b36df7cde625b72a43adf9d6ad998a46b8c5b04",
      "parents": [
        "ee6b272b9c3447a78fa831e37b925aefd5587ec9"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jun 10 12:57:11 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 01 20:11:39 2010 -0700"
      },
      "message": "ceph: simplify add_cap_releases\n\nNo functional change, aside from more useful debug output.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ee6b272b9c3447a78fa831e37b925aefd5587ec9",
      "tree": "fcb7c31794908d89760fef635ee2a52b1c338fa1",
      "parents": [
        "2962507ca204f886967e1a089d9bec206d427c22"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jun 10 12:55:52 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 01 20:11:39 2010 -0700"
      },
      "message": "ceph: drop unused argument\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "2962507ca204f886967e1a089d9bec206d427c22",
      "tree": "e9cec16b13ad1d8e41c288658e62fb3bf1c66859",
      "parents": [
        "33caad324b88f75f42d836735d86feaafb3b40cf"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu May 27 10:40:43 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 01 20:11:39 2010 -0700"
      },
      "message": "ceph: perform lazy reads when file mode and caps permit\n\nIf the file mode is marked as \"lazy,\" perform cached/buffered reads when\nthe caps permit it.  Adjust the rdcache_gen and invalidation logic\naccordingly so that we manage our cache based on the FILE_CACHE -or-\nFILE_LAZYIO cap bits.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "33caad324b88f75f42d836735d86feaafb3b40cf",
      "tree": "57e50ce5bdc181ea296191784c4d57999c51207e",
      "parents": [
        "8c6e9229fc1989cf263a6fcd4ff406d7f473f966"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed May 26 14:31:27 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 01 20:11:39 2010 -0700"
      },
      "message": "ceph: perform lazy writes when file mode and caps permit\n\nIf we have marked a file as \"lazy\" (using the ceph ioctl), perform buffered\nwrites when the MDS caps allow it.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "8c6e9229fc1989cf263a6fcd4ff406d7f473f966",
      "tree": "6402204aae50b0590df39289ed1e533472ee6ca1",
      "parents": [
        "84d9509234c46481aded977193fcf23f892d715f"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Apr 16 09:53:43 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 01 20:11:39 2010 -0700"
      },
      "message": "ceph: add LAZYIO ioctl to mark a file description for lazy consistency\n\nAllow an application to mark a file descriptor for lazy file consistency\nsemantics, allowing buffered reads and writes when multiple clients are\naccessing the same file.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "84d9509234c46481aded977193fcf23f892d715f",
      "tree": "a79cdd09126323064b49ac00c2aa1a39733675d1",
      "parents": [
        "9fe6206f400646a2322096b56c59891d530e8d51"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 25 16:46:24 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 01 20:11:38 2010 -0700"
      },
      "message": "ceph: request FILE_LAZYIO cap when LAZY file mode is set\n\nAlso clean up the file flags -\u003e file mode -\u003e wanted caps functions while\nwe\u0027re at it.  This resyncs this file with userspace.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "03066f23452ff088ad8e2c8acdf4443043f35b51",
      "tree": "37f03df4e28de87339cec3b88e479073c8cee958",
      "parents": [
        "25848b3ec681c7018e3746dd850c1e8ed0a3dd6b"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Tue Jul 27 13:11:08 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jul 27 13:11:17 2010 -0700"
      },
      "message": "ceph: use complete_all and wake_up_all\n\nThis fixes an issue triggered by running concurrent syncs. One of the syncs\nwould go through while the other would just hang indefinitely. In any case, we\nnever actually want to wake a single waiter, so the *_all functions should\nbe used.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "25848b3ec681c7018e3746dd850c1e8ed0a3dd6b",
      "tree": "5e3c4a3af1178c44740aae781ac9d2f71769c02d",
      "parents": [
        "1dadcce358a4c4078e1ea0bc4365c3f67b8e373e"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@crashcourse.ca",
        "time": "Sat Jul 24 06:41:18 2010 -0400"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat Jul 24 21:36:07 2010 -0700"
      },
      "message": "ceph: Correct obvious typo of Kconfig variable \"CRYPTO_AES\"\n\nSigned-off-by: Robert P. J. Day \u003crpjday@crashcourse.ca\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "1dadcce358a4c4078e1ea0bc4365c3f67b8e373e",
      "tree": "01e2bc98db97884a5c039a185612a878c199a1aa",
      "parents": [
        "8c696737aa61316a252c4514d09dd163f1464d33"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Jul 23 13:54:21 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Jul 23 13:54:21 2010 -0700"
      },
      "message": "ceph: fix dentry lease release\n\nWhen we embed a dentry lease release notification in a request, invalidate\nour lease so we don\u0027t think we still have it.  Otherwise we can get all\nsorts of incorrect client behavior when multiple clients are interacting\nwith the same part of the namespace.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "8c696737aa61316a252c4514d09dd163f1464d33",
      "tree": "8f130d45380ac3f8bd897bf78bc7650c1bbb41b5",
      "parents": [
        "bc4fdca85734d12cd2c7a25c52323ef6e6e5adef"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jul 22 14:11:56 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Jul 23 10:02:07 2010 -0700"
      },
      "message": "ceph: fix leak of dentry in ceph_init_dentry() error path\n\nIf we fail to allocate a ceph_dentry_info, don\u0027t leak the dn reference.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "bc4fdca85734d12cd2c7a25c52323ef6e6e5adef",
      "tree": "64063d3fc8e39dd22d1621c7e30b184585bfdaf2",
      "parents": [
        "252af5214682191e34e57204e1a31924fb82c207"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jul 20 16:19:56 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Jul 23 10:02:06 2010 -0700"
      },
      "message": "ceph: fix pg_mapping leak on pg_temp updates\n\nFree the ceph_pg_mapping structs when they are removed from the pg_temp\nrbtree.  Also fix a leak in the __insert_pg_mapping() error path.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "252af5214682191e34e57204e1a31924fb82c207",
      "tree": "56834ab133d2b466b35dfff0abd4db71a9f658ad",
      "parents": [
        "a0dff78dab0ff8d78bd5c9e33c105cf1292f2282"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jul 22 13:49:08 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Jul 23 10:02:05 2010 -0700"
      },
      "message": "ceph: fix d_release dop for snapdir, snapped dentries\n\nWe need to set the d_release dop for snapdir and snapped dentries so that\nthe ceph_dentry_info struct gets released.  We also use the dcache to\ncache readdir results when possible, which only works if we know when\ndentries are dropped from the cache.  Since we don\u0027t use the dcache for\nreaddir in the hidden snapdir, avoid that case in ceph_dentry_release.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "a0dff78dab0ff8d78bd5c9e33c105cf1292f2282",
      "tree": "70e63198ffd47f391b804e6d8303778cf514e581",
      "parents": [
        "b37fa16e78d6f9790462b3181602a26b5af36260"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jul 22 13:47:21 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jul 22 13:50:45 2010 -0700"
      },
      "message": "ceph: avoid dcache readdir for snapdir\n\nWe should always go to the MDS for readdir on the hidden snapdir.  The\nset of snapshots can change at any time; the client can\u0027t trust its cache\nfor that.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "e979cf50395e24c4bdd489f60e2d5dd5ae66d255",
      "tree": "5d26b26b4b7eb9bed0812800ea4d2d5704c5eaa3",
      "parents": [
        "01a92f174f8a3b99dbb5e02c86e7ee1e576737af"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jul 15 14:58:39 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Jul 16 10:30:18 2010 -0700"
      },
      "message": "ceph: do not include cap/dentry releases in replayed messages\n\nStrip the cap and dentry releases from replayed messages.  They can\ncause the shared state to get out of sync because they were generated\n(with the request message) earlier, and no longer reflect the current\nclient state.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "01a92f174f8a3b99dbb5e02c86e7ee1e576737af",
      "tree": "ad478397d935b4b09340408cbacf8c6d35dee9d1",
      "parents": [
        "f91d3471ccf1ca9a795f46c94b1ded8dd219940c"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jul 15 13:24:32 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Jul 16 10:30:17 2010 -0700"
      },
      "message": "ceph: reuse request message when replaying against recovering mds\n\nReplayed rename operations (after an mds failure/recovery) were broken\nbecause the request paths were regenerated from the dentry names, which\nget mangled when d_move() is called.\n\nInstead, resend the previous request message when replaying completed\noperations.  Just make sure the REPLAY flag is set and the target ino is\nfilled in.\n\nThis fixes problems with workloads doing renames when the MDS restarts,\nwhere the rename operation appears to succeed, but on mds restart then\nfails (leading to client confusion, app breakage, etc.).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "f91d3471ccf1ca9a795f46c94b1ded8dd219940c",
      "tree": "7a8d496d69ad9dd7a206183d11f5719b7161e6a7",
      "parents": [
        "39139f64e14684cf2370770deb79d929d27cfd9b"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jul 01 15:18:31 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Jul 09 15:00:20 2010 -0700"
      },
      "message": "ceph: fix creation of ipv6 sockets\n\nUse the address family from the peer address instead of assuming IPv4.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "39139f64e14684cf2370770deb79d929d27cfd9b",
      "tree": "7ea80cd49b3afd0816eacf7fbf191647c44d5661",
      "parents": [
        "d06dbaf6c2c7187938f3f6745d9e4938a2d0ec47"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jul 08 09:54:52 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Jul 09 15:00:18 2010 -0700"
      },
      "message": "ceph: fix parsing of ipv6 addresses\n\nCheck for brackets around the ipv6 address to avoid ambiguity with the port\nnumber.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "d06dbaf6c2c7187938f3f6745d9e4938a2d0ec47",
      "tree": "472cfd72bcc15d7a7323a58a8698bab6ec7f33f1",
      "parents": [
        "b0bbb0be8f7fbf6d366b359e034c78a96c4e274d"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jul 08 10:47:16 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jul 08 16:49:53 2010 -0700"
      },
      "message": "ceph: fix printing of ipv6 addrs\n\nThe buffer was too small.  Make it bigger, use snprintf(), put brackets\naround the ipv6 address to avoid mixing it up with the :port, and use the\never-so-handy %pI[46] formats.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "b0bbb0be8f7fbf6d366b359e034c78a96c4e274d",
      "tree": "cc3f2c6c33a49eae3880165def5a13e1af23b0ed",
      "parents": [
        "22b1de06c9fe128ca3de72560c3e8c2cabf2927a"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Thu Jul 08 14:49:38 2010 +0200"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jul 08 08:03:24 2010 -0700"
      },
      "message": "ceph: add kfree() to error path\n\nWe leak a \"pi\" on this error path.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "22b1de06c9fe128ca3de72560c3e8c2cabf2927a",
      "tree": "e8f711819f4430e8da584b3bbaba0bd6227d7edd",
      "parents": [
        "ed98adad3d87594c55347824e85137d1829c9e70"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jul 05 15:36:49 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jul 05 15:36:49 2010 -0700"
      },
      "message": "ceph: fix leak of mon authorizer\n\nFix leak of a struct ceph_buffer on umount.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ed98adad3d87594c55347824e85137d1829c9e70",
      "tree": "b22414183f7eff1ac1ba606a3ebf2357f0876b4c",
      "parents": [
        "153a10939ea6e42e9c0115b0645060d0d7bb4697"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jul 05 12:15:14 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jul 05 12:16:23 2010 -0700"
      },
      "message": "ceph: fix message revocation\n\nA message can be on a queue (pending or sent), or out_msg (sending), or\nboth.  We were assuming that if it\u0027s not on a queue it couldn\u0027t be out_msg,\nbut that was false in the case of lossy connections like the OSD.  Fix\nceph_con_revoke() to treat these cases independently.  Also, fix the\nout_kvec_is_message check to only trigger if we are currently sending\n_this_ message.\n\nThis fixes a GPF in tcp_sendpage, triggered by OSD restarts.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "153a10939ea6e42e9c0115b0645060d0d7bb4697",
      "tree": "6d6362aebbe5e0450c0bb1eed27cdb4cee420f2a",
      "parents": [
        "443b3760a06860187f135c1ecd56c2c7d4ad1022"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jul 05 09:44:17 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jul 05 09:44:17 2010 -0700"
      },
      "message": "ceph: fix crush device \u0027out\u0027 threshold to 1.0, not 0.1\n\nFix a typo that made any OSD weighted between 0.1 and 1.0 effectively\nweighted as 1.0 (fully in).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "443b3760a06860187f135c1ecd56c2c7d4ad1022",
      "tree": "d6a3ec8b77f133066bd7795acca33f461eee821a",
      "parents": [
        "ec97f88ba6d4256927fde516033ee76d5d85b54a"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jun 29 09:28:39 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jun 29 09:31:56 2010 -0700"
      },
      "message": "ceph: fix caps usage accounting for import (non-reserved) case\n\nWe need to increase the total and used counters when allocating a new cap\nin the non-reserved (cap import) case.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ec97f88ba6d4256927fde516033ee76d5d85b54a",
      "tree": "0df9cb10364afdb9092a089ba0da4a15f3c25a06",
      "parents": [
        "a1a31e734241aefcb2b30fb0cc0376977b6d2ba8"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jun 24 15:12:37 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jun 29 09:31:55 2010 -0700"
      },
      "message": "ceph: only release clean, unused caps with mds requests\n\nWe can drop caps with an mds request.  Ensure we only drop unused AND\nclean caps, since the MDS doesn\u0027t support cap writeback in that context,\nnor do we track it.  If caps are dirty, and the MDS needs them back, we\nit will revoke and we will flush in the normal fashion.\n\nThis fixes a possibly loss of metadata.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "a1a31e734241aefcb2b30fb0cc0376977b6d2ba8",
      "tree": "3247b61cf5f1cc3efb212e0362493f98f326e4ff",
      "parents": [
        "55bda7aacd13f5fdfeaafc16934953171405c692"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jun 24 12:58:14 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jun 24 12:58:14 2010 -0700"
      },
      "message": "ceph: fix crush CHOOSE_LEAF when type is already a leaf\n\nWe may not recurse for CHOOSE_LEAF if we start with a leaf node.  When\nthat happens, the out2 vector needs to be filled in with the result.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "55bda7aacd13f5fdfeaafc16934953171405c692",
      "tree": "0eac30a53266f636589e4b6220409289d068625a",
      "parents": [
        "bfaf148eb2e42c00f1c79b2163f0804068ea0c5e"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jun 24 12:55:48 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jun 24 12:55:48 2010 -0700"
      },
      "message": "ceph: fix crush recursion\n\nThere was a longstanding problem with recursion through intervening\nbucket types on complex hierarchies.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "bfaf148eb2e42c00f1c79b2163f0804068ea0c5e",
      "tree": "8d6b4dfcc42cd156bc80f0db472e9b3988edcd1b",
      "parents": [
        "17c688c3dfffc274c87be00033da0050bb6eefc0"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Wed Jun 23 15:52:27 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jun 24 09:47:36 2010 -0700"
      },
      "message": "ceph: fix caps debugfs entry\n\nThe ceph client structure was not set correctly.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "17c688c3dfffc274c87be00033da0050bb6eefc0",
      "tree": "1b1586253abf6850c9746235462d71e14e57f243",
      "parents": [
        "d69ed05a80f23b25f06e73af9b7e701ce4900edc"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jun 21 16:12:26 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jun 21 16:11:50 2010 -0700"
      },
      "message": "ceph: delay umount until all mds requests drop inode+dentry refs\n\nThis fixes a race between handle_reply finishing an mds request, signalling\ncompletion, and then dropping the request structing and its dentry+inode\nrefs, and pre_umount function waiting for requests to finish before\nletting the vfs tear down the dcache.  If umount was delayed waiting for\nmds requests, we could race and BUG in shrink_dcache_for_umount_subtree\nbecause of a slow dput.\n\nThis delays umount until the msgr queue flushes, which means handle_reply\nwill exit and will have dropped the ceph_mds_request struct.  I\u0027m assuming\nthe VFS has already ensured that its calls have all completed and those\nrequest refs have thus been dropped as well (I haven\u0027t seen that race, at\nleast).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "d69ed05a80f23b25f06e73af9b7e701ce4900edc",
      "tree": "dfe4d372b1c2bb66a71d13d6bf8a22758640ddd0",
      "parents": [
        "cebc5be6b6c82a99231e9c9af451e9e3d3399ec6"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jun 21 10:38:14 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jun 21 16:04:10 2010 -0700"
      },
      "message": "ceph: handle splice_dentry/d_materialize_unique error in readdir_prepopulate\n\nHandle a splice_dentry failure (due to a d_materialize_unique error)\nwithout crashing.  (Also, report the error code.)\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "cebc5be6b6c82a99231e9c9af451e9e3d3399ec6",
      "tree": "5899be89ac6396cb38ca938f922ef0a8ab57d3b3",
      "parents": [
        "ae32be31341a5fecfa16c5b3eb78095207182cce"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jun 17 10:22:48 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jun 17 10:22:48 2010 -0700"
      },
      "message": "ceph: fix crush map update decoding\n\nIf the incremental osdmap has a new crush map, advance the position after\ndecoding so that we can parse the rest of the osdmap properly.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ae32be31341a5fecfa16c5b3eb78095207182cce",
      "tree": "1fb056abaab9a6ca5f593dba6237f6ebc0f6135c",
      "parents": [
        "4a32f93d29b05cdab63c0e2979bc1524c8ea6bf5"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Jun 13 10:30:19 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Jun 13 10:34:36 2010 -0700"
      },
      "message": "ceph: fix message memory leak, uninitialized variable\n\nWe need to properly initialize skip, as not all alloc_msg op instances\nset it.\n\nAlso, BUG if someone says skip but also allocates a message.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "4a32f93d29b05cdab63c0e2979bc1524c8ea6bf5",
      "tree": "381f3bac8bb564a4666f48a0d6d459b0a2bbbba7",
      "parents": [
        "0cf5537b158caae42bcc03f0f6db10f68585b1ec"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Jun 13 10:27:53 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Jun 13 10:34:36 2010 -0700"
      },
      "message": "ceph: fix map handler error path\n\nDon\u0027t leak message if we receive an unexpected message type.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "0cf5537b158caae42bcc03f0f6db10f68585b1ec",
      "tree": "a64e764eff79981bbcac289e33f8022096be0cbe",
      "parents": [
        "7e27d6e778cd87b6f2415515d7127eba53fe5d02"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Fri Jun 11 15:57:06 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Jun 13 10:34:36 2010 -0700"
      },
      "message": "ceph: some endianity fixes\n\nFix some problems that came up with sparse.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "2b2300d62ea413bec631d5b880effa2cc5363acb",
      "tree": "50707a1b8a547d781dc23fd830c23d580671c8a8",
      "parents": [
        "3d7ded4d81d807c2f75f310a8d74a5d72be13a1b"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Jun 09 16:52:04 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jun 10 13:30:25 2010 -0700"
      },
      "message": "ceph: try to send partial cap release on cap message on missing inode\n\nIf we have enough memory to allocate a new cap release message, do so, so\nthat we can send a partial release message immediately.  This keeps us from\nmaking the MDS wait when the cap release it needs is in a partially full\nrelease message.\n\nIf we fail because of ENOMEM, oh well, they\u0027ll just have to wait a bit\nlonger.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "3d7ded4d81d807c2f75f310a8d74a5d72be13a1b",
      "tree": "c633b938f72dcd39c84f2430c7d4025331ab4369",
      "parents": [
        "9dbd412f56c453f15014396c6024b895c1485ccb"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Jun 09 16:47:10 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jun 10 13:30:07 2010 -0700"
      },
      "message": "ceph: release cap on import if we don\u0027t have the inode\n\nIf we get an IMPORT that give us a cap, but we don\u0027t have the inode, queue\na release (and try to send it immediately) so that the MDS doesn\u0027t get\nstuck waiting for us.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "9dbd412f56c453f15014396c6024b895c1485ccb",
      "tree": "633dc3b97a73f3cc131d6640a9d58806bbb359ce",
      "parents": [
        "00d5643e7c5ed4ae1bb0b385fe2f41bb951cc3cd"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jun 10 13:21:20 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jun 10 13:29:59 2010 -0700"
      },
      "message": "ceph: fix misleading/incorrect debug message\n\nNothing is released here: the caps message is simply ignored in this case.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "00d5643e7c5ed4ae1bb0b385fe2f41bb951cc3cd",
      "tree": "5bfc31767da9d3a987be9ff117d366bfa8d73415",
      "parents": [
        "1e5ea23df11c7c90c7e7268dd3a6603bfa5aadf7"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Thu Jun 10 11:13:58 2010 -0400"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jun 10 13:29:50 2010 -0700"
      },
      "message": "ceph: fix atomic64_t initialization on ia64\n\nbdi_seq is an atomic_long_t but we\u0027re using ATOMIC_INIT, which causes\n build failures on ia64. This patch fixes it to use ATOMIC_LONG_INIT.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "1e5ea23df11c7c90c7e7268dd3a6603bfa5aadf7",
      "tree": "d7a09a153c3b00add2eee343d8584bc90b1cb848",
      "parents": [
        "558d3499bd059d4534b1f2b69dc1c562acc733fe"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Jun 04 10:05:40 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Jun 04 10:05:40 2010 -0700"
      },
      "message": "ceph: fix lease revocation when seq doesn\u0027t match\n\nIf the client revokes a lease with a higher seq than what we have, keep\nthe mds\u0027s seq, so that it honors our release.  Otherwise, we can hang\nindefinitely.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "558d3499bd059d4534b1f2b69dc1c562acc733fe",
      "tree": "6a8a46b1b8a0588506160624cffebed157a4455e",
      "parents": [
        "205475679a74fe40b63a1c7f41110fdb64daa8b9"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jun 01 12:51:12 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jun 01 16:56:03 2010 -0700"
      },
      "message": "ceph: fix f_namelen reported by statfs\n\nWe were setting f_namelen in kstatfs to PATH_MAX instead of NAME_MAX.\nThat disagrees with ceph_lookup behavior (which checks against NAME_MAX),\nand also makes the pjd posix test suite spit out ugly errors because with\ncan\u0027t clean up its temporary files.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "205475679a74fe40b63a1c7f41110fdb64daa8b9",
      "tree": "08c40894f919e89d37df0ca9a27bffb209912a15",
      "parents": [
        "13a4214cd9ec14d7b77e98bd3ee51f60f868a6e5"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Tue Jun 01 10:37:40 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jun 01 16:56:02 2010 -0700"
      },
      "message": "ceph: fix memory leak in statfs\n\nFreeing the statfs request structure when required.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "13a4214cd9ec14d7b77e98bd3ee51f60f868a6e5",
      "tree": "baf741b4b80b169994591870106a39a885b55a68",
      "parents": [
        "67a3e12b05e055c0415c556a315a3d3eb637e29e"
      ],
      "author": {
        "name": "Henry C Chang",
        "email": "henry_c_chang@tcloudcomputing.com",
        "time": "Tue Jun 01 11:31:08 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jun 01 16:55:55 2010 -0700"
      },
      "message": "ceph: fix d_subdirs ordering problem\n\nWe misused list_move_tail() to order the dentry in d_subdirs.\nThis will screw up the d_subdirs order.\n\nThis bug can be reliably reproduced by:\n1. mount ceph fs.\n2. on ceph fs, git clone git://ceph.newdream.net/git/ceph.git\n3. Run autogen.sh in ceph directory.\n(Note: Errors only occur at the first time you run autogen.sh.)\n\nSigned-off-by: Henry C Chang \u003chenry_c_chang@tcloudcomputing.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "b612a0553714c6b9744ad0d03f10cac78f3a84b1",
      "tree": "9dfb5cb5d13c187ff1f54448f8441512203625d0",
      "parents": [
        "52b0ace7dfe8f70350218017a95d7cab1eb41fbb",
        "2a8e5e3637e2fc058798f5d3626f525729ffaaaf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 30 08:56:39 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 30 08:56:39 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:\n  ceph: clean up on forwarded aborted mds request\n  ceph: fix leak of osd authorizer\n  ceph: close out mds, osd connections before stopping auth\n  ceph: make lease code DN specific\n  fs/ceph: Use ERR_CAST\n  ceph: renew auth tickets before they expire\n  ceph: do not resend mon requests on auth ticket renewal\n  ceph: removed duplicated #includes\n  ceph: avoid possible null dereference\n  ceph: make mds requests killable, not interruptible\n  sched: add wait_for_completion_killable_timeout\n"
    },
    {
      "commit": "2a8e5e3637e2fc058798f5d3626f525729ffaaaf",
      "tree": "fc35ac8b29813050cf5199574646106da171a88f",
      "parents": [
        "79494d1b9b92259eb40ea6e939ba5aff4b8de5f1"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri May 28 16:43:16 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat May 29 09:42:05 2010 -0700"
      },
      "message": "ceph: clean up on forwarded aborted mds request\n\nIf an mds request is aborted (timeout, SIGKILL), it is left registered to\nkeep our state in sync with the mds.  If we get a forward notification,\nthough, we know the request didn\u0027t succeed and we can unregister it\nsafely.  We were trying to resend it, but then bailing out (and not\nunregistering) in __do_request.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "79494d1b9b92259eb40ea6e939ba5aff4b8de5f1",
      "tree": "4e646e85059ba65083896ba3454b9a30a146b6ff",
      "parents": [
        "a922d38fd10d55d5033f10df15baf966e8f5b18c"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu May 27 14:15:49 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat May 29 09:42:04 2010 -0700"
      },
      "message": "ceph: fix leak of osd authorizer\n\nRelease the ceph_authorizer when releasing osd state.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "a922d38fd10d55d5033f10df15baf966e8f5b18c",
      "tree": "306f73dedd5482f09bdac6dc9ecb5285f95b316f",
      "parents": [
        "dd1c9057366f329911180e9000e2b425f23fc287"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat May 29 09:41:23 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat May 29 09:42:03 2010 -0700"
      },
      "message": "ceph: close out mds, osd connections before stopping auth\n\nThe auth module (part of the mon_client) is needed to free any\nceph_authorizer(s) used by the mds and osd connections.  Flush the msgr\nworkqueue before stopping monc to ensure that the destroy_authorizer\nauth op is available when those connections are closed out.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "dd1c9057366f329911180e9000e2b425f23fc287",
      "tree": "719ad55ef41a86aaa98419ade71b005306456ed6",
      "parents": [
        "7e34bc524ecae3a04d8cc427ee76ddad826a937b"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 25 16:45:25 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat May 29 09:12:42 2010 -0700"
      },
      "message": "ceph: make lease code DN specific\n\nThe lease code includes a mask in the CEPH_LOCK_* namespace, but that\nnamespace is changing, and only one mask (formerly _DN \u003d\u003d 1) is used, so\nhard code for that value for now.\n\nIf we ever extend this code to handle leases over different data types we\ncan extend it accordingly.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "7e34bc524ecae3a04d8cc427ee76ddad826a937b",
      "tree": "5065eb0e287e450aef2d8e03e3a18d8f895a4c9e",
      "parents": [
        "a41359fa355e7b450c610ed8e913d5d75c3c9c3b"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Sat May 22 12:01:14 2010 +0200"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat May 29 09:12:41 2010 -0700"
      },
      "message": "fs/ceph: Use ERR_CAST\n\nUse ERR_CAST(x) rather than ERR_PTR(PTR_ERR(x)).  The former makes more\nclear what is the purpose of the operation, which otherwise looks like a\nno-op.\n\nIn the case of fs/ceph/inode.c, ERR_CAST is not needed, because the type of\nthe returned value is the same as the type of the enclosing function.\n\nThe semantic patch that makes this change is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\ntype T;\nT x;\nidentifier f;\n@@\n\nT f (...) { \u003c+...\n- ERR_PTR(PTR_ERR(x))\n+ x\n ...+\u003e }\n\n@@\nexpression x;\n@@\n\n- ERR_PTR(PTR_ERR(x))\n+ ERR_CAST(x)\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "a41359fa355e7b450c610ed8e913d5d75c3c9c3b",
      "tree": "6dc6681f4350f0888ddcb55b5a21326069c200b2",
      "parents": [
        "09c4d6a7d40dd26c1b35674c582382b7ea551368"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 25 15:39:06 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat May 29 09:12:39 2010 -0700"
      },
      "message": "ceph: renew auth tickets before they expire\n\nWe were only requesting renewal after our tickets expire; do so before\nthat.  Most of the low-level logic for this was already there; just use\nit.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "09c4d6a7d40dd26c1b35674c582382b7ea551368",
      "tree": "b3afda46b0342ea3e87980b5bb2f6148ce119414",
      "parents": [
        "984c76908efd3c6795aa03dff16a8fc3496af99f"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 25 15:38:06 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat May 29 09:12:38 2010 -0700"
      },
      "message": "ceph: do not resend mon requests on auth ticket renewal\n\nWe only want to send pending mon requests when we successfully\nauthenticate.  If we are already authenticated, like when we renew our\nticket, there is no need to resend pending requests.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "984c76908efd3c6795aa03dff16a8fc3496af99f",
      "tree": "99b0e7bd4016036fb445809c73e722a1e94d94a2",
      "parents": [
        "e95e9a7ae4c1e7655a0438579f891b3c60178d77"
      ],
      "author": {
        "name": "Andrea Gelmini",
        "email": "andrea.gelmini@gelma.net",
        "time": "Sun May 23 21:47:58 2010 +0200"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat May 29 09:12:37 2010 -0700"
      },
      "message": "ceph: removed duplicated #includes\n\nfs/ceph/auth.c: linux/slab.h is included more than once.\nfs/ceph/super.h: linux/slab.h is included more than once.\n\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Andrea Gelmini \u003candrea.gelmini@gelma.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "e95e9a7ae4c1e7655a0438579f891b3c60178d77",
      "tree": "7704aabe47fe7ad8347717b4b6e2b58224b78d9b",
      "parents": [
        "aa91647c898d62e869fcf35e977ab3c533be8fc1"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 25 09:24:42 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat May 29 09:12:36 2010 -0700"
      },
      "message": "ceph: avoid possible null dereference\n\nac-\u003eops may be null; use protocol id in error message instead.\n\nReported-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "aa91647c898d62e869fcf35e977ab3c533be8fc1",
      "tree": "6a5ff908ecb2732d891baa4bac52b5690130e887",
      "parents": [
        "0aa12fb439838a85802ab8b7fbb9bcfc3e6e05cb"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 24 11:15:51 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat May 29 09:12:35 2010 -0700"
      },
      "message": "ceph: make mds requests killable, not interruptible\n\nThe underlying problem is that many mds requests can\u0027t be restarted.  For\nexample, a restarted create() would return -EEXIST if the original request\nsucceeds.  However, we do not want a hung MDS to hang the client too.  So,\nuse the _killable wait_for_completion variants to abort on SIGKILL but\nnothing else.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    }
  ],
  "next": "7ea8085910ef3dd4f3cad6845aaa2b580d39b115"
}
