@@ -753,35 +753,35 @@ struct DiskUtil {
753
753
}
754
754
755
755
async fn delete_empty_directory_hot_tier ( path : & Path ) -> io:: Result < ( ) > {
756
- async fn delete_helper ( path : & Path ) -> io:: Result < ( ) > {
757
- if path. is_dir ( ) {
758
- let mut read_dir = fs:: read_dir ( path) . await ?;
759
- let mut subdirs = vec ! [ ] ;
760
-
761
- while let Some ( entry) = read_dir. next_entry ( ) . await ? {
762
- let entry_path = entry. path ( ) ;
763
- if entry_path. is_dir ( ) {
764
- subdirs. push ( entry_path) ;
765
- }
766
- }
767
- let mut tasks = vec ! [ ] ;
768
- for subdir in & subdirs {
769
- tasks. push ( delete_empty_directory_hot_tier ( subdir) ) ;
770
- }
771
- futures:: stream:: iter ( tasks)
772
- . buffer_unordered ( 10 )
773
- . try_collect :: < Vec < _ > > ( )
774
- . await ?;
756
+ if !path. is_dir ( ) {
757
+ return Ok ( ( ) ) ;
758
+ }
759
+ let mut read_dir = fs:: read_dir ( path) . await ?;
760
+ let mut subdirs = vec ! [ ] ;
775
761
776
- // Re-check the directory after deleting its subdirectories
777
- let mut read_dir = fs:: read_dir ( path) . await ?;
778
- if read_dir. next_entry ( ) . await ?. is_none ( ) {
779
- fs:: remove_dir ( path) . await ?;
780
- }
762
+ while let Some ( entry) = read_dir. next_entry ( ) . await ? {
763
+ let entry_path = entry. path ( ) ;
764
+ if entry_path. is_dir ( ) {
765
+ subdirs. push ( entry_path) ;
781
766
}
782
- Ok ( ( ) )
783
767
}
784
- delete_helper ( path) . await
768
+
769
+ let mut tasks = vec ! [ ] ;
770
+ for subdir in & subdirs {
771
+ tasks. push ( delete_empty_directory_hot_tier ( subdir) ) ;
772
+ }
773
+ futures:: stream:: iter ( tasks)
774
+ . buffer_unordered ( 10 )
775
+ . try_collect :: < Vec < _ > > ( )
776
+ . await ?;
777
+
778
+ // Re-check the directory after deleting its subdirectories
779
+ let mut read_dir = fs:: read_dir ( path) . await ?;
780
+ if read_dir. next_entry ( ) . await ?. is_none ( ) {
781
+ fs:: remove_dir ( path) . await ?;
782
+ }
783
+
784
+ Ok ( ( ) )
785
785
}
786
786
787
787
#[ derive( Debug , thiserror:: Error ) ]
0 commit comments