Gfarm2fs
Linux FUSE client of Gfarm
Install / Use
/learn @oss-tsukuba/Gfarm2fsREADME
README.MT-safe
-
locks and locking order
Locks below are implemented.
- id.c: mutex_group (static variable)
- id.c: mutex_user (static variable)
- open_file.c: open_file_table_mutex (static variable)
- gfarm2fs.h: struct gfarm2fs_file { lock; }
open_file_table_mutex should be locked before (unlocked after) gfarm2fs_file.lock, if need to lock both. gfarm2fs_file.lock can be locked without locking open_file_table_mutex on the case file handler is given.
mutex_group and mutex_user are not related with others.
-
note
- locking directory The callback function of readdir is required to control offset, but libgfarm does not have APIs which execute seekdir and readdir atomically. gfarm2fs may need to lock depend on specified GFS_Dir while executing atomic operations. However, passthrough_fh.c (the example implementation of FUSE) does not call seekdir and readdir atomically in the callback function of readdir. Nevertheless, neither Helgrind nor ThreadSanitizer warned about offset. We guess that libfuse may execute the callback function of readdir atomically.
Related Skills
node-connect
350.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
350.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
350.1kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
