Commit 2fff24a
feat: add FUSE releasedir and LinkTable eviction
Add FUSE .opendir and .releasedir handlers to safely evict
LinkTable directories from memory when they are no longer in
use. To avoid crashing other subsystems that might currently
reference files within them (like cache or stat routines), this
patch augments LinkTable with an atomic reference-counting
(refcount) memory management strategy.
Whenever path_to_Link or path_to_LinkTable resolves a table, it
increases its reference count. Transient users subsequently release
the reference once finished. When the directory is no longer
directly open, fs_releasedir marks it as orphaned, after which
its associated structures are recursively freed at the very
moment its last reference drops to zero.
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
Co-authored-by: fangfufu <2323403+fangfufu@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>1 parent 68dd7bb commit 2fff24a
4 files changed
Lines changed: 176 additions & 34 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
622 | 622 | | |
623 | 623 | | |
624 | 624 | | |
| 625 | + | |
625 | 626 | | |
626 | | - | |
| 627 | + | |
627 | 628 | | |
| 629 | + | |
| 630 | + | |
628 | 631 | | |
629 | 632 | | |
630 | 633 | | |
| |||
638 | 641 | | |
639 | 642 | | |
640 | 643 | | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
641 | 647 | | |
642 | 648 | | |
643 | 649 | | |
| |||
766 | 772 | | |
767 | 773 | | |
768 | 774 | | |
| 775 | + | |
| 776 | + | |
769 | 777 | | |
770 | 778 | | |
771 | 779 | | |
| |||
791 | 799 | | |
792 | 800 | | |
793 | 801 | | |
| 802 | + | |
794 | 803 | | |
795 | 804 | | |
796 | 805 | | |
| |||
809 | 818 | | |
810 | 819 | | |
811 | 820 | | |
| 821 | + | |
812 | 822 | | |
813 | 823 | | |
814 | 824 | | |
| |||
887 | 897 | | |
888 | 898 | | |
889 | 899 | | |
| 900 | + | |
890 | 901 | | |
891 | 902 | | |
892 | 903 | | |
| |||
928 | 939 | | |
929 | 940 | | |
930 | 941 | | |
931 | | - | |
| 942 | + | |
| 943 | + | |
932 | 944 | | |
933 | 945 | | |
934 | 946 | | |
935 | 947 | | |
936 | 948 | | |
| 949 | + | |
937 | 950 | | |
938 | 951 | | |
939 | 952 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
73 | 73 | | |
74 | 74 | | |
75 | 75 | | |
| 76 | + | |
76 | 77 | | |
77 | 78 | | |
| 79 | + | |
78 | 80 | | |
79 | 81 | | |
80 | 82 | | |
| |||
105 | 107 | | |
106 | 108 | | |
107 | 109 | | |
| 110 | + | |
108 | 111 | | |
109 | 112 | | |
110 | 113 | | |
| |||
115 | 118 | | |
116 | 119 | | |
117 | 120 | | |
| 121 | + | |
118 | 122 | | |
119 | 123 | | |
120 | 124 | | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
121 | 148 | | |
122 | 149 | | |
123 | 150 | | |
124 | 151 | | |
125 | 152 | | |
126 | | - | |
127 | | - | |
128 | | - | |
129 | | - | |
130 | | - | |
131 | | - | |
132 | | - | |
133 | | - | |
134 | 153 | | |
135 | 154 | | |
136 | 155 | | |
137 | 156 | | |
138 | 157 | | |
| 158 | + | |
139 | 159 | | |
140 | | - | |
141 | 160 | | |
142 | | - | |
143 | | - | |
144 | | - | |
| 161 | + | |
145 | 162 | | |
146 | 163 | | |
147 | 164 | | |
| |||
166 | 183 | | |
167 | 184 | | |
168 | 185 | | |
| 186 | + | |
169 | 187 | | |
| 188 | + | |
170 | 189 | | |
171 | 190 | | |
172 | 191 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
367 | 367 | | |
368 | 368 | | |
369 | 369 | | |
| 370 | + | |
370 | 371 | | |
371 | 372 | | |
372 | 373 | | |
| |||
572 | 573 | | |
573 | 574 | | |
574 | 575 | | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
| 584 | + | |
| 585 | + | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
575 | 622 | | |
576 | 623 | | |
577 | 624 | | |
| |||
838 | 885 | | |
839 | 886 | | |
840 | 887 | | |
| 888 | + | |
841 | 889 | | |
842 | 890 | | |
843 | 891 | | |
| |||
866 | 914 | | |
867 | 915 | | |
868 | 916 | | |
869 | | - | |
870 | 917 | | |
871 | 918 | | |
872 | 919 | | |
873 | 920 | | |
874 | | - | |
875 | | - | |
| 921 | + | |
| 922 | + | |
876 | 923 | | |
877 | 924 | | |
878 | 925 | | |
879 | 926 | | |
880 | 927 | | |
881 | 928 | | |
| 929 | + | |
| 930 | + | |
882 | 931 | | |
| 932 | + | |
883 | 933 | | |
884 | 934 | | |
885 | 935 | | |
| 936 | + | |
886 | 937 | | |
887 | | - | |
| 938 | + | |
888 | 939 | | |
889 | | - | |
| 940 | + | |
890 | 941 | | |
891 | 942 | | |
892 | | - | |
| 943 | + | |
893 | 944 | | |
894 | | - | |
895 | | - | |
| 945 | + | |
| 946 | + | |
896 | 947 | | |
897 | 948 | | |
898 | 949 | | |
899 | 950 | | |
900 | | - | |
901 | 951 | | |
902 | | - | |
903 | | - | |
904 | | - | |
905 | | - | |
| 952 | + | |
| 953 | + | |
| 954 | + | |
| 955 | + | |
| 956 | + | |
| 957 | + | |
| 958 | + | |
| 959 | + | |
| 960 | + | |
| 961 | + | |
| 962 | + | |
| 963 | + | |
| 964 | + | |
| 965 | + | |
| 966 | + | |
| 967 | + | |
| 968 | + | |
| 969 | + | |
| 970 | + | |
| 971 | + | |
906 | 972 | | |
907 | 973 | | |
908 | | - | |
909 | | - | |
| 974 | + | |
| 975 | + | |
| 976 | + | |
| 977 | + | |
910 | 978 | | |
911 | 979 | | |
912 | 980 | | |
| |||
971 | 1039 | | |
972 | 1040 | | |
973 | 1041 | | |
| 1042 | + | |
| 1043 | + | |
974 | 1044 | | |
975 | | - | |
| 1045 | + | |
976 | 1046 | | |
977 | 1047 | | |
978 | | - | |
| 1048 | + | |
979 | 1049 | | |
980 | 1050 | | |
981 | | - | |
| 1051 | + | |
982 | 1052 | | |
983 | 1053 | | |
984 | 1054 | | |
985 | 1055 | | |
986 | 1056 | | |
987 | 1057 | | |
| 1058 | + | |
| 1059 | + | |
| 1060 | + | |
| 1061 | + | |
| 1062 | + | |
| 1063 | + | |
| 1064 | + | |
| 1065 | + | |
| 1066 | + | |
| 1067 | + | |
| 1068 | + | |
| 1069 | + | |
| 1070 | + | |
988 | 1071 | | |
989 | | - | |
990 | 1072 | | |
991 | 1073 | | |
992 | 1074 | | |
| |||
1007 | 1089 | | |
1008 | 1090 | | |
1009 | 1091 | | |
| 1092 | + | |
| 1093 | + | |
| 1094 | + | |
| 1095 | + | |
| 1096 | + | |
1010 | 1097 | | |
1011 | 1098 | | |
1012 | 1099 | | |
| |||
1227 | 1314 | | |
1228 | 1315 | | |
1229 | 1316 | | |
1230 | | - | |
| 1317 | + | |
| 1318 | + | |
| 1319 | + | |
1231 | 1320 | | |
1232 | 1321 | | |
1233 | 1322 | | |
| |||
0 commit comments