From: sage Date: Thu, 9 Jun 2005 19:37:06 +0000 (+0000) Subject: *** empty log message *** X-Git-Tag: v0.1~2094 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=afd55dcc437c5f4fab1eb0a42b8957d46e77229a;p=ceph.git *** empty log message *** git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@287 29311d96-e01e-0410-9327-a35deaab8ce9 --- diff --git a/ceph/client/Client.cc b/ceph/client/Client.cc index ec6c34fb48ee..e4a14e3fc153 100644 --- a/ceph/client/Client.cc +++ b/ceph/client/Client.cc @@ -1043,7 +1043,7 @@ int Client::write(fileh_t fh, const char *buf, size_t size, off_t offset) // buffered write? - if (f->caps & CFILE_CAP_WRBUFFER) { + if (false && f->caps & CFILE_CAP_WRBUFFER) { // buffered write dout(10) << "buffered/async write" << endl; diff --git a/ceph/client/SyntheticClient.cc b/ceph/client/SyntheticClient.cc index e4725389e0d1..f0f11951b11c 100644 --- a/ceph/client/SyntheticClient.cc +++ b/ceph/client/SyntheticClient.cc @@ -39,6 +39,7 @@ int SyntheticClient::run() break; case SYNCLIENT_MODE_WRITEFILE: write_file(sarg1, iarg1); + break; default: assert(0); } @@ -166,15 +167,17 @@ int SyntheticClient::make_dirs(const char *basedir, int dirs, int files, int dep int SyntheticClient::write_file(string& fn, int size) // size is in MB { - char *buf = new char[1024*1024]; // 1 MB + int wrsize = 1024*256; + char *buf = new char[wrsize]; // 1 MB + int chunks = size * 1024*1024 / wrsize; - int fd = client->open(fn.c_str(), O_WRONLY); + int fd = client->open(fn.c_str(), O_WRONLY|O_CREAT); dout(5) << "writing to " << fn << " fd " << fd << endl; if (fd < 0) return fd; - for (int i=0; iwrite(fd, buf, 1024*1024, i*1024*1024); + for (int i=0; iwrite(fd, buf, wrsize, i*wrsize); } client->close(fd); diff --git a/ceph/config.cc b/ceph/config.cc index d03f5ec147fc..4edad99301fb 100644 --- a/ceph/config.cc +++ b/ceph/config.cc @@ -114,7 +114,7 @@ void parse_config_options(int argc, char **argv, else if (strcmp(argv[i], "--mds_bal_interval") == 0) g_conf.mds_bal_interval = atoi(argv[++i]); else { - cout << "passing arg " << argv[i] << endl; + //cout << "passing arg " << argv[i] << endl; nargv[nargc++] = argv[i]; } } diff --git a/ceph/mds/MDCache.cc b/ceph/mds/MDCache.cc index 09aa9406b217..46f87d44cf93 100644 --- a/ceph/mds/MDCache.cc +++ b/ceph/mds/MDCache.cc @@ -565,9 +565,10 @@ bool MDCache::shutdown_pass() } // make a pass on the cache - dout(7) << "log is empty. flushing cache" << endl; - trim(0); - + if (g_conf.mds_log_flush_on_shutdown) { + dout(7) << "log is empty. flushing cache" << endl; + trim(0); + } dout(7) << "cache size now " << lru.lru_get_size() << endl; // send all imports back to 0. @@ -610,7 +611,8 @@ bool MDCache::shutdown_pass() assert(inode_map.size() == lru.lru_get_size()); // done? - if (lru.lru_get_size() == 0 && !mds->filer->is_active()) { + if ((lru.lru_get_size() == 0 || g_conf.mds_log_flush_on_shutdown == false) && + !mds->filer->is_active()) { if (mds->get_nodeid() != 0) { dout(7) << "done, sending shutdown_finish" << endl; mds->messenger->send_message(new MGenericMessage(MSG_MDS_SHUTDOWNFINISH), diff --git a/ceph/mds/MDS.cc b/ceph/mds/MDS.cc index 4fc5348eb6b7..b37701f62a5e 100644 --- a/ceph/mds/MDS.cc +++ b/ceph/mds/MDS.cc @@ -454,10 +454,10 @@ void MDS::handle_client_mount(MClientMount *m) dout(3) << "wiping osds too" << endl; mds_paused = true; filer->mkfs(new C_MDS_Unpause(this)); + waiting_for_unpause.push_back(new C_MDS_RetryMessage(this, m)); + return; } - waiting_for_unpause.push_back(new C_MDS_RetryMessage(this, m)); - return; } }