Looking at the OverlayFS 
[docs](https://docs.kernel.org/filesystems/overlayfs.html#renaming-directories) 
some more, specifically at the section covering `redirect_dir`, it mentions the 
following (emphasis mine):

> return EXDEV error: this error is returned by rename(2) when trying to move a 
> file or directory across filesystem boundaries. Hence ***applications are 
> usually prepared to handle this error*** (mv(1) for example recursively 
> copies the directory tree). This is the default behavior.

Obviously, since `mv(1)` falls back to copying when crossing filesystem 
boundaries, it handles this property of OverlayFS transparently. That makes 
sense for a utility like `mv(1)` where you expect users to want to move stuff 
across filesystems, however in our 
[code](https://github.com/rpm-software-management/rpm/blob/34cb5ee92276058f68f6d3fb1c345b22992c28a8/lib/rpmdb.c#L2295),
 we typically operate on the same filesystem when backing up the current rpmdb 
instance in the same directory.

Historically, before OverlayFS was a thing, there was no reason to assume 
otherwise, as you wouldn't normally have an "artificial" filesystem boundary 
within the same directory.

Since OverlayFS is now a mature and widely deployed filesystem (especially in 
the container space), adjusting our `--rebuilddb` logic to handle the EXDEV 
error actually seems quite reasonable, after all.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/discussions/2905#discussioncomment-8456276
You are receiving this because you are subscribed to this thread.

Message ID: 
<rpm-software-management/rpm/repo-discussions/2905/comments/8456...@github.com>
_______________________________________________
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint

Reply via email to