From: Jean-Pierre A. <jea...@wa...> - 2011-12-29 18:34:23
|
Hi, Errors have been reported against ntfs-3g on OpenIndiana. They apparently stem from bugs in fuse, or possibly from a wanted behavior different from the fuse for Linux I have been able to work around a few of them, but there are obvious bugs in the fuse kernel part, which I cannot fix myself (FYI, this is much different from the kernel module for Linux, and apparently akin to the BSD one). Is there a place where I can report these issues, or somebody on this list wanting to fix them ? Regards Jean-Pierre |
From: <ma...@ne...> - 2011-12-30 11:51:26
|
Jean-Pierre André <jea...@wa...> wrote: > I have been able to work around a few of them, but there > are obvious bugs in the fuse kernel part, which I cannot > fix myself (FYI, this is much different from the kernel > module for Linux, and apparently akin to the BSD one). > > Is there a place where I can report these issues, or > somebody on this list wanting to fix them ? I have been implementing NetBSD FUSE, and I am interested by bug fixes if you have some. -- Emmanuel Dreyfus http://hcpnet.free.fr/pubz ma...@ne... |
From: Jean-Pierre A. <jea...@wa...> - 2011-12-30 13:50:30
|
Hi Emmanuel, Emmanuel Dreyfus wrote: > Jean-Pierre André<jea...@wa...> wrote: > > >> I have been able to work around a few of them, but there >> are obvious bugs in the fuse kernel part, which I cannot >> fix myself (FYI, this is much different from the kernel >> module for Linux, and apparently akin to the BSD one). >> >> Is there a place where I can report these issues, or >> somebody on this list wanting to fix them ? >> > I have been implementing NetBSD FUSE, and I am interested by bug fixes > if you have some. Well, my question was about fixing... but if you can point me at things to check in the code, it will be helpful. I am also interested in getgroups(). I still have to adapt your recent patch to OpenIndiana, the sysctl() is not the same. Actually, I can fix two bugs in the kernel module : - report to the application any error returned from execution of unlink() by the file system (at least in the case where the parent directory is not writeable). - do not return acceptance of access(X_OK) by root accessing a file which is not executable by anybody. The above bugs are easy to fix. However I had to patch the shared object, because I do not have a working compiling environment for 64 bits on OpenIndiana. The source file is fuse_vfsops.c which I could get from http://src.opensolaris.org/source/raw/fuse/fusefs/kernel/fuse_vfsops.c (not GPL) Then, there are several issues which I had to work around in the file system. I have no idea what the root problem is : - the file system gets a create() when opening an existing file with O_APPEND or O_TRUNC. (on Linux, the file system gets an open()) - when a file is created with no write protection, truncate() has no way of determining that the file is temporarily allowed to be truncated by the process creating the file. The same issue also arises in access(W_OK). - releasedir() is never called. The file system does not know when it can release its readdir() context. There are spurious readdir() from the root directory after the previous readdir() was replied with an error or a null directory block. - st_blocks is not forwarded to the caller in a struct stat. The value returned just reflects the file size, which is wrong for sparse or compressed files. So far I have not dared trying to run the posix test. Thanks for any help Regards Jean-Pierre |