{"push_id":1936345550,"size":7,"distinct_size":7,"ref":"refs/heads/deleg","head":"76f7e3f950b6b96d77541d661f0a54706e6c49c4","before":"8237bf78923fd4a0b03f0201d18089a667fc543b","commits":[{"sha":"349dcb5f6686a2dd6c0f0c1f1a5e14d61a2e31dd","author":{"name":"Jeff Layton","email":"0a799ee4f46e914219e7741adcc5e93178d519ec@redhat.com"},"message":"client: fix may_open debug log message\n\nSigned-off-by: Jeff Layton <jlayton@redhat.com>","distinct":true,"url":"https://api.github.com/repos/jtlayton/ceph/commits/349dcb5f6686a2dd6c0f0c1f1a5e14d61a2e31dd"},{"sha":"2abc885ec305b747c04d97b1062d96c3ee16ba88","author":{"name":"Jeff Layton","email":"0a799ee4f46e914219e7741adcc5e93178d519ec@redhat.com"},"message":"client: fix misleading comment in get_cap_ref\n\nThat may have been true at one time, but it's not now.\n\nSigned-off-by: Jeff Layton <jlayton@redhat.com>","distinct":true,"url":"https://api.github.com/repos/jtlayton/ceph/commits/2abc885ec305b747c04d97b1062d96c3ee16ba88"},{"sha":"b25405afd62d19c4a20ac5cfad6f636f9bf1e1e7","author":{"name":"Jeff Layton","email":"0a799ee4f46e914219e7741adcc5e93178d519ec@redhat.com"},"message":"client: rework Client::get_local_osd() return codes\n\nIt currently returns -1 when there isn't one, but the C wrapper can\nalso return -ENOTCONN if the cmount isn't mounted. Change it to return\n-ENXIO (No such device or address) in the case of \"no local osd\".\n\nSigned-off-by: Jeff Layton <jlayton@redhat.com>","distinct":true,"url":"https://api.github.com/repos/jtlayton/ceph/commits/b25405afd62d19c4a20ac5cfad6f636f9bf1e1e7"},{"sha":"2e4a79764bba1e831b63e14df64f4eb877be1dea","author":{"name":"Jeff Layton","email":"0a799ee4f46e914219e7741adcc5e93178d519ec@redhat.com"},"message":"client: add mountedness check inside client_lock\n\nCurrently we check for mountedness in the high level wrappers, but those\nchecks are lockless. It's possible to have a call that races with\nceph_unmount(). It could pass one of the is_mounted() checks in the\nwrapper, and then block on the client_lock while the unmount is actually\nrunning. Eventually it picks up and runs after the unmount returns, with\nquestionable results -- possibly even a crash in some cases.\n\nFor now, we can explain this away with a simple admonition that\napplications should ensure that no calls are running when ceph_unmount\nis called. In the future though, we may need to forcibly shut down the\nmount when certain events occur (not returning a lease or delegation in\ntime, for instance).\n\nSprinkle in a bunch of mountedness checks after taking the client_lock,\nand simply have the functions return errors (or sensible values in some\ncases) when the Client isn't mounted. With that, we ensure that this\nsort of race can't occur, even when the unmount is not being driven by\nuserland. Note too that in some places I've replaced assertions in the\ncode with error returns, as that's nicer behavior for libraries.\n\nNote that this can't replace the ->is_mounted() checks in the lockless\nwrappers as those are needed to determine whether the client pointer in\nthe ceph_mount_info is still valid. The admonition not to allow\nceph_unmount to race with other calls is therefore still necessary.\n\nSigned-off-by: Jeff Layton <jlayton@redhat.com>","distinct":true,"url":"https://api.github.com/repos/jtlayton/ceph/commits/2e4a79764bba1e831b63e14df64f4eb877be1dea"},{"sha":"f8169a792a24acd9f41e59e369d48495290e648a","author":{"name":"Jeff Layton","email":"0a799ee4f46e914219e7741adcc5e93178d519ec@redhat.com"},"message":"client: add delegation support for cephfs\n\nAdd the ability for ceph userland clients to request a delegation for a\ncephfs open file. With this, userland will get a callback if there is a\nrequest for access that conflicts with the delegation. The client is\nthen expected to return the delegation at which point the conflicting\naccess will succeed.\n\nSigned-off-by: Jeff Layton <jlayton@redhat.com>","distinct":true,"url":"https://api.github.com/repos/jtlayton/ceph/commits/f8169a792a24acd9f41e59e369d48495290e648a"},{"sha":"c2650363fd31244f7ccc91a46081ea5297bfccb4","author":{"name":"Jeff Layton","email":"0a799ee4f46e914219e7741adcc5e93178d519ec@redhat.com"},"message":"client: add new delegation testcases\n\nThis tests basic acquire/break functionality from both other clients\nand the same client.\n\nSigned-off-by: Jeff Layton <jlayton@redhat.com>","distinct":true,"url":"https://api.github.com/repos/jtlayton/ceph/commits/c2650363fd31244f7ccc91a46081ea5297bfccb4"},{"sha":"76f7e3f950b6b96d77541d661f0a54706e6c49c4","author":{"name":"Jeff Layton","email":"0a799ee4f46e914219e7741adcc5e93178d519ec@redhat.com"},"message":"client: add support for timing out applications that don't return delegations\n\nHanding out a delegation means that we're trusting the application to\ngive back the caps when they are needed elsewhere. If it fails to\nuphold its end of the bargain, we need to take steps to forcibly revoke\nthem, so that other clients can make progress.\n\nWhen that occurs, shut down the mount such that further calls return\n-ENOTCONN. That should prevent the application from holding on to caps\nindefinitely, and ensure that it will no longer do damage. It should\nalso prevent the client from ending up blacklisted.\n\nTo support this, add a new config option that allows users and apps to\ntweak the timeout value. Note that this value is not connected in any\nway to other ceph cluster cap timeouts, so applications that tweak the\ndelegation timeout should ensure that they choose a value that prevents\nthem from becoming blacklisted.\n\nSigned-off-by: Jeff Layton <jlayton@redhat.com>","distinct":true,"url":"https://api.github.com/repos/jtlayton/ceph/commits/76f7e3f950b6b96d77541d661f0a54706e6c49c4"}]}
{"actor":{"display_login":"jtlayton"}}