summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Szeredi <miklos@szeredi.hu>2004-11-08 17:32:25 +0000
committerMiklos Szeredi <miklos@szeredi.hu>2004-11-08 17:32:25 +0000
commitd507c73e8fda72305b3e172ac7686c05d2dd73da (patch)
tree877c6bbe1c1c01b695bfb46b8c026996b531ee9c
parent8fb48feb5024d2aa9083690e472f1b1072cb8169 (diff)
downloadfuse-d507c73e8fda72305b3e172ac7686c05d2dd73da.tar.gz
fix
-rw-r--r--ChangeLog11
-rw-r--r--example/fusexmp.c2
-rw-r--r--example/hello.c2
-rw-r--r--include/fuse.h19
4 files changed, 21 insertions, 13 deletions
diff --git a/ChangeLog b/ChangeLog
index b065e2a..9eda3cf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,10 +1,11 @@
2004-11-08 Miklos Szeredi <miklos@szeredi.hu>
- * Add ino argument to 'fuse_dirfil_t'. NOTE: this is a backward
- compatible change (if "use_ino" mount option is not specified),
- but causes a warning when compiling filesystems not converted to
- the new type.
-
+ * Add ino argument to 'fuse_dirfil_t'. NOTE: This breaks source
+ compatibility with earlier versions. To compile earier versions
+ just add '-DFUSE_DIRFIL_COMPAT' compile flag or fix the source.
+ Do not use the "use_ino" mount flag with filesystems compiled with
+ FUSE_DIRFIL_COMPAT.
+
2004-11-02 Miklos Szeredi <miklos@szeredi.hu>
* Added "use_ino" mount option. This enables the filesystems to
diff --git a/example/fusexmp.c b/example/fusexmp.c
index 57045be..02d0363 100644
--- a/example/fusexmp.c
+++ b/example/fusexmp.c
@@ -49,7 +49,7 @@ static int xmp_readlink(const char *path, char *buf, size_t size)
}
-static int xmp_getdir(const char *path, fuse_dirh_t h, fuse_dirfil2_t filler)
+static int xmp_getdir(const char *path, fuse_dirh_t h, fuse_dirfil_t filler)
{
DIR *dp;
struct dirent *de;
diff --git a/example/hello.c b/example/hello.c
index 37020b2..5065fb7 100644
--- a/example/hello.c
+++ b/example/hello.c
@@ -35,7 +35,7 @@ static int hello_getattr(const char *path, struct stat *stbuf)
return res;
}
-static int hello_getdir(const char *path, fuse_dirh_t h, fuse_dirfil2_t filler)
+static int hello_getdir(const char *path, fuse_dirh_t h, fuse_dirfil_t filler)
{
if(strcmp(path, "/") != 0)
return -ENOENT;
diff --git a/include/fuse.h b/include/fuse.h
index 8a0fd3c..a5115ee 100644
--- a/include/fuse.h
+++ b/include/fuse.h
@@ -50,11 +50,8 @@ typedef struct fuse_dirhandle *fuse_dirh_t;
* not specified
* @return 0 on success, -errno on error
*/
-typedef int (*fuse_dirfil2_t) (fuse_dirh_t h, const char *name, int type,
- ino_t ino);
-
-/** Obsolete version of the above function */
-typedef int (*fuse_dirfil_t) (fuse_dirh_t h, const char *name, int type);
+typedef int (*fuse_dirfil_t) (fuse_dirh_t h, const char *name, int type,
+ ino_t ino);
/**
* The file system operations:
@@ -116,7 +113,7 @@ typedef int (*fuse_dirfil_t) (fuse_dirh_t h, const char *name, int type);
struct fuse_operations {
int (*getattr) (const char *, struct stat *);
int (*readlink) (const char *, char *, size_t);
- int (*getdir) (const char *, fuse_dirh_t, fuse_dirfil2_t);
+ int (*getdir) (const char *, fuse_dirh_t, fuse_dirfil_t);
int (*mknod) (const char *, mode_t, dev_t);
int (*mkdir) (const char *, mode_t);
int (*unlink) (const char *);
@@ -294,6 +291,16 @@ int __fuse_loop_mt(struct fuse *f, fuse_processor_t proc, void *data);
int __fuse_exited(struct fuse* f);
void __fuse_set_getcontext_func(struct fuse_context *(*func)(void));
+
+/* ----------------------------------------------------------- *
+ * Compatibility cruft *
+ * ----------------------------------------------------------- */
+
+#ifdef FUSE_DIRFIL_COMPAT
+typedef int (*fuse_dirfil_old_t) (fuse_dirh_t h, const char *name, int type);
+#define fuse_dirfil_t fuse_dirfil_old_t
+#endif
+
#ifdef __cplusplus
}
#endif