]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Merge pull request #3038 from ceph/wip-mds-readonly
authorGregory Farnum <greg@gregs42.com>
Thu, 11 Dec 2014 04:39:37 +0000 (20:39 -0800)
committerGregory Farnum <greg@gregs42.com>
Thu, 11 Dec 2014 04:39:37 +0000 (20:39 -0800)
Wip mds readonly

Reviewed-by: Greg Farnum <gfarnum@redhat.com>
1  2 
src/client/Client.cc
src/client/Client.h
src/mds/CDir.cc
src/mds/CDir.h
src/mds/MDCache.cc
src/mds/MDCache.h
src/mds/MDLog.cc
src/mds/MDS.cc
src/mds/Server.cc

index 5cd6e861c30c0a170b22e8e9147902e606e26322,dffbb61645e21936ce8d821851e343bfa2325887..19e5be68c3c6b5c245fc6f43fa9a23b56c3ed0f4
@@@ -3345,8 -3358,21 +3355,18 @@@ void Client::trim_caps(MetaSession *s, 
      }
    }
    s->s_cap_iterator = NULL;
 -
 -  if (s->caps.size() > max)
 -    _invalidate_kernel_dcache();
  }
  
+ void Client::force_session_readonly(MetaSession *s)
+ {
+   s->readonly = true;
+   for (xlist<Cap*>::iterator p = s->caps.begin(); !p.end(); ++p) {
+     Inode *in = (*p)->inode;
+     if (in->caps_wanted() & CEPH_CAP_FILE_WR)
+       signal_cond_list(in->waitfor_caps);
+   }
+ }
  void Client::mark_caps_dirty(Inode *in, int caps)
  {
    ldout(cct, 10) << "mark_caps_dirty " << *in << " " << ccap_string(in->dirty_caps) << " -> "
Simple merge
diff --cc src/mds/CDir.cc
Simple merge
diff --cc src/mds/CDir.h
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc src/mds/MDS.cc
Simple merge
Simple merge