@@ -410,6 +410,15 @@ impl<T: RawFileSystem> FuseApiHandleDebug<T> {
410
410
inner : FuseApiHandle :: new ( fs, _config, context) ,
411
411
}
412
412
}
413
+
414
+ /// Wrapper for get_file_path that returns an empty string on error
415
+ /// instead of propagating the error
416
+ async fn get_file_path_or_empty ( & self , inode : Inode ) -> String {
417
+ match self . inner . get_file_path ( inode) . await {
418
+ Ok ( path) => path,
419
+ Err ( _) => "" . to_string ( ) ,
420
+ }
421
+ }
413
422
}
414
423
415
424
impl < T : RawFileSystem > Filesystem for FuseApiHandleDebug < T > {
@@ -438,7 +447,7 @@ impl<T: RawFileSystem> Filesystem for FuseApiHandleDebug<T> {
438
447
}
439
448
440
449
async fn lookup ( & self , req : Request , parent : Inode , name : & OsStr ) -> fuse3:: Result < ReplyEntry > {
441
- let parent_path_name = self . inner . get_file_path ( parent) . await ? ;
450
+ let parent_path_name = self . get_file_path_or_empty ( parent) . await ;
442
451
debug ! (
443
452
req. unique,
444
453
"uid" = req. uid,
@@ -465,7 +474,7 @@ impl<T: RawFileSystem> Filesystem for FuseApiHandleDebug<T> {
465
474
fh : Option < u64 > ,
466
475
flags : u32 ,
467
476
) -> fuse3:: Result < ReplyAttr > {
468
- let filename = self . inner . get_file_path ( inode) . await ? ;
477
+ let filename = self . get_file_path_or_empty ( inode) . await ;
469
478
debug ! (
470
479
req. unique,
471
480
"uid" = req. uid,
@@ -492,7 +501,7 @@ impl<T: RawFileSystem> Filesystem for FuseApiHandleDebug<T> {
492
501
fh : Option < u64 > ,
493
502
set_attr : SetAttr ,
494
503
) -> fuse3:: Result < ReplyAttr > {
495
- let filename = self . inner . get_file_path ( inode) . await ? ;
504
+ let filename = self . get_file_path_or_empty ( inode) . await ;
496
505
debug ! (
497
506
req. unique,
498
507
"uid" = req. uid,
@@ -520,7 +529,7 @@ impl<T: RawFileSystem> Filesystem for FuseApiHandleDebug<T> {
520
529
mode : u32 ,
521
530
umask : u32 ,
522
531
) -> fuse3:: Result < ReplyEntry > {
523
- let parent_path_name = self . inner . get_file_path ( parent) . await ? ;
532
+ let parent_path_name = self . get_file_path_or_empty ( parent) . await ;
524
533
debug ! (
525
534
req. unique,
526
535
"uid" = req. uid,
@@ -543,7 +552,7 @@ impl<T: RawFileSystem> Filesystem for FuseApiHandleDebug<T> {
543
552
}
544
553
545
554
async fn unlink ( & self , req : Request , parent : Inode , name : & OsStr ) -> fuse3:: Result < ( ) > {
546
- let parent_path_name = self . inner . get_file_path ( parent) . await ? ;
555
+ let parent_path_name = self . get_file_path_or_empty ( parent) . await ;
547
556
debug ! (
548
557
req. unique,
549
558
"uid" = req. uid,
@@ -559,7 +568,7 @@ impl<T: RawFileSystem> Filesystem for FuseApiHandleDebug<T> {
559
568
}
560
569
561
570
async fn rmdir ( & self , req : Request , parent : Inode , name : & OsStr ) -> fuse3:: Result < ( ) > {
562
- let parent_path_name = self . inner . get_file_path ( parent) . await ? ;
571
+ let parent_path_name = self . get_file_path_or_empty ( parent) . await ;
563
572
debug ! (
564
573
req. unique,
565
574
"uid" = req. uid,
@@ -574,7 +583,7 @@ impl<T: RawFileSystem> Filesystem for FuseApiHandleDebug<T> {
574
583
}
575
584
576
585
async fn open ( & self , req : Request , inode : Inode , flags : u32 ) -> fuse3:: Result < ReplyOpen > {
577
- let filename = self . inner . get_file_path ( inode) . await ? ;
586
+ let filename = self . get_file_path_or_empty ( inode) . await ;
578
587
debug ! (
579
588
req. unique,
580
589
"uid" = req. uid,
@@ -597,7 +606,7 @@ impl<T: RawFileSystem> Filesystem for FuseApiHandleDebug<T> {
597
606
offset : u64 ,
598
607
size : u32 ,
599
608
) -> fuse3:: Result < ReplyData > {
600
- let filename = self . inner . get_file_path ( inode) . await ? ;
609
+ let filename = self . get_file_path_or_empty ( inode) . await ;
601
610
debug ! (
602
611
req. unique,
603
612
?req,
@@ -621,7 +630,7 @@ impl<T: RawFileSystem> Filesystem for FuseApiHandleDebug<T> {
621
630
write_flags : u32 ,
622
631
flags : u32 ,
623
632
) -> fuse3:: Result < ReplyWrite > {
624
- let filename = self . inner . get_file_path ( inode) . await ? ;
633
+ let filename = self . get_file_path_or_empty ( inode) . await ;
625
634
debug ! (
626
635
req. unique,
627
636
"uid" = req. uid,
@@ -646,7 +655,7 @@ impl<T: RawFileSystem> Filesystem for FuseApiHandleDebug<T> {
646
655
}
647
656
648
657
async fn statfs ( & self , req : Request , inode : Inode ) -> fuse3:: Result < ReplyStatFs > {
649
- let filename = self . inner . get_file_path ( inode) . await ? ;
658
+ let filename = self . get_file_path_or_empty ( inode) . await ;
650
659
debug ! (
651
660
req. unique,
652
661
"uid" = req. uid,
@@ -669,7 +678,7 @@ impl<T: RawFileSystem> Filesystem for FuseApiHandleDebug<T> {
669
678
lock_owner : u64 ,
670
679
flush : bool ,
671
680
) -> fuse3:: Result < ( ) > {
672
- let filename = self . inner . get_file_path ( inode) . await ? ;
681
+ let filename = self . get_file_path_or_empty ( inode) . await ;
673
682
debug ! (
674
683
req. unique,
675
684
"uid" = req. uid,
@@ -692,7 +701,7 @@ impl<T: RawFileSystem> Filesystem for FuseApiHandleDebug<T> {
692
701
}
693
702
694
703
async fn opendir ( & self , req : Request , inode : Inode , flags : u32 ) -> fuse3:: Result < ReplyOpen > {
695
- let parent_path_name = self . inner . get_file_path ( inode) . await ? ;
704
+ let parent_path_name = self . get_file_path_or_empty ( inode) . await ;
696
705
debug ! (
697
706
req. unique,
698
707
"uid" = req. uid,
@@ -719,7 +728,7 @@ impl<T: RawFileSystem> Filesystem for FuseApiHandleDebug<T> {
719
728
fh : u64 ,
720
729
offset : i64 ,
721
730
) -> fuse3:: Result < ReplyDirectory < Self :: DirEntryStream < ' a > > > {
722
- let parent_path_name = self . inner . get_file_path ( parent) . await ? ;
731
+ let parent_path_name = self . get_file_path_or_empty ( parent) . await ;
723
732
debug ! (
724
733
req. unique,
725
734
"uid" = req. uid,
@@ -741,11 +750,7 @@ impl<T: RawFileSystem> Filesystem for FuseApiHandleDebug<T> {
741
750
fh : u64 ,
742
751
flags : u32 ,
743
752
) -> fuse3:: Result < ( ) > {
744
- let parent_path_name = match self . inner . get_file_path ( inode) . await {
745
- Ok ( path) => path,
746
- // directory might be removed, so in this case, we set parent_path_name to ""
747
- _ => "" . to_string ( ) ,
748
- } ;
753
+ let parent_path_name = self . get_file_path_or_empty ( inode) . await ;
749
754
debug ! (
750
755
req. unique,
751
756
"uid" = req. uid,
@@ -772,7 +777,7 @@ impl<T: RawFileSystem> Filesystem for FuseApiHandleDebug<T> {
772
777
mode : u32 ,
773
778
flags : u32 ,
774
779
) -> fuse3:: Result < ReplyCreated > {
775
- let parent_path_name = self . inner . get_file_path ( parent) . await ? ;
780
+ let parent_path_name = self . get_file_path_or_empty ( parent) . await ;
776
781
777
782
debug ! (
778
783
req. unique,
@@ -808,7 +813,7 @@ impl<T: RawFileSystem> Filesystem for FuseApiHandleDebug<T> {
808
813
offset : u64 ,
809
814
lock_owner : u64 ,
810
815
) -> fuse3:: Result < ReplyDirectoryPlus < Self :: DirEntryPlusStream < ' a > > > {
811
- let parent_path_name = self . inner . get_file_path ( parent) . await ? ;
816
+ let parent_path_name = self . get_file_path_or_empty ( parent) . await ;
812
817
debug ! (
813
818
req. unique,
814
819
"uid" = req. uid,
0 commit comments