aboutsummaryrefslogtreecommitdiffstats
path: root/lib/fuse_lowlevel.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/fuse_lowlevel.c')
-rwxr-xr-xlib/fuse_lowlevel.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/lib/fuse_lowlevel.c b/lib/fuse_lowlevel.c
index 9131811..1911863 100755
--- a/lib/fuse_lowlevel.c
+++ b/lib/fuse_lowlevel.c
@@ -1270,7 +1270,21 @@ static void do_rename(fuse_req_t req, fuse_ino_t nodeid, const void *inarg)
char *newname = oldname + strlen(oldname) + 1;
if (req->f->op.rename)
- req->f->op.rename(req, nodeid, oldname, arg->newdir, newname);
+ req->f->op.rename(req, nodeid, oldname, arg->newdir, newname,
+ 0);
+ else
+ fuse_reply_err(req, ENOSYS);
+}
+
+static void do_rename2(fuse_req_t req, fuse_ino_t nodeid, const void *inarg)
+{
+ struct fuse_rename2_in *arg = (struct fuse_rename2_in *) inarg;
+ char *oldname = PARAM(arg);
+ char *newname = oldname + strlen(oldname) + 1;
+
+ if (req->f->op.rename)
+ req->f->op.rename(req, nodeid, oldname, arg->newdir, newname,
+ arg->flags);
else
fuse_reply_err(req, ENOSYS);
}
@@ -2431,6 +2445,7 @@ static struct {
[FUSE_NOTIFY_REPLY] = { (void *) 1, "NOTIFY_REPLY" },
[FUSE_BATCH_FORGET] = { do_batch_forget, "BATCH_FORGET" },
[FUSE_READDIRPLUS] = { do_readdirplus, "READDIRPLUS"},
+ [FUSE_RENAME2] = { do_rename2, "RENAME2" },
[CUSE_INIT] = { cuse_lowlevel_init, "CUSE_INIT" },
};