)]}'
{
  "log": [
    {
      "commit": "6e188240ebc2a132d70924942d7c8b9acb46e11a",
      "tree": "7628df39f9c1d60a639504faaf6b5941b2c4b4ae",
      "parents": [
        "62a11ae3405b6da2535d28e5facc2de5af4a7e62",
        "240ed68eb567d80dd6bab739341999a5ab0ad55d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:37:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 24 07:37:52 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: (59 commits)\n  ceph: reuse mon subscribe message instead of allocated anew\n  ceph: avoid resending queued message to monitor\n  ceph: Storage class should be before const qualifier\n  ceph: all allocation functions should get gfp_mask\n  ceph: specify max_bytes on readdir replies\n  ceph: cleanup pool op strings\n  ceph: Use kzalloc\n  ceph: use common helper for aborted dir request invalidation\n  ceph: cope with out of order (unsafe after safe) mds reply\n  ceph: save peer feature bits in connection structure\n  ceph: resync headers with userland\n  ceph: use ceph. prefix for virtual xattrs\n  ceph: throw out dirty caps metadata, data on session teardown\n  ceph: attempt mds reconnect if mds closes our session\n  ceph: clean up send_mds_reconnect interface\n  ceph: wait for mds OPEN reply to indicate reconnect success\n  ceph: only send cap releases when mds is OPEN|HUNG\n  ceph: dicard cap releases on mds restart\n  ceph: make mon client statfs handling more generic\n  ceph: drop src address(es) from message header [new protocol feature]\n  ...\n"
    },
    {
      "commit": "240ed68eb567d80dd6bab739341999a5ab0ad55d",
      "tree": "fabd30d0897a30fa401f85e858f8aecdedb02959",
      "parents": [
        "970690012c572fc3b7be532080564b730f6a9c02"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri May 21 14:57:25 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri May 21 16:26:11 2010 -0700"
      },
      "message": "ceph: reuse mon subscribe message instead of allocated anew\n\nUse the same message, allocated during startup.  No need to reallocate a\nnew one each time around (and potentially ENOMEM).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\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": "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": "970690012c572fc3b7be532080564b730f6a9c02",
      "tree": "07fcab8e6e374e175aa964a33b5d8a2c36dc76a8",
      "parents": [
        "9e32789f63fc5ad91c8b10f68ec23a86856d5af5"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri May 21 12:31:49 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri May 21 15:01:22 2010 -0700"
      },
      "message": "ceph: avoid resending queued message to monitor\n\nThe auth_reply handler will (re)send any pending requests.  For the\ninitial mon authenticate phase, that\u0027s correct, but when a auth ticket\nrenewal races with an in-flight request, we may resend a request message\nthat is already in flight.  Avoid this by revoking the message before\nsending it.\n\nWe should also avoid resending requests at all during ticket renewal; that\nwill come soon.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "9e32789f63fc5ad91c8b10f68ec23a86856d5af5",
      "tree": "d70a343f5c2e0689d4e44ba93a586fe3d21bbdc6",
      "parents": [
        "34d23762d988b7dcb08390ac72a353df3d60193c"
      ],
      "author": {
        "name": "Tobias Klauser",
        "email": "tklauser@distanz.ch",
        "time": "Thu May 20 10:40:19 2010 +0200"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri May 21 15:01:21 2010 -0700"
      },
      "message": "ceph: Storage class should be before const qualifier\n\nThe C99 specification states in section 6.11.5:\n\nThe placement of a storage-class specifier other than at the beginning\nof the declaration specifiers in a declaration is an obsolescent\nfeature.\n\nSigned-off-by: Tobias Klauser \u003ctklauser@distanz.ch\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "34d23762d988b7dcb08390ac72a353df3d60193c",
      "tree": "3a49d039527548697165da2b8789f3588b95ffed",
      "parents": [
        "23804d91f112df09b832cd091b71af4dc2831aa8"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Tue Apr 06 14:33:58 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:42 2010 -0700"
      },
      "message": "ceph: all allocation functions should get gfp_mask\n\nThis is essential, as for the rados block device we\u0027ll need\nto run in different contexts that would need flags that\nare other than GFP_NOFS.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "23804d91f112df09b832cd091b71af4dc2831aa8",
      "tree": "4b77c43b47d58f08ab02220c507dabfc8f6daf7a",
      "parents": [
        "366837706bae00abc2edd75add2579c1be18b2b8"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri May 14 13:06:30 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:41 2010 -0700"
      },
      "message": "ceph: specify max_bytes on readdir replies\n\nSpecify max bytes in request to bound size of reply.  Add associated\nmount option with default value of 512 KB.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "366837706bae00abc2edd75add2579c1be18b2b8",
      "tree": "cc66bd8c4696da8530912b9368bf73fff151df6c",
      "parents": [
        "cffe7b6d8cc029d13524acedf4917210dc0102ab"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri May 14 11:36:48 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:41 2010 -0700"
      },
      "message": "ceph: cleanup pool op strings\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "cffe7b6d8cc029d13524acedf4917210dc0102ab",
      "tree": "8f0358059a8ebe29844375694768b88b915256f4",
      "parents": [
        "167c9e352deb7e25568c926c49c3eafad69cbe76"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Thu May 13 22:07:29 2010 +0200"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:40 2010 -0700"
      },
      "message": "ceph: Use kzalloc\n\nUse kzalloc rather than the combination of kmalloc and memset.\n\nThe semantic patch that makes this change is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\nexpression x,size,flags;\nstatement S;\n@@\n\n-x \u003d kmalloc(size,flags);\n+x \u003d kzalloc(size,flags);\n if (x \u003d\u003d NULL) S\n-memset(x, 0, size);\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": "167c9e352deb7e25568c926c49c3eafad69cbe76",
      "tree": "b420c256e60accca30704059ab676e878cf49603",
      "parents": [
        "85792d0dd6e7a7a18fba55c97e49871211b28fe0"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri May 14 10:02:57 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:40 2010 -0700"
      },
      "message": "ceph: use common helper for aborted dir request invalidation\n\nWe invalidate I_COMPLETE and dentry leases in two places: on aborted mds\nrequest and on request replay.  Use common helper to avoid duplicate code.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "85792d0dd6e7a7a18fba55c97e49871211b28fe0",
      "tree": "7b8405250e818f8d5b71d9495c06bf5773d9c5e7",
      "parents": [
        "aba558e28ac40a598542d995c09efa8439ee3ed4"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu May 13 09:06:02 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:39 2010 -0700"
      },
      "message": "ceph: cope with out of order (unsafe after safe) mds reply\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "aba558e28ac40a598542d995c09efa8439ee3ed4",
      "tree": "22df6fe65694b3ebe5a0a56dbf96c3973f3c5812",
      "parents": [
        "ca9d93a292e327bbcddd8f8ea4197397e35097d4"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed May 12 15:23:30 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:38 2010 -0700"
      },
      "message": "ceph: save peer feature bits in connection structure\n\nThese are used for adjusting behavior, such as conditionally encoding a\nnewer message format.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ca9d93a292e327bbcddd8f8ea4197397e35097d4",
      "tree": "30e81e64079228bca30b4b32b5ad4df68eca6dc2",
      "parents": [
        "1a75627896fe67d0124eab6fe2f83dd40188c40c"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed May 12 14:48:20 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:38 2010 -0700"
      },
      "message": "ceph: resync headers with userland\n\nNotable changes include pool op defines and types, FLOCK feature bit, and\nnew CMPXATTR osd ops.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "1a75627896fe67d0124eab6fe2f83dd40188c40c",
      "tree": "56da99e971bd207208ea2b21ad72b9049a586ab6",
      "parents": [
        "6c99f2545dbb9e53afe0d1d037c51ab04ef1ff4e"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 11 11:40:25 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:37 2010 -0700"
      },
      "message": "ceph: use ceph. prefix for virtual xattrs\n\nDrop the \u0027user.\u0027 prefix and use just \u0027ceph.\u0027 for fs virtual xattrs.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "6c99f2545dbb9e53afe0d1d037c51ab04ef1ff4e",
      "tree": "0f6dae93a1970751ffd144431664ac9ed9141014",
      "parents": [
        "7e70f0ed9f3ee47394576be86c593f66832413e9"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 10 16:12:25 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:37 2010 -0700"
      },
      "message": "ceph: throw out dirty caps metadata, data on session teardown\n\nThe remove_session_caps() helper is called when an MDS closes out our\nsession (either normally, or as a result of a failed reconnect), and when\nwe tear down state for umount.  If we remove the last cap, and there are\nno cap migrations in progress, then there is little hope of us flushing\nout that data to the mds (without heroic efforts to reconnect and flush).\n\nSo, to avoid leaving inodes pinned (due to dirty state) and crashing after\numount, throw out dirty caps state and unpin the inodes.  Print a warning\nto the console so we know something was lost.\n\nNOTE: Although we drop wrbuffer refs, we don\u0027t actually mark pages clean;\nmaybe a truncate should be queued?\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "7e70f0ed9f3ee47394576be86c593f66832413e9",
      "tree": "2ef57fc14bff89309081eacde33f6cbaf767e867",
      "parents": [
        "34b6c855fafc54ef130649809cd580f98e3f8416"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Mar 18 13:59:12 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:36 2010 -0700"
      },
      "message": "ceph: attempt mds reconnect if mds closes our session\n\nCurrently, if our session is closed (due to a timeout, or explicit close,\nor whatever), we just sit there doing nothing unless/until the MDS\nrestarts, at which point we try to reconnect.\n\nChange client to attempt an immediate reconnect if our session is closed.\n\nNote that currently the MDS doesn\u0027t support this, and our attempt will\nfail.  We\u0027ll get a session CLOSE, our caps and dirty cap state will be\ndropped, and the client will be free to attempt to reconnect.  That\u0027s\nclearly not as nice as a successful reconnect, but it at least allows us\nto try to carry on, and in the future the MDS will support a reconnect\nand we will fare better.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "34b6c855fafc54ef130649809cd580f98e3f8416",
      "tree": "e66408bc69b59a8a096feeadda16984c3da563e4",
      "parents": [
        "29790f26ab3e63b2a083f0811b80e2f086e4fcb2"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 10 16:31:25 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:35 2010 -0700"
      },
      "message": "ceph: clean up send_mds_reconnect interface\n\nPass a ceph_mds_session, since the caller has it.\n\nRemove the dead code for sending empty reconnects.  It used to be used\nwhen the MDS contacted _us_ to solicit a reconnect, and we could reply\nsaying \"go away, I have no session.\"  Now we only send reconnects based\non the mds map, and only when we do in fact have an open session.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "29790f26ab3e63b2a083f0811b80e2f086e4fcb2",
      "tree": "0d254b23871db399e036c019c121f6d5c7c7b3db",
      "parents": [
        "aab53dd9e81ccefa7b8d88eec5138dd73639a783"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Mar 18 14:45:05 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:35 2010 -0700"
      },
      "message": "ceph: wait for mds OPEN reply to indicate reconnect success\n\nWe used to infer reconnect success by watching the MDS state, essentially\nassuming that hearing nothing meant things were ok.  That wasn\u0027t\nparticularly reliable.  Instead, the MDS replies with an explicit OPEN\nmessage to indicate success.\n\nStrictly speaking, this is a protocol change, but it is a backwards\ncompatible one that does not break new clients + old servers or old\nclients + new servers.  At least not yet.\n\nDrop unused @all argument from kick_requests while we\u0027re at it.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "aab53dd9e81ccefa7b8d88eec5138dd73639a783",
      "tree": "b61a95b826507b403a84177436ff83a999e10c4c",
      "parents": [
        "e01a594646ebbf964b6058e3bf28125379063439"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Mar 17 16:30:21 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:34 2010 -0700"
      },
      "message": "ceph: only send cap releases when mds is OPEN|HUNG\n\nOn OPENING we shouldn\u0027t have any caps (or releases).\nOn CLOSING, we should wait until we succeed (and throw it all out), or\ndon\u0027t (and are OPEN again).\nOn RECONNECTING we can wait until we are OPEN.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "e01a594646ebbf964b6058e3bf28125379063439",
      "tree": "046b2acf54f803b60e873f419014472128103d53",
      "parents": [
        "f8c76f6f250edbdc9d2011b0e05d196a3d8ae895"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 10 15:36:44 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:33 2010 -0700"
      },
      "message": "ceph: dicard cap releases on mds restart\n\nIf the MDS restarts, the expire caps state is no longer shared, and can be\nthrown out.  Caps state will be rebuilt on the MDS during the reconnect\nprocess that follows.  Zero out any release messages and adjust the\nrelease counter accordingly.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "f8c76f6f250edbdc9d2011b0e05d196a3d8ae895",
      "tree": "b53964559534aa989b3e24a404104631d67be8b6",
      "parents": [
        "dbad185d4939ffb806f6fa753ef9f470e3b72b62"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Thu Apr 22 15:40:37 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:33 2010 -0700"
      },
      "message": "ceph: make mon client statfs handling more generic\n\nThis is being done so that we could reuse the statfs\ninfrastructure with other requests that return values.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "dbad185d4939ffb806f6fa753ef9f470e3b72b62",
      "tree": "0d3aaa8f0028c8b4c7826ff2a9c292ca862cd64a",
      "parents": [
        "a5ee751c15016d0deee0d651e42a3b163ea73ade"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Mar 25 15:45:38 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:32 2010 -0700"
      },
      "message": "ceph: drop src address(es) from message header [new protocol feature]\n\nThe CEPH_FEATURE_NOSRCADDR protocol feature avoids putting the full source\naddress in each message header (twice).  This patch switches the client to\nthe new scheme, and _requires_ this feature on the server.  The server\nwill support both the old and new schemes.  That means an old client will\nwork with a new server, but a new client will not work with an old server.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "a5ee751c15016d0deee0d651e42a3b163ea73ade",
      "tree": "eaf993df4c0c8d020ca16a778b34b24f8cb7f571",
      "parents": [
        "0f8605f2bde2c69737709765dfc574558ea35d4e"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Fri May 07 10:27:14 2010 +0200"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:32 2010 -0700"
      },
      "message": "ceph: cleanup: remove unused assignement\n\nWe don\u0027t ever use \"dirty\" so we can remove it.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "0f8605f2bde2c69737709765dfc574558ea35d4e",
      "tree": "77084c10be702d4c3e301686982b845e4eafb523",
      "parents": [
        "31e0cf8f6a1488b6ca69dcdceeaed107ecfd6463"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed May 05 15:51:35 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:31 2010 -0700"
      },
      "message": "ceph: clean up cap release loop vs spinlock\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "31e0cf8f6a1488b6ca69dcdceeaed107ecfd6463",
      "tree": "4562632f7bed0a611a523b6f8cd0ca137122bbce",
      "parents": [
        "56b7cf9581fa0486657102a6fb8efabc3eadeba1"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 04 16:39:35 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:30 2010 -0700"
      },
      "message": "ceph: name bdi ceph-%d instead of major:minor\n\nThe bdi_setup_and_register() helper doesn\u0027t help us since we bdi_init() in\ncreate_client() and bdi_register() only when sget() succeeds.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "56b7cf9581fa0486657102a6fb8efabc3eadeba1",
      "tree": "3ad9967f1198e2848f51c0ac0077a6340ed48bcb",
      "parents": [
        "b736b3d9d0ba52693701373d7cd88aaad8e5bed3"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 03 15:22:00 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:30 2010 -0700"
      },
      "message": "ceph: skip mds sync on forced unmount\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "b736b3d9d0ba52693701373d7cd88aaad8e5bed3",
      "tree": "6ad71bb0e31d2b2a62207fb8765ec655eb4c856a",
      "parents": [
        "6e19a16ef28aee09dbcbb9f3ff24ac4f439def7d"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Apr 30 12:45:02 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:29 2010 -0700"
      },
      "message": "ceph: adjust masked struct_v variable names\n\nReported-by: Bill Pemberton \u003cwfp5p@virginia.edu\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "6e19a16ef28aee09dbcbb9f3ff24ac4f439def7d",
      "tree": "e66eb2ff60ebd79eec5d06dd6360b3046d294da0",
      "parents": [
        "1cd3935bedccf592d44343890251452a6dd74fc4"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Apr 29 16:38:32 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:29 2010 -0700"
      },
      "message": "ceph: clean up mount options, -\u003eshow_options()\n\nEnsure all options are included in /proc/mounts.  Some cleanup.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "1cd3935bedccf592d44343890251452a6dd74fc4",
      "tree": "b088e425d19dbca7d7702e9f1bfa0b2dfa85eba0",
      "parents": [
        "1b7facc41b42c2ab904b2f88b64b1f8ca0ca6cb7"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 03 22:08:02 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:28 2010 -0700"
      },
      "message": "ceph: set dn offset when spliced\n\nWe want to assign an offset when the dentry goes from null to linked, which\nis always done by splice_dentry().  Notably, we should NOT assign an\noffset when a dentry is first created and is still null.\n\nBUG if we try to splice a non-null dentry (we shouldn\u0027t).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "1b7facc41b42c2ab904b2f88b64b1f8ca0ca6cb7",
      "tree": "43203661dfe2675979e32a477d598d0f7559c8ee",
      "parents": [
        "e8a7498715181ece36130335536e13733a5c3187"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Apr 16 12:58:02 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:27 2010 -0700"
      },
      "message": "ceph: don\u0027t clobber i_max_offset on already complete dir\n\nThis can screw up offsets assigned to new dentries and break dcache\nreaddir results.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "e8a7498715181ece36130335536e13733a5c3187",
      "tree": "3a8afe3901eecfefd833e024cf6f661c6992a12c",
      "parents": [
        "f1f2765faedc24f8f2e9fd68521a5ea469801b60"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Apr 15 14:08:49 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:27 2010 -0700"
      },
      "message": "ceph: skip set_dentry_offset work if directory not I_COMPLETE\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "f1f2765faedc24f8f2e9fd68521a5ea469801b60",
      "tree": "92952357c08d4b5e88151f42d01d1af4f9a652a3",
      "parents": [
        "bddfa3cc18fcd9c9313a1030b19d3b0ea2639310"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 03 21:50:39 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:26 2010 -0700"
      },
      "message": "ceph: set next_offset on readdir finish\n\nSet next_offset to 2 (always 2!), not 0, on readdir finish.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "bddfa3cc18fcd9c9313a1030b19d3b0ea2639310",
      "tree": "bd4560a74ffd5ebd40e3c35e10e465cfe810f2eb",
      "parents": [
        "a6424e48c8d54a5795430b07c4487f1ed280df4e"
      ],
      "author": {
        "name": "Henry C Chang",
        "email": "henry_c_chang@tcloudcomputing.com",
        "time": "Thu Apr 29 09:32:28 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:26 2010 -0700"
      },
      "message": "ceph: listxattr should compare version by \u003e\u003d\n\nIf the version hasn\u0027t changed, don\u0027t rebuild the index.\n\nSigned-off-by: Henry C Chang \u003chenry_c_chang@tcloudcomputing.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "a6424e48c8d54a5795430b07c4487f1ed280df4e",
      "tree": "34731c9cb1df3cfe885d4526ce79ca50c50b7b4a",
      "parents": [
        "9dd4658db1be5ca92c2ed2fd7a100d973125d9c5"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Apr 29 09:28:11 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:25 2010 -0700"
      },
      "message": "ceph: fix xattr dangling pointer / double free\n\nIf we use the xattr_blob, clear the pointer so we don\u0027t release the memory\nat the bottom of the fuction.\n\nReported-by: Henry C Chang \u003chenry_c_chang@tcloudcomputing.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "9dd4658db1be5ca92c2ed2fd7a100d973125d9c5",
      "tree": "0f9e2b9d0b6edd9c37a5f6528a1c7c60fb10a902",
      "parents": [
        "4f48280ee1d0654390cd50ad0c41ea93309e7c91"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Apr 28 13:51:50 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:25 2010 -0700"
      },
      "message": "ceph: close messenger race\n\nSimplify messenger locking, and close race between ceph_con_close() setting\nthe CLOSED bit and con_work() checking the bit, then taking the mutex.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "4f48280ee1d0654390cd50ad0c41ea93309e7c91",
      "tree": "e0a9b6502ddcf09caa66c99b787685f4846ea7ef",
      "parents": [
        "8c6efb58a5bab880d45b2078cb55ec4320707daf"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat Apr 24 09:56:35 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:24 2010 -0700"
      },
      "message": "ceph: name msgpools; useful error messages\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "8c6efb58a5bab880d45b2078cb55ec4320707daf",
      "tree": "fe4d72552be0525905d569f0efd09938c6175369",
      "parents": [
        "559c1e0073ae779d60e1c673cda837f3e4295302"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Apr 23 11:36:54 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:23 2010 -0700"
      },
      "message": "ceph: fix memory leak due to possible dentry init race\n\nFree dentry_info in error path.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "559c1e0073ae779d60e1c673cda837f3e4295302",
      "tree": "21ec63b449eb55df5fac575aeaab3ca16f239d4b",
      "parents": [
        "f26e681d52fcc4778d8c604ef047487ca9f3df95"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri May 14 09:55:18 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:23 2010 -0700"
      },
      "message": "ceph: include auth method in error messages\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "f26e681d52fcc4778d8c604ef047487ca9f3df95",
      "tree": "8ecf2e821aabda4c062debf469e3870f8ec13bf7",
      "parents": [
        "0d509c949a4d3f21943bd93863a2e6c2f0d0c004"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Apr 21 11:09:38 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:22 2010 -0700"
      },
      "message": "ceph: osdtimeout\u003d0 for now timeout\n\nAllow the osd reset timeout to be disabled.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "0d509c949a4d3f21943bd93863a2e6c2f0d0c004",
      "tree": "ecc5e040ddc8f61f39062c4694b4484adf19c9ae",
      "parents": [
        "c473ad927e6b3be0bac51ddf312e5d8d2b9220b0"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Wed Apr 21 12:31:13 2010 +0200"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:22 2010 -0700"
      },
      "message": "ceph: d_obtain_alias() returns ERR_PTR()\n\nd_obtain_alias() doesn\u0027t return NULL, it returns an ERR_PTR().\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "c473ad927e6b3be0bac51ddf312e5d8d2b9220b0",
      "tree": "64738dc2c6bd7e9f3881a4bcae68f0bed697a655",
      "parents": [
        "1bb71637d07d58e993ef3f8e2c6b7ca6f4c0e0b8"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Tue Apr 13 19:34:26 2010 +0100"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:21 2010 -0700"
      },
      "message": "ceph: wake up mount thread when getting osdmap\n\nNow that the mount thread waits for the osdmap, it needs\nto be awaken.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\n"
    },
    {
      "commit": "1bb71637d07d58e993ef3f8e2c6b7ca6f4c0e0b8",
      "tree": "9590cf814237dc6a8678a2252851674db31630f7",
      "parents": [
        "6822d00b5462e7a9dfa11dcc60cc25823a2107c5"
      ],
      "author": {
        "name": "Huang Weiyi",
        "email": "weiyi.huang@gmail.com",
        "time": "Thu Apr 08 19:48:57 2010 +0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:21 2010 -0700"
      },
      "message": "ceph: remove unused #includes\n\nRemove unused #include\u0027s in\n  fs/ceph/super.c\n\nSigned-off-by: Huang Weiyi \u003cweiyi.huang@gmail.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "6822d00b5462e7a9dfa11dcc60cc25823a2107c5",
      "tree": "1517ffd1d3798f89ee58ecd75a7d5183d0138d6d",
      "parents": [
        "6f2bc3ff4cdb03903c79e155e9e1889ce176de09"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Apr 07 11:23:20 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:20 2010 -0700"
      },
      "message": "ceph: wait for both monmap and osdmap when opening session\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\n"
    },
    {
      "commit": "6f2bc3ff4cdb03903c79e155e9e1889ce176de09",
      "tree": "73f3db68650997b714073c9f04eef40dcd2b6d96",
      "parents": [
        "bb257664f748bcfc80715f85f70f0f560caec3b4"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Apr 02 16:16:34 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:20 2010 -0700"
      },
      "message": "ceph: clean up connection reset\n\nReset out_keepalive_pending and peer_global_seq, and drop unused var.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "bb257664f748bcfc80715f85f70f0f560caec3b4",
      "tree": "0f03c628328082e660c6a60f6094cde478dadec9",
      "parents": [
        "a79832f26be370ee26ea81eecdfd42d10e49d66a"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Apr 01 16:07:23 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:19 2010 -0700"
      },
      "message": "ceph: simplify ceph_msg_new\n\nWe only need to pass in front_len.  Callers can attach any other payload\npieces (middle, data) as they see fit.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "a79832f26be370ee26ea81eecdfd42d10e49d66a",
      "tree": "59d55f3c928558505a420830eddfb01b3186d467",
      "parents": [
        "d52f847a841bfeba0ea87a7842732d388a1ca2e8"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Apr 01 16:06:19 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:18 2010 -0700"
      },
      "message": "ceph: make ceph_msg_new return NULL on failure; clean up, fix callers\n\nReturning ERR_PTR(-ENOMEM) is useless extra work.  Return NULL on failure\ninstead, and fix up the callers (about half of which were wrong anyway).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "d52f847a841bfeba0ea87a7842732d388a1ca2e8",
      "tree": "642144233343a9cfbcac77924f3976206c8403a3",
      "parents": [
        "640ef79d27c81b7a3265a344ec1d25644dd463ad"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Apr 01 15:23:14 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:18 2010 -0700"
      },
      "message": "ceph: rewrite msgpool using mempool_t\n\nSince we don\u0027t need to maintain large pools of messages, we can just\nuse the standard mempool_t.  We maintain a msgpool \u0027wrapper\u0027 because we\nneed the mempool_t* in the alloc function, and mempool gives us only\npool_data.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "640ef79d27c81b7a3265a344ec1d25644dd463ad",
      "tree": "f5632a0b2a2f6cef7c6f3a513bbb6020d6ac694a",
      "parents": [
        "2d06eeb877581a7f53209af1582c5f66c799f0bd"
      ],
      "author": {
        "name": "Cheng Renquan",
        "email": "crquan@gmail.com",
        "time": "Fri Mar 26 17:40:33 2010 +0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:17 2010 -0700"
      },
      "message": "ceph: use ceph_sb_to_client instead of ceph_client\n\nceph_sb_to_client and ceph_client are really identical, we need to dump\none; while function ceph_client is confusing with \"struct ceph_client\",\nceph_sb_to_client\u0027s definition is more clear; so we\u0027d better switch all\ncall to ceph_sb_to_client.\n\n  -static inline struct ceph_client *ceph_client(struct super_block *sb)\n  -{\n  -\treturn sb-\u003es_fs_info;\n  -}\n\nSigned-off-by: Cheng Renquan \u003ccrquan@gmail.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "2d06eeb877581a7f53209af1582c5f66c799f0bd",
      "tree": "6ca8b71286549e02ab1c7d30579047543c16410f",
      "parents": [
        "7c315c552c7442eab73461de61dbcce579a31d3a"
      ],
      "author": {
        "name": "Cheng Renquan",
        "email": "crquan@gmail.com",
        "time": "Fri Mar 26 18:04:40 2010 +0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:16 2010 -0700"
      },
      "message": "ceph: handle kzalloc() failure\n\nSigned-off-by: Cheng Renquan \u003ccrquan@gmail.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "7c315c552c7442eab73461de61dbcce579a31d3a",
      "tree": "0821fb028c3a13360983bd9fb65599e8b5864aeb",
      "parents": [
        "6694d6b95cf3b41751e78815d05968fa2084d7bf"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Mar 24 21:52:30 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:16 2010 -0700"
      },
      "message": "ceph: drop unnecessary msgpool for mon_client subscribe_ack\n\nPreallocate a single message to reuse instead.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "6694d6b95cf3b41751e78815d05968fa2084d7bf",
      "tree": "f9b7e868e045c3e85b922a34ee7d2fd38cab1257",
      "parents": [
        "3143edd3a185f1fd370ebdd21b4151aa9f3283a3"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Mar 24 21:48:05 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:15 2010 -0700"
      },
      "message": "ceph: drop unnecessary msgpool for mon_client auth_reply\n\nPreallocate a single reply message that we can reuse instead.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "3143edd3a185f1fd370ebdd21b4151aa9f3283a3",
      "tree": "55253639685cc9aab6f228f780faca8dc57585aa",
      "parents": [
        "6f46cb29350963527b663c9eb4fe964daa9ae707"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Mar 24 21:43:33 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:15 2010 -0700"
      },
      "message": "ceph: clean up statfs\n\nAvoid unnecessary msgpool.  Preallocate reply.  Fix use-after-free race.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "6f46cb29350963527b663c9eb4fe964daa9ae707",
      "tree": "6550abaa45abaff66668e2914c1219e9f4cb930f",
      "parents": [
        "c7708075f18086ee7d02df8b891910893e9ea372"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Mar 24 21:30:19 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:14 2010 -0700"
      },
      "message": "ceph: fix theoretically possible double-put on connection\n\nThis would only trigger if we bailed out before resetting r_con_filling_msg\nbecause the server reply was corrupt (oversized).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "c7708075f18086ee7d02df8b891910893e9ea372",
      "tree": "04a8107f36b363edaf6735abe468760994e9461b",
      "parents": [
        "104648ad3f2ebe8556c020e5f0344853076cd5ee"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Sat Mar 20 16:01:27 2010 +0300"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:14 2010 -0700"
      },
      "message": "ceph: cleanup: remove dead code\n\n\"xattr\" is never NULL here.  We took care of that in the previous\nif statement block.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "104648ad3f2ebe8556c020e5f0344853076cd5ee",
      "tree": "a57679328b8a6160ffb376f0ba763eb99af37c94",
      "parents": [
        "31459fe4b24c1e09712eff0d82a5276f4fd0e3cf"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Mar 18 10:14:30 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:13 2010 -0700"
      },
      "message": "ceph: reduce build_path debug output\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "31459fe4b24c1e09712eff0d82a5276f4fd0e3cf",
      "tree": "b5f7b4c1bac0eb93cef51443373909eb91c43cc4",
      "parents": [
        "f553069e5d7c6f53688ae4470173fcb1be97cbe7"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Wed Mar 17 13:54:02 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:12 2010 -0700"
      },
      "message": "ceph: use __page_cache_alloc and add_to_page_cache_lru\n\nFollowing Nick Piggin patches in btrfs, pagecache pages should be\nallocated with __page_cache_alloc, so they obey pagecache memory\npolicies.\n\nAlso, using add_to_page_cache_lru instead of using a private\npagevec where applicable.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "f553069e5d7c6f53688ae4470173fcb1be97cbe7",
      "tree": "3abf4bb73c5792a2f5ee38afe0d3aa2c8e243cea",
      "parents": [
        "21b667f69b023979410188d7d94c9b219f216626"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Wed Mar 17 08:53:04 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:12 2010 -0700"
      },
      "message": "ceph: update for removal of kref_set\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "21b667f69b023979410188d7d94c9b219f216626",
      "tree": "7f6fd28d03fe97e1f4febd3ee5f8522e2f6a86dc",
      "parents": [
        "81a6cf2d30eac5d790f53cdff110892f7b18c7fe"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Mar 04 10:22:59 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 15:25:11 2010 -0700"
      },
      "message": "ceph: simplify page setup for incoming data\n\nDrop largely useless helper __prepare_pages(), and simplify sanity checks.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "81a6cf2d30eac5d790f53cdff110892f7b18c7fe",
      "tree": "9dcc1d4492b8736cda6a007a4a1c076048bd87af",
      "parents": [
        "b4556396fac5b3f063d5b8ac54dc02f7612a75e1"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri May 14 09:35:38 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 10:25:45 2010 -0700"
      },
      "message": "ceph: invalidate affected dentry leases on aborted requests\n\nIf we abort a request, we return to caller, but the request may still\ncomplete.  And if we hold the dir FILE_EXCL bit, we may not release a\nlease when sending a request.  A simple un-tar, control-c, un-tar again\nwill reproduce the bug (manifested as a \u0027Cannot open: File exists\u0027).\n\nEnsure we invalidate affected dentry leases (as well dir I_COMPLETE) so\nwe don\u0027t have valid (but incorrect) leases.  Do the same, consistently, at\nother sites where I_COMPLETE is similarly cleared.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "b4556396fac5b3f063d5b8ac54dc02f7612a75e1",
      "tree": "30f24bd81c4c007dd09fc625f202854803dd2628",
      "parents": [
        "e1518c7c0a67a75727f7285780dbef0ca7121cc9"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu May 13 12:01:13 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 10:25:45 2010 -0700"
      },
      "message": "ceph: fix race between aborted requests and fill_trace\n\nWhen we abort requests we need to prevent fill_trace et al from doing\nanything that relies on locks held by the VFS caller.  This fixes a race\nbetween the reply handler and the abort code, ensuring that continue\nholding the dir mutex until the reply handler completes.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "e1518c7c0a67a75727f7285780dbef0ca7121cc9",
      "tree": "0f0895ab0291f7ddf2ccbcfbd77018eebce171d5",
      "parents": [
        "e40152ee1e1c7a63f4777791863215e3faa37a86"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu May 13 11:19:06 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 10:25:44 2010 -0700"
      },
      "message": "ceph: clean up mds reply, error handling\n\nWe would occasionally BUG out in the reply handler because r_reply was\nnonzero, due to a race with ceph_mdsc_do_request temporarily setting\nr_reply to an ERR_PTR value.  This is unnecessary, messy, and also wrong\nin the EIO case.\n\nClean up by consistently using r_err for errors and r_reply for messages.\nAlso fix the abort logic to trigger consistently for all errors that return\nto the caller early (e.g., EIO from timeout case).  If an abort races with\na reply, use the result from the reply.\n\nAlso fix locking for r_err, r_reply update in the reply handler.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "e84346b726ea90a8ed470bc81c4136a7b8710ea5",
      "tree": "99a90ef86d38a51e39ed69af318e6cfe32023879",
      "parents": [
        "f818a73674c5d197f66b636a46d7d578d7258129"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 11 21:20:38 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 11 21:20:38 2010 -0700"
      },
      "message": "ceph: preserve seq # on requeued messages after transient transport errors\n\nIf the tcp connection drops and we reconnect to reestablish a stateful\nsession (with the mds), we need to resend previously sent (and possibly\nreceived) messages with the _same_ seq # so that they can be dropped on\nthe other end if needed.  Only assign a new seq once after the message is\nqueued.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "f818a73674c5d197f66b636a46d7d578d7258129",
      "tree": "90c485b5ca0a211b84ad8feddfce4f301de3d5c9",
      "parents": [
        "45c6ceb547ad2d98215351974a4686bf8cb13e14"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 11 20:56:31 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 11 20:56:31 2010 -0700"
      },
      "message": "ceph: fix cap removal races\n\nThe iterate_session_caps helper traverses the session caps list and tries\nto grab an inode reference.  However, the __ceph_remove_cap was clearing\nthe inode backpointer _before_ removing itself from the session list,\ncausing a null pointer dereference.\n\nClear cap-\u003eci under protection of s_cap_lock to avoid the race, and to\ntightly couple the list and backpointer state.  Use a local flag to\nindicate whether we are releasing the cap, as cap-\u003esession may be modified\nby a racing thread in iterate_session_caps.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "45c6ceb547ad2d98215351974a4686bf8cb13e14",
      "tree": "f7d5dc6b7900faebef1a29a5e0af5ac263a64337",
      "parents": [
        "9abf82b8bc93dd904738a71ca69aa5df356d4d24"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 11 15:01:51 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 11 15:17:40 2010 -0700"
      },
      "message": "ceph: zero unused message header, footer fields\n\nWe shouldn\u0027t leak any prior memory contents to other parties.  And random\ndata, particularly in the \u0027version\u0027 field, can cause problems down the\nline.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "9abf82b8bc93dd904738a71ca69aa5df356d4d24",
      "tree": "208c5112173832092f93b8d91b8e8ec6f36209aa",
      "parents": [
        "d85b705663905b3dae30007f824355bdcfcf3f00"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 10 21:58:38 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 11 09:53:57 2010 -0700"
      },
      "message": "ceph: fix locking for waking session requests after reconnect\n\nThe session-\u003es_waiting list is protected by mdsc-\u003emutex, not s_mutex.  This\nwas causing (rare) s_waiting list corruption.\n\nFix errors paths too, while we\u0027re here.  A more thorough cleanup of this\nfunction is coming soon.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "d85b705663905b3dae30007f824355bdcfcf3f00",
      "tree": "e47262683ed704786be3f0dae62bc4c57bd50ad7",
      "parents": [
        "04d000eb358919043da538f197d63f2a5924a525"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 10 10:24:48 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 11 09:53:56 2010 -0700"
      },
      "message": "ceph: resubmit requests on pg mapping change (not just primary change)\n\nOSD requests need to be resubmitted on any pg mapping change, not just when\nthe pg primary changes.  Resending only when the primary changes results in\noccasional \u0027hung\u0027 requests during osd cluster recovery or rebalancing.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "04d000eb358919043da538f197d63f2a5924a525",
      "tree": "725f4031c083323b63664f03b4d0d7ce9c183b21",
      "parents": [
        "0ceed5db321ac0f9782e77dda476ebe28a8e2199"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri May 07 11:26:34 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 11 09:53:55 2010 -0700"
      },
      "message": "ceph: fix open file counting on snapped inodes when mds returns no caps\n\nIt\u0027s possible the MDS will not issue caps on a snapped inode, in which case\nan open request may not __ceph_get_fmode(), botching the open file\ncounting.  (This is actually a server bug, but the client shouldn\u0027t BUG out\nin this case.)\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "0ceed5db321ac0f9782e77dda476ebe28a8e2199",
      "tree": "356f6a3f2dc26ba04589e9abd603139c62094730",
      "parents": [
        "54ad023ba8108d0163acc931ed4b5e4a8a3a7327"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 11 09:53:18 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 11 09:53:18 2010 -0700"
      },
      "message": "ceph: unregister osd request on failure\n\nThe osd request wasn\u0027t being unregistered when the osd returned a failure\ncode, even though the result was returned to the caller.  This would cause\nit to eventually time out, and then crash the kernel when it tried to\nresend the request using a stale page vector.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "54ad023ba8108d0163acc931ed4b5e4a8a3a7327",
      "tree": "93edeaba0b8f851c9b5a18c6e42c92b2237480c5",
      "parents": [
        "5dfc589a8467470226feccdc50f1b32713318e7b"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed May 05 21:30:35 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed May 05 21:31:40 2010 -0700"
      },
      "message": "ceph: don\u0027t use writeback_control in writepages completion\n\nThe -\u003ewritepages writeback_control is not still valid in the writepages\ncompletion.  We were touching it solely to adjust pages_skipped when there\nwas a writeback error (EIO, ENOSPC, EPERM due to bad osd credentials),\ncausing an oops in the writeback code shortly thereafter.  Updating\npages_skipped on error isn\u0027t correct anyway, so let\u0027s just rip out this\n(clearly broken) code to pass the wbc to the completion.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "5dfc589a8467470226feccdc50f1b32713318e7b",
      "tree": "82998c57555055cf3763e9a4fc757d5de0628c21",
      "parents": [
        "b0930f8d38c6ab76dc8222a5a910a21392d38208"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 04 16:14:46 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 04 16:14:46 2010 -0700"
      },
      "message": "ceph: unregister bdi before kill_anon_super releases device name\n\nUnregister and destroy the bdi in put_super, after mount is r/o, but before\nput_anon_super releases the device name.\n\nFor symmetry, bdi_destroy in destroy_client (we bdi_init in create_client).\n\nOnly set s_bdi if bdi_register succeeds, since we use it to decide whether\nto bdi_unregister.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "b0930f8d38c6ab76dc8222a5a910a21392d38208",
      "tree": "0aad65459eaa8fd5fdf8b621eb9b851e7864ae6e",
      "parents": [
        "7ff899da02cb674211858fcd919f8b4511a4423f"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Apr 29 13:26:53 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 03 10:49:25 2010 -0700"
      },
      "message": "ceph: remove bad auth_x kmem_cache\n\nIt\u0027s useless, since our allocations are already a power of 2.  And it was\nallocated per-instance (not globally), which caused a name collision when\nwe tried to mount a second file system with auth_x enabled.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "7ff899da02cb674211858fcd919f8b4511a4423f",
      "tree": "a200faf72a5ff982a03287c65809d0c78ef11bfd",
      "parents": [
        "ea1409f96197c1bffe5d7d5bc967b3445edcc1fa"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Apr 23 10:25:33 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 03 10:49:25 2010 -0700"
      },
      "message": "ceph: fix lockless caps check\n\nThe __ variant requires caller to hold i_lock.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ea1409f96197c1bffe5d7d5bc967b3445edcc1fa",
      "tree": "cbbd8ed4cca9bb718a596277f1152f2f1d629c37",
      "parents": [
        "5c6a2cdb4fe8aaf6b54f022c14f13d2a12b45914"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Apr 28 16:12:06 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 03 10:49:25 2010 -0700"
      },
      "message": "ceph: clear dir complete, invalidate dentry on replayed rename\n\nIf a rename operation is resent to the MDS following an MDS restart, the\nclient does not get a full reply (containing the resulting metadata) back.\nIn that case, a ceph_rename() needs to compensate by doing anything useful\nthat fill_inode() would have, like d_move().\n\nIt also needs to invalidate the dentry (to workaround the vfs_rename_dir()\nbug) and clear the dir complete flag, just like fill_trace().\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "5c6a2cdb4fe8aaf6b54f022c14f13d2a12b45914",
      "tree": "68b777f391b68f91ba8c587ded4f9d9526f9279a",
      "parents": [
        "ae18756b9fa7bb93132cff06cd8575e3d46633f9"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Apr 22 13:48:59 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 03 10:49:25 2010 -0700"
      },
      "message": "ceph: fix direct io truncate offset\n\ntruncate_inode_pages_range wants the end offset to align with the last byte\nin a page.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ae18756b9fa7bb93132cff06cd8575e3d46633f9",
      "tree": "e09f5c89b4611e2c53bb50118d8fa8133b58c73b",
      "parents": [
        "684be25c52a1e43638ced160be0b0b46596e7f2b"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Apr 22 07:47:01 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 03 10:49:24 2010 -0700"
      },
      "message": "ceph: discard incoming messages with bad seq #\n\nWe can get old message seq #\u0027s after a tcp reconnect for stateful sessions\n(i.e., the MDS).  If we get a higher seq #, that is an error, and we\nshouldn\u0027t see any bad seq #\u0027s for stateless (mon, osd) connections.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "684be25c52a1e43638ced160be0b0b46596e7f2b",
      "tree": "c6cde28f26e12f1ef33990a6d8cb10ab975dddba",
      "parents": [
        "d45d0d970f495e04a4e4f46acd74e90f4a4564f9"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Apr 21 20:45:59 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 03 10:49:24 2010 -0700"
      },
      "message": "ceph: fix seq counting for skipped messages\n\nIncrement in_seq even when the message is skipped for some reason.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "d45d0d970f495e04a4e4f46acd74e90f4a4564f9",
      "tree": "f5be41231ee8b925c01b3d291f8919b8e451101d",
      "parents": [
        "0b0c06d1476290cea248923c0ee7be9fd61cacea"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Apr 20 15:20:33 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 03 10:49:24 2010 -0700"
      },
      "message": "ceph: add missing #includes\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "0b0c06d1476290cea248923c0ee7be9fd61cacea",
      "tree": "557eacf9666cf0c2f989c2ff1955805d5557d07d",
      "parents": [
        "c8f16584ac85444d51d8753c5df502350cfc7bb7"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Apr 20 10:27:13 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 03 10:49:23 2010 -0700"
      },
      "message": "ceph: fix leaked spinlock during mds reconnect\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "c8f16584ac85444d51d8753c5df502350cfc7bb7",
      "tree": "8fd47c13e4577e10487b3cba001a029ba43aa669",
      "parents": [
        "91dee39eebcfb47085c4d457a584b0e9723b6ca0"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Apr 19 13:50:26 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 03 10:49:23 2010 -0700"
      },
      "message": "ceph: print more useful version info on module load\n\nDecouple the client version from the server side.  Print relevant protocol\nand map version info instead.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "91dee39eebcfb47085c4d457a584b0e9723b6ca0",
      "tree": "52bdeb4795c3b60b1d23460cada8c813c94fb7a9",
      "parents": [
        "c10f5e12bafde7f7a2f9b75d76f7a68d62154e91"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Apr 19 10:15:44 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 03 10:49:23 2010 -0700"
      },
      "message": "ceph: fix snap realm splits\n\nThe snap realm split was checking i_snap_realm, not the list_head, to\ndetermine if an inode belonged in the new realm.  The check always failed,\nwhich meant we always moved the inode, corrupting the old realm\u0027s list and\ncausing various crashes.\n\nAlso wait to release old realm reference to avoid possibility of use after\nfree.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "c10f5e12bafde7f7a2f9b75d76f7a68d62154e91",
      "tree": "422e4a5898dea5fddaa4b6b73379b9ac4db230b5",
      "parents": [
        "66f41d4c5c8a5deed66fdcc84509376c9a0bf9d8"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Apr 16 12:56:11 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 03 10:49:22 2010 -0700"
      },
      "message": "ceph: clear dir complete on d_move\n\nd_move() reorders the d_subdirs list, breaking the readdir result caching.\nUnless/until d_move preserves that ordering, clear CEPH_I_COMPLETE on\nrename.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "96e35b40c0d6206f56370f937f6f4722739eb273",
      "tree": "2c387b6e3f628484a1f4bdc964e529f89d5f5821",
      "parents": [
        "f5c07a2d8acfc98e00d3be6298f979e5b3175953",
        "a6a5349d17f2a5c37079826f1a1474c3d08c6b53"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 14 18:45:31 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 14 18:45:31 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: use separate class for ceph sockets\u0027 sk_lock\n  ceph: reserve one more caps space when doing readdir\n  ceph: queue_cap_snap should always queue dirty context\n  ceph: fix dentry reference leak in dcache readdir\n  ceph: decode v5 of osdmap (pool names) [protocol change]\n  ceph: fix ack counter reset on connection reset\n  ceph: fix leaked inode ref due to snap metadata writeback race\n  ceph: fix snap context reference leaks\n  ceph: allow writeback of snapped pages older than \u0027oldest\u0027 snapc\n  ceph: fix dentry rehashing on virtual .snap dir\n"
    },
    {
      "commit": "a6a5349d17f2a5c37079826f1a1474c3d08c6b53",
      "tree": "3b37dadbf297abdd65b3f63ac8e94a6137098198",
      "parents": [
        "e1e4dd0caa63e166afa46a1ccc947bebb4f66bcf"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Apr 13 14:07:07 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Apr 13 14:07:07 2010 -0700"
      },
      "message": "ceph: use separate class for ceph sockets\u0027 sk_lock\n\nUse a separate class for ceph sockets to prevent lockdep confusion.\nBecause ceph sockets only get passed kernel pointers, there is no\ndependency from sk_lock -\u003e mmap_sem.  If we share the same class as other\nsockets, lockdep detects a circular dependency from\n\n\tmmap_sem (page fault) -\u003e fs mutex -\u003e sk_lock -\u003e mmap_sem\n\nbecause dependencies are noted from both ceph and user contexts.  Using\na separate class prevents the sk_lock(ceph) -\u003e mmap_sem dependency and\nmakes lockdep happy.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "e1e4dd0caa63e166afa46a1ccc947bebb4f66bcf",
      "tree": "028dcbe599b2ecd0a08519e741298a7a5fcb701d",
      "parents": [
        "fc837c8f0446b73a1661339db406c0238dd1d184"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Tue Apr 13 11:45:56 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Apr 13 12:28:54 2010 -0700"
      },
      "message": "ceph: reserve one more caps space when doing readdir\n\nWe were missing space for the directory cap.  The result was a BUG at\nfs/ceph/caps.c:2178.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "fc837c8f0446b73a1661339db406c0238dd1d184",
      "tree": "5cc1e6b97a8f39f7979eb302ac8a090c812f2609",
      "parents": [
        "f5b066287c74b624583b993395a65d03a6487b3a"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Apr 13 11:41:22 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Apr 13 12:28:31 2010 -0700"
      },
      "message": "ceph: queue_cap_snap should always queue dirty context\n\nThis simplifies the calling convention, and fixes a bug where we queue a\ncapsnap with a context other than i_head_snapc (the one that matches the\ndirty pages).  The result was a BUG at fs/ceph/caps.c:2178 on writeback\ncompletion when a capsnap matching the writeback snapc could not be found.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "f5b066287c74b624583b993395a65d03a6487b3a",
      "tree": "113dd2a4bbf0d2ff9fd374b53dc377f55677f922",
      "parents": [
        "2844a76a25a2fc2f5025cf128c95a14d86146d33"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Apr 12 14:24:28 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Apr 12 14:25:51 2010 -0700"
      },
      "message": "ceph: fix dentry reference leak in dcache readdir\n\nWhen filldir returned an error (e.g. buffer full for a large directory),\nwe would leak a dentry reference, causing an oops on umount.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "2844a76a25a2fc2f5025cf128c95a14d86146d33",
      "tree": "a57b3dac7f92d187bafe3c10270b0d28edf405e3",
      "parents": [
        "0e0d5e0c4bb0476d53a43bfc87d03a25ec4b5579"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Apr 09 15:46:42 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Apr 09 15:50:58 2010 -0700"
      },
      "message": "ceph: decode v5 of osdmap (pool names) [protocol change]\n\nTeach the client to decode an updated format for the osdmap.  The new\nformat includes pool names, which will be useful shortly.  Get this change\nin earlier rather than later.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "0e0d5e0c4bb0476d53a43bfc87d03a25ec4b5579",
      "tree": "66013a33ad1f46b258d55289adf12cac463d43f9",
      "parents": [
        "819ccbfa448403992ceafc05d6d7097aaa74d4c3"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Apr 02 16:07:19 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Apr 02 16:07:19 2010 -0700"
      },
      "message": "ceph: fix ack counter reset on connection reset\n\nIf in_seq_acked isn\u0027t reset along with in_seq, we don\u0027t ack received\nmessages until we reach the old count, consuming gobs memory on the other\nend of the connection and introducing a large delay when those messages\nare eventually deleted.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "819ccbfa448403992ceafc05d6d7097aaa74d4c3",
      "tree": "e6b3592fd85fbb35a63d6d10c84a8d01913eddab",
      "parents": [
        "6298a33757ba7361bb8f506c106daad77e5ac8cf"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Apr 01 09:33:46 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Apr 01 09:34:38 2010 -0700"
      },
      "message": "ceph: fix leaked inode ref due to snap metadata writeback race\n\nWe create a ceph_cap_snap if there is dirty cap metadata (for writeback to\nmds) OR dirty pages (for writeback to osd).  It is thus possible that the\nmetadata has been written back to the MDS but the OSD data has not when\nthe cap_snap is created.  This results in a cap_snap with dirty(caps) \u003d\u003d 0.\nThe problem is that cap writeback to the MDS isn\u0027t necessary, and a\nFLUSHSNAP cap op gets no ack from the MDS.  This leaves the cap_snap\nattached to the inode along with its inode reference.\n\nFix the problem by dropping the cap_snap if it becomes \u0027complete\u0027 (all\npages written out) and dirty(caps) \u003d\u003d 0 in ceph_put_wrbuffer_cap_refs().\n\nAlso, BUG() in __ceph_flush_snaps() if we encounter a cap_snap with\ndirty(caps) \u003d\u003d 0.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "6298a33757ba7361bb8f506c106daad77e5ac8cf",
      "tree": "ebd8e7cab86a66c00c0bd4f411c335ed4d0fda9f",
      "parents": [
        "80e755fedebc8de0599a79efad2c656503df2e62"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Mar 31 22:01:38 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Apr 01 09:34:37 2010 -0700"
      },
      "message": "ceph: fix snap context reference leaks\n\nThe get_oldest_context() helper takes a reference to the returned snap\ncontext, but most callers weren\u0027t dropping that reference.  Fix them.\n\nAlso drop the unused locked __get_oldest_context() variant.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "80e755fedebc8de0599a79efad2c656503df2e62",
      "tree": "05f0285f4d040958377d6542394bc56b10f80257",
      "parents": [
        "9358c6d4c0264b1572554c49c4b92673ea9a5c72"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Mar 31 21:52:10 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Apr 01 09:34:36 2010 -0700"
      },
      "message": "ceph: allow writeback of snapped pages older than \u0027oldest\u0027 snapc\n\nOn snap deletion, we don\u0027t regenerate ceph_cap_snaps for inodes with dirty\npages because deletion does not affect metadata writeback.  However, we\ndid run into problems when we went to write back the pages because the\n\u0027oldest\u0027 snapc is determined by the oldest cap_snap, and that may be the\nnewer snapc that reflects the deletion.  This caused confusion and an\ninfinite loop in ceph_update_writeable_page().\n\nChange the snapc checks to allow writeback of any snapc that is equal to\nOR older than the \u0027oldest\u0027 snapc.\n\nWhen there are no cap_snaps, we were also using the realm\u0027s latest snapc\nfor writeback, which complicates ceph_put_wrbufffer_cap_refs().  Instead,\nuse i_head_snapc, the most snapc used for the most recent (\u0027head\u0027) data.\nThis makes the writeback snapc (ceph_osd_request.r_snapc) _always_ match a\ncapsnap or i_head_snapc.\n\nAlso, in writepags_finish(), drop the snapc referenced by the _page_\nand do not assume it matches the request snapc (it may not anymore).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "9358c6d4c0264b1572554c49c4b92673ea9a5c72",
      "tree": "3d11a5021487dccf61b8d53c66c32df6b84223eb",
      "parents": [
        "2eaa9cfdf33b8d7fb7aff27792192e0019ae8fc6"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Mar 30 13:54:41 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Mar 30 13:55:22 2010 -0700"
      },
      "message": "ceph: fix dentry rehashing on virtual .snap dir\n\nIf a lookup fails on the magic .snap directory, we bind it to a magic\nsnap directory inode in ceph_lookup_finish().  That code assumes the dentry\nis unhashed, but a recent server-side change started returning NULL leases\non lookup failure, causing the .snap dentry to be hashed and NULL by\nceph_fill_trace().\n\nThis causes dentry hash chain corruption, or a dies when d_rehash()\nincludes\n\tBUG_ON(!d_unhashed(entry));\n\nSo, avoid processing the NULL dentry lease if it the dentry matches the\nsnapdir name in ceph_fill_trace().  That allows the lookup completion to\nproperly bind it to the snapdir inode.  BUG there if dentry is hashed to\nbe sure.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "94aa8ae13db2ecf2ec1b4e65a65d3fe92b468e0e",
      "tree": "07ab734202675a9ff3bb991d9732a392061eacee",
      "parents": [
        "23ab15ad7a9d042afa7303b735b6e24faa607241"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Mar 28 21:22:50 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Mar 28 21:23:56 2010 -0700"
      },
      "message": "ceph: fix use after free on mds __unregister_request\n\nThere was a use after free in __unregister_request that would trigger\nwhenever the request map held the last reference.  This appears to have\ntriggered an oops during \u0027umount -f\u0027 when requests are being torn down.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "393f66209669ad23f4f6d4191234c1df4367df3c",
      "tree": "5c628bcf731c98f5627000192e7f2d23a7a039a5",
      "parents": [
        "d96d60498ff748c5a88c72ec5d1cc4ba9a583e7e"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Mar 10 12:03:32 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Mar 23 07:47:06 2010 -0700"
      },
      "message": "ceph: fix possible double-free of mds request reference\n\nClear pointer to mds request after dropping the reference to\nensure we don\u0027t drop it again, as there is at least one error\npath through this function that does not reset fi-\u003elast_readdir\nto a new value.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "d96d60498ff748c5a88c72ec5d1cc4ba9a583e7e",
      "tree": "d17c11fbfe5e7c7dbe6cec1729f22548a1e49dd2",
      "parents": [
        "4736b009b880b7c19bea36327a71032a6dbee402"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat Mar 20 20:50:58 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Mar 23 07:47:05 2010 -0700"
      },
      "message": "ceph: fix session check on mds reply\n\nFix a broken check that a reply came back from the same MDS we sent the\nrequest to.  I don\u0027t think a case that actually triggers this would ever\ncome up in practice, but it\u0027s clearly wrong and easy to fix.\n\nReported-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "4736b009b880b7c19bea36327a71032a6dbee402",
      "tree": "3702b662c5d3f1048680e7766308df464c9af8f2",
      "parents": [
        "9c423956b8a495f0c048143abc5da955a70eac97"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Sat Mar 20 15:30:16 2010 +0300"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Mar 23 07:47:04 2010 -0700"
      },
      "message": "ceph: handle kmalloc() failure\n\nReturn ERR_PTR(-ENOMEM) if kmalloc() fails.  We handle allocation\nfailures the same way later in the function.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "9c423956b8a495f0c048143abc5da955a70eac97",
      "tree": "4577ebc496d6e2aea708cced214789113fbd75ba",
      "parents": [
        "8f883c24de33ba929c95e018ac0ba66e4f46734b"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat Mar 20 20:43:28 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Mar 23 07:47:04 2010 -0700"
      },
      "message": "ceph: propagate mds session allocation failures to caller\n\nReturn error to original caller if register_session() fails.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "8f883c24de33ba929c95e018ac0ba66e4f46734b",
      "tree": "82a9a50b08826612f0613283c7b3f8f6aea264e7",
      "parents": [
        "ec4318bcb4c59d8b8bf7037c9f444a9887ccb265"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Mar 19 13:27:53 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Mar 23 07:47:03 2010 -0700"
      },
      "message": "ceph: make write_begin wait propagate ERESTARTSYS\n\nCurrently, if the wait_event_interruptible is interrupted, we\nreturn EAGAIN unconditionally and loop, such that we aren\u0027t, in\nfact, interruptible.  So, propagate ERESTARTSYS if we get it.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    }
  ],
  "next": "ec4318bcb4c59d8b8bf7037c9f444a9887ccb265"
}
