From 7f050e715e2a01ffade4d154750603d4746332a3 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Wed, 6 Aug 2008 15:38:12 -0700 Subject: [PATCH] synclient: rmfile --- src/client/SyntheticClient.cc | 19 ++++++++++++++++++- src/client/SyntheticClient.h | 2 ++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/client/SyntheticClient.cc b/src/client/SyntheticClient.cc index 9afd3cbee8fb5..f11ff4fcc5eed 100644 --- a/src/client/SyntheticClient.cc +++ b/src/client/SyntheticClient.cc @@ -57,7 +57,9 @@ void parse_syn_options(vector& args) if (strcmp(args[i],"--syn") == 0) { ++i; - if (strcmp(args[i],"writefile") == 0) { + if (strcmp(args[i],"rmfile") == 0) { + syn_modes.push_back( SYNCLIENT_MODE_RMFILE ); + } else if (strcmp(args[i],"writefile") == 0) { syn_modes.push_back( SYNCLIENT_MODE_WRITEFILE ); syn_iargs.push_back( atoi(args[++i]) ); syn_iargs.push_back( atoi(args[++i]) ); @@ -595,6 +597,16 @@ int SyntheticClient::run() } break; + case SYNCLIENT_MODE_RMFILE: + { + string sarg1 = get_sarg(0); + if (run_me()) { + rm_file(sarg1); + } + did_run_me(); + } + break; + case SYNCLIENT_MODE_WRITEFILE: { string sarg1 = get_sarg(0); @@ -1783,6 +1795,11 @@ int SyntheticClient::check_first_primary(int fh) { return client->osdmap->get_pg_primary(pg_t((extents.begin())->layout.ol_pgid)); } +int SyntheticClient::rm_file(string& fn) +{ + return client->unlink(fn.c_str()); +} + int SyntheticClient::write_file(string& fn, int size, int wrsize) // size is in MB, wrsize in bytes { //uint64_t wrsize = 1024*256; diff --git a/src/client/SyntheticClient.h b/src/client/SyntheticClient.h index 306f406d30386..08c1b0627e94f 100644 --- a/src/client/SyntheticClient.h +++ b/src/client/SyntheticClient.h @@ -37,6 +37,7 @@ #define SYNCLIENT_MODE_CREATESHARED 13 // num #define SYNCLIENT_MODE_OPENSHARED 14 // num count +#define SYNCLIENT_MODE_RMFILE 19 #define SYNCLIENT_MODE_WRITEFILE 20 #define SYNCLIENT_MODE_READFILE 21 #define SYNCLIENT_MODE_WRITEBATCH 22 @@ -219,6 +220,7 @@ class SyntheticClient { int create_shared(int num); int open_shared(int num, int count); + int rm_file(string& fn); int write_file(string& fn, int mb, int chunk); int write_fd(int fd, int size, int wrsize); -- 2.39.5