diff options
author | Reuben Thomas <rrt@sc3d.org> | 2007-11-29 21:10:45 +0000 |
---|---|---|
committer | Reuben Thomas <rrt@sc3d.org> | 2007-11-29 21:10:45 +0000 |
commit | 2c2433be50362cf58ded7d42e6705d962975ee6b (patch) | |
tree | ea044f3e881e3f7fd2097b3785bdea060dab5552 /plpnfsd/main.cc | |
parent | 0fd52a323bcc589556c6784431119a5a79d94b00 (diff) | |
download | plptools-2c2433be50362cf58ded7d42e6705d962975ee6b.tar.gz plptools-2c2433be50362cf58ded7d42e6705d962975ee6b.tar.bz2 plptools-2c2433be50362cf58ded7d42e6705d962975ee6b.zip |
Improve cosmetically some debug messages and comments.
Be a little more conservative about when to flush the cached file.
Diffstat (limited to 'plpnfsd/main.cc')
-rw-r--r-- | plpnfsd/main.cc | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/plpnfsd/main.cc b/plpnfsd/main.cc index a2ad9dd..271319b 100644 --- a/plpnfsd/main.cc +++ b/plpnfsd/main.cc @@ -231,6 +231,17 @@ long rfsv_isalive() { return (a->getStatus() == rfsv::E_PSI_GEN_NONE); } +long rfsv_closecached() { + if (!a) + return -1; + if (!a_filename) + return 0; + a->fclose(a_handle); + free(a_filename); + a_filename = NULL; + return 0; +} + long rfsv_dir(const char *file, dentry **e) { PlpDir entries; dentry *tmp; @@ -264,6 +275,7 @@ long rfsv_dircount(const char *file, u_int32_t *count) { long rfsv_rmdir(const char *name) { if (!a) return -1; + rfsv_closecached(); /* Just in case we're caching stuff in this dir */ return a->rmdir(name); } @@ -273,17 +285,6 @@ long rfsv_mkdir(const char *file) { return a->mkdir(file); } -long rfsv_closecached() { - if (!a) - return -1; - if (!a_filename) - return 0; - a->fclose(a_handle); - free(a_filename); - a_filename = NULL; - return 0; -} - long rfsv_remove(const char *file) { if (!a) return -1; @@ -438,8 +439,9 @@ long rfsv_statdev(char letter) { long rfsv_rename(const char *oldname, const char *newname) { if (!a) return -1; - if (a_filename && (!strcmp(a_filename, oldname) || !strcmp(a_filename, newname))) - rfsv_closecached(); + /* We could be renaming a directory containing the cached item, so + always flush */ + rfsv_closecached(); return a->rename(oldname, newname); } |