src/dbfs/attr.c
changeset 41 6abda2fa4579
parent 36 56427f22e969
child 48 8b019d191353
--- a/src/dbfs/attr.c	Wed Oct 22 21:07:17 2008 +0300
+++ b/src/dbfs/attr.c	Tue Nov 18 01:55:13 2008 +0200
@@ -50,6 +50,7 @@
 
 void dbfs_getattr (struct fuse_req *req, fuse_ino_t ino, struct fuse_file_info *fi) {
     struct dbfs *ctx = fuse_req_userdata(req);
+    struct evsql_query *query;
     int err;
     
     (void) fi;
@@ -75,10 +76,11 @@
         SERROR(err = EIO);
         
     // query
-    if (evsql_query_params(ctx->db, NULL, sql, &params, _dbfs_attr_res, req) == NULL)
+    if ((query = evsql_query_params(ctx->db, NULL, sql, &params, _dbfs_attr_res, req)) == NULL)
         SERROR(err = EIO);
 
-    // XXX: handle interrupts
+    // handle interrupts
+    fuse_req_interrupt_func(req, dbfs_interrupt_query, query);
     
     // wait
     return;
@@ -91,6 +93,7 @@
 
 void dbfs_setattr (struct fuse_req *req, fuse_ino_t ino, struct stat *attr, int to_set, struct fuse_file_info *fi) {
     struct dbfs *ctx = fuse_req_userdata(req);
+    struct evsql_query *query;
     int err;
     int ret;
     
@@ -160,10 +163,11 @@
     evsql_query_debug(sql_buf, &params);
     
     // query... we can pretend it's a getattr :)
-    if (evsql_query_params(ctx->db, NULL, sql_buf, &params, _dbfs_attr_res, req) == NULL)
+    if ((query = evsql_query_params(ctx->db, NULL, sql_buf, &params, _dbfs_attr_res, req)) == NULL)
         SERROR(err = EIO);
 
-    // XXX: handle interrupts
+    // handle interrupts
+    fuse_req_interrupt_func(req, dbfs_interrupt_query, query);
     
     // wait
     return;