aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiklos Szeredi <miklos@szeredi.hu>2009-05-25 15:02:52 +0000
committerMiklos Szeredi <miklos@szeredi.hu>2009-05-25 15:02:52 +0000
commit78cbfe5972209b0a32453f127dcc9f652eedeeaa (patch)
treeace24f3ec4b3d6a2f2d11506ef4c42a1ea1174a0
parent5be4599b702f3027a2c9c4486a2afcac2cb19220 (diff)
downloadandroid_external_fuse-78cbfe5972209b0a32453f127dcc9f652eedeeaa.tar.gz
android_external_fuse-78cbfe5972209b0a32453f127dcc9f652eedeeaa.tar.bz2
android_external_fuse-78cbfe5972209b0a32453f127dcc9f652eedeeaa.zip
Add FUSE_CAP_EXPORT_SUPPORT to fuse_common.h
-rw-r--r--ChangeLog4
-rw-r--r--include/fuse_common.h2
-rw-r--r--lib/fuse_lowlevel.c4
3 files changed, 10 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index cb34571..b976a70 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2009-05-25 Miklos Szeredi <miklos@szeredi.hu>
+
+ * Add FUSE_CAP_EXPORT_SUPPORT to fuse_common.h
+
2009-05-08 Miklos Szeredi <miklos@szeredi.hu>
* Fix missing newlines in some printfs
diff --git a/include/fuse_common.h b/include/fuse_common.h
index b05ed21..ba341b3 100644
--- a/include/fuse_common.h
+++ b/include/fuse_common.h
@@ -86,11 +86,13 @@ struct fuse_file_info {
* FUSE_CAP_ASYNC_READ: filesystem supports asynchronous read requests
* FUSE_CAP_POSIX_LOCKS: filesystem supports "remote" locking
* FUSE_CAP_ATOMIC_O_TRUNC: filesystem handles the O_TRUNC open flag
+ * FUSE_CAP_EXPORT_SUPPORT: filesystem handles lookups of "." and ".."
* FUSE_CAP_BIG_WRITES: filesystem can handle write size larger than 4kB
*/
#define FUSE_CAP_ASYNC_READ (1 << 0)
#define FUSE_CAP_POSIX_LOCKS (1 << 1)
#define FUSE_CAP_ATOMIC_O_TRUNC (1 << 3)
+#define FUSE_CAP_EXPORT_SUPPORT (1 << 4)
#define FUSE_CAP_BIG_WRITES (1 << 5)
/**
diff --git a/lib/fuse_lowlevel.c b/lib/fuse_lowlevel.c
index e62e358..63a0668 100644
--- a/lib/fuse_lowlevel.c
+++ b/lib/fuse_lowlevel.c
@@ -1174,6 +1174,8 @@ static void do_init(fuse_req_t req, fuse_ino_t nodeid, const void *inarg)
f->conn.capable |= FUSE_CAP_POSIX_LOCKS;
if (arg->flags & FUSE_ATOMIC_O_TRUNC)
f->conn.capable |= FUSE_CAP_ATOMIC_O_TRUNC;
+ if (arg->flags & FUSE_EXPORT_SUPPORT)
+ f->conn.capable |= FUSE_CAP_EXPORT_SUPPORT;
if (arg->flags & FUSE_BIG_WRITES)
f->conn.capable |= FUSE_CAP_BIG_WRITES;
} else {
@@ -1211,6 +1213,8 @@ static void do_init(fuse_req_t req, fuse_ino_t nodeid, const void *inarg)
outarg.flags |= FUSE_POSIX_LOCKS;
if (f->conn.want & FUSE_CAP_ATOMIC_O_TRUNC)
outarg.flags |= FUSE_ATOMIC_O_TRUNC;
+ if (f->conn.want & FUSE_CAP_EXPORT_SUPPORT)
+ outarg.flags |= FUSE_EXPORT_SUPPORT;
if (f->conn.want & FUSE_CAP_BIG_WRITES)
outarg.flags |= FUSE_BIG_WRITES;
outarg.max_readahead = f->conn.max_readahead;