diff options
author | Jeff Garzik <jeff@garzik.org> | 2006-08-06 05:10:54 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-08-06 05:10:54 -0400 |
commit | 9323c5dbf69248ee7baae627c42866353b993784 (patch) | |
tree | 9f4b38ef79b82857598f5ee0de8724b3cbe5b570 | |
parent | e8b8341d44c0dcfab2ba016449d51e1579a9894a (diff) | |
download | dbfs-9323c5dbf69248ee7baae627c42866353b993784.tar.gz |
Implement fsync, fsyncdir ops. Largely no-op.
Also, move releasedir op code to a new position in the file.
No code changes to dbfs_op_releasedir().
-rw-r--r-- | dbfs.c | 36 |
1 files changed, 25 insertions, 11 deletions
@@ -424,6 +424,13 @@ err_out: fuse_reply_err(req, -rc); } +static void dbfs_op_fsync (fuse_req_t req, fuse_ino_t ino, + int datasync, struct fuse_file_info *fi) +{ + /* DB should have already sync'd our data for us */ + fuse_reply_err(req, 0); +} + static void dbfs_op_opendir(fuse_req_t req, fuse_ino_t ino, struct fuse_file_info *fi) { @@ -444,15 +451,6 @@ static void dbfs_op_opendir(fuse_req_t req, fuse_ino_t ino, fuse_reply_open(req, fi); } -static void dbfs_op_releasedir(fuse_req_t req, fuse_ino_t ino, - struct fuse_file_info *fi) -{ - void *p = (void *) (unsigned long) fi->fh; - - /* release directory contents */ - free(p); -} - struct dirbuf { char *p; size_t size; @@ -515,6 +513,22 @@ static void dbfs_op_readdir(fuse_req_t req, fuse_ino_t ino, size_t size, free(b.p); } +static void dbfs_op_releasedir(fuse_req_t req, fuse_ino_t ino, + struct fuse_file_info *fi) +{ + void *p = (void *) (unsigned long) fi->fh; + + /* release directory contents */ + free(p); +} + +static void dbfs_op_fsyncdir (fuse_req_t req, fuse_ino_t ino, + int datasync, struct fuse_file_info *fi) +{ + /* DB should have already sync'd our data for us */ + fuse_reply_err(req, 0); +} + static void dbfs_op_setxattr(fuse_req_t req, fuse_ino_t ino, const char *name, const char *value, size_t size, int flags) @@ -636,11 +650,11 @@ static struct fuse_lowlevel_ops dbfs_ops = { .write = dbfs_op_write, .flush = NULL, .release = NULL, - .fsync = NULL, + .fsync = dbfs_op_fsync, .opendir = dbfs_op_opendir, .readdir = dbfs_op_readdir, .releasedir = dbfs_op_releasedir, - .fsyncdir = NULL, + .fsyncdir = dbfs_op_fsyncdir, .statfs = NULL, .setxattr = dbfs_op_setxattr, .getxattr = dbfs_op_getxattr, |