{"push_id":1891732009,"size":28,"distinct_size":28,"ref":"refs/heads/kraken","head":"fd6816bb725f7699537276c13f68d815a7406228","before":"a6fdfccd117180cf3906e1349b7af19462eae0e1","commits":[{"sha":"70ebe961de881734b637c7d13e7dd63bc09066c6","author":{"name":"Matt Benjamin","email":"ae7c97a5debf6ddb165ee9f6c1e9fb330302b945@redhat.com"},"message":"rgw_file: invalid use of RGWFileHandle::FLAG_EXACT_MATCH\n\nThe change which introduced this flag also caused it to be\ngiven as the flags argument to RGWLibFS::stat_leaf() when called\nfrom rgw_lookup().\n\nThis was incorrect:  in particular, when a directory is known only\nas a common prefix of other objects, the AWS namespace mapping\nconvention requires lookup(\"foo\") to match a non-materialized\ninstance of \"foo/\" (case 2 in RGWLibFS::stat_leaf's stat loop).\n\nFixes: http://tracker.ceph.com/issues/18992\n\nSigned-off-by: Matt Benjamin <mbenjamin@redhat.com>\n(cherry picked from commit e31e9eb980f958640150e8d7f17de1b9e5478b1e)","distinct":true,"url":"https://api.github.com/repos/ceph/ceph/commits/70ebe961de881734b637c7d13e7dd63bc09066c6"},{"sha":"2e27aa9bb2484512620d885c0a19e35b1de7b652","author":{"name":"Matt Benjamin","email":"ae7c97a5debf6ddb165ee9f6c1e9fb330302b945@redhat.com"},"message":"rgw_file: allow setattr on placeholder directories\n\nWhen a POSIX path <bucket>/foo/ is known only as an implicit path\nsegment from other objects (e.g., <bucket>/foo/bar.txt), a case\nthat would usually arise from S3 upload of such an object, an\nRGWFileHandle object representing \"<bucket>/foo/\" will be constructed\nas needed, with no backing in RGW.\n\nThis is by design, but subsequently, if a setattr is performed on\nsuch a handle, we must be ready to create the object inline with\nstoring the attributes.\n\nFixes: http://tracker.ceph.com/issues/18989\n\nSigned-off-by: Matt Benjamin <mbenjamin@redhat.com>\n(cherry picked from commit 55eec1c0a0e136736961423b7b6244d0f3693c1a)","distinct":true,"url":"https://api.github.com/repos/ceph/ceph/commits/2e27aa9bb2484512620d885c0a19e35b1de7b652"},{"sha":"c613ee7e5853c40c89215efdc231c9e5274aec58","author":{"name":"Matt Benjamin","email":"ae7c97a5debf6ddb165ee9f6c1e9fb330302b945@redhat.com"},"message":"rgw_file: rgw_readdir can't list multi-segment dirs\n\nThis issue has one root cause in librgw, namely that the marker\nargument to these requests was incorrectly formatted (though the\nmarker cache was working as intended).\n\nSecondarily, for nfs-ganesha users, there is a compounding issue\nthat the RGW fsal was required by \"temporary\" convention to\npopulate the entire dirent cache for a directory on a single\nreaddir() invocation--the cache_inode/mdcache implementations\ninvariantly pass (before future 2.5 changesets, currently in\nprogress) a null pointer for the start cookie offset, intended\nto convey this.\n\nFixes: http://tracker.ceph.com/issues/18991\n\nSigned-off-by: Matt Benjamin <mbenjamin@redhat.com>\n(cherry picked from commit 2cd60ee9712291b906123aca1704288b18a9742b)","distinct":true,"url":"https://api.github.com/repos/ceph/ceph/commits/c613ee7e5853c40c89215efdc231c9e5274aec58"},{"sha":"50955a5aef10f18f050735af03734189f519f585","author":{"name":"Matt Benjamin","email":"ae7c97a5debf6ddb165ee9f6c1e9fb330302b945@redhat.com"},"message":"rgw_file: add timed namespace invalidation\n\nWith change, librgw/rgw_file consumers can provide an invalidation\ncallback, which is used by the library to invalidate directories\nwhose contents should be forgotten.\n\nThe existing RGWLib GC mechanism is being used to drive this.  New\nconfiguration params have been added.  The main configurable is\nrgw_nfs_namespace_expire_secs, the expire timeout.\n\nUpdated post Yehuda review.\n\nFixes: http://tracker.ceph.com/issues/18651\n\nSigned-off-by: Matt Benjamin <mbenjamin@redhat.com>\n(cherry picked from commit deb2c1ea985fcb906e47b93fd3d0117794e2d0a1)\n\nConflicts:\n    src/rgw/rgw_lib_frontend.h - in class RGWLibProcess : public RGWProcess\n                           there was no public method stop() in kraken (now there is)","distinct":true,"url":"https://api.github.com/repos/ceph/ceph/commits/50955a5aef10f18f050735af03734189f519f585"},{"sha":"7faa917cdb1c484018dd47559c5f25b6b33b5529","author":{"name":"Matt Benjamin","email":"ae7c97a5debf6ddb165ee9f6c1e9fb330302b945@redhat.com"},"message":"rgw_file: fix marker computation\n\nFixes: http://tracker.ceph.com/issues/19018\n\nSigned-off-by: Matt Benjamin <mbenjamin@redhat.com>\n(cherry picked from commit 4454765e7dd08535c50d24205858e18dba4b454c)","distinct":true,"url":"https://api.github.com/repos/ceph/ceph/commits/7faa917cdb1c484018dd47559c5f25b6b33b5529"},{"sha":"b350b61bd2c75bc176f854bb3a39a453a2faec97","author":{"name":"Matt Benjamin","email":"ae7c97a5debf6ddb165ee9f6c1e9fb330302b945@redhat.com"},"message":"rgw_file: implement reliable has-children check (unlink dir)\n\nBug report and discussion provided by\nGui Hecheng <guihecheng@cmss.chinamobile.com> in nfs-ganesha upstream\ngithub.  Briefly, while a reliable check is potentially costly,\nit is necessary.\n\nFixes: http://tracker.ceph.com/issues/19270\n\nSigned-off-by: Matt Benjamin <mbenjamin@redhat.com>\n(cherry picked from commit b05f1c6d61aa4501a971e87de6dcaf3e58c3d9b4)","distinct":true,"url":"https://api.github.com/repos/ceph/ceph/commits/b350b61bd2c75bc176f854bb3a39a453a2faec97"},{"sha":"b04d051fd765a88a270041c5238a65481180528c","author":{"name":"Matt Benjamin","email":"ae7c97a5debf6ddb165ee9f6c1e9fb330302b945@redhat.com"},"message":"rgw_file:  rgw_readdir:  return dot-dirs only when *offset is 0\n\nSigned-off-by: Matt Benjamin <mbenjamin@redhat.com>\n(cherry picked from commit 61482c2b85a07519f2256b1a3f2b6d8aa99d5f06)","distinct":true,"url":"https://api.github.com/repos/ceph/ceph/commits/b04d051fd765a88a270041c5238a65481180528c"},{"sha":"34553f919ccf0324138b990ff928b32dc0e4baf2","author":{"name":"Matt Benjamin","email":"ae7c97a5debf6ddb165ee9f6c1e9fb330302b945@redhat.com"},"message":"rgw_file:  remove unused rgw_key variable\n\nSigned-off-by: Matt Benjamin <mbenjamin@redhat.com>\n(cherry picked from commit 1100a1c26e76485569cfebcf863b18cf908f6161)","distinct":true,"url":"https://api.github.com/repos/ceph/ceph/commits/34553f919ccf0324138b990ff928b32dc0e4baf2"},{"sha":"e03a5cba8ff4a2ceebf85a2697e90d525185b2d2","author":{"name":"Gui Hecheng","email":"60ff8b859b2d2383c4477250f2b47c00ca666c11@cmss.chinamobile.com"},"message":"rgw_file: fix missing unlock in unlink\n\nFixes: http://tracker.ceph.com/issues/19435\n\nSigned-off-by: Gui Hecheng <guihecheng@cmss.chinamobile.com>\n(cherry picked from commit cb6808a6366a70f54d0cc16437d16aa1b7819c84)","distinct":true,"url":"https://api.github.com/repos/ceph/ceph/commits/e03a5cba8ff4a2ceebf85a2697e90d525185b2d2"},{"sha":"4af9f6fef77597a826cfdf5d0b3a814ce4629bc3","author":{"name":"Matt Benjamin","email":"ae7c97a5debf6ddb165ee9f6c1e9fb330302b945@redhat.com"},"message":"rgw_file: avoid stranding invalid-name bucket handles in fhcache\n\nTo avoid a string copy in the common mkdir path, handles for\nproposed buckets currently are staged in the handle table, before\nbeing rejected.  They need to be destaged, not just marked deleted\n(because deleted objects are now assumed not to be linked, as of\nbeaeff059375b44188160dbde8a81dd4f4f8c6eb).\n\nThis triggered an unhandled Boost assert when deleting staged\nhandles, as current safe_link mode requires first removing from\nthe FHCache.\n\nFixes: http://tracker.ceph.com/issues/19036\n\nSigned-off-by: Matt Benjamin <mbenjamin@redhat.com>\n(cherry picked from commit 6cde812c92e5bba9f85fbf8486ebe69b55952370)","distinct":true,"url":"https://api.github.com/repos/ceph/ceph/commits/4af9f6fef77597a826cfdf5d0b3a814ce4629bc3"},{"sha":"1553877b1673b21694a4a3b3ef9811800e67144e","author":{"name":"Matt Benjamin","email":"ae7c97a5debf6ddb165ee9f6c1e9fb330302b945@redhat.com"},"message":"rgw_file:  interned RGWFileHandle objects need parent refs\n\nRGW NFS fhcache/RGWFileHandle operators assume existence of the\nfull chain of parents from any object to the its fs_root--this is\na consequence of the weakly-connected namespace design goal, and\nnot a defect.\n\nThis change ensures the invariant by taking a parent ref when\nobjects are interned (when a parent ref is guaranteed).  Parent\nrefs are returned when objects are destroyed--essentially by the\ninvariant, such a ref must exist.\n\nThe extra ref is omitted when parent->is_root(), as that node is\nnot in the LRU cache.\n\nFixes: http://tracker.ceph.com/issues/18650\n\nSigned-off-by: Matt Benjamin <mbenjamin@redhat.com>\n(cherry picked from commit 0e5299f3f43e633a5d8a9360893b4b11f6217d81)","distinct":true,"url":"https://api.github.com/repos/ceph/ceph/commits/1553877b1673b21694a4a3b3ef9811800e67144e"},{"sha":"a446c724aa2404f4f4ff8efc2da3e12ca2bf6892","author":{"name":"Matt Benjamin","email":"ae7c97a5debf6ddb165ee9f6c1e9fb330302b945@redhat.com"},"message":"rgw_file: add pretty-print for RGWFileHandle\n\nSigned-off-by: Matt Benjamin <mbenjamin@redhat.com>\n(cherry picked from commit ef330f385d3407af5f470b5093145f59cc4dcc79)","distinct":true,"url":"https://api.github.com/repos/ceph/ceph/commits/a446c724aa2404f4f4ff8efc2da3e12ca2bf6892"},{"sha":"99941105a982f77513c8df576176f4a707daf26a","author":{"name":"Matt Benjamin","email":"ae7c97a5debf6ddb165ee9f6c1e9fb330302b945@redhat.com"},"message":"rgw_file:  add refcount dout traces at debuglevel 17\n\nThese are helpful for checking RGWFileHandle refcnt invariants.\n\nSigned-off-by: Matt Benjamin <mbenjamin@redhat.com>\n(cherry picked from commit 462034e17f919fb783ee33e2c9fa8089f93fd97d)","distinct":true,"url":"https://api.github.com/repos/ceph/ceph/commits/99941105a982f77513c8df576176f4a707daf26a"},{"sha":"29fe4cfeb71a1b0a74fb7a073c2348cf2d1d143d","author":{"name":"Matt Benjamin","email":"ae7c97a5debf6ddb165ee9f6c1e9fb330302b945@redhat.com"},"message":"rgw_file: refcnt bugfixes\n\nThis change includes 3 related changes:\n\n1. add required lock flags for FHCache updates--this is a crash\n   bug under concurrent update/lookup\n\n2. omit to inc/dec refcnt on root filehandles in 2 places--the\n   root handle current is not on the lru list, so it's not\n   valid to do so\n\n3. based on observation of LRU behavior during creates/deletes,\n   update (cohort) LRU unref to move objects to LRU when their\n   refcount falls to SENTINEL_REFCNT--this cheaply primes the\n   current reclaim() mechanism, so very significanty improves\n   space use (e.g., after deletes) in the absence of scans\n   (which is common due to nfs-ganesha caching)\n\nSigned-off-by: Matt Benjamin <mbenjamin@redhat.com>\n(cherry picked from commit beaeff059375b44188160dbde8a81dd4f4f8c6eb)","distinct":true,"url":"https://api.github.com/repos/ceph/ceph/commits/29fe4cfeb71a1b0a74fb7a073c2348cf2d1d143d"},{"sha":"fa208008dad8cb165ee72a8cf96ead36d855ba30","author":{"name":"Matt Benjamin","email":"ae7c97a5debf6ddb165ee9f6c1e9fb330302b945@redhat.com"},"message":"rgw_file:  use fh_hook::is_linked() to check residence\n\nPreviously we assumed that !deleted handles were resident--there\nis an observed case where a !deleted handle is !linked.  Since\nwe currently use safe_link mode, an is_linked() check is\navailable, and exhaustive.\n\nFixes: http://tracker.ceph.com/issues/19111\n\nSigned-off-by: Matt Benjamin <mbenjamin@redhat.com>\n(cherry picked from commit c0aa515f8d8c57ec5ee09e3b60df3cac60453c40)","distinct":true,"url":"https://api.github.com/repos/ceph/ceph/commits/fa208008dad8cb165ee72a8cf96ead36d855ba30"},{"sha":"64cce346c0fcc1402d4dab548f6f7536430703e7","author":{"name":"Matt Benjamin","email":"ae7c97a5debf6ddb165ee9f6c1e9fb330302b945@redhat.com"},"message":"rgw_file:  return of RGWFileHandle::FLAG_EXACT_MATCH\n\nAllow callers of rgw_lookup() on objects attested in an\nrgw_readdir() callback the ability to bypass exact match in\nRGWLibFS::stat_leaf() case 2, but restore exact match enforcement\nfor general lookups.\n\nThis preserves required common_prefix namespace behavior, but\nprevents clients from eerily permitting things like \"cd sara0\" via\npartial name match on \"sara01.\"\n\nFixes: http://tracker.ceph.com/issues/19059\n\nSigned-off-by: Matt Benjamin <mbenjamin@redhat.com>\n(cherry picked from commit 70ef7d45e0abf2661bd4e23161d4e70cf5178079)","distinct":true,"url":"https://api.github.com/repos/ceph/ceph/commits/64cce346c0fcc1402d4dab548f6f7536430703e7"},{"sha":"2b9a77edf203ef39049677a94e13db0fdf0fed8d","author":{"name":"Matt Benjamin","email":"ae7c97a5debf6ddb165ee9f6c1e9fb330302b945@redhat.com"},"message":"rgw_file: introduce rgw_lookup type hints\n\nThe new type hints optimize object type deduction, when the\nrgw_lookup is called from an rgw_readdir callback.\n\nFixes: http://tracker.ceph.com/issues/19623\n\nSigned-off-by: Matt Benjamin <mbenjamin@redhat.com>\n(cherry picked from commit 2e66c7a7cc763c5c0d6f5db04855f60f2b2ceed3)","distinct":true,"url":"https://api.github.com/repos/ceph/ceph/commits/2b9a77edf203ef39049677a94e13db0fdf0fed8d"},{"sha":"349de8a5b30691b0579708ce95f91ce8b929a393","author":{"name":"Matt Benjamin","email":"ae7c97a5debf6ddb165ee9f6c1e9fb330302b945@redhat.com"},"message":"rgw_file:  fix RGWLibFS::setattr for directory objects\n\nFixes:  http://tracker.ceph.com/issues/18808\n\nSigned-off-by: Matt Benjamin <mbenjamin@redhat.com>\n(cherry picked from commit 4ad5a9226852d6d564baf2e63278ed6c4c185ecb)","distinct":true,"url":"https://api.github.com/repos/ceph/ceph/commits/349de8a5b30691b0579708ce95f91ce8b929a393"},{"sha":"6e0b260154328b14c45ecbea00007e537ce220ac","author":{"name":"Matt Benjamin","email":"ae7c97a5debf6ddb165ee9f6c1e9fb330302b945@redhat.com"},"message":"rgw_file: ensure valid_s3_object_name for directories, too\n\nThe logic in RGWLibFS::mkdir() validated bucket names, but not\nobject names (though RGWLibFS::create() did so).\n\nThe negative side effect of this was not creating illegal objects\n(we won't), but in a) failing with -EIO and b) more importantly,\nnot removing up the proposed object from FHCache, which produced a\nboost assert when recycled.\n\nFixes: http://tracker.ceph.com/issues/19066\n\nSigned-off-by: Matt Benjamin <mbenjamin@redhat.com>\n(cherry picked from commit eb1cd3b30c0504385f05bf2d2dd5e2251b7efed7)","distinct":true,"url":"https://api.github.com/repos/ceph/ceph/commits/6e0b260154328b14c45ecbea00007e537ce220ac"},{"sha":"f97ab40539385494f9d4a66806c2bfc08d3654bb","author":{"name":"Matt Benjamin","email":"ae7c97a5debf6ddb165ee9f6c1e9fb330302b945@redhat.com"},"message":"rgw_file: rgw_lookup: don't ref for \"/\" or \"..\"\n\nThese refs won't be returned by nfs-ganesha, and are sufficiently\nmagical that other consumers should be persuaded to understand\ntheir specialness.\n\nFixes: http://tracker.ceph.com/issues/19060\n\nSigned-off-by: Matt Benjamin <mbenjamin@redhat.com>\n(cherry picked from commit dea8d1ee373399a21851690a9753388b659b8ede)","distinct":true,"url":"https://api.github.com/repos/ceph/ceph/commits/f97ab40539385494f9d4a66806c2bfc08d3654bb"}]}
{"actor":{"display_login":"smithfarm"}}