fs-backend: fix FD allocation for file creation
authorKeir Fraser <keir.fraser@citrix.com>
Fri, 25 Jul 2008 08:49:06 +0000 (09:49 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Fri, 25 Jul 2008 08:49:06 +0000 (09:49 +0100)
The creation operation also opens a file, we need to allocate a
virtual fd for that too.

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
tools/fs-back/fs-ops.c

index 6315a4d9759b1218b4dafa0932715386fdfce6ad..f9f7d4a4ba2e1ae5cd09013dab5373489d98f73f 100644 (file)
@@ -459,7 +459,17 @@ void dispatch_create(struct mount *mount, struct fsif_request *req)
     else
     {
         printf("Issuing create for file: %s\n", full_path);
-        ret = creat(full_path, mode); 
+        ret = get_fd(mount);
+        if (ret >= 0) {
+            int real_fd = creat(full_path, mode); 
+            if (real_fd < 0)
+                ret = -1;
+            else
+            {
+                mount->fds[ret] = real_fd;
+                printf("Got FD: %d for real %d\n", ret, real_fd);
+            }
+        }
     }
     printf("Got ret %d (errno=%d)\n", ret, errno);