summaryrefslogtreecommitdiff
path: root/mysys/my_rename.c
diff options
context:
space:
mode:
Diffstat (limited to 'mysys/my_rename.c')
-rw-r--r--mysys/my_rename.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/mysys/my_rename.c b/mysys/my_rename.c
index 9c27238cc72..8c2a354324b 100644
--- a/mysys/my_rename.c
+++ b/mysys/my_rename.c
@@ -61,5 +61,18 @@ int my_rename(const char *from, const char *to, myf MyFlags)
if (MyFlags & (MY_FAE+MY_WME))
my_error(EE_LINK, MYF(ME_BELL+ME_WAITTANG),from,to,my_errno);
}
+ else if (MyFlags & MY_SYNC_DIR)
+ {
+#ifdef NEED_EXPLICIT_SYNC_DIR
+ /* do only the needed amount of syncs: */
+ char dir_from[FN_REFLEN], dir_to[FN_REFLEN];
+ dirname_part(dir_from, from);
+ dirname_part(dir_to, to);
+ if (my_sync_dir(dir_from, MyFlags) ||
+ (strcmp(dir_from, dir_to) &&
+ my_sync_dir(dir_to, MyFlags)))
+ error= -1;
+#endif
+ }
DBUG_RETURN(error);
} /* my_rename */