From d507c73e8fda72305b3e172ac7686c05d2dd73da Mon Sep 17 00:00:00 2001 From: Miklos Szeredi Date: Mon, 8 Nov 2004 17:32:25 +0000 Subject: [PATCH] fix --- ChangeLog | 11 ++++++----- example/fusexmp.c | 2 +- example/hello.c | 2 +- include/fuse.h | 19 +++++++++++++------ 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 - * 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 * 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