Add FUSE_CAP_EXPORT_SUPPORT to fuse_common.h
authorMiklos Szeredi <miklos@szeredi.hu>
Mon, 25 May 2009 15:02:52 +0000 (15:02 +0000)
committerMiklos Szeredi <miklos@szeredi.hu>
Mon, 25 May 2009 15:02:52 +0000 (15:02 +0000)
ChangeLog
include/fuse_common.h
lib/fuse_lowlevel.c

index cb34571ff6f98d3d6db6bcdf45e729c98d910650..b976a70474893be30e62f82a5a69b6091e5e6ac2 100644 (file)
--- 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
index b05ed216661905934fbe86fc682b976bbd58179c..ba341b3abc5e93e56986cebe50319726ee13b33d 100644 (file)
@@ -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)
 
 /**
index e62e35851a9ab93d22154a2f038cae84dede824d..63a06683dd83bd82f6990c6f5fb60957fee6b05f 100644 (file)
@@ -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;