From ff5847692098c4e1bd17c65121e7b2a735272cf3 Mon Sep 17 00:00:00 2001 From: sage Date: Thu, 7 Apr 2005 18:25:41 +0000 Subject: [PATCH] *** empty log message *** git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@142 29311d96-e01e-0410-9327-a35deaab8ce9 --- ceph/Makefile | 5 +++-- ceph/TODO | 4 ++-- ceph/mds/Lock.h | 5 ++--- ceph/mds/MDCache.cc | 14 ++++++++------ ceph/mds/MDCache.h | 3 +++ ceph/msg/Message.h | 1 + 6 files changed, 19 insertions(+), 13 deletions(-) diff --git a/ceph/Makefile b/ceph/Makefile index a588099617c74..af1dae8f7e0a3 100644 --- a/ceph/Makefile +++ b/ceph/Makefile @@ -2,7 +2,8 @@ CC=g++ #CC=distcc g++ #CC=mpiCC -CFLAGS=-D __gnu_cxx=std -g -I. #-I/usr/lib/mpi/include -L/usr/lib/mpi/lib +CFLAGS=-g -I. #-I/usr/lib/mpi/include -L/usr/lib/mpi/lib +#CFLAGS=-D __gnu_cxx=std -g -I. #-I/usr/lib/mpi/include -L/usr/lib/mpi/lib LIBS= MPICC=g++ @@ -40,7 +41,7 @@ all: depend ${TARGETS} test: test.cc msg/FakeMessenger.o pmds.o test ! -e leak.out || rm leak.out - ${CC} ${CFLAGS} ${LIBS} pmds.o msg/FakeMessenger.o ${LEAKTRACER} test.cc -o test + ${CC} ${CFLAGS} ${LIBS} pmds.o msg/FakeMessenger.o test.cc ${LEAKTRACER} -o test import: pmds.o msg/FakeMessenger.o import.cc ${CC} ${CFLAGS} ${LIBS} pmds.o msg/FakeMessenger.o import.cc ${LEAKTRACER} -o import diff --git a/ceph/TODO b/ceph/TODO index 8aca248116d2e..d9d48122e722d 100644 --- a/ceph/TODO +++ b/ceph/TODO @@ -1,6 +1,7 @@ -- recall messages +- recall messages? +- lazy flag? make a table! - state diagram for master? _eval() functions /- lock states @@ -37,7 +38,6 @@ MDS - symlinks! - stored in the inode.. how? - make MDStore.cc smartr - - consolidate inode.isdir and inode.type? => grep for FIXME :) diff --git a/ceph/mds/Lock.h b/ceph/mds/Lock.h index 1d65c1226e31c..3c84324d4590d 100644 --- a/ceph/mds/Lock.h +++ b/ceph/mds/Lock.h @@ -24,9 +24,8 @@ using namespace std; #define LOCK_TYPE_BASIC 0 #define LOCK_TYPE_ASYNC 1 -#define LOCK_MODE_SYNC 0 -#define LOCK_MODE_LOCK 1 -#define LOCK_MODE_ASYNC 2 +#define LOCK_MODE_SYNC 0 // return to sync when writes finish (or read requested) +#define LOCK_MODE_ASYNC 1 // return to async when reads finish (or write requested) // -- basic lock diff --git a/ceph/mds/MDCache.cc b/ceph/mds/MDCache.cc index f6b6400eaf926..a0ec9972c92cd 100644 --- a/ceph/mds/MDCache.cc +++ b/ceph/mds/MDCache.cc @@ -1755,6 +1755,12 @@ INODES: + +modes + + + + ALSO: dirlock - no dir changes (prior to unhashing) @@ -2085,6 +2091,7 @@ void MDCache::handle_lock_inode_hard(MLock *m) + // ===================== // soft inode metadata @@ -2235,7 +2242,7 @@ void MDCache::inode_soft_eval(CInode *in) void MDCache::inode_soft_mode(CInode *in, int mode) { - in->set_mode(mode); + in->softlock.set_mode(mode); dout(7) << "inode_soft_mode mode=" << mode << " " << *in << " softlock=" << in->softlock << endl; // tell replicas @@ -2246,7 +2253,6 @@ void MDCache::inode_soft_mode(CInode *in, int mode) switch (mode) { case LOCK_MODE_SYNC: ac = LOCK_AC_SYNC_MODE; break; case LOCK_MODE_ASYNC: ac = LOCK_AC_ASYNC_MODE; break; - case LOCK_MODE_LOCK: ac = LOCK_AC_LOCK_MODE; break; default: assert(0); } MLock *m = new MLock(ac, mds->get_nodeid()); @@ -2497,10 +2503,6 @@ void MDCache::handle_lock_inode_soft(MLock *m) in->finish_waiting(CINODE_WAIT_SOFTR); break; - case LOCK_AC_LOCK_MODE: - lock->set_mode(LOCK_MODE_SYNC); - in->finish_waiting(CINODE_WAIT_SOFTWRB); - break; case LOCK_AC_SYNC: assert(lock->get_state() == LOCK_LOCK || diff --git a/ceph/mds/MDCache.h b/ceph/mds/MDCache.h index 985287e3fb83c..1838546d79ae9 100644 --- a/ceph/mds/MDCache.h +++ b/ceph/mds/MDCache.h @@ -296,6 +296,9 @@ class MDCache { bool inode_soft_write_start(CInode *in, Message *m); void inode_soft_write_finish(CInode *in); + void inode_hard_mode(CInode *in, int mode); + void inode_soft_mode(CInode *in, int mode); + // low level triggers void inode_hard_sync(CInode *in); void inode_hard_lock(CInode *in); diff --git a/ceph/msg/Message.h b/ceph/msg/Message.h index 73ad269739365..430266d79d6bb 100644 --- a/ceph/msg/Message.h +++ b/ceph/msg/Message.h @@ -95,6 +95,7 @@ typedef int msg_addr_t; #include #include using namespace std; +using namespace __gnu_cxx; // abstract Message class -- 2.39.5