dout(1) << "mkfs" << endl;
char cmd[200];
- sprintf(cmd, "/bin/rm -rf %s/*", dir.c_str());
+ sprintf(cmd, "/bin/rm -r %s ; mkdir %s", dir.c_str(), dir.c_str());
dout(1) << cmd << endl;
- //system(cmd);
+ system(cmd);
}
version_t val = atoi(buf);
if (b) {
- dout(10) << "get_int " << a << "/" << b << " = " << val << endl;
+ dout(15) << "get_int " << a << "/" << b << " = " << val << endl;
} else {
- dout(10) << "get_int " << a << " = " << val << endl;
+ dout(15) << "get_int " << a << " = " << val << endl;
}
return val;
}
sprintf(fn, "%s/%s", dir.c_str(), a);
if (b) {
::mkdir(fn, 0755);
- dout(10) << "set_int " << a << "/" << b << " = " << val << endl;
+ dout(15) << "set_int " << a << "/" << b << " = " << val << endl;
sprintf(fn, "%s/%s/%s", dir.c_str(), a, b);
} else {
- dout(10) << "set_int " << a << " = " << val << endl;
+ dout(15) << "set_int " << a << " = " << val << endl;
}
+ char vs[30];
+ sprintf(vs, "%lld\n", val);
+
char tfn[200];
sprintf(tfn, "%s.new", fn);
- FILE *f = ::fopen(tfn, "w");
- assert(f);
- ::fprintf(f, "%lld\n", val);
- ::fclose(f);
+
+ int fd = ::open(tfn, O_WRONLY|O_CREAT);
+ assert(fd > 0);
+ ::fchmod(fd, 0644);
+ ::write(fd, vs, strlen(vs));
+ ::close(fd);
::rename(tfn, fn);
}
{
char fn[200];
if (b) {
- dout(10) << "exists_bl " << a << "/" << b << endl;
+ dout(15) << "exists_bl " << a << "/" << b << endl;
sprintf(fn, "%s/%s/%s", dir.c_str(), a, b);
} else {
- dout(10) << "exists_bl " << a << endl;
+ dout(15) << "exists_bl " << a << endl;
sprintf(fn, "%s/%s", dir.c_str(), a);
}
int fd = ::open(fn, O_RDONLY);
if (!fd) {
if (b) {
- dout(10) << "get_bl " << a << "/" << b << " DNE" << endl;
+ dout(15) << "get_bl " << a << "/" << b << " DNE" << endl;
} else {
- dout(10) << "get_bl " << a << " DNE" << endl;
+ dout(15) << "get_bl " << a << " DNE" << endl;
}
return 0;
}
::close(fd);
if (b) {
- dout(10) << "get_bl " << a << "/" << b << " = " << bl.length() << " bytes" << endl;
+ dout(15) << "get_bl " << a << "/" << b << " = " << bl.length() << " bytes" << endl;
} else {
- dout(10) << "get_bl " << a << " = " << bl.length() << " bytes" << endl;
+ dout(15) << "get_bl " << a << " = " << bl.length() << " bytes" << endl;
}
return len;
sprintf(fn, "%s/%s", dir.c_str(), a);
if (b) {
::mkdir(fn, 0755);
- dout(10) << "put_bl " << a << "/" << b << " = " << bl.length() << " bytes" << endl;
+ dout(15) << "put_bl " << a << "/" << b << " = " << bl.length() << " bytes" << endl;
sprintf(fn, "%s/%s/%s", dir.c_str(), a, b);
} else {
- dout(10) << "put_bl " << a << " = " << bl.length() << " bytes" << endl;
+ dout(15) << "put_bl " << a << " = " << bl.length() << " bytes" << endl;
}
char tfn[200];
it != bl.buffers().end();
it++)
::write(fd, it->c_str(), it->length());
-
+ ::fchmod(fd, 0644);
::fsync(fd);
::close(fd);
::rename(tfn, fn);