mirror of
https://github.com/trapexit/mergerfs.git
synced 2026-10-26 19:01:56 -04:00
Collapse get_node/get_node_nocheck into a single function that returns NULL when the node is absent rather than abort()ing. Callers that previously assumed non-NULL now check the return value and either reply ESTALE/ENOMEM or fall through gracefully; a few places where the node is load-bearing (e.g. unhash during remove) use fatal::abort with a descriptive message. Switch mutex_lock / mutex_unlock pairs to mutex_lockguard so early returns on error paths no longer leak the lock, and add NULL-safety around fuse_dh in readdir/readdir_plus, fuse_dirents_init error returns, the getattr path when both name and fh are empty, and the msgbuf allocation in fuse_lib_read. Pull the new xstrdup/xmalloc wrappers from xalloc.hpp for the root node name so the common-case OOM path terminates with a diagnostic instead of a silent corrupted node. Also guard fuse_session_destroy against a NULL session - called from error-recovery paths. |
||
|---|---|---|
| .. | ||
| cpu.cpp | ||
| cpu.hpp | ||
| crc32b.cpp | ||
| crc32b.h | ||
| debug.cpp | ||
| format.cpp | ||
| fuse.cpp | ||
| fuse_cfg.cpp | ||
| fuse_dirents.cpp | ||
| fuse_i.hpp | ||
| fuse_loop.cpp | ||
| fuse_lowlevel.cpp | ||
| fuse_msgbuf.cpp | ||
| fuse_opt.cpp | ||
| fuse_req.cpp | ||
| fuse_session.cpp | ||
| fuse_signals.cpp | ||
| helper.cpp | ||
| lock.h | ||
| maintenance_thread.cpp | ||
| mount.cpp | ||
| mount.hpp | ||
| mount_bsd.h | ||
| mount_generic.h | ||
| mount_util.h | ||
| node.cpp | ||
| node.hpp | ||
| pin_threads.cpp | ||
| pin_threads.hpp | ||
| xalloc.hpp | ||