)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "7ea8085910ef3dd4f3cad6845aaa2b580d39b115",
      "tree": "d9c1edb5906f943f7d70bfb4b65106e29772d379",
      "parents": [
        "cc967be54710d97c05229b2e5ba2d00df84ddd64"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed May 26 17:53:25 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 27 22:05:02 2010 -0400"
      },
      "message": "drop unused dentry argument to -\u003efsync\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "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"
    }
  ],
  "next": "6f46cb29350963527b663c9eb4fe964daa9ae707"
}
