Commit 2c20abd8c9d691de2594b0602e45082e89a6f242
Fix FUSE unmounting not working on FreeBSD 15.0+
FreeBSD has added an implementation of inotify that Vifm picks up during
configuration. Yet, unlike on Linux, inotify descriptors count as a
directory use in the kernel and prevent unmounting.
Thanks to abi at Vifm Q2A site.
See
https://q2a.vifm.info/2526/unable-to-umount-fuse-when-i-try-to-leave-directory
Author: xaizek
Author date (UTC): 2026-10-20 09:16
Committer name: xaizek
Committer date (UTC): 2026-10-20 09:19
Parent(s): 2624fe6071ea74c9c863cb718cb11bb947c6963e
Signing key: 99DC5E4DB05F6BE2
Tree: 1fcf0d62918605d7f945c2a4e714c7aaa1418856
| File ChangeLog changed (mode: 100644) (index 924c75ffe..ea4d8e06a) |
| 50 |
50 |
|
|
| 51 |
51 |
Fixed an unlikely memory leak on discovering .desktop files. |
Fixed an unlikely memory leak on discovering .desktop files. |
| 52 |
52 |
|
|
|
53 |
|
Fixed FUSE unmounting not working on FreeBSD 15.0 or later, which has |
|
54 |
|
added an implementation of inotify that, unlike on Linux, counts as a |
|
55 |
|
directory use and prevents unmounting. Thanks to abi at Vifm Q2A site. |
|
56 |
|
|
| 53 |
57 |
0.14.3 to 0.14.4 (2026-05-31) |
0.14.3 to 0.14.4 (2026-05-31) |
| 54 |
58 |
|
|
| 55 |
59 |
Added example of handling .deb-files to sample vifmrc. Patch by Kirill |
Added example of handling .deb-files to sample vifmrc. Patch by Kirill |
| File THANKS changed (mode: 100644) (index e8f15bf0d..6470d4be6) |
| ... |
... |
and testing of large number of features: |
| 12 |
12 |
45jqlakjrf87ayte7hy34ter4nguijauzl4eitk |
45jqlakjrf87ayte7hy34ter4nguijauzl4eitk |
| 13 |
13 |
702b |
702b |
| 14 |
14 |
Abdó Roig-Maranges (aroig) |
Abdó Roig-Maranges (aroig) |
|
15 |
|
abi |
| 15 |
16 |
AERDU |
AERDU |
| 16 |
17 |
afsheenb |
afsheenb |
| 17 |
18 |
Afz |
Afz |
| File src/int/fuse.c changed (mode: 100644) (index ba3bb525d..9499bab2a) |
| ... |
... |
fuse_try_unmount(view_t *view) |
| 551 |
551 |
return -1; |
return -1; |
| 552 |
552 |
} |
} |
| 553 |
553 |
|
|
|
554 |
|
/* This is motivated by FreeBSD's implementation of inotify which prevents |
|
555 |
|
* unmounting, but may as well do it everywhere just in case FreeBSD isn't |
|
556 |
|
* the only one. This shouldn't affect performance much and the watcher |
|
557 |
|
* will be restored on its next use. */ |
|
558 |
|
fswatch_free(view->watch); |
|
559 |
|
view->watch = NULL; |
|
560 |
|
|
| 554 |
561 |
ui_sb_msg("FUSE unmounting selected file, please stand by..."); |
ui_sb_msg("FUSE unmounting selected file, please stand by..."); |
| 555 |
562 |
int status = run_fuse_command(unmount_cmd, /*cancelled=*/NULL, |
int status = run_fuse_command(unmount_cmd, /*cancelled=*/NULL, |
| 556 |
563 |
/*errors=*/NULL); |
/*errors=*/NULL); |