Hi folks, I am implementing passthrough support for go-fuse. It seems to be working now (code: https://review.gerrithub.io/c/hanwen/go-fuse/+/1199984 and predecessors), but I am unsure of the correct lifetimes for the file descriptors. The passthrough_hp example seems to do: Open: backing_fd = .. backing_id = ioctl(fuse_device_fd, FUSE_DEV_IOC_BACKING_OPEN, backing_fd) Release: ioctl(fuse_device_fd, FUSE_DEV_IOC_BACKING_CLOSE, backing_id) close(backing_fd) Is it necessary to keep backing_fd open while the backing file is used? In the case of go-fuse, the backing_fd is managed by client code, so I can't ensure it is kept open long enough. I can work around this by doing Open: new_backing_fd = ioctl(backing_fd, DUP_FD, 0) backing_id = ioctl(fuse_device_fd, FUSE_DEV_IOC_BACKING_OPEN, new_backing_fd) Release: ioctl(fuse_device_fd, FUSE_DEV_IOC_BACKING_CLOSE, backing_id) close(new_backing_fd) but it would double the number of FDs the process uses. I tried simply closing the backing FD right after obtaining the backing ID, and it seems to work. Is this permitted? -- Han-Wen Nienhuys - hanwenn@xxxxxxxxx - http://www.xs4all.nl/~hanwen