From: Sage Weil Date: Tue, 23 Jul 2013 21:23:45 +0000 (-0700) Subject: ceph-fuse: disable getgroups_cb X-Git-Tag: v0.68~132 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=9a7a0557361bbd67d230c673bfa5867eb40c4c91;p=ceph.git ceph-fuse: disable getgroups_cb It's broken. See #5729. Signed-off-by: Sage Weil --- diff --git a/src/client/fuse_ll.cc b/src/client/fuse_ll.cc index ce0c6de12605..0812c9a37288 100644 --- a/src/client/fuse_ll.cc +++ b/src/client/fuse_ll.cc @@ -509,6 +509,7 @@ static void fuse_ll_statfs(fuse_req_t req, fuse_ino_t ino) fuse_reply_err(req, -r); } +#if 0 static int getgroups_cb(void *handle, uid_t uid, gid_t **sgids) { #ifdef HAVE_FUSE_GETGROUPS @@ -534,6 +535,7 @@ static int getgroups_cb(void *handle, uid_t uid, gid_t **sgids) #endif return 0; } +#endif static void invalidate_cb(void *handle, vinodeno_t vino, int64_t off, int64_t len) { @@ -702,8 +704,20 @@ int CephFuse::Handle::init(int argc, const char *argv[]) fuse_session_add_chan(se, ch); + /* + * this is broken: + * + * - the cb needs the request handle to be useful; we should get the + * gids in the method here in fuse_ll.c and pass the gid list in, + * not use a callback. + * - the callback mallocs the list but it is not free()'d + * + * so disable it for now... + client->ll_register_getgroups_cb(getgroups_cb, this); + */ + if (g_conf->fuse_use_invalidate_cb) client->ll_register_ino_invalidate_cb(invalidate_cb, this);