preparations for cred checking in fs
diff --git a/lib/fuse.c b/lib/fuse.c
index 03f814c..0a0b40a 100644
--- a/lib/fuse.c
+++ b/lib/fuse.c
@@ -290,7 +290,6 @@
     pthread_mutex_unlock(&f->lock);
 }
 
-
 static void convert_stat(struct stat *stbuf, struct fuse_attr *attr)
 {
     attr->mode    = stbuf->st_mode;
@@ -442,7 +441,7 @@
 }        
 
 static int do_chown(struct fuse *f, const char *path, struct fuse_attr *attr,
-             int valid)
+                    int valid)
 {
     int res;
     uid_t uid = (valid & FATTR_UID) ? attr->uid : (uid_t) -1;
@@ -912,7 +911,15 @@
     }
 }
 
-struct fuse *fuse_new(int fd, int flags)
+struct fuse_context *fuse_get_context(struct fuse *f)
+{
+    if(f->getcontext)
+        return f->getcontext(f);
+    else
+        return &f->context;
+}
+
+struct fuse *fuse_new(int fd, int flags, const struct fuse_operations *op)
 {
     struct fuse *f;
     struct node *root;
@@ -943,6 +950,10 @@
     pthread_mutex_init(&f->lock, NULL);
     f->numworker = 0;
     f->numavail = 0;
+    f->op = *op;
+    f->getcontext = NULL;
+    f->context.uid = 0;
+    f->context.gid = 0;
 
     root = (struct node *) calloc(1, sizeof(struct node));
     root->mode = 0;
@@ -954,11 +965,6 @@
     return f;
 }
 
-void fuse_set_operations(struct fuse *f, const struct fuse_operations *op)
-{
-    f->op = *op;
-}
-
 void fuse_destroy(struct fuse *f)
 {
     size_t i;