diff options
| author | Chris Lu <chrislusf@users.noreply.github.com> | 2023-09-22 21:38:25 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-09-22 21:38:25 -0700 |
| commit | 9fc79bebf97be1c52b824fea03a431320ca097c1 (patch) | |
| tree | 9cc17ea8305abda04023e2ba32421e37ebe408a3 /weed/mount/weedfs_file_copy_range.go | |
| parent | 48cd33ca68dd411cbf0cf9cdaeb2a05fe19e9d9a (diff) | |
| parent | 248b16bc099267eb76e02f6fe45d7009942325a9 (diff) | |
| download | seaweedfs-9fc79bebf97be1c52b824fea03a431320ca097c1.tar.xz seaweedfs-9fc79bebf97be1c52b824fea03a431320ca097c1.zip | |
Merge branch 'master' into track-mount-e2e
Diffstat (limited to 'weed/mount/weedfs_file_copy_range.go')
| -rw-r--r-- | weed/mount/weedfs_file_copy_range.go | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/weed/mount/weedfs_file_copy_range.go b/weed/mount/weedfs_file_copy_range.go index 49bab17f3..50a2d5a95 100644 --- a/weed/mount/weedfs_file_copy_range.go +++ b/weed/mount/weedfs_file_copy_range.go @@ -1,6 +1,7 @@ package mount import ( + "github.com/seaweedfs/seaweedfs/weed/util" "net/http" "time" @@ -44,16 +45,16 @@ func (wfs *WFS) CopyFileRange(cancel <-chan struct{}, in *fuse.CopyFileRangeIn) } // lock source and target file handles - fhOut.Lock() - defer fhOut.Unlock() + fhOutActiveLock := fhOut.wfs.fhLockTable.AcquireLock("CopyFileRange", fhOut.fh, util.ExclusiveLock) + defer fhOut.wfs.fhLockTable.ReleaseLock(fhOut.fh, fhOutActiveLock) if fhOut.entry == nil { return 0, fuse.ENOENT } if fhIn.fh != fhOut.fh { - fhIn.RLock() - defer fhIn.RUnlock() + fhInActiveLock := fhIn.wfs.fhLockTable.AcquireLock("CopyFileRange", fhIn.fh, util.ExclusiveLock) + defer fhIn.wfs.fhLockTable.ReleaseLock(fhIn.fh, fhInActiveLock) } // directories are not supported |
