comment
This commit is contained in:
parent
00e3531169
commit
ed740bc31e
1 changed files with 27 additions and 0 deletions
|
@ -0,0 +1,27 @@
|
||||||
|
[[!comment format=mdwn
|
||||||
|
username="joey"
|
||||||
|
subject="""comment 1"""
|
||||||
|
date="2024-09-05T12:56:27Z"
|
||||||
|
content="""
|
||||||
|
The reason for reflink=always is that git-annex wants it to fail when
|
||||||
|
reflink is not supported and the copy is going to be slow.
|
||||||
|
Then it falls back to copying the file itself, which allows an interrupted
|
||||||
|
copy of a large file to be resumed, rather than restarted from the beginning
|
||||||
|
as cp would do when it's not making a reflink.
|
||||||
|
|
||||||
|
So, at first it seemed to me that the solution will need to involve
|
||||||
|
git-annex using `copy_file_range` itself.
|
||||||
|
|
||||||
|
But, git-annex would like to checksum the file as it's copying it (unless
|
||||||
|
annex.verify is not set), in order to avoid needing to re-read it to hash it
|
||||||
|
after the fact, which would double the disk IO in many cases.
|
||||||
|
Using `copy_file_range` by default would prevent git-annex from doing that.
|
||||||
|
|
||||||
|
So it needs to either be probed, or be a config setting. And whichever way
|
||||||
|
git-annex determines it, it may as well use `cp reflink=auto` then
|
||||||
|
rather than using `copy_file_range` itself.
|
||||||
|
|
||||||
|
I'd certainly rather avoid a config setting if I can. But if this is specific to
|
||||||
|
NFS on ZFS, I don't know what would be a good way to probe for that? Or is this
|
||||||
|
happening on NFS when not on ZFS as well?
|
||||||
|
"""]]
|
Loading…
Reference in a new issue