)]}'
{
  "log": [
    {
      "commit": "a1703154200c390ab03c10224c586e815d3e31e8",
      "tree": "df90865eed3cfdf7af8664b5453a90e09d17480a",
      "parents": [
        "67b5ad9a63caa2ce56ddd2b22b802dae00d72c13",
        "766fc43973b16f9becb6b7402b3e052dbb84adee"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:25:24 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:25:24 2011 -0800"
      },
      "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  rbd: fix cleanup when trying to mount inexistent image\n  net/ceph: make ceph_msgr_wq non-reentrant\n  ceph: fsc-\u003e*_wq\u0027s aren\u0027t used in memory reclaim path\n  ceph: Always free allocated memory in osdmap_decode()\n  ceph: Makefile: Remove unnessary code\n  ceph: associate requests with opening sessions\n  ceph: drop redundant r_mds field\n  ceph: implement DIRLAYOUTHASH feature to get dir layout from MDS\n  ceph: add dir_layout to inode\n"
    },
    {
      "commit": "01e6acc4ea4c284c44bfb3d46c76f4ae580c6435",
      "tree": "d5b5c2c82827eae7f23ac6141feb4adfbb781920",
      "parents": [
        "b0aee3516d84c05240065a53f238ba7a718f56b9"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Jan 03 14:49:45 2011 +0100"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Jan 12 15:15:14 2011 -0800"
      },
      "message": "ceph: fsc-\u003e*_wq\u0027s aren\u0027t used in memory reclaim path\n\nfsc-\u003e*_wq\u0027s aren\u0027t depended upon during memory reclaim.  Convert to\nalloc_workqueue() w/o WQ_MEM_RECLAIM.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Sage Weil \u003csage@newdream.net\u003e\nCc: ceph-devel@vger.kernel.org\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "582c86e69045f37da8be445c265f72a7a73b18c6",
      "tree": "4c6661ffd8b5b331ce6f1316e9556c1bda079dfb",
      "parents": [
        "dc69e2e9fcd7c613eb744ea3b9c4ee9ca554e822"
      ],
      "author": {
        "name": "Tracey Dent",
        "email": "tdent48227@gmail.com",
        "time": "Tue Dec 14 19:32:37 2010 -0500"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Jan 12 15:15:13 2011 -0800"
      },
      "message": "ceph: Makefile: Remove unnessary code\n\nRemove the if and else conditional because the code is in mainline and there\nis no need in it being there.\n\nAlso, Changed Makefile to use \u003cmodules\u003e-y instead of \u003cmodules\u003e-objs\nbecause -objs is deprecated and not mentioned in\n Documentation/kbuild/makefiles.txt.\n\nSigned-off-by: Tracey Dent \u003ctdent48227@gmail.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "dc69e2e9fcd7c613eb744ea3b9c4ee9ca554e822",
      "tree": "4b981b9ded0e08c2ab517b48367040a7b9902ed9",
      "parents": [
        "4af25fdda6943f311a63034f80933e4d6d6e3a19"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Nov 02 13:49:00 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Jan 12 15:15:13 2011 -0800"
      },
      "message": "ceph: associate requests with opening sessions\n\nAssociate request with sessions that aren\u0027t yep open.  This makes the\ndebugfs mdsc request list more informative.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "4af25fdda6943f311a63034f80933e4d6d6e3a19",
      "tree": "8d0be03aedc4d3ea09ba0b8d3f1b63df4ef302e1",
      "parents": [
        "14303d20f3ae3e6ab626c77a4aac202b3bafd377"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Nov 02 13:41:47 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Jan 12 15:15:13 2011 -0800"
      },
      "message": "ceph: drop redundant r_mds field\n\nThe r_mds field is redundant, since we can find the same information at\nr_session-\u003es_mds, and when r_session is NULL then r_mds is meaningless.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "14303d20f3ae3e6ab626c77a4aac202b3bafd377",
      "tree": "ee93c0de758571721f594c35f556ca79468e684f",
      "parents": [
        "6c0f3af72cb1622a66962a1180c36ef8c41be8e2"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Dec 14 17:37:52 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Jan 12 15:15:13 2011 -0800"
      },
      "message": "ceph: implement DIRLAYOUTHASH feature to get dir layout from MDS\n\nThis implements the DIRLAYOUTHASH protocol feature, which passes the dir\nlayout over the wire from the MDS.  This gives the client knowledge\nof the correct hash function to use for mapping dentries among dir\nfragments.\n\nNote that if this feature is _not_ present on the client but is on the\nMDS, the client may misdirect requests.  This will result in a forward\nand degrade performance.  It may also result in inaccurate NFS filehandle\ngeneration, which will prevent fh resolution when the inode is not present\nin the client cache and the parent directories have been fragmented.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "6c0f3af72cb1622a66962a1180c36ef8c41be8e2",
      "tree": "66e415bf31ea31a3e9360c0ce624fd20b6050c89",
      "parents": [
        "3c0eee3fe6a3a1c745379547c7e7c904aa64f6d5"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Nov 16 11:14:34 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Jan 12 15:15:12 2011 -0800"
      },
      "message": "ceph: add dir_layout to inode\n\nAdd a ceph_dir_layout to the inode, and calculate dentry hash values based\non the parent directory\u0027s specified dir_hash function.  This is needed\nbecause the old default Linux dcache hash function is extremely week and\nleads to a poor distribution of files among dir fragments.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "b74c79e99389cd79b31fcc08f82c24e492e63c7e",
      "tree": "763c6b412517306670bc625e90035f2d16bb739f",
      "parents": [
        "34286d6662308d82aed891852d04c7c3a2649b16"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:58 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:29 2011 +1100"
      },
      "message": "fs: provide rcu-walk aware permission i_ops\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "34286d6662308d82aed891852d04c7c3a2649b16",
      "tree": "c4b7311404d302e7cb94df7a4690298e1059910a",
      "parents": [
        "44a7d7a878c9cbb74f236ea755b25b6b2e26a9a9"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:57 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:29 2011 +1100"
      },
      "message": "fs: rcu-walk aware d_revalidate method\n\nRequire filesystems be aware of .d_revalidate being called in rcu-walk\nmode (nd-\u003eflags \u0026 LOOKUP_RCU). For now do a simple push down, returning\n-ECHILD from all implementations.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "fb045adb99d9b7c562dc7fef834857f78249daa1",
      "tree": "1fd6a4024fffeec568abe100d730589bfdb81c38",
      "parents": [
        "5f57cbcc02cf18f6b22ef4066bb10afeb8f930ff"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:55 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:28 2011 +1100"
      },
      "message": "fs: dcache reduce branches in lookup path\n\nReduce some branches and memory accesses in dcache lookup by adding dentry\nflags to indicate common d_ops are set, rather than having to check them.\nThis saves a pointer memory access (dentry-\u003ed_op) in common path lookup\nsituations, and saves another pointer load and branch in cases where we\nhave d_op but not the particular operation.\n\nPatched with:\n\ngit grep -E \u0027[.\u003e]([[:space:]])*d_op([[:space:]])*\u003d\u0027 | xargs sed -e \u0027s/\\([^\\t ]*\\)-\u003ed_op \u003d \\(.*\\);/d_set_d_op(\\1, \\2);/\u0027 -e \u0027s/\\([^\\t ]*\\)\\.d_op \u003d \\(.*\\);/d_set_d_op(\\\u0026\\1, \\2);/\u0027 -i\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "fa0d7e3de6d6fc5004ad9dea0dd6b286af8f03e9",
      "tree": "203e0f73883e4c26b5597e36042386a1237dab35",
      "parents": [
        "77812a1ef139d84270d27faacc0630c887411013"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:49 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:26 2011 +1100"
      },
      "message": "fs: icache RCU free inodes\n\nRCU free the struct inode. This will allow:\n\n- Subsequent store-free path walking patch. The inode must be consulted for\n  permissions when walking, so an RCU inode reference is a must.\n- sb_inode_list_lock to be moved inside i_lock because sb list walkers who want\n  to take i_lock no longer need to take sb_inode_list_lock to walk the list in\n  the first place. This will simplify and optimize locking.\n- Could remove some nested trylock loops in dcache code\n- Could potentially simplify things a bit in VM land. Do not need to take the\n  page lock to follow page-\u003emapping.\n\nThe downsides of this is the performance cost of using RCU. In a simple\ncreat/unlink microbenchmark, performance drops by about 10% due to inability to\nreuse cache-hot slab objects. As iterations increase and RCU freeing starts\nkicking over, this increases to about 20%.\n\nIn cases where inode lifetimes are longer (ie. many inodes may be allocated\nduring the average life span of a single inode), a lot of this cache reuse is\nnot applicable, so the regression caused by this patch is smaller.\n\nThe cache-hot regression could largely be avoided by using SLAB_DESTROY_BY_RCU,\nhowever this adds some complexity to list walking and store-free path walking,\nso I prefer to implement this at a later date, if it is shown to be a win in\nreal situations. I haven\u0027t found a regression in any non-micro benchmark so I\ndoubt it will be a problem.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "b5c84bf6f6fa3a7dfdcb556023a62953574b60ee",
      "tree": "7a2c299a180713e21d5cb653cb933121adf53c31",
      "parents": [
        "949854d02455080d20cd3e1db28a3a18daf7599d"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:38 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:23 2011 +1100"
      },
      "message": "fs: dcache remove dcache_lock\n\ndcache_lock no longer protects anything. remove it.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "2fd6b7f50797f2e993eea59e0a0b8c6399c811dc",
      "tree": "ce33b94b34844c09103836cf4cfa4364b742f217",
      "parents": [
        "da5029563a0a026c64821b09e8e7b4fd81d3fe1b"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:34 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:21 2011 +1100"
      },
      "message": "fs: dcache scale subdirs\n\nProtect d_subdirs and d_child with d_lock, except in filesystems that aren\u0027t\nusing dcache_lock for these anyway (eg. using i_mutex).\n\nNote: if we change the locking rule in future so that -\u003ed_child protection is\nprovided only with -\u003ed_parent-\u003ed_lock, it may allow us to reduce some locking.\nBut it would be an exception to an otherwise regular locking scheme, so we\u0027d\nhave to see some good results. Probably not worthwhile.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "da5029563a0a026c64821b09e8e7b4fd81d3fe1b",
      "tree": "5d5618e0cb382390073377b1be7d0aa76879ac54",
      "parents": [
        "b7ab39f631f505edc2bbdb86620d5493f995c9da"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:33 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:21 2011 +1100"
      },
      "message": "fs: dcache scale d_unhashed\n\nProtect d_unhashed(dentry) condition with d_lock. This means keeping\nDCACHE_UNHASHED bit in synch with hash manipulations.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "b7ab39f631f505edc2bbdb86620d5493f995c9da",
      "tree": "62be97ebc7fc69ceb601f23312d335ebb8038ee7",
      "parents": [
        "2304450783dfde7b0b94ae234edd0dbffa865073"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:32 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:21 2011 +1100"
      },
      "message": "fs: dcache scale dentry refcount\n\nMake d_count non-atomic and protect it with d_lock. This allows us to ensure a\n0 refcount dentry remains 0 without dcache_lock. It is also fairly natural when\nwe start protecting many other dentry members with d_lock.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "b6aa5901c7a2bd90d0b6b9866300d2648b2568f3",
      "tree": "1161ed9dbacb7ace73c5d48fc9acd1db0d7815d5",
      "parents": [
        "92cf765237e2787eb168096305c448caf25ac7f8"
      ],
      "author": {
        "name": "Henry C Chang",
        "email": "henry_c_chang@tcloudcomputing.com",
        "time": "Wed Dec 15 20:45:41 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Dec 17 09:54:40 2010 -0800"
      },
      "message": "ceph: mark user pages dirty on direct-io reads\n\nFor read operation, we have to set the argument _write_ of get_user_pages\nto 1 since we will write data to pages. Also, we need to SetPageDirty before\nreleasing these pages.\n\nSigned-off-by: Henry C Chang \u003chenry_c_chang@tcloudcomputing.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "92cf765237e2787eb168096305c448caf25ac7f8",
      "tree": "089f6d5a0f979ca858295cbf616ee2e85a62680f",
      "parents": [
        "ab226e21ad34f6ef52e00d2ab399d2364b4cdfee"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Dec 17 09:53:41 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Dec 17 09:53:48 2010 -0800"
      },
      "message": "ceph: fix null pointer dereference in ceph_init_dentry for nfs reexport\n\nThe fh_to_dentry etc. methods use ceph_init_dentry(), which assumes that\nd_parent is defined.  It isn\u0027t for those callers, so check!\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ab226e21ad34f6ef52e00d2ab399d2364b4cdfee",
      "tree": "95b9683b601a0602d9f813f7e6786e9a0e6da118",
      "parents": [
        "d96c9043d1588f04c7f467167f653c07d83232d5"
      ],
      "author": {
        "name": "Henry C Chang",
        "email": "henry_c_chang@tcloudcomputing.com",
        "time": "Wed Dec 15 20:41:54 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Dec 15 20:46:16 2010 -0800"
      },
      "message": "ceph: fix direct-io on non-page-aligned buffers\n\nThe user buffer may be 512-byte aligned, not page-aligned.  We were\nassuming the buffer was page-aligned and only accounting for\nnon-page-aligned io offsets.\n\nSigned-off-by: Henry C Chang \u003chenry_c_chang@tcloudcomputing.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "1cd275f609ba46c8cae3ee77e499c54a0d13a983",
      "tree": "8530a763f57fc2dd02b34c4036c689ae603df3b6",
      "parents": [
        "a5b10629edfa521071ccdb3b1e0e7fb350a044db"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 06 09:45:22 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Dec 06 09:45:22 2010 -0800"
      },
      "message": "ceph: fix ioctl magic\n\nThe ioctl magic was inadvertently changed in 571dba52.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "a5b10629edfa521071ccdb3b1e0e7fb350a044db",
      "tree": "c852f7a214c30fe1923579ec031b37fc8f326523",
      "parents": [
        "637ae8d547390df75bad42a7e9cb65e625119767"
      ],
      "author": {
        "name": "Herb Shiu",
        "email": "herb_shiu@tcloudcomputing.com",
        "time": "Tue Nov 23 13:58:29 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Dec 01 14:22:34 2010 -0800"
      },
      "message": "ceph: Behave better when handling file lock replies.\n\nFill in the local lock with response data if appropriate,\nand don\u0027t call posix_lock_file when reading locks.\n\nSigned-off-by: Herb Shiu \u003cherb_shiu@tcloudcomputing.com\u003e\nAcked-by: Greg Farnum \u003cgregf@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "637ae8d547390df75bad42a7e9cb65e625119767",
      "tree": "311b5e454928e8954aee522d8c1a943954c9ea7e",
      "parents": [
        "25933abdd8c562182ca6dc9f8c4c2cc8265c3a80"
      ],
      "author": {
        "name": "Herb Shiu",
        "email": "herb_shiu@tcloudcomputing.com",
        "time": "Tue Nov 23 13:42:23 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Dec 01 14:22:34 2010 -0800"
      },
      "message": "ceph: pass lock information by struct file_lock instead of as individual params.\n\nSigned-off-by: Herb Shiu \u003cherb_shiu@tcloudcomputing.com\u003e\nAcked-by: Greg Farnum \u003cgregf@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "25933abdd8c562182ca6dc9f8c4c2cc8265c3a80",
      "tree": "213db691c7a2d115f2f9ec5d586c1b769dfdb6fc",
      "parents": [
        "884ea892763d4dfba509743f65961c782c0442db"
      ],
      "author": {
        "name": "Herb Shiu",
        "email": "herb_shiu@tcloudcomputing.com",
        "time": "Wed Dec 01 14:14:38 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Dec 01 14:22:27 2010 -0800"
      },
      "message": "ceph: Handle file locks in replies from the MDS.\n\nPreviously the kernel client incorrectly assumed everything was a directory.\n\nSigned-off-by: Herb Shiu \u003cherb_shiu@tcloudcomputing.com\u003e\nAcked-by: Greg Farnum \u003cgregf@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "884ea892763d4dfba509743f65961c782c0442db",
      "tree": "92a7f5b67aa06cf32457ccb2b69c28c528a48c15",
      "parents": [
        "3561d43fd289f590fdae672e5eb831b8d5cf0bf6"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Nov 22 22:58:06 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Dec 01 14:15:31 2010 -0800"
      },
      "message": "ceph: avoid possible null deref in readdir after dir llseek\n\nlast may be NULL, but we dereference it in the else branch without\nchecking.  Normally it doesn\u0027t trigger because last \u003d\u003d NULL when fpos \u003d\u003d 2,\nbut it could happen on a newly opened dir if the user seeks forward.\n\nReported-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "76db8ac45fc738f7d7664fe9b56d15c594a45228",
      "tree": "eca23feab074d505b375e27714473f4ad337bd85",
      "parents": [
        "caf8394524fdc039b090cd3af99157e9e76f4f06",
        "3105c19c450ac7c18ab28c19d364b588767261b3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 19 15:32:22 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 19 15:32:22 2010 -0800"
      },
      "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: fix readdir EOVERFLOW on 32-bit archs\n  ceph: fix frag offset for non-leftmost frags\n  ceph: fix dangling pointer\n  ceph: explicitly specify page alignment in network messages\n  ceph: make page alignment explicit in osd interface\n  ceph: fix comment, remove extraneous args\n  ceph: fix update of ctime from MDS\n  ceph: fix version check on racing inode updates\n  ceph: fix uid/gid on resent mds requests\n  ceph: fix rdcache_gen usage and invalidate\n  ceph: re-request max_size if cap auth changes\n  ceph: only let auth caps update max_size\n  ceph: fix open for write on clustered mds\n  ceph: fix bad pointer dereference in ceph_fill_trace\n  ceph: fix small seq message skipping\n  Revert \"ceph: update issue_seq on cap grant\"\n"
    },
    {
      "commit": "3105c19c450ac7c18ab28c19d364b588767261b3",
      "tree": "2b306fb3b8536f5f92f085993bbd966d9eb3929a",
      "parents": [
        "7b88dadc13e0004947de52df128dbd5b0754ed0a"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Nov 18 09:15:07 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Nov 18 09:15:07 2010 -0800"
      },
      "message": "ceph: fix readdir EOVERFLOW on 32-bit archs\n\nOne of the readdir filldir_t callers was passing the raw ceph 64-bit ino\ninstead of the hashed 32-bit one, producing an EOVERFLOW in the filler\ncallback.  Fix this by calling the ceph_vino_to_ino() helper to do the\nconversion.\n\nReported-by: Jan Smets \u003cjan.smets@alcatel-lucent.com\u003e\nTested-by: Jan Smets \u003cjan.smets@alcatel-lucent.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "451a3c24b0135bce54542009b5fde43846c7cf67",
      "tree": "f0fbbcc155aef2a1ffcb8aa593fe7a966d0e6900",
      "parents": [
        "55f6561c6941713ab5ae9180525b026dd40b7d14"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Nov 17 16:26:55 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 17 08:59:32 2010 -0800"
      },
      "message": "BKL: remove extraneous #include \u003csmp_lock.h\u003e\n\nThe big kernel lock has been removed from all these files at some point,\nleaving only the #include.\n\nRemove this too as a cleanup.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7b88dadc13e0004947de52df128dbd5b0754ed0a",
      "tree": "9a2fd203b382b5922dfd1be5cb3adf055ff50c2d",
      "parents": [
        "a1629c3b24f26ec1b0f534874af674a6b4c1540b"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Nov 11 16:48:59 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Nov 11 16:48:59 2010 -0800"
      },
      "message": "ceph: fix frag offset for non-leftmost frags\n\nWe start at offset 2 for the leftmost frag, and 0 for subsequent frags.\nWhen we reach the end (rightmost), we go back to 2.  This fixes readdir on\nfragmented (large) directories.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "a1629c3b24f26ec1b0f534874af674a6b4c1540b",
      "tree": "7b40b54486f68189cde9753aca31d8e3d8af61a2",
      "parents": [
        "c5c6b19d4b8f5431fca05f28ae9e141045022149"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Nov 11 15:24:06 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Nov 11 15:24:06 2010 -0800"
      },
      "message": "ceph: fix dangling pointer\n\nClear fi-\u003elast_name when it\u0027s freed.  The only caller is rewinddir() (or\nequivalent lseek).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "b7495fc2ff941db6a118a93ab8d61149e3f4cef8",
      "tree": "231c339d74760e2fa13e5e6f41c10bc28cea51b3",
      "parents": [
        "e98b6fed84d0f0155d7b398e0dfeac74c792f2d0"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Nov 09 12:43:12 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Nov 09 12:43:12 2010 -0800"
      },
      "message": "ceph: make page alignment explicit in osd interface\n\nWe used to infer alignment of IOs within a page based on the file offset,\nwhich assumed they matched.  This broke with direct IO that was not aligned\nto pages (e.g., 512-byte aligned IO).  We were also trusting the alignment\nspecified in the OSD reply, which could have been adjusted by the server.\n\nExplicitly specify the page alignment when setting up OSD IO requests.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "e98b6fed84d0f0155d7b398e0dfeac74c792f2d0",
      "tree": "0762cba398c39329dc5f056ddfccebf6768d2555",
      "parents": [
        "d8672d64b88cdb7aa8139fb6d218f40b8cbf60af"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Nov 09 12:24:53 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Nov 09 12:24:53 2010 -0800"
      },
      "message": "ceph: fix comment, remove extraneous args\n\nThe offset/length arguments aren\u0027t used.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "d8672d64b88cdb7aa8139fb6d218f40b8cbf60af",
      "tree": "71d955bc89b33df3f838f8e1e8c0cbcd3f2bfc62",
      "parents": [
        "8bd59e0188c04f6540f00e13f633f22e4804ce06"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Nov 08 09:24:34 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Nov 08 09:24:34 2010 -0800"
      },
      "message": "ceph: fix update of ctime from MDS\n\nThe client can have a newer ctime than the MDS due to AUTH_EXCL and\nXATTR_EXCL caps as well; update the check in ceph_fill_file_time\nappropriately.\n\nThis fixes cases where ctime/mtime goes backward under the right sequence\nof local updates (e.g. chmod) and mds replies (e.g. subsequent stat that\ngoes to the MDS).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "8bd59e0188c04f6540f00e13f633f22e4804ce06",
      "tree": "7f311b4fc75dea4fcd71aedbfa85ce7b6cfd712d",
      "parents": [
        "cb4276cca4695670916a82e359f2e3776f0a9138"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Nov 08 09:23:12 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Nov 08 09:23:12 2010 -0800"
      },
      "message": "ceph: fix version check on racing inode updates\n\nWe may get updates on the same inode from multiple MDSs; generally we only\npay attention if the update is newer than what we already have.  The\nexception is when an MDS sense unstable information, in which case we\nalways update.\n\nThe old \u003e check got this wrong when our version was odd (e.g. 3) and the\nreply version was even (e.g. 2): the older stale (v2) info would be\napplied.  Fixed and clarified the comment.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "cb4276cca4695670916a82e359f2e3776f0a9138",
      "tree": "09695ba622771c933e045bafe63c1da1139266f3",
      "parents": [
        "cd045cb42a266882ac24bc21a3a8d03683c72954"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Nov 08 07:28:52 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Nov 08 07:29:05 2010 -0800"
      },
      "message": "ceph: fix uid/gid on resent mds requests\n\nMDS requests can be rebuilt and resent in non-process context, but were\nfilling in uid/gid from current_fsuid/gid.  Put that information in the\nrequest struct on request setup.\n\nThis fixes incorrect (and root) uid/gid getting set for requests that\nare forwarded between MDSs, usually due to metadata migrations.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "cd045cb42a266882ac24bc21a3a8d03683c72954",
      "tree": "2938560e8362804e829cc9feb23ef746d354140b",
      "parents": [
        "feb4cc9bb433bf1491ac5ffbba133f3258dacf06"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Nov 04 11:05:05 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Nov 08 07:29:05 2010 -0800"
      },
      "message": "ceph: fix rdcache_gen usage and invalidate\n\nWe used to use rdcache_gen to indicate whether we \"might\" have cached\npages.  Now we just look at the mapping to determine that.  However, some\nold behavior remains from that transition.\n\nFirst, rdcache_gen \u003d\u003d 0 no longer means we have no pages.  That can happen\nat any time (presumably when we carry FILE_CACHE).  We should not reset it\nto zero, and we should not check that it is zero.\n\nThat means that the only purpose for rdcache_revoking is to resolve races\nbetween new issues of FILE_CACHE and an async invalidate.  If they are\nequal, we should invalidate.  On success, we decrement rdcache_revoking,\nso that it is no longer equal to rdcache_gen.  Similarly, if we success\nin doing a sync invalidate, set revoking \u003d gen - 1.  (This is a small\noptimization to avoid doing unnecessary invalidate work and does not\naffect correctness.)\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "feb4cc9bb433bf1491ac5ffbba133f3258dacf06",
      "tree": "6339043d3fd867683459d9dc33f146b2f7e37d75",
      "parents": [
        "912a9b0319a8eb9e0834b19a25e01013ab2d6a9f"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Nov 07 09:39:00 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Nov 07 09:39:23 2010 -0800"
      },
      "message": "ceph: re-request max_size if cap auth changes\n\nIf the auth cap migrates to another MDS, clear requested_max_size so that\nwe resend any pending max_size increase requests.  This fixes potential\nhangs on writes that extend a file and race with an cap migration between\nMDSs.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "912a9b0319a8eb9e0834b19a25e01013ab2d6a9f",
      "tree": "7b04fca1669f006c1a1f35da8d986ca8ad11161c",
      "parents": [
        "7421ab8041d98363edfb85955fa3b9849ffae366"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Nov 07 09:37:25 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Nov 07 09:39:21 2010 -0800"
      },
      "message": "ceph: only let auth caps update max_size\n\nOnly the auth MDS has a meaningful max_size value for us, so only update it\nin fill_inode if we\u0027re being issued an auth cap.  Otherwise, a random\nstat result from a non-auth MDS can clobber a meaningful max_size, get\nthe client\u003c-\u003emds cap state out of sync, and make writes hang.\n\nSpecifically, even if the client re-requests a larger max_size (which it\nwill), the MDS won\u0027t respond because as far as it knows we already have a\nsufficiently large value.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "7421ab8041d98363edfb85955fa3b9849ffae366",
      "tree": "d1ae0dbaf56ed8f56849f4199626a303ec86b03d",
      "parents": [
        "d8b16b3d1c9d8d9124d647d05797383d35e2d645"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Nov 07 09:07:15 2010 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Nov 07 09:07:15 2010 -0800"
      },
      "message": "ceph: fix open for write on clustered mds\n\nNormally when we open a file we already have a cap, and simply update the\nwanted set.  However, if we open a file for write, but don\u0027t have an auth\ncap, that doesn\u0027t work; we need to open a new cap with the auth MDS.  Only\nreuse existing caps if we are opening for read or the existing cap is auth.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "d8b16b3d1c9d8d9124d647d05797383d35e2d645",
      "tree": "29bd57396f016572b5535c17a198b24062e2c79d",
      "parents": [
        "df9f86faf3ee610527ed02031fe7dd3c8b752e44"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat Nov 06 12:41:16 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Nov 07 08:40:43 2010 -0800"
      },
      "message": "ceph: fix bad pointer dereference in ceph_fill_trace\n\nWe dereference *in a few lines down, but only set it on rename.  It is\napparently pretty rare for this to trigger, but I have been hitting it\nwith a clustered MDSs.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "a7f9fb205a88ab9af675a68fc554cf51dafc8b60",
      "tree": "0aaa2ad1b345f46fc96d3e00592f9d106a269836",
      "parents": [
        "8bcbbf0009dd467afd6bed1fedfcb1d2463f55a7"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 26 16:17:55 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:17:18 2010 -0400"
      },
      "message": "convert ceph\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2f56f56ad991edd51ffd0baf1182245ee1277a04",
      "tree": "e4062e2bb1a92b487609cded256d5ede1a6eda90",
      "parents": [
        "efa4c1206eaff047c474af2136748a58eb8cc33b"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 27 20:59:49 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 27 21:05:54 2010 -0700"
      },
      "message": "Revert \"ceph: update issue_seq on cap grant\"\n\nThis reverts commit d91f2438d881514e4a923fd786dbd94b764a9440.\n\nThe intent of issue_seq is to distinguish between mds-\u003eclient messages that\n(re)create the cap and those that do not, which means we should _only_ be\nupdating that value in the create paths.  By updating it in handle_cap_grant,\nwe reset it to zero, which then breaks release.\n\nThe larger question is what workload/problem made me think it should be\nupdated here...\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "1b430beee5e388605dfb092b214ef0320f752cf6",
      "tree": "c1b1ece282aab771fd1386a3fe0c6e82cb5c5bfe",
      "parents": [
        "d19d5476f4b9f91d2de92b91588bb118beba6c0d"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Oct 26 14:21:26 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:05 2010 -0700"
      },
      "message": "writeback: remove nonblocking/encountered_congestion references\n\nThis removes more dead code that was somehow missed by commit 0d99519efef\n(writeback: remove unused nonblocking and congestion checks).  There are\nno behavior change except for the removal of two entries from one of the\next4 tracing interface.\n\nThe nonblocking checks in -\u003ewritepages are no longer used because the\nflusher now prefer to block on get_request_wait() than to skip inodes on\nIO congestion.  The latter will lead to more seeky IO.\n\nThe nonblocking checks in -\u003ewritepage are no longer used because it\u0027s\nredundant with the WB_SYNC_NONE check.\n\nWe no long set -\u003enonblocking in VM page out and page migration, because\na) it\u0027s effectively redundant with WB_SYNC_NONE in current code\nb) it\u0027s old semantic of \"Don\u0027t get stuck on request queues\" is mis-behavior:\n   that would skip some dirty inodes on congestion and page out others, which\n   is unfair in terms of LRU age.\n\nInspired by Christoph Hellwig. Thanks!\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Sage Weil \u003csage@newdream.net\u003e\nCc: Steve French \u003csfrench@samba.org\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "efa4c1206eaff047c474af2136748a58eb8cc33b",
      "tree": "61f8957ed7735c01a6d6900a3c4c2c45d084c3a7",
      "parents": [
        "61413c2f594e6b63db2b14c70c2e7d8cf02f9c00"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Oct 18 14:04:31 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 20 15:38:27 2010 -0700"
      },
      "message": "ceph: do not carry i_lock for readdir from dcache\n\nWe were taking dcache_lock inside of i_lock, which introduces a dependency\nnot found elsewhere in the kernel, complicationg the vfs locking\nscalability work.  Since we don\u0027t actually need it here anyway, remove\nit.\n\nWe only need i_lock to test for the I_COMPLETE flag, so be careful to do\nso without dcache_lock held.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "61413c2f594e6b63db2b14c70c2e7d8cf02f9c00",
      "tree": "2201b24eafc589067890a681a5e4e3431f8decdc",
      "parents": [
        "85b5aaa624aac568b8a3a88dbe4de6628c7cc527"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Sun Oct 17 21:55:21 2010 +0200"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 20 15:38:26 2010 -0700"
      },
      "message": "fs/ceph/xattr.c: Use kmemdup\n\nConvert a sequence of kmalloc and memcpy to use kmemdup.\n\nThe semantic patch that performs this transformation is:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\nexpression a,flag,len;\nexpression arg,e1,e2;\nstatement S;\n@@\n\n  a \u003d\n-  \\(kmalloc\\|kzalloc\\)(len,flag)\n+  kmemdup(arg,len,flag)\n  \u003c... when !\u003d a\n  if (a \u003d\u003d NULL || ...) S\n  ...\u003e\n- memcpy(a,arg,len+1);\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": "571dba52a34015a5a7aa5d480a86936878444a6f",
      "tree": "358000d91b2960555835e7e194660f45d189953b",
      "parents": [
        "010e3b48fca57920557d2b80b83f8b2899fb5d1e"
      ],
      "author": {
        "name": "Greg Farnum",
        "email": "gregf@hq.newdream.net",
        "time": "Fri Sep 24 14:56:40 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 20 15:38:23 2010 -0700"
      },
      "message": "ceph: add CEPH_MDS_OP_SETDIRLAYOUT and associated ioctl.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "6f453ed6c07dbed83b368269c9c0fb170866ee71",
      "tree": "f43e0bfd108aad49e8bbab9be395c74f97da5109",
      "parents": [
        "f4cf3deef4c474381e8fee2e6099d49edd9105cb"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue Sep 28 09:53:10 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 20 15:38:21 2010 -0700"
      },
      "message": "ceph: fix debugfs warnings\n\nInclude \"super.h\" outside of CONFIG_DEBUG_FS to eliminate a compiler warning:\n\nfs/ceph/debugfs.c:266: warning: \u0027struct ceph_fs_client\u0027 declared inside parameter list\nfs/ceph/debugfs.c:266: warning: its scope is only this definition or declaration, which is probably not what you want\nfs/ceph/debugfs.c:271: warning: \u0027struct ceph_fs_client\u0027 declared inside parameter list\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\n"
    },
    {
      "commit": "496e59553c51ce18acc836de070106b583926b87",
      "tree": "a171b2ec236fd021d4f17ea9d5df7312e93c1645",
      "parents": [
        "fca4451acfdcf894154e4809529ca28a09db88ff"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Sep 22 19:57:10 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 20 15:38:18 2010 -0700"
      },
      "message": "ceph: switch from BKL to lock_flocks()\n\nSwitch from using the BKL explicitly to the new lock_flocks() interface.\nEventually this will turn into a spinlock.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "fca4451acfdcf894154e4809529ca28a09db88ff",
      "tree": "446381c8e8c7b592b47c2e50c32b1e40817fcfe1",
      "parents": [
        "ac0b74d8a1ced8ea86147467daf06b15b130dd94"
      ],
      "author": {
        "name": "Greg Farnum",
        "email": "gregf@hq.newdream.net",
        "time": "Fri Sep 17 10:24:02 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 20 15:38:17 2010 -0700"
      },
      "message": "ceph: preallocate flock state without locks held\n\nWhen the lock_kernel() turns into lock_flocks() and a spinlock, we won\u0027t\nbe able to do allocations with the lock held.  Preallocate space without\nthe lock, and retry if the lock state changes out from underneath us.\n\nSigned-off-by: Greg Farnum \u003cgregf@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "18a38193efcaac1fb3c94ad8fa04bb117850a3c2",
      "tree": "096877dc2a039a991262d9f05fa0a2c2f684cfa8",
      "parents": [
        "93afd449aa3c0430ef409c13e1cb2b3f0458fc10"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Sep 17 10:46:44 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 20 15:38:15 2010 -0700"
      },
      "message": "ceph: use mapping-\u003enrpages to determine if mapping is empty\n\nThis is simpler and faster.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "93afd449aa3c0430ef409c13e1cb2b3f0458fc10",
      "tree": "dd9ab308735c2414260539e33605197a5f90f069",
      "parents": [
        "4c32f5dda5ffe23687a55da1538b7cc426710d1a"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Sep 17 08:38:25 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 20 15:38:15 2010 -0700"
      },
      "message": "ceph: only invalidate on check_caps if we actually have pages\n\nThe i_rdcache_gen value only implies we MAY have cached pages; actually\ncheck the mapping to see if it\u0027s worth bothering with an invalidate.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "4c32f5dda5ffe23687a55da1538b7cc426710d1a",
      "tree": "d0048f2310cdf1809ac13d4c8d59c75f96f67280",
      "parents": [
        "602adf400201636e95c3fed9f31fba54a3d7e844"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Aug 24 16:27:36 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 20 15:38:14 2010 -0700"
      },
      "message": "ceph: do not hide .snap in root directory\n\nSnaps in the root directory are now supported by the MDS, and harmless on\nolder versions.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "3d14c5d2b6e15c21d8e5467dc62d33127c23a644",
      "tree": "7d123c47847df9d1e865b6b78dc7da3fe739b704",
      "parents": [
        "ae1533b62b3369e6ae32338f4a77d64d0e88f676"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Tue Apr 06 15:14:15 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 20 15:37:28 2010 -0700"
      },
      "message": "ceph: factor out libceph from Ceph file system\n\nThis factors out protocol and low-level storage parts of ceph into a\nseparate libceph module living in net/ceph and include/linux/ceph.  This\nis mostly a matter of moving files around.  However, a few key pieces\nof the interface change as well:\n\n - ceph_client becomes ceph_fs_client and ceph_client, where the latter\n   captures the mon and osd clients, and the fs_client gets the mds client\n   and file system specific pieces.\n - Mount option parsing and debugfs setup is correspondingly broken into\n   two pieces.\n - The mon client gets a generic handler callback for otherwise unknown\n   messages (mds map, in this case).\n - The basic supported/required feature bits can be expanded (and are by\n   ceph_fs_client).\n\nNo functional change, aside from some subtle error handling cases that got\ncleaned up in the refactoring process.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ae1533b62b3369e6ae32338f4a77d64d0e88f676",
      "tree": "9a54b1c1c8a52a4ae46bc0c5421d04e93ac6495f",
      "parents": [
        "68b4476b0bc13fef18266b4140309a30e86739d2"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Tue May 18 16:38:08 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 20 15:37:25 2010 -0700"
      },
      "message": "ceph-rbd: osdc support for osd call and rollback operations\n\nThis will be used for rbd snapshots administration.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\n"
    },
    {
      "commit": "68b4476b0bc13fef18266b4140309a30e86739d2",
      "tree": "47fab5ea2491c7bc75fe14a3b0d3a091eb6244b7",
      "parents": [
        "3499e8a5d4dbb083324efd942e2c4fb7eb65f27c"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Tue Apr 06 15:01:27 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 20 15:37:18 2010 -0700"
      },
      "message": "ceph: messenger and osdc changes for rbd\n\nAllow the messenger to send/receive data in a bio.  This is added\nso that we wouldn\u0027t need to copy the data into pages or some other buffer\nwhen doing IO for an rbd block device.\n\nWe can now have trailing variable sized data for osd\nops.  Also osd ops encoding is more modular.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "3499e8a5d4dbb083324efd942e2c4fb7eb65f27c",
      "tree": "7c3914991f81bcf2a9153047e7f1dad2ae0da74b",
      "parents": [
        "7669a2c95e502a77f93f27e5449fc93a00d588b6"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Tue Apr 06 14:51:47 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 20 15:36:01 2010 -0700"
      },
      "message": "ceph: refactor osdc requests creation functions\n\nThe osd requests creation are being decoupled from the\nvino parameter, allowing clients using the osd to use\nother arbitrary object names that are not necessarily\nvino based. Also, calc_raw_layout now takes a snap id.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "7669a2c95e502a77f93f27e5449fc93a00d588b6",
      "tree": "4230c625bf5781d1cb3cf6b1e38b2d0ef103234c",
      "parents": [
        "cd07202cc8262e1669edff0d97715f3dd9260917"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Mon May 17 12:31:35 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 20 15:35:36 2010 -0700"
      },
      "message": "ceph: lookup pool in osdmap by name\n\nImplement a pool lookup by name.  This will be used by rbd.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "d91f2438d881514e4a923fd786dbd94b764a9440",
      "tree": "d0419a4c2132687c58e54a18938ab2359794700d",
      "parents": [
        "21b559de56695d36b3f0819b7e2454737db254f8"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Sep 22 11:16:00 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Oct 07 08:01:50 2010 -0700"
      },
      "message": "ceph: update issue_seq on cap grant\n\nWe need to update the issue_seq on any grant operation, be it via an MDS\nreply or a separate grant message.  The update in the grant path was\nmissing.  This broke cap release for inodes in which the MDS sent an\nexplicit grant message that was not soon after followed by a successful\nMDS reply on the same inode.\n\nAlso fix the signedness on seq locals.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "21b559de56695d36b3f0819b7e2454737db254f8",
      "tree": "41559b37754818d637d11aec1b61a138d7a8efb5",
      "parents": [
        "bba0cd0e3d97472855840af817b766e3f632a501"
      ],
      "author": {
        "name": "Greg Farnum",
        "email": "gregf@hq.newdream.net",
        "time": "Wed Oct 06 15:46:30 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Oct 07 08:00:24 2010 -0700"
      },
      "message": "ceph: send cap release message early on failed revoke.\n\nIf an MDS tries to revoke caps that we don\u0027t have, we want to send\nreleases early since they probably contain the caps message the MDS\nis looking for.\n\nPreviously, we only sent the messages if we didn\u0027t have the inode either. But\nin a multi-mds system we can retain the inode after dropping all caps for\na single MDS.\n\nSigned-off-by: Greg Farnum \u003cgregf@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "bba0cd0e3d97472855840af817b766e3f632a501",
      "tree": "31794165c098a079e3af617b594eaf9ae8d3bd8a",
      "parents": [
        "92923dcbfcad107b0e0469f579a2455729ccf10e"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Tue Oct 05 16:03:42 2010 +0530"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Oct 07 08:00:24 2010 -0700"
      },
      "message": "ceph: Update max_len with minimum required size\n\nencode_fh on error should update max_len with minimum required\nsize, so that caller can redo the call with the reallocated buffer.\nThis is required with open by handle patch series\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "92923dcbfcad107b0e0469f579a2455729ccf10e",
      "tree": "a16b4b1510af3c57acfa483d8f88cb5d0ba41d98",
      "parents": [
        "6bc18876ba01fd4a077db6e1ed27201e4bda8864"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Tue Oct 05 16:03:41 2010 +0530"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Oct 07 08:00:23 2010 -0700"
      },
      "message": "ceph: Fix return value of encode_fh function\n\nencode_fh function should return 255 on error as done by other file\nsystem to indicate EOVERFLOW. Also max_len is in sizeof(u32) units\nand not in bytes.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "6bc18876ba01fd4a077db6e1ed27201e4bda8864",
      "tree": "145b14be550e359e2a5a9f594f54f870d46fd926",
      "parents": [
        "936aeb5c4a9fa799abd7d630a94223acedcaad50"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Sep 27 10:18:52 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Oct 07 08:00:23 2010 -0700"
      },
      "message": "ceph: avoid null deref in osd request error path\n\nIf we interrupt an osd request, we call __cancel_request, but it wasn\u0027t\nverifying that req-\u003er_osd was non-NULL before dereferencing it.  This could\ncause a crash if osds were flapping and we aborted a request on said osd.\n\nReported-by: Henry C Chang \u003chenry_c_chang@tcloudcomputing.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "936aeb5c4a9fa799abd7d630a94223acedcaad50",
      "tree": "377c2b25d450975e928012c8d9b7c12214b62428",
      "parents": [
        "cb655d0f3d57c23db51b981648e452988c0223f9"
      ],
      "author": {
        "name": "Henry C Chang",
        "email": "henry_c_chang@tcloudcomputing.com",
        "time": "Wed Sep 22 20:21:17 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Oct 07 08:00:23 2010 -0700"
      },
      "message": "ceph: fix list_add usage on unsafe_writes list\n\nFix argument order.\n\nSigned-off-by: Henry C Chang \u003chenry_c_chang@tcloudcomputing.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "be4f104dfd3b5e3ae262bff607965cfc38027dec",
      "tree": "8b2f84afebe64730a83307ad9b18c6f6ca51962f",
      "parents": [
        "a43fb73101eaf6db0b33d22c152b338ab8b3edbb"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Sep 17 12:30:31 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Sep 17 12:30:31 2010 -0700"
      },
      "message": "ceph: select CRYPTO\n\nWe select CRYPTO_AES, but not CRYPTO.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "a43fb73101eaf6db0b33d22c152b338ab8b3edbb",
      "tree": "039276b81586a986f5b9662fc28b37cbf9271eb3",
      "parents": [
        "e835124c2be289515b918f2688ced4249e2de566"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Sep 17 09:54:08 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Sep 17 09:54:31 2010 -0700"
      },
      "message": "ceph: check mapping to determine if FILE_CACHE cap is used\n\nSee if the i_data mapping has any pages to determine if the FILE_CACHE\ncapability is currently in use, instead of assuming it is any time the\nrdcache_gen value is set (i.e., issued -\u003e used).\n\nThis allows the MDS RECALL_STATE process work for inodes that have cached\npages.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "e835124c2be289515b918f2688ced4249e2de566",
      "tree": "1bf9bc86a2d1c3e9508dc304830a3bb42ad7de9b",
      "parents": [
        "ae00d4f37f4df56821331deb1028748110dd6dc9"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Sep 17 08:03:08 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Sep 17 08:03:08 2010 -0700"
      },
      "message": "ceph: only send one flushsnap per cap_snap per mds session\n\nSending multiple flushsnap messages is problematic because we ignore\nthe response if the tid doesn\u0027t match, and the server may only respond to\neach one once.  It\u0027s also a waste.\n\nSo, skip cap_snaps that are already on the flushing list, unless the caller\ntells us to resend (because we are reconnecting).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ae00d4f37f4df56821331deb1028748110dd6dc9",
      "tree": "52437bde7370fc7a21193c27a08dc1d7238cee98",
      "parents": [
        "cfc0bf6640dfd0f43bf8bfec5a475284809baa4d"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Sep 16 16:26:51 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Sep 16 16:26:51 2010 -0700"
      },
      "message": "ceph: fix cap_snap and realm split\n\nThe cap_snap creation/queueing relies on both the current i_head_snapc\n_and_ the i_snap_realm pointers being correct, so that the new cap_snap\ncan properly reference the old context and the new i_head_snapc can be\nupdated to reference the new snaprealm\u0027s context.  To fix this, we:\n\n - move inodes completely to the new (split) realm so that i_snap_realm\n   is correct, and\n - generate the new snapc\u0027s _before_ queueing the cap_snaps in\n   ceph_update_snap_trace().\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "cfc0bf6640dfd0f43bf8bfec5a475284809baa4d",
      "tree": "63ee1563bc9b844c48684e57ad03bc3c023014a2",
      "parents": [
        "8bef9239ee1a42eb37d3f83bacf6a75f019c028d"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Sep 14 15:50:59 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Sep 14 15:50:59 2010 -0700"
      },
      "message": "ceph: stop sending FLUSHSNAPs when we hit a dirty capsnap\n\nStop sending FLUSHSNAP messages when we hit a capsnap that has dirty_pages\nor is still writing.  We\u0027ll send the newer capsnaps only after the older\nones complete.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "8bef9239ee1a42eb37d3f83bacf6a75f019c028d",
      "tree": "aca21838744fd483b5a2e374315c095b98193647",
      "parents": [
        "467c525109d5d542d7d416b0c11bdd54610fe2f4"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Sep 14 15:45:44 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Sep 14 15:45:44 2010 -0700"
      },
      "message": "ceph: correctly set \u0027follows\u0027 in flushsnap messages\n\nThe \u0027follows\u0027 should match the seq for the snap context for the given snap\ncap, which is the context under which we have been dirtying and writing\ndata and metadata.  The snapshot that _contains_ those updates thus\n_follows_ that context\u0027s seq #.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "467c525109d5d542d7d416b0c11bdd54610fe2f4",
      "tree": "abde91184dc9ccecc9efc784520b184cae772fb1",
      "parents": [
        "a77d9f7dce7600058d56f0670ed29d77abffcde2"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Sep 13 11:39:20 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Sep 13 11:40:36 2010 -0700"
      },
      "message": "ceph: fix dn offset during readdir_prepopulate\n\nWhen adding the readdir results to the cache, ceph_set_dentry_offset was\nclobbered our just-set offset.  This can cause the readdir result offsets\nto get out of sync with the server.  Add an argument to the helper so\nthat it does not.\n\nThis bug was introduced by 1cd3935bedccf592d44343890251452a6dd74fc4.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "a77d9f7dce7600058d56f0670ed29d77abffcde2",
      "tree": "60c0b90d2f3af86e9d65641f61ceca075ed61fdf",
      "parents": [
        "3612abbd5df6baa9ca3e0777c6c8646e202d3f66"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat Sep 11 10:55:25 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat Sep 11 10:55:25 2010 -0700"
      },
      "message": "ceph: fix file offset wrapping at 4GB on 32-bit archs\n\nCast the value before shifting so that we don\u0027t run out of bits with a\n32-bit unsigned long.  This fixes wrapping of high file offsets into the\nlow 4GB of a file on disk, and the subsequent data corruption for large\nfiles.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "3612abbd5df6baa9ca3e0777c6c8646e202d3f66",
      "tree": "6c4512ac7acf0ac12683ab330c600eef69346fe7",
      "parents": [
        "3d4401d9d0aef5c40706350685ddea3df6708496"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Sep 07 15:59:27 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat Sep 11 10:52:47 2010 -0700"
      },
      "message": "ceph: fix reconnect encoding for old servers\n\nFix the reconnect encoding to encode the cap record when the MDS does not\nhave the FLOCK capability (i.e., pre v0.22).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "3d4401d9d0aef5c40706350685ddea3df6708496",
      "tree": "91f92cdc2bb440ffd1baff6bf3efdc2b83855174",
      "parents": [
        "ca04d9c3ec721e474f00992efc1b1afb625507f5"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Fri Sep 03 12:57:11 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat Sep 11 10:52:47 2010 -0700"
      },
      "message": "ceph: fix pagelist kunmap tail\n\nA wrong parameter was passed to the kunmap.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ca04d9c3ec721e474f00992efc1b1afb625507f5",
      "tree": "9dfe95fe2a08ff008888a754db10f31ac04fbea4",
      "parents": [
        "2bfc96a127bc1cc94d26bfaa40159966064f9c8c"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Aug 26 16:12:01 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat Sep 11 10:52:47 2010 -0700"
      },
      "message": "ceph: fix null pointer deref on anon root dentry release\n\nWhen we release a root dentry, particularly after a splice, the parent\n(actually our) inode was evaluating to NULL and was getting dereferenced\nby ceph_snap().  This is reproduced by something as simple as\n\n mount -t ceph monhost:/a/b mnt\n mount -t ceph monhost:/a mnt2\n ls mnt2\n\nA splice_dentry() would kill the old \u0027b\u0027 inode\u0027s root dentry, and we\u0027d\ncrash while releasing it.\n\nFix by checking for both the ROOT and NULL cases explicitly.  We only need\nto invalidate the parent dir when we have a correct parent to invalidate.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "b545787dbb00a041c541a4759d938ddb0108295a",
      "tree": "7d64ee98012ee45726b79a32ed815e06c83c4ef9",
      "parents": [
        "e072f8aa3587710cd35cce0f6b6efd7b4276c327"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Thu Aug 26 11:12:38 2010 +0200"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Aug 26 09:26:50 2010 -0700"
      },
      "message": "ceph: fix get_ticket_handler() error handling\n\nget_ticket_handler() returns a valid pointer or it returns\nERR_PTR(-ENOMEM) if kzalloc() fails.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "e072f8aa3587710cd35cce0f6b6efd7b4276c327",
      "tree": "a0455b3ed1d76880a6553d39f017081a1832f5ba",
      "parents": [
        "f44c3890d9fd6e4284518ff3bb16879fee194a3a"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Aug 26 09:26:37 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Aug 26 09:26:37 2010 -0700"
      },
      "message": "ceph: don\u0027t BUG on ENOMEM during mds reconnect\n\nWe are in a position to return an error; do that instead.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "f44c3890d9fd6e4284518ff3bb16879fee194a3a",
      "tree": "d4b0415abdc334a02454326c05d93c91c2555368",
      "parents": [
        "ad8453ab0a5b98884074302ba3cc37664791e261"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Thu Aug 26 11:07:24 2010 +0200"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Aug 26 09:24:28 2010 -0700"
      },
      "message": "ceph: ceph_mdsc_build_path() returns an ERR_PTR\n\nceph_mdsc_build_path() returns an ERR_PTR but this code is set up to\nhandle NULL returns.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ad8453ab0a5b98884074302ba3cc37664791e261",
      "tree": "3e90b914db42bfa8b476b1d46aef7baee4adebb3",
      "parents": [
        "ac1f12ef569d49b013c3db86e11be7e15d66b1c3"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@linux.intel.com",
        "time": "Wed Aug 25 13:26:32 2010 +0100"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Aug 25 12:02:14 2010 -0700"
      },
      "message": "ceph: Fix warnings\n\nJust scrubbing some warnings so I can see real problem ones in the build\nnoise. For 32bit we need to coax gcc politely into believing we really\nhonestly intend to the casts. Using (u64)(unsigned long) means we cast from\na pointer to a type of the right size and then extend it. This stops the\nwarning spew.\n\nSigned-off-by: Alan Cox \u003calan@linux.intel.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ac1f12ef569d49b013c3db86e11be7e15d66b1c3",
      "tree": "79ca92f4f4c08a14629ff6b2b3b74d2eb7fac5eb",
      "parents": [
        "36e21687e6e51c4225c42e6291938363f7bbfa7c"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Wed Aug 25 09:11:35 2010 +0200"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Aug 25 12:01:54 2010 -0700"
      },
      "message": "ceph: ceph_get_inode() returns an ERR_PTR\n\nceph_get_inode() returns an ERR_PTR and it doesn\u0027t return a NULL.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "36e21687e6e51c4225c42e6291938363f7bbfa7c",
      "tree": "15f30bf1e622b564b6663217cf99c75aad03fae3",
      "parents": [
        "7d8cb26d7dcb911f110b7762bd5941e8f009d6c3"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Aug 24 16:23:48 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Aug 24 16:24:19 2010 -0700"
      },
      "message": "ceph: initialize fields on new dentry_infos\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "7d8cb26d7dcb911f110b7762bd5941e8f009d6c3",
      "tree": "2adf2f6303cc96ff14c951dc6966f68a0fc3cf25",
      "parents": [
        "07a27e226d1ed210d2d4218bd0642b40f5405c6a"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Aug 24 08:44:16 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Aug 24 16:24:18 2010 -0700"
      },
      "message": "ceph: maintain i_head_snapc when any caps are dirty, not just for data\n\nWe used to use i_head_snapc to keep track of which snapc the current epoch\nof dirty data was dirtied under.  It is used by queue_cap_snap to set up\nthe cap_snap.  However, since we queue cap snaps for any dirty caps, not\njust for dirty file data, we need to keep a valid i_head_snapc anytime\nwe have dirty|flushing caps.  This fixes a NULL pointer deref in\nqueue_cap_snap when writing back dirty caps without data (e.g.,\nsnaptest-authwb.sh).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "07a27e226d1ed210d2d4218bd0642b40f5405c6a",
      "tree": "7b24e5b3b88d8e682b70684b0df7ee0db333fe46",
      "parents": [
        "124514918b030d74f1f3e15483b7bf3b85268082"
      ],
      "author": {
        "name": "Henry C Chang",
        "email": "henry_c_chang@tcloudcomputing.com",
        "time": "Sun Aug 22 21:34:27 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 22 21:34:27 2010 -0700"
      },
      "message": "ceph: fix osd request lru adjustment when sending request\n\nFix argument order.  We want to move the item to the end of the list, not\nchange the position of the head.\n\nSigned-off-by: Henry C Chang \u003chenry_c_chang@tcloudcomputing.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "124514918b030d74f1f3e15483b7bf3b85268082",
      "tree": "78f539354383bf0820dc1cb20fd752b63f74760c",
      "parents": [
        "679ceace848e9fd570678396ffe1ef034e00e82d"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 22 21:33:32 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 22 21:33:32 2010 -0700"
      },
      "message": "ceph: don\u0027t improperly set dir complete when holding EXCL cap\n\nIf we hold the EXCL cap, we cannot trust the dir stats from the MDS (num\nfiles, subdirs) and must not incorrectly conclude that the directory is\nempty.  If we do, we get can bad results from lookup (bad ENOENT) and\nbad readdir results.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "679ceace848e9fd570678396ffe1ef034e00e82d",
      "tree": "670768527852f134cfe3e20d425534a16edd968a",
      "parents": [
        "eb6bb1c5bdc6e455a9d16cb845cc65afc9b0a617"
      ],
      "author": {
        "name": "Michael Rubin",
        "email": "mrubin@google.com",
        "time": "Fri Aug 20 02:31:26 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 22 15:16:51 2010 -0700"
      },
      "message": "mm: exporting account_page_dirty\n\nThis allows code outside of the mm core to safely manipulate page state\nand not worry about the other accounting. Not using these routines means\nthat some code will lose track of the accounting and we get bugs. This\nhas happened once already.\n\nSigned-off-by: Michael Rubin \u003cmrubin@google.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "eb6bb1c5bdc6e455a9d16cb845cc65afc9b0a617",
      "tree": "8bbdd454c7a528b7a9f7d84bf084311b7433757f",
      "parents": [
        "ed326044489ed89c740c50a3df5dffc9c3b20b96"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Aug 16 09:21:27 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 22 15:16:48 2010 -0700"
      },
      "message": "ceph: direct requests in snapped namespace based on nonsnap parent\n\nWhen making a request in the virtual snapdir or a snapped portion of the\nnamespace, we should choose the MDS based on the first nonsnap parent (and\nits caps).  If that is not the best place, we will get forward hints to\nfind the right MDS in the cluster.  This fixes ESTALE errors when using\nthe .snap directory and namespace with multiple MDSs.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ed326044489ed89c740c50a3df5dffc9c3b20b96",
      "tree": "364fb2896488cd2c7964960e01fa123d2b6ecb51",
      "parents": [
        "4a625be47243e0e07dedd0a1a6b94c66c2ab93ba"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Aug 16 13:37:31 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 22 15:16:47 2010 -0700"
      },
      "message": "ceph: queue cap snap writeback for realm children on snap update\n\nWhen a realm is updated, we need to queue writeback on inodes in that\nrealm _and_ its children.  Otherwise, if the inode gets cowed on the\nserver, we can get a hang later due to out-of-sync cap/snap state.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "4a625be47243e0e07dedd0a1a6b94c66c2ab93ba",
      "tree": "4224efef4f83bcf629934d6da17d2c122b49ba5c",
      "parents": [
        "082afec92d1052305af1195f591602f4d0f44277"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 22 15:03:56 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 22 15:16:46 2010 -0700"
      },
      "message": "ceph: include dirty xattrs state in snapped caps\n\nWhen we snapshot dirty metadata that needs to be written back to the MDS,\ninclude dirty xattr metadata.  Make the capsnap reference the encoded\nxattr blob so that it will be written back in the FLUSHSNAP op.\n\nAlso fix the capsnap creation guard to include dirty auth or file bits,\nnot just tests specific to dirty file data or file writes in progress\n(this fixes auth metadata writeback).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "082afec92d1052305af1195f591602f4d0f44277",
      "tree": "7012fc71ac7be7bd88f2b0d92f27a3ba46c354de",
      "parents": [
        "f3c60c5918f26ea16761ddc8b12d8401a3db626b"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 22 15:16:41 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 22 15:16:41 2010 -0700"
      },
      "message": "ceph: fix xattr cap writeback\n\nWe should include the xattr metadata blob in the cap update message any\ntime we are flushing dirty state, NOT just when we are also dropping the\ncap.  This fixes async xattr writeback.\n\nAlso, clean up the code slightly to avoid duplicating the bit test.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "f3c60c5918f26ea16761ddc8b12d8401a3db626b",
      "tree": "00bde7250b6753910a38b454c7a9cee2eb7e84e7",
      "parents": [
        "e56fa10e92e077d456cbc33b7025032887772b33"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Aug 11 14:51:23 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 22 15:04:43 2010 -0700"
      },
      "message": "ceph: fix multiple mds session shutdown\n\nThe use of a completion when waiting for session shutdown during umount is\ninappropriate, given the complexity of the condition.  For multiple MDS\u0027s,\nthis resulted in the umount thread spinning, often preventing the session\nclose message from being processed in some cases.\n\nSwitch to a waitqueue and defined a condition helper.  This cleans things\nup nicely.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "e56fa10e92e077d456cbc33b7025032887772b33",
      "tree": "ada8fefc9fdbe457a6f387b05e984478065a698b",
      "parents": [
        "0eb6cd49f6e3ec523787d09cf08d3179be270db4"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Mon May 17 12:40:28 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Aug 10 14:41:25 2010 -0700"
      },
      "message": "ceph: generalize mon requests, add pool op support\n\nGeneralize the current statfs synchronous requests, and support pool_ops.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "0eb6cd49f6e3ec523787d09cf08d3179be270db4",
      "tree": "7974963003e0b8ef26fdfb3a8120c6b4b588a01b",
      "parents": [
        "e9d177443134bc4ac1c1393af69e2a8704bcac09"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Aug 05 13:53:18 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Aug 05 13:53:40 2010 -0700"
      },
      "message": "ceph: only queue async writeback on cap revocation if there is dirty data\n\nNormally, if the Fb cap bit is being revoked, we queue an async writeback.\nIf there is no dirty data but we still hold the cap, this leaves the\nclient sitting around doing nothing until the cap timeouts expire and the\ncap is released on its own (as it would have been without the revocation).\n\nInstead, only queue writeback if the bit is actually used (i.e., we have\ndirty data).  If not, we can reply to the revocation immediately.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "e9d177443134bc4ac1c1393af69e2a8704bcac09",
      "tree": "77da337352fe11a62b1f712c30d28105175b4378",
      "parents": [
        "52dfb8ac0ef41168c1a10590b7259a5ab1cd2ab7"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Aug 02 16:23:49 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Aug 03 12:56:57 2010 -0700"
      },
      "message": "ceph: do not ignore osd_idle_ttl mount option\n\nActually apply the mount option to the mount_args struct.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "52dfb8ac0ef41168c1a10590b7259a5ab1cd2ab7",
      "tree": "b559e3232c32a1d5e97785aea6f9ccafbba054ce",
      "parents": [
        "213c99ee0cf17ff0fbffb6fb540bd29615cd19d5"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Aug 03 10:25:30 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Aug 03 10:25:30 2010 -0700"
      },
      "message": "ceph: constify dentry_operations\n\nThis makes checkpatch happy.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "213c99ee0cf17ff0fbffb6fb540bd29615cd19d5",
      "tree": "168f72ba71feff5bf24707be622135b1016cdff5",
      "parents": [
        "40819f6fb227c1832935b775ac22aef10aa6f6dd"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Aug 03 10:25:11 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Aug 03 10:25:11 2010 -0700"
      },
      "message": "ceph: whitespace cleanup\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "40819f6fb227c1832935b775ac22aef10aa6f6dd",
      "tree": "14f3e73f9585cc157ab2daab487c7b3964394fe2",
      "parents": [
        "fbaad9797a761c2d5ff6e755bbb4c046207a1ca2"
      ],
      "author": {
        "name": "Greg Farnum",
        "email": "gregf@hq.newdream.net",
        "time": "Mon Aug 02 15:34:23 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Aug 02 16:10:53 2010 -0700"
      },
      "message": "ceph: add flock/fcntl lock support\n\nImplement flock inode operation to support advisory file locking.  All\nlock/unlock operations are synchronous with the MDS.  Lock state is\nsent when reconnecting to a recovering MDS to restore the shared lock\nstate.\n\nSigned-off-by: Greg Farnum \u003cgregf@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "fbaad9797a761c2d5ff6e755bbb4c046207a1ca2",
      "tree": "abe5e3668294922e70282dab9c36072cac1939c9",
      "parents": [
        "c6f3fdc592d61847da0e2172e352dbcb53c83d39"
      ],
      "author": {
        "name": "Greg Farnum",
        "email": "gregf@hq.newdream.net",
        "time": "Mon Aug 02 15:30:08 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Aug 02 15:48:54 2010 -0700"
      },
      "message": "ceph: define on-wire types, constants for file locking support\n\nDefine the MDS operations and data types for doing file advisory locking\nwith the MDS.\n\nSigned-off-by: Greg Farnum \u003cgregf@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "c6f3fdc592d61847da0e2172e352dbcb53c83d39",
      "tree": "b658c608a71b3c373b529ec5d0b9930b1263166d",
      "parents": [
        "20cb34ae9e4b008a8789a48d52f5aa279dc400b6"
      ],
      "author": {
        "name": "Greg Farnum",
        "email": "gregf@hq.newdream.net",
        "time": "Mon Aug 02 14:55:24 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Aug 02 15:48:51 2010 -0700"
      },
      "message": "ceph: add CEPH_FEATURE_FLOCK to the supported feature bits\n\nThis informs the server that we will accept v2 client_caps format and v2\nclient_reconnect format messages.\n\nSigned-off-by: Greg Farnum \u003cgregf@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "20cb34ae9e4b008a8789a48d52f5aa279dc400b6",
      "tree": "03b0c011ebaec2cb26c81f122b5432119976dc6b",
      "parents": [
        "ce1fbc8dd657a4bbcf26c683c9d07c88db83fd86"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed May 12 15:21:32 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Aug 02 15:48:50 2010 -0700"
      },
      "message": "ceph: support v2 reconnect encoding\n\nEncode either old or v2 encoding of client_reconnect message, depending on\nwhether the peer has the FLOCK feature bit.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ce1fbc8dd657a4bbcf26c683c9d07c88db83fd86",
      "tree": "5ff998e85e35f6938cd316c2f9147c87a6a5faab",
      "parents": [
        "cbbfe499055f49c09210e04d9f88c2f483052384"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Aug 02 15:09:39 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Aug 02 15:48:49 2010 -0700"
      },
      "message": "ceph: support v2 client_caps encoding\n\nAdd support for v2 encoding of MClientCaps, which includes a flock blob.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "cbbfe499055f49c09210e04d9f88c2f483052384",
      "tree": "055a42f950c68b6ecd47f61a80fa15e813fdb381",
      "parents": [
        "73a7e693f9da464b0df07643af3f8ffc04dcc0b5"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Aug 02 15:48:23 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Aug 02 15:48:31 2010 -0700"
      },
      "message": "ceph: move AES iv definition to shared header\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "73a7e693f9da464b0df07643af3f8ffc04dcc0b5",
      "tree": "1e0e09dd0ee0390e4da8f2247187b283e48b228e",
      "parents": [
        "2d9c98ae97c18e8b1c363af6a2e51d5d9e8c5e04"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Aug 02 11:00:55 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Aug 02 11:10:07 2010 -0700"
      },
      "message": "ceph: fix decoding of pool snap info\n\nThe pool info contains a vector for snap_info_t, not snap ids.  This fixes\nthe broken decoding, which would declare teh update corrupt when a pool\nsnapshot was created.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "2d9c98ae97c18e8b1c363af6a2e51d5d9e8c5e04",
      "tree": "694895b1c66c7a1f382f8e7b6bc8c1b53165eab1",
      "parents": [
        "b8cd07e78eaa49857e882f4199309f86aeb80bbd"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Jul 30 09:38:13 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 01 20:11:42 2010 -0700"
      },
      "message": "ceph: make -\u003esync_fs not wait if wait\u003d\u003d0\n\nThe -\u003esync_fs() super op only needs to wait if wait is true.  Otherwise,\njust get some dirty cap writeback started.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    }
  ],
  "next": "b8cd07e78eaa49857e882f4199309f86aeb80bbd"
}
