summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAriel Miculas <ariel.miculas@gmail.com>2024-06-14 21:46:53 +0300
committerKent Overstreet <kent.overstreet@linux.dev>2024-06-16 14:09:18 -0400
commitab83e348fb77f91b3a9c09ab87c9c357bdafb1d7 (patch)
tree90ef6178f1bcb3ed069b175e2843ec49ba53f4d3
parent3a4a096cd27146ce0b66f0be29b1af7a50f7f789 (diff)
Preserve directory {a,m,c} times by calling copy_times() after the recursion
Otherwise the directory {a,m,c} times will be modified by the recursive copy of the directory tree. Signed-off-by: Ariel Miculas <ariel.miculas@gmail.com> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rw-r--r--c_src/posix_to_bcachefs.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/c_src/posix_to_bcachefs.c b/c_src/posix_to_bcachefs.c
index c66b9734..714eb47d 100644
--- a/c_src/posix_to_bcachefs.c
+++ b/c_src/posix_to_bcachefs.c
@@ -360,7 +360,6 @@ static void copy_dir(struct copy_fs_state *s,
if (dst_inum)
*dst_inum = inode.bi_inum;
- copy_times(c, &inode, &stat);
copy_xattrs(c, &inode, d->d_name);
/* copy xattrs */
@@ -395,6 +394,7 @@ static void copy_dir(struct copy_fs_state *s,
BUG();
}
+ copy_times(c, &inode, &stat);
update_inode(c, &inode);
next:
free(child_path);