PERFORCE change 84822 for review
soc-chenk
soc-chenk at FreeBSD.org
Tue Oct 4 15:11:00 PDT 2005
http://perforce.freebsd.org/chv.cgi?CH=84822
Change 84822 by soc-chenk at soc-chenk_leavemealone on 2005/10/04 22:10:14
Fixes in library patch
Submitted by: soc-chenk
Affected files ...
.. //depot/projects/soc2005/fuse4bsd2/Changelog#14 edit
.. //depot/projects/soc2005/fuse4bsd2/fuselib/fuselib-2.4.0-rc1.diff#2 edit
Differences ...
==== //depot/projects/soc2005/fuse4bsd2/Changelog#14 (text+ko) ====
@@ -1,3 +1,8 @@
+Tue Oct 4 23:16:26 CEST 2005 at node: creo.hu, nick: csaba
+ * Fixes in library patch
+ - trying again to get mknod right
+ - let "use_ino" option take effect
+
Fri Sep 30 16:18:46 CEST 2005 at node: creo.hu, nick: csaba
* removed superfluous unlock in fuse_root
==== //depot/projects/soc2005/fuse4bsd2/fuselib/fuselib-2.4.0-rc1.diff#2 (text+ko) ====
@@ -1,6 +1,6 @@
diff -Naur linuxfuse/example/fusexmp.c bsdfuse/example/fusexmp.c
--- linuxfuse/example/fusexmp.c Tue Sep 13 21:26:12 2005
-+++ bsdfuse/example/fusexmp.c Fri Sep 30 11:34:16 2005
++++ bsdfuse/example/fusexmp.c Tue Oct 4 23:02:55 2005
@@ -20,7 +20,12 @@
#include <fcntl.h>
#include <dirent.h>
@@ -14,7 +14,7 @@
#ifdef HAVE_SETXATTR
#include <sys/xattr.h>
#endif
-@@ -79,7 +84,17 @@
+@@ -79,7 +84,20 @@
{
int res;
@@ -25,8 +25,11 @@
+ res = mknod(path, mode, rdev);
+ else if (mode & S_IFIFO)
+ res = mkfifo(path, mode);
-+ else
++ else {
+ res = open(path, O_CREAT | O_TRUNC | O_WRONLY, mode);
++ if (res >= 0)
++ res = close(res);
++ }
+#endif
+
if(res == -1)
@@ -34,7 +37,7 @@
diff -Naur linuxfuse/example/fusexmp_fh.c bsdfuse/example/fusexmp_fh.c
--- linuxfuse/example/fusexmp_fh.c Tue Sep 13 21:26:12 2005
-+++ bsdfuse/example/fusexmp_fh.c Fri Sep 30 11:34:00 2005
++++ bsdfuse/example/fusexmp_fh.c Tue Oct 4 23:04:44 2005
@@ -17,7 +17,12 @@
#include <fcntl.h>
#include <dirent.h>
@@ -60,7 +63,7 @@
break;
}
-@@ -87,7 +96,17 @@
+@@ -87,7 +96,20 @@
{
int res;
@@ -71,18 +74,23 @@
+ res = mknod(path, mode, rdev);
+ else if (mode & S_IFIFO)
+ res = mkfifo(path, mode);
-+ else
++ else {
+ res = open(path, O_CREAT | O_TRUNC | O_WRONLY, mode);
++ if (res >= 0)
++ res = close(res);
++ }
+#endif
+
if(res == -1)
return -errno;
-@@ -268,9 +287,11 @@
+@@ -268,9 +290,13 @@
int res;
(void) path;
-+#ifndef __FreeBSD__
++#ifdef __FreeBSD__
++ (void) isdatasync;
++#else
if (isdatasync)
res = fdatasync(fi->fh);
else
@@ -124,7 +132,7 @@
#ifdef __cplusplus
diff -Naur linuxfuse/lib/fuse.c bsdfuse/lib/fuse.c
--- linuxfuse/lib/fuse.c Thu Sep 8 17:16:49 2005
-+++ bsdfuse/lib/fuse.c Fri Sep 30 11:29:31 2005
++++ bsdfuse/lib/fuse.c Fri Sep 30 17:59:29 2005
@@ -1414,7 +1414,12 @@
static int default_statfs(struct statfs *buf)
@@ -150,20 +158,18 @@
}
static void fuse_statfs(fuse_req_t req)
-@@ -1759,10 +1768,12 @@
- *d++ = ',';
- } else if (strcmp(opt, "hard_remove") == 0)
+@@ -1761,8 +1770,10 @@
f->flags |= FUSE_HARD_REMOVE;
-+#ifndef FreeBSD
else if (strcmp(opt, "use_ino") == 0)
f->flags |= FUSE_USE_INO;
++#ifndef FreeBSD
else if (strcmp(opt, "readdir_ino") == 0)
f->flags |= FUSE_READDIR_INO;
+#endif
else if (strcmp(opt, "direct_io") == 0)
f->flags |= FUSE_DIRECT_IO;
else if (strcmp(opt, "kernel_cache") == 0)
-@@ -1787,6 +1798,14 @@
+@@ -1787,6 +1798,13 @@
else
free(xopts);
}
@@ -172,7 +178,6 @@
+ * In FreeBSD, we always use these settings as inode numbers are needed to
+ * make getcwd(3) work.
+ */
-+ f->flags &= ~FUSE_USE_INO;
+ f->flags |= FUSE_READDIR_INO;
+#endif
return 0;
@@ -207,7 +212,7 @@
in->opcode != FUSE_WRITE && in->opcode != FUSE_FSYNC &&
diff -Naur linuxfuse/lib/helper.c bsdfuse/lib/helper.c
--- linuxfuse/lib/helper.c Mon Aug 15 16:03:59 2005
-+++ bsdfuse/lib/helper.c Fri Sep 30 11:29:31 2005
++++ bsdfuse/lib/helper.c Fri Sep 30 17:57:56 2005
@@ -22,7 +22,11 @@
{
if (progname)
@@ -220,12 +225,11 @@
fprintf(stderr,
"FUSE options:\n"
-@@ -44,12 +48,20 @@
- " hard_remove immediate removal (don't hide files)\n"
+@@ -45,11 +49,19 @@
" debug enable debug output\n"
" fsname=NAME set filesystem name in mtab\n"
+ " use_ino let filesystem set inode numbers\n"
+#ifndef __FreeBSD__
- " use_ino let filesystem set inode numbers\n"
" readdir_ino try to fill in d_ino in readdir\n"
+#endif
" nonempty allow mounts over non-empty file/dir\n"
More information about the p4-projects
mailing list