]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rbd: implement mv operation for rbd-fuse
authorwuxiangwei <wuxiangwei@h3c.com>
Tue, 15 Dec 2015 12:36:08 +0000 (07:36 -0500)
committerwuxiangwei <wuxiangwei@h3c.com>
Tue, 15 Dec 2015 12:42:15 +0000 (07:42 -0500)
implement mv operation for rbd-fuse to rename image.

Signed-off-by: Xiangwei Wu wuxiangwei@h3c.com
src/rbd_fuse/rbd-fuse.cc

index 8abfe45b5d1e13c5cab51f7b41745ea55d0cc791..838c2fea9cd681e020c74e6d9f730d2e2a433286 100644 (file)
@@ -534,6 +534,16 @@ rbdfs_create(const char *path, mode_t mode, struct fuse_file_info *fi)
        return r;
 }
 
+int rbdfs_rename(const char *path, const char *destname)
+{
+    const char *srcname = NULL;
+    if (strcmp(path, "/") == 0)
+        return -EINVAL;
+
+    srcname = path + 1;
+    return rbd_rename(ioctx, srcname, destname + 1);
+}
+
 int
 rbdfs_utime(const char *path, struct utimbuf *utime)
 {
@@ -678,7 +688,7 @@ const static struct fuse_operations rbdfs_oper = {
   unlink:     rbdfs_unlink,
   rmdir:      0,
   symlink:    0,
-  rename:     0,
+  rename:     rbdfs_rename,
   link:       0,
   chmod:      0,
   chown:      0,