From 8becd9f73ca939f09b2eb554167ecf8591c16df2 Mon Sep 17 00:00:00 2001 From: Andrew Hanushevsky Date: Wed, 3 Jun 2020 00:44:52 -0700 Subject: [PATCH] [cmsd] Allow auto-configuration for Xcache using pfcache export attribute. --- src/XrdCms/XrdCmsConfig.cc | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/XrdCms/XrdCmsConfig.cc b/src/XrdCms/XrdCmsConfig.cc index 51925213992..6618a997022 100644 --- a/src/XrdCms/XrdCmsConfig.cc +++ b/src/XrdCms/XrdCmsConfig.cc @@ -1021,6 +1021,9 @@ int XrdCmsConfig::Manifest() int XrdCmsConfig::MergeP() { static const unsigned long long stage4MM = XRDEXP_STAGEMM & ~XRDEXP_STAGE; + static const unsigned long long stageAny = XRDEXP_PFCACHE | XRDEXP_STAGE; + static const unsigned long long readOnly = XRDEXP_PFCACHE | XRDEXP_NOTRW; + XrdOucPList *plp = PexpList.First(); XrdCmsPList *pp; XrdCmsPInfo opinfo, npinfo; @@ -1035,9 +1038,9 @@ int XrdCmsConfig::MergeP() while(plp) {Opts = plp->Flag(); if (!(Opts & XRDEXP_LOCAL)) - {npinfo.rwvec = (Opts & (XRDEXP_GLBLRO | XRDEXP_NOTRW) ? 0 : 1); - if (export2MM) npinfo.ssvec = (Opts & stage4MM ? 1 : 0); - else npinfo.ssvec = (Opts & XRDEXP_STAGE ? 1 : 0); + {npinfo.rwvec = (Opts & (XRDEXP_GLBLRO | readOnly) ? 0 : 1); + if (export2MM) npinfo.ssvec = (Opts & stage4MM ? 1 : 0); + else npinfo.ssvec = (Opts & stageAny ? 1 : 0); if (!PathList.Add(plp->Path(), &npinfo)) Say.Emsg("Config","Ignoring duplicate export path",plp->Path()); else if (npinfo.ssvec) DiskSS = 1;