summaryrefslogtreecommitdiff
path: root/src/netfs.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/netfs.c')
-rw-r--r--src/netfs.c146
1 files changed, 29 insertions, 117 deletions
diff --git a/src/netfs.c b/src/netfs.c
index 88ae22742..f8d0d3973 100644
--- a/src/netfs.c
+++ b/src/netfs.c
@@ -315,13 +315,13 @@ netfs_attempt_statfs (struct iouser *cred, struct node *node,
else if(FUSE_OP_HAVE(statfs))
{
+ struct statvfs stvfs;
+
refresh_context_struct(cred);
+ err = -FUSE_OP_CALL(statfs, node->nn->path, &stvfs);
- if(fuse_ops25)
+ if(! err)
{
- struct statvfs stvfs;
- err = -fuse_ops25->statfs(node->nn->path, &stvfs);
-
st->f_type = stvfs.__f_type;
st->f_bsize = stvfs.f_bsize;
st->f_blocks = stvfs.f_blocks;
@@ -335,15 +335,6 @@ netfs_attempt_statfs (struct iouser *cred, struct node *node,
st->f_frsize = stvfs.f_frsize;
st->f_flag = stvfs.f_flag;
}
-
- else if(fuse_ops_compat22)
- err = -fuse_ops_compat22->statfs(node->nn->path, st);
-
- else if(fuse_ops_compat2)
- err = -fuse_ops_compat2->statfs(node->nn->path, st);
-
- else
- assert(0);
}
else
@@ -590,15 +581,8 @@ netfs_attempt_sync (struct iouser *cred, struct node *node, int wait)
goto out;
}
- if(FUSE_OP_HAVE22(fsync))
- err = -FUSE_OP_CALL22(fsync, node->nn->path, 0, NN_INFO(node));
-
- else if(fuse_ops_compat2)
- err = -fuse_ops_compat2->fsync(node->nn->path, 0);
+ err = -FUSE_OP_CALL(fsync, node->nn->path, 0, NN_INFO(node));
- else
- assert(0);
-
if(! err)
node->nn->may_need_sync = 0;
@@ -1097,29 +1081,13 @@ error_t netfs_attempt_write (struct iouser *cred, struct node *node,
if(FUSE_OP_HAVE(open))
{
- if(FUSE_OP_HAVE22(open))
- err = FUSE_OP_CALL22(open, node->nn->path, NN_INFO(node));
-
- else if(fuse_ops_compat2)
- err = fuse_ops_compat2->open(node->nn->path,
- node->nn->info.compat22.flags);
-
- else
- assert(0);
+ err = FUSE_OP_CALL(open, node->nn->path, NN_INFO(node));
if(err) goto out;
}
- int sz;
- if(FUSE_OP_HAVE22(write))
- sz = FUSE_OP_CALL22(write, node->nn->path, data, *len, offset,
+ int sz = FUSE_OP_CALL(write, node->nn->path, data, *len, offset,
NN_INFO(node));
-
- else if(fuse_ops_compat2)
- sz = fuse_ops_compat2->write(node->nn->path, data, *len, offset);
-
- else
- assert(0);
/* FIXME: open, flush and release handling probably should be changed
* completely, I mean, we probably should do fuse_ops->open in
@@ -1128,21 +1096,11 @@ error_t netfs_attempt_write (struct iouser *cred, struct node *node,
*
* This way we wouldn't be able to report any errors back.
*/
- if(sz >= 0 && FUSE_OP_HAVE22(flush))
- err = FUSE_OP_CALL22(flush, node->nn->path, NN_INFO(node));
+ if(sz >= 0 && FUSE_OP_HAVE(flush))
+ err = FUSE_OP_CALL(flush, node->nn->path, NN_INFO(node));
if(FUSE_OP_HAVE(open) && FUSE_OP_HAVE(release))
- {
- if(FUSE_OP_HAVE22(release))
- FUSE_OP_CALL22(release, node->nn->path, NN_INFO(node));
-
- else if(fuse_ops_compat2)
- fuse_ops_compat2->release(node->nn->path,
- node->nn->info.compat22.flags);
-
- else
- assert(0);
- }
+ FUSE_OP_CALL(release, node->nn->path, NN_INFO(node));
if(sz < 0)
err = -sz;
@@ -1222,30 +1180,14 @@ error_t netfs_attempt_read (struct iouser *cred, struct node *node,
if(FUSE_OP_HAVE(open))
{
- if(FUSE_OP_HAVE22(open))
- err = FUSE_OP_CALL22(open, node->nn->path, NN_INFO(node));
-
- else if(fuse_ops_compat2)
- err = fuse_ops_compat2->open(node->nn->path,
- node->nn->info.compat22.flags);
-
- else
- assert(0);
+ err = FUSE_OP_CALL(open, node->nn->path, NN_INFO(node));
if(err) goto out;
}
- int sz;
- if(FUSE_OP_HAVE22(read))
- sz = FUSE_OP_CALL22(read, node->nn->path, data, *len, offset,
+ int sz = FUSE_OP_CALL(read, node->nn->path, data, *len, offset,
NN_INFO(node));
- else if(fuse_ops_compat2)
- sz = fuse_ops_compat2->read(node->nn->path, data, *len, offset);
-
- else
- assert(0);
-
/* FIXME: open, flush and release handling probably should be changed
* completely, I mean, we probably should do fuse_ops->open in
* the netfs_check_open_permissions function and leave it open
@@ -1253,21 +1195,11 @@ error_t netfs_attempt_read (struct iouser *cred, struct node *node,
*
* This way we wouldn't be able to report any errors back.
*/
- if(sz >= 0 && FUSE_OP_HAVE22(flush))
- err = FUSE_OP_CALL22(flush, node->nn->path, NN_INFO(node));
+ if(sz >= 0 && FUSE_OP_HAVE(flush))
+ err = FUSE_OP_CALL(flush, node->nn->path, NN_INFO(node));
if(FUSE_OP_HAVE(open) && FUSE_OP_HAVE(release))
- {
- if(FUSE_OP_HAVE22(release))
- FUSE_OP_CALL22(release, node->nn->path, NN_INFO(node));
-
- else if(fuse_ops_compat2)
- fuse_ops_compat2->release(node->nn->path,
- node->nn->info.compat22.flags);
-
- else
- assert(0);
- }
+ FUSE_OP_CALL(release, node->nn->path, NN_INFO(node));
if(sz < 0)
err = -sz;
@@ -1304,8 +1236,8 @@ fuse_get_inode(const char *name)
{
struct stat stat;
- assert(FUSE_OP_HAVE22(getattr));
- FUSE_OP_CALL22(getattr, name, &stat);
+ assert(FUSE_OP_HAVE(getattr));
+ FUSE_OP_CALL(getattr, name, &stat);
return stat.st_ino;
}
@@ -1406,18 +1338,6 @@ get_dirents_getdir_helper(fuse_dirh_t handle, const char *name,
}
-/* callback handler used by netfs_get_dirents to write our dirents
- * to the mmaped memory
- *
- * version for old api
- */
-static int
-get_dirents_getdir_helper_compat(fuse_dirh_t hdl, const char *name, int type)
-{
- return get_dirents_getdir_helper(hdl, name, type, 0);
-}
-
-
static error_t
get_dirents_getdir(struct node *dir, int first_entry, int num_entries,
char **data, mach_msg_type_number_t *data_len,
@@ -1455,15 +1375,7 @@ get_dirents_getdir(struct node *dir, int first_entry, int num_entries,
handle->parent = dir->nn;
handle->hdrpos = (struct dirent*) *data;
- if(FUSE_OP_HAVE22(getdir))
- FUSE_OP_CALL22(getdir, dir->nn->path, handle, get_dirents_getdir_helper);
-
- else if(fuse_ops_compat2)
- fuse_ops_compat2->getdir(dir->nn->path, handle,
- get_dirents_getdir_helper_compat);
-
- else
- assert(0);
+ FUSE_OP_CALL(getdir, dir->nn->path, handle, get_dirents_getdir_helper);
*data_len -= handle->size; /* subtract number of bytes left in the
* buffer from the length of the buffer we
@@ -1591,7 +1503,7 @@ get_dirents_readdir(struct node *dir, int first_entry, int num_entries,
error_t err;
FUNC_PROLOGUE_NODE("get_dirents_readdir", dir);
- assert(FUSE_OP_HAVE22(readdir));
+ assert(FUSE_OP_HAVE(readdir));
fuse_dirh_t handle;
if(! (handle = malloc(sizeof(struct fuse_dirhandle))))
@@ -1620,21 +1532,21 @@ get_dirents_readdir(struct node *dir, int first_entry, int num_entries,
handle->parent = dir->nn;
handle->hdrpos = (struct dirent*) *data;
- if(FUSE_OP_HAVE22(opendir)
- && (err = FUSE_OP_CALL22(opendir, dir->nn->path, NN_INFO(dir))))
+ if(FUSE_OP_HAVE(opendir)
+ && (err = FUSE_OP_CALL(opendir, dir->nn->path, NN_INFO(dir))))
goto out;
- if((err = FUSE_OP_CALL22(readdir, dir->nn->path, handle,
- get_dirents_readdir_helper,
- first_entry, NN_INFO(dir))))
+ if((err = FUSE_OP_CALL(readdir, dir->nn->path, handle,
+ get_dirents_readdir_helper,
+ first_entry, NN_INFO(dir))))
{
- if(FUSE_OP_HAVE22(releasedir))
- FUSE_OP_CALL22(releasedir, dir->nn->path, NN_INFO(dir));
+ if(FUSE_OP_HAVE(releasedir))
+ FUSE_OP_CALL(releasedir, dir->nn->path, NN_INFO(dir));
goto out;
}
- if(FUSE_OP_HAVE22(releasedir)
- && (err = FUSE_OP_CALL22(releasedir, dir->nn->path, NN_INFO(dir))))
+ if(FUSE_OP_HAVE(releasedir)
+ && (err = FUSE_OP_CALL(releasedir, dir->nn->path, NN_INFO(dir))))
goto out;
*data_len -= handle->size; /* subtract number of bytes left in the
@@ -1668,7 +1580,7 @@ netfs_get_dirents (struct iouser *cred, struct node *dir,
goto out;
- if(FUSE_OP_HAVE22(readdir))
+ if(FUSE_OP_HAVE(readdir))
err = get_dirents_readdir(dir, first_entry, num_entries, data, data_len,
data_entries);