1.1 --- a/libfsserver/lib/files/ext2_file_opener.cc Fri Jan 14 01:10:35 2022 +0100
1.2 +++ b/libfsserver/lib/files/ext2_file_opener.cc Thu Jan 27 23:45:17 2022 +0100
1.3 @@ -129,6 +129,31 @@
1.4 return _ops->remove((ext2_ino_t) fileid);
1.5 }
1.6
1.7 +/* Rename a filesystem object, placing source inside the parent of target. */
1.8 +
1.9 +long Ext2FileOpener::rename_object(const char *source, fileid_t source_fileid,
1.10 + const char *target)
1.11 +{
1.12 + (void) source;
1.13 +
1.14 + fileid_t source_parent, target_parent;
1.15 + long err;
1.16 +
1.17 + err = get_parent(source, &source_parent);
1.18 +
1.19 + if (err)
1.20 + return err;
1.21 +
1.22 + err = get_parent(target, &target_parent);
1.23 +
1.24 + if (err)
1.25 + return err;
1.26 +
1.27 + return _ops->rename((ext2_ino_t) source_fileid,
1.28 + (ext2_ino_t) source_parent, path_basename(source),
1.29 + (ext2_ino_t) target_parent, path_basename(target));
1.30 +}
1.31 +
1.32 /* Unlink a filesystem object. */
1.33
1.34 long Ext2FileOpener::unlink_object(const char *path, fileid_t fileid)