File tree Expand file tree Collapse file tree 2 files changed +8
-0
lines changed Expand file tree Collapse file tree 2 files changed +8
-0
lines changed Original file line number Diff line number Diff line change @@ -1042,6 +1042,7 @@ impl FatVolume {
1042
1042
Err ( e) => return Err ( e) ,
1043
1043
} ;
1044
1044
debug ! ( "Next free cluster is {:?}" , self . next_free_cluster) ;
1045
+ // Record that we've allocated a cluster
1045
1046
if let Some ( ref mut number_free_cluster) = self . free_clusters_count {
1046
1047
* number_free_cluster -= 1 ;
1047
1048
} ;
Original file line number Diff line number Diff line change @@ -334,6 +334,7 @@ where
334
334
/// You can't close it if there are any files or directories open on it.
335
335
pub fn close_volume ( & self , volume : RawVolume ) -> Result < ( ) , Error < D :: Error > > {
336
336
let mut data = self . data . try_borrow_mut ( ) . map_err ( |_| Error :: LockError ) ?;
337
+ let data = data. deref_mut ( ) ;
337
338
338
339
for f in data. open_files . iter ( ) {
339
340
if f. raw_volume == volume {
@@ -349,6 +350,12 @@ where
349
350
350
351
let volume_idx = data. get_volume_by_id ( volume) ?;
351
352
353
+ match & mut data. open_volumes [ volume_idx] . volume_type {
354
+ VolumeType :: Fat ( fat) => {
355
+ fat. update_info_sector ( & mut data. block_cache ) ?;
356
+ }
357
+ }
358
+
352
359
data. open_volumes . swap_remove ( volume_idx) ;
353
360
354
361
Ok ( ( ) )
You can’t perform that action at this time.
0 commit comments