@@ -4,34 +4,49 @@ import "os"
4
4
5
5
type LocalFileProxy struct {
6
6
localFile * os.File // handle to the temp file in staging dir
7
+ file * FileINode
7
8
}
8
9
9
10
var _ FileProxy = (* LocalFileProxy )(nil )
10
11
11
12
func (p * LocalFileProxy ) Truncate (size int64 ) error {
13
+ p .file .lockFileHandle ()
14
+ defer p .file .unLockFileHandle ()
12
15
return p .localFile .Truncate (size )
13
16
}
14
17
15
18
func (p * LocalFileProxy ) WriteAt (b []byte , off int64 ) (n int , err error ) {
19
+ p .file .lockFileHandle ()
20
+ defer p .file .unLockFileHandle ()
16
21
return p .localFile .WriteAt (b , off )
17
22
}
18
23
19
24
func (p * LocalFileProxy ) ReadAt (b []byte , off int64 ) (n int , err error ) {
25
+ p .file .lockFileHandle ()
26
+ defer p .file .unLockFileHandle ()
20
27
return p .localFile .ReadAt (b , off )
21
28
}
22
29
23
30
func (p * LocalFileProxy ) Seek (offset int64 , whence int ) (ret int64 , err error ) {
31
+ p .file .lockFileHandle ()
32
+ defer p .file .unLockFileHandle ()
24
33
return p .localFile .Seek (offset , whence )
25
34
}
26
35
27
36
func (p * LocalFileProxy ) Read (b []byte ) (n int , err error ) {
37
+ p .file .lockFileHandle ()
38
+ defer p .file .unLockFileHandle ()
28
39
return p .localFile .Read (b )
29
40
}
30
41
31
42
func (p * LocalFileProxy ) Close () error {
43
+ p .file .lockFileHandle ()
44
+ defer p .file .unLockFileHandle ()
32
45
return p .localFile .Close ()
33
46
}
34
47
35
48
func (p * LocalFileProxy ) Sync () error {
49
+ p .file .lockFileHandle ()
50
+ defer p .file .unLockFileHandle ()
36
51
return p .localFile .Sync ()
37
52
}
0 commit comments