From: François T. <thi...@gm...> - 2009-05-18 08:49:15
|
Dear miklos, I can't figure out the meaning of such an error. We assume that files 'file' and 'file.tmp' contain some data. We then use the following syscall sequence on our filesystem (*Fuse is single thread*) : <thread_reader> open 'file' <thread_writer> rename 'file.tmp' --> 'file' <thread_read> read from opened 'file' unique: 32525, opcode: READ (15), nodeid: 662, insize: 80 unique: 32525, error: -2 (No such file or directory), outsize: 16 this READ syscall never reach our filesystem, it seems that Fuse kernel part reply directly (even in direct-io mode) So my question is : how is it possible to successfully open a file and then being unable to find it ? Please note that our filesystem take care of such situation : the unlinked file 'file' has nlink=0 and its inode will be deleted as soon as 'file' is closed by the reader. We use a vanilla kernel 2.6.28.2 along with fuse-2.8.0-pre2 (the same occurs with fuse-2.7.4). Fuse launch parameters are described below : VFS 0<30330 1242478095.917> - : visagefs.fsargv.argv[2] = -f [visagefs_main-visagefs_main.c:5552] VFS 0<30330 1242478095.917> - : visagefs.fsargv.argv[3] = -ohard_remove [visagefs_main-visagefs_main.c:5552] VFS 0<30330 1242478095.917> - : visagefs.fsargv.argv[4] = -oallow_other [visagefs_main-visagefs_main.c:5552] VFS 0<30330 1242478095.917> - : visagefs.fsargv.argv[5] = -ofsname=visagefs [visagefs_main-visagefs_main.c:5552] VFS 0<30330 1242478095.918> - : visagefs.fsargv.argv[6] = -ouse_ino [visagefs_main-visagefs_main.c:5552] VFS 0<30330 1242478095.918> - : visagefs.fsargv.argv[7] = -oentry_timeout=1.0 [visagefs_main-visagefs_main.c:5552] VFS 0<30330 1242478095.918> - : visagefs.fsargv.argv[8] = -oattr_timeout=1.0 [visagefs_main-visagefs_main.c:5552] VFS 0<30330 1242478095.918> - : visagefs.fsargv.argv[9] = -onegative_timeout=1.0 [visagefs_main-visagefs_main.c:5552] VFS 0<30330 1242478095.918> - : visagefs.fsargv.argv[10] = -oauto_cache [visagefs_main-visagefs_main.c:5552] VFS 0<30330 1242478095.918> - : visagefs.fsargv.argv[11] = -obig_writes [visagefs_main-visagefs_main.c:5552] Please not that the same error occurs with Fuse being launched in a single thread way. Thanks. François. -- ------------------------------------------------------------- You computer seems overloaded ? Check that nobody's asked for tea ! "The Hitchhiker's Guide to the Galaxy" D.Adams |