aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNikolaus Rath <Nikolaus@rath.org>2016-10-09 14:19:33 -0700
committerGitHub <noreply@github.com>2016-10-09 14:19:33 -0700
commit039b9fa28ff1a7804a9fb81e18ec436e42d59193 (patch)
treecd422c4a0e044ac147fe6587a46fc2b4e86727b8
parent9f19d71a766af5881cf763e6ce8d6c1bafe8ada5 (diff)
parent52dec7ffdd36074017a3f00d54acc2901b73ea67 (diff)
downloadlibfuse-039b9fa28ff1a7804a9fb81e18ec436e42d59193.tar.gz
Merge pull request #80 from libfuse/master-proposed
-rw-r--r--ChangeLog.rst4
-rw-r--r--example/.gitignore1
-rw-r--r--example/Makefile.am2
-rw-r--r--example/null.c108
-rw-r--r--example/timefs2.c4
-rw-r--r--include/fuse_lowlevel.h2
-rw-r--r--lib/fuse_lowlevel.c1
7 files changed, 9 insertions, 113 deletions
diff --git a/ChangeLog.rst b/ChangeLog.rst
index 654792c..e029cd6 100644
--- a/ChangeLog.rst
+++ b/ChangeLog.rst
@@ -1,6 +1,10 @@
Unreleased Changes
==================
+* Removed ``example/null.c``. This has not been working for a while
+ for unknown reasons -- maybe because it tries to treat the
+ mountpoint as a file rather than a directory?
+
* There is a new ``timefs3`` example that demonstrates the use of
`fuse_lowlevel_notify_inval_entry`.
diff --git a/example/.gitignore b/example/.gitignore
index fb2633e..a738dbc 100644
--- a/example/.gitignore
+++ b/example/.gitignore
@@ -1,6 +1,5 @@
/fusexmp
/fusexmp_fh
-/null
/hello
/hello_ll
/fioc
diff --git a/example/Makefile.am b/example/Makefile.am
index 40f882b..7ddd7d9 100644
--- a/example/Makefile.am
+++ b/example/Makefile.am
@@ -2,7 +2,7 @@
AM_CPPFLAGS = -I$(top_srcdir)/include -D_REENTRANT
noinst_HEADERS = fioc.h
-noinst_PROGRAMS = fusexmp fusexmp_fh null hello hello_ll fioc fioclient \
+noinst_PROGRAMS = fusexmp fusexmp_fh hello hello_ll fioc fioclient \
fsel fselclient cusexmp fuse_lo-plus timefs1 timefs2 \
timefs3
diff --git a/example/null.c b/example/null.c
deleted file mode 100644
index 1ff1954..0000000
--- a/example/null.c
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- FUSE: Filesystem in Userspace
- Copyright (C) 2001-2007 Miklos Szeredi <miklos@szeredi.hu>
-
- This program can be distributed under the terms of the GNU GPL.
- See the file COPYING.
-*/
-
-/** @file
- *
- * null.c - FUSE: Filesystem in Userspace
- *
- * \section section_compile compiling this example
- *
- * gcc -Wall null.c `pkg-config fuse3 --cflags --libs` -o null
- *
- * \section section_source the complete source
- * \include null.c
- */
-
-
-#define FUSE_USE_VERSION 30
-
-#include <config.h>
-
-#include <fuse.h>
-#include <string.h>
-#include <unistd.h>
-#include <time.h>
-#include <errno.h>
-
-static int null_getattr(const char *path, struct stat *stbuf)
-{
- if(strcmp(path, "/") != 0)
- return -ENOENT;
-
- stbuf->st_mode = S_IFREG | 0644;
- stbuf->st_nlink = 1;
- stbuf->st_uid = getuid();
- stbuf->st_gid = getgid();
- stbuf->st_size = (1ULL << 32); /* 4G */
- stbuf->st_blocks = 0;
- stbuf->st_atime = stbuf->st_mtime = stbuf->st_ctime = time(NULL);
-
- return 0;
-}
-
-static int null_truncate(const char *path, off_t size)
-{
- (void) size;
-
- if(strcmp(path, "/") != 0)
- return -ENOENT;
-
- return 0;
-}
-
-static int null_open(const char *path, struct fuse_file_info *fi)
-{
- (void) fi;
-
- if(strcmp(path, "/") != 0)
- return -ENOENT;
-
- return 0;
-}
-
-static int null_read(const char *path, char *buf, size_t size,
- off_t offset, struct fuse_file_info *fi)
-{
- (void) buf;
- (void) offset;
- (void) fi;
-
- if(strcmp(path, "/") != 0)
- return -ENOENT;
-
- if (offset >= (1ULL << 32))
- return 0;
-
- return size;
-}
-
-static int null_write(const char *path, const char *buf, size_t size,
- off_t offset, struct fuse_file_info *fi)
-{
- (void) buf;
- (void) offset;
- (void) fi;
-
- if(strcmp(path, "/") != 0)
- return -ENOENT;
-
- return size;
-}
-
-static struct fuse_operations null_oper = {
- .getattr = null_getattr,
- .truncate = null_truncate,
- .open = null_open,
- .read = null_read,
- .write = null_write,
-};
-
-int main(int argc, char *argv[])
-{
- return fuse_main(argc, argv, &null_oper, NULL);
-}
diff --git a/example/timefs2.c b/example/timefs2.c
index 1d3cbd5..3194230 100644
--- a/example/timefs2.c
+++ b/example/timefs2.c
@@ -291,8 +291,8 @@ static void* update_fs(void *data) {
now = localtime(&t);
assert(now != NULL);
- file_size= strftime(file_contents, MAX_STR_LEN,
- "The current time is %H:%M:%S\n", now);
+ file_size = strftime(file_contents, MAX_STR_LEN,
+ "The current time is %H:%M:%S\n", now);
assert(file_size != 0);
if (!options.no_notify && lookup_cnt) {
/* Only send notification if the kernel
diff --git a/include/fuse_lowlevel.h b/include/fuse_lowlevel.h
index 58c0dfa..a834eba 100644
--- a/include/fuse_lowlevel.h
+++ b/include/fuse_lowlevel.h
@@ -1625,7 +1625,7 @@ struct fuse_cmdline_opts {
* removed from *args*.
*
* If --help or --version is specified, the appropriate information is
- * printed to stdout and the function proceeds normally.
+ * printed to stdout and the function returns -1.
*
* If neither -o subtype= or -o fsname= options are given, the subtype
* is set to the basename of the program (the fsname defaults to
diff --git a/lib/fuse_lowlevel.c b/lib/fuse_lowlevel.c
index 4ad5daf..8d4ad36 100644
--- a/lib/fuse_lowlevel.c
+++ b/lib/fuse_lowlevel.c
@@ -2279,6 +2279,7 @@ int fuse_lowlevel_notify_retrieve(struct fuse_session *se, fuse_ino_t ino,
outarg.nodeid = ino;
outarg.offset = offset;
outarg.size = size;
+ outarg.padding = 0;
iov[1].iov_base = &outarg;
iov[1].iov_len = sizeof(outarg);