On Wed, Sep 8, 2021 at 5:27 PM Hao Peng <flyingpenghao@xxxxxxxxx> wrote: > > On Wed, Sep 8, 2021 at 5:08 PM Miklos Szeredi <miklos@xxxxxxxxxx> wrote: > > > > On Wed, 8 Sept 2021 at 04:25, Hao Peng <flyingpenghao@xxxxxxxxx> wrote: > > > > > > On Tue, Sep 7, 2021 at 5:34 PM Miklos Szeredi <miklos@xxxxxxxxxx> wrote: > > > > > > > > On Mon, 6 Sept 2021 at 14:36, Hao Peng <flyingpenghao@xxxxxxxxx> wrote: > > > > > > > > > > For a simple read-only file system, as long as the connection > > > > > is not broken, the recovery of the user-mode read-only file > > > > > system can be realized by putting the request of the processing > > > > > list back into the pending list. > > > > > > > > Thanks for the patch. > > > > > > > > Do you have example userspace code for this? > > > > > > > Under development. When the fuse user-mode file system process is abnormal, > > > the process does not terminate (/dev/fuse will not be closed), enter > > > the reset procedure, > > > and will not open /dev/fuse again during the reinitialization. > > > Of course, this can only solve part of the abnormal problem. > > > > Yes, that's what I'm mainly worried about. Replaying the few > > currently pending requests is easy, but does that really help in real > > situations? > > > > Much more information is needed about what you are trying to achieve > > and how, as well as a working userspace implementation to be able to > > judge this patch. > > > I will provide a simple example in a few days. The effect achieved is that the > user process will not perceive the abnormal restart of the read-only file system > process based on fuse. > > > Thanks, > > Miklos Hi,I have implemented a small test program to illustrate this new feature. After downloading and compiling from https://github.com/flying-122/libfuse/tree/flying #gcc -o testfile testfile.c -D_GNU_SOURCE #./example/passthrough_ll -o debug -s /mnt3 #./testfile (on another console) #ps aux | grep pass #root 34889 0.0 0.0 8848 864 pts/2 S+ 13:10 0:00 ./example/passthrough_ll -o debug -s /mnt3 #root 34896 0.0 0.0 9880 128 pts/2 S+ 13:10 0:00 ./example/passthrough_ll -o debug -s /mnt3 #root 34913 0.0 0.0 12112 1060 pts/1 S+ 13:10 0:00 grep --color=auto pass // kill child process #kill 34896 You will see that ./testfile continues to execute without noticing the abnormal restart of the fuse file system. Thanks.