File tree Expand file tree Collapse file tree 1 file changed +13
-3
lines changed Expand file tree Collapse file tree 1 file changed +13
-3
lines changed Original file line number Diff line number Diff line change @@ -135,21 +135,31 @@ func newImage(source string) (image, error) {
135
135
136
136
func newCopier (virConn * libvirt.Connect , volume * libvirt.StorageVol , size uint64 ) func (src io.Reader ) error {
137
137
copier := func (src io.Reader ) error {
138
+ var bytesCopied int64
139
+
138
140
stream , err := virConn .NewStream (0 )
139
141
if err != nil {
140
142
return err
141
143
}
142
- defer stream .Finish ()
144
+
145
+ defer func () {
146
+ if uint64 (bytesCopied ) != size {
147
+ stream .Abort ()
148
+ } else {
149
+ stream .Finish ()
150
+ }
151
+ stream .Free ()
152
+ }()
143
153
144
154
volume .Upload (stream , 0 , size , 0 )
145
155
146
156
sio := NewStreamIO (* stream )
147
157
148
- n , err : = io .Copy (sio , src )
158
+ bytesCopied , err = io .Copy (sio , src )
149
159
if err != nil {
150
160
return err
151
161
}
152
- log .Printf ("%d bytes uploaded\n " , n )
162
+ log .Printf ("%d bytes uploaded\n " , bytesCopied )
153
163
return nil
154
164
}
155
165
return copier
You can’t perform that action at this time.
0 commit comments