From 9a7a0557361bbd67d230c673bfa5867eb40c4c91 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 23 Jul 2013 14:23:45 -0700 Subject: [PATCH] ceph-fuse: disable getgroups_cb It's broken. See #5729. Signed-off-by: Sage Weil --- src/client/fuse_ll.cc | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/client/fuse_ll.cc b/src/client/fuse_ll.cc index ce0c6de126051..0812c9a37288b 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); -- 2.39.5