Commit 2a638ebd43425fa63ec656558ad188d056d43b21
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:16
Parent(s): 43c6680403593cc59288bf95c1e01132ad8a6657
Signing key: 99DC5E4DB05F6BE2
Tree: 52150b9eed0dab66dccbde963b8a41e823757504
| File ChangeLog changed (mode: 100644) (index ff5255a56..262f594f4) |
| 337 |
337 |
|
|
| 338 |
338 |
Fixed an unlikely memory leak on discovering .desktop files. |
Fixed an unlikely memory leak on discovering .desktop files. |
| 339 |
339 |
|
|
|
340 |
|
Fixed FUSE unmounting not working on FreeBSD 15.0 or later, which has |
|
341 |
|
added an implementation of inotify that, unlike on Linux, counts as a |
|
342 |
|
directory use and prevents unmounting. Thanks to abi at Vifm Q2A site. |
|
343 |
|
|
| 340 |
344 |
0.14-beta to 0.14 (2025-02-08) |
0.14-beta to 0.14 (2025-02-08) |
| 341 |
345 |
|
|
| 342 |
346 |
Improved documentation on zh/zl menu keys a bit. |
Improved documentation on zh/zl menu keys a bit. |
| File THANKS changed (mode: 100644) (index 06a667c1c..0ab70a364) |
| ... |
... |
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); |