Browse Source

tweak movefile behavior

pull/400/head
Antonio SJ Musumeci 8 years ago
parent
commit
f15437c713
  1. 24
      src/fs_movefile.cpp
  2. 14
      src/fs_movefile.hpp

24
src/fs_movefile.cpp

@ -36,6 +36,15 @@ using std::vector;
namespace fs namespace fs
{ {
int
movefile(const vector<string> &basepaths,
const string &fusepath,
const size_t additional_size,
int &origfd)
{
return fs::movefile(basepaths,fusepath.c_str(),additional_size,origfd);
}
int int
movefile(const vector<string> &basepaths, movefile(const vector<string> &basepaths,
const char *fusepath, const char *fusepath,
@ -95,19 +104,12 @@ namespace fs
return -1; return -1;
} }
rv = fs::unlink(fdin_path);
if(rv == -1)
{
fs::close(fdin);
fs::close(fdout);
fs::unlink(fdout_path);
return -1;
}
// should we care if it fails?
fs::unlink(fdin_path);
std::swap(origfd,fdout);
fs::close(fdin); fs::close(fdin);
fs::close(origfd);
origfd = fdout;
fs::close(fdout);
return 0; return 0;
} }

14
src/fs_movefile.hpp

@ -23,10 +23,16 @@
namespace fs namespace fs
{ {
int int
movefile(const vector<string> &basepaths,
const char *fusepath,
const size_t additional_size,
int &origfd);
movefile(const std::vector<std::string> &basepaths,
const std::string &fusepath,
const size_t additional_size,
int &origfd);
int
movefile(const std::vector<std::string> &basepaths,
const char *fusepath,
const size_t additional_size,
int &origfd);
} }
#endif #endif
Loading…
Cancel
Save