From 1ea81724f517ba10314e9ad216db23ebc8a6cf93 Mon Sep 17 00:00:00 2001 From: taoCH Date: Wed, 5 Dec 2018 18:20:20 +0800 Subject: [PATCH] rgw_file: user info never synced since librgw init Fixed: https://tracker.ceph.com/issues/37527 Signed-off-by: Tao Chen (cherry picked from commit e611be8dacc2afcfbe40fe5eb7847cf565c27d07) --- src/rgw/librgw.cc | 1 + src/rgw/rgw_file.h | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/src/rgw/librgw.cc b/src/rgw/librgw.cc index 4d7e32aaf4bb..5e97747ffbf3 100644 --- a/src/rgw/librgw.cc +++ b/src/rgw/librgw.cc @@ -119,6 +119,7 @@ namespace rgw { RGWLibFS* fs = iter->first->ref(); uniq.unlock(); fs->gc(); + fs->update_user(); fs->rele(); uniq.lock(); if (cur_gen != gen) diff --git a/src/rgw/rgw_file.h b/src/rgw/rgw_file.h index 796dcbf9d375..86d647f95568 100644 --- a/src/rgw/rgw_file.h +++ b/src/rgw/rgw_file.h @@ -1204,6 +1204,13 @@ namespace rgw { RGWUserInfo* get_user() { return &user; } + void update_user() { + RGWUserInfo _user = user; + int ret = rgw_get_user_info_by_access_key(rgwlib.get_store(), key.id, user); + if (ret != 0) + user = _user; + } + void close(); void gc(); }; /* RGWLibFS */ -- 2.47.3