Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I would assume cp uses ioctl (with atomic copies of individual files on filesystems that support CoW like APFS and BTRFS), whereas sqlite probably uses mmap?


I was trying to find evidence that reflink copies are atomic and could not and LLMs seem to think they are not. So at best may be a btrfs only feature?


From Linux kernel documentation:

https://man7.org/linux/man-pages/man2/ioctl_ficlone.2.html

> Clones are atomic with regards to concurrent writes, so no locks need to be taken to obtain a consistent cloned copy.

I'm not aware of any of the filesystems that use it (Btrfs, XFS, Bcachefs, ZFS) that deviate from expected atomic behavior, at least with single files being the atom in question for `FICLONE` operation.


Thanks! I similarly thought that a file clone would work but I couldn't confirm it.


So not a "naive" cp, but at least it calls a shared ioctl that is implemented buy multiple filesystems.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: