Inode *snapdir = open_snapdir(in.get());
return _mkdir(snapdir, name, 0, perm);
}
-int Client::rmsnap(const char *relpath, const char *name)
+int Client::rmsnap(const char *relpath, const char *name, const UserPerm& perms)
{
Mutex::Locker l(client_lock);
filepath path(relpath);
InodeRef in;
- UserPerm perms = pick_my_perms();
int r = path_walk(path, &in, perms);
if (r < 0)
return r;
loff_t length, loff_t offset);
int mksnap(const char *path, const char *name, const UserPerm& perm);
- int rmsnap(const char *path, const char *name);
+ int rmsnap(const char *path, const char *name, const UserPerm& perm);
// expose caps
int get_caps_issued(int fd);
string base = get_sarg(0);
string name = get_sarg(0);
if (run_me())
- rmsnap(base.c_str(), name.c_str());
+ rmsnap(base.c_str(), name.c_str(), perms);
did_run_me();
}
break;
client->mksnap(base, name, perms);
}
-void SyntheticClient::rmsnap(const char *base, const char *name)
+void SyntheticClient::rmsnap(const char *base, const char *name, const UserPerm& perms)
{
- client->rmsnap(base, name);
+ client->rmsnap(base, name, perms);
}
void SyntheticClient::mksnapfile(const char *dir)
int chunk_file(string &filename);
void mksnap(const char *base, const char *name, const UserPerm& perms);
- void rmsnap(const char *base, const char *name);
+ void rmsnap(const char *base, const char *name, const UserPerm& perms);
void mksnapfile(const char *dir);
};