"Fixed."

tux=; cvs diff -u -r1.7 main.c
Index: main.c
===================================================================
RCS file: /home/am3/rsc/cvsroot/plan9/src/cmd/9pfuse/main.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- main.c      27 Jul 2006 05:14:16 -0000      1.7
+++ main.c      27 Jul 2006 22:36:00 -0000      1.8
@@ -23,8 +23,12 @@
#define O_DIRECTORY 0
#endif
#ifndef O_LARGEFILE
+#if defined(__linux__)
+#define O_LARGEFILE 0100000  /* Sigh */
+#else
#define O_LARGEFILE 0
#endif
+#endif


int debug;
tux=;


On 7/27/06, andrey mirtchovski <[EMAIL PROTECTED]> wrote:
trying on the aforementioned intel with the aforementioned linux
distribution i get 'permission denied' errors every time i try to
access the mounted directory.

turns out that fuse sends out an extra flag, O_LARGEFILE=0x8000, which
9pfuse.c thinks it has masked. it also turns out that the two programs
involved differ over what O_LARGEFILE should be defined as:
O_LARGEFILE is 0 for 9pfuse.c (actually it was defined at compile time
as it couldn't find it in the include files)

bits/fcntl.h has the following to say (after a few spelling errors):

#ifdef __USE_LARGEFILE64
# if __WORDSIZE == 64
#  define O_LARGEFILE   0
# else
#  define O_LARGEFILE   0100000
# endif
#endif

this particular standard installation has __USE_LARGEFILE64 undefined,
and i assume that the one which the kernel was compiled on did.

i suppose i should recompile the fuse module, or fusermount or
something else... i feel a sacrifice is required.


Reply via email to