aboutsummaryrefslogtreecommitdiff
path: root/weed/mount/weedfs_file_copy_range.go
AgeCommit message (Collapse)AuthorFilesLines
2025-06-13FUSE Mount: Fix buffer allocation during copy (#6863)Gerry Hernandez1-18/+73
Fix buffer allocation during FUSE copy
2023-09-23read source uses shared lockchrislu1-1/+1
2023-09-21mount switch to ordered lock requestschrislu1-4/+5
2023-04-23[mount]Fix copy file range (#4407)zemul1-6/+2
* fix:mount deadlock * fix --------- Co-authored-by: zemul <zhouzemiao@ihuman.com>
2023-01-02more solid weed mount (#4089)Chris Lu1-6/+6
* compare chunks by timestamp * fix slab clearing error * fix test compilation * move oldest chunk to sealed, instead of by fullness * lock on fh.entryViewCache * remove verbose logs * revert slat clearing * less logs * less logs * track write and read by timestamp * remove useless logic * add entry lock on file handle release * use mem chunk only, swap file chunk has problems * comment out code that maybe used later * add debug mode to compare data read and write * more efficient readResolvedChunks with linked list * small optimization * fix test compilation * minor fix on writer * add SeparateGarbageChunks * group chunks into sections * turn off debug mode * fix tests * fix tests * tmp enable swap file chunk * Revert "tmp enable swap file chunk" This reverts commit 985137ec472924e4815f258189f6ca9f2168a0a7. * simple refactoring * simple refactoring * do not re-use swap file chunk. Sealed chunks should not be re-used. * comment out debugging facilities * either mem chunk or swap file chunk is fine now * remove orderedMutex as *semaphore.Weighted not found impactful * optimize size calculation for changing large files * optimize performance to avoid going through the long list of chunks * still problems with swap file chunk * rename * tiny optimization * swap file chunk save only successfully read data * fix * enable both mem and swap file chunk * resolve chunks with range * rename * fix chunk interval list * also change file handle chunk group when adding chunks * pick in-active chunk with time-decayed counter * fix compilation * avoid nil with empty fh.entry * refactoring * rename * rename * refactor visible intervals to *list.List * refactor chunkViews to *list.List * add IntervalList for generic interval list * change visible interval to use IntervalList in generics * cahnge chunkViews to *IntervalList[*ChunkView] * use NewFileChunkSection to create * rename variables * refactor * fix renaming leftover * renaming * renaming * add insert interval * interval list adds lock * incrementally add chunks to readers Fixes: 1. set start and stop offset for the value object 2. clone the value object 3. use pointer instead of copy-by-value when passing to interval.Value 4. use insert interval since adding chunk could be out of order * fix tests compilation * fix tests compilation
2022-12-05Revert "refactor: moved to locked entry" (#4035)Chris Lu1-0/+4
* Revert "refactor: moved to locked entry" This reverts commit 94bc9afd9d3f8e049219c1cdc9f0d6e0eb4cf456. * only add LockedEntry, no changes to entryLock * fix compilation
2022-12-04refactor: moved to locked entrychrislu1-4/+0
2022-09-11mount: ensure ordered file handle lock and unlockchrislu1-4/+5
2022-08-22Reuse readDataByFileHandle in Read call (#3482)Patrick Schmidt1-21/+5
2022-08-21remove same file copying rage limitationchrislu1-25/+22
2022-08-21Implement copy_file_range syscall in FUSE (#3475)Patrick Schmidt1-0/+120
See the man page of copy_file_range: https://man7.org/linux/man-pages/man2/copy_file_range.2.html