From patchwork Tue Sep 25 05:46:06 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Yan, Zheng" X-Patchwork-Id: 1501911 Return-Path: X-Original-To: patchwork-ceph-devel@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork2.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork2.kernel.org (Postfix) with ESMTP id DFEF1DF28C for ; Tue, 25 Sep 2012 05:46:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752544Ab2IYFqK (ORCPT ); Tue, 25 Sep 2012 01:46:10 -0400 Received: from mga14.intel.com ([143.182.124.37]:3345 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751024Ab2IYFqJ (ORCPT ); Tue, 25 Sep 2012 01:46:09 -0400 Received: from azsmga002.ch.intel.com ([10.2.17.35]) by azsmga102.ch.intel.com with ESMTP; 24 Sep 2012 22:46:08 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.80,479,1344236400"; d="scan'208";a="148698644" Received: from zyan5-mobl.sh.intel.com ([10.239.36.7]) by AZSMGA002.ch.intel.com with ESMTP; 24 Sep 2012 22:46:07 -0700 From: "Yan, Zheng" To: sage@inktank.com, ceph-devel@vger.kernel.org Cc: "Yan, Zheng" Subject: [PATCH v3] mds: Adjust mydir auth when starting MDS that was stopped cleanly Date: Tue, 25 Sep 2012 13:46:06 +0800 Message-Id: <1348551966-14718-1-git-send-email-zheng.z.yan@intel.com> X-Mailer: git-send-email 1.7.11.4 Sender: ceph-devel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: ceph-devel@vger.kernel.org From: "Yan, Zheng" When starting a MDS that was stopped cleanly, we need manually adjust mydir's auth. This is because MDS log is empty in this case, mydir's auth can not be adjusted during log replay. Signed-off-by: Yan, Zheng --- src/mds/MDCache.cc | 1 + src/mds/MDS.cc | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/mds/MDCache.cc b/src/mds/MDCache.cc index da3affb..3784b14 100644 --- a/src/mds/MDCache.cc +++ b/src/mds/MDCache.cc @@ -565,6 +565,7 @@ void MDCache::open_root() } CDir *mydir = myin->get_or_open_dirfrag(this, frag_t()); assert(mydir); + adjust_subtree_auth(mydir, mds->whoami); populate_mydir(); } diff --git a/src/mds/MDS.cc b/src/mds/MDS.cc index d0aac30..8ad901a 100644 --- a/src/mds/MDS.cc +++ b/src/mds/MDS.cc @@ -1229,10 +1229,10 @@ void MDS::starting_done() assert(is_starting()); request_state(MDSMap::STATE_ACTIVE); + mdcache->open_root(); + // start new segment mdlog->start_new_segment(0); - - mdcache->open_root(); }