[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] fs-back: build fixes



# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1237382725 0
# Node ID fe4b23bd3a954a640c922202249688eb1b981ce0
# Parent  b8242b82b561712cbd509ad015702d74fcc07e56
fs-back: build fixes

Remove some unused variables and replaces read and write
to the pipe with read_exact and write_exact (these two functions are
implemented in libxc, that we have to link anyway).

This allows fs-backed to be compiled with -D_FORTIFY_SOURCE=2, hence
should fix the problems reported by Boris.

Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
---
 tools/fs-back/fs-backend.c |   13 +++++--------
 tools/fs-back/fs-ops.c     |    7 ++-----
 2 files changed, 7 insertions(+), 13 deletions(-)

diff -r b8242b82b561 -r fe4b23bd3a95 tools/fs-back/fs-backend.c
--- a/tools/fs-back/fs-backend.c        Wed Mar 18 13:24:42 2009 +0000
+++ b/tools/fs-back/fs-backend.c        Wed Mar 18 13:25:25 2009 +0000
@@ -10,6 +10,7 @@
 #include <sys/select.h>
 #include <sys/socket.h>
 #include <xen/io/ring.h>
+#include <xc_private.h>
 #include <err.h>
 #include "sys-queue.h"
 #include "fs-backend.h"
@@ -182,7 +183,6 @@ static void handle_connection(int fronte
 {
     struct fs_mount *mount;
     struct fs_export *export;
-    int evt_port;
     struct fsif_sring *sring;
     uint32_t dom_ids[MAX_RING_SIZE];
     int i;
@@ -336,12 +336,8 @@ static void await_connections(void)
         }
         if (FD_ISSET(pipefds[0], &fds)) {
             struct fs_request *request;
-            int ret;
-            ret = read(pipefds[0], &request, sizeof(struct fs_request *));
-            if (ret != sizeof(struct fs_request *)) {
-                fprintf(stderr, "read request failed\n");
-                continue;
-            }
+            if (read_exact(pipefds[0], &request, sizeof(struct fs_request *)) 
< 0)
+                err(1, "read request failed\n");
             handle_aio_event(request); 
         }
         LIST_FOREACH(pointer, &mount_requests_head, entries) {
@@ -380,7 +376,8 @@ static void aio_signal_handler(int signo
 {
     struct fs_request *request = (struct fs_request*) info->si_value.sival_ptr;
     int saved_errno = errno;
-    write(pipefds[1], &request, sizeof(struct fs_request *));
+    if (write_exact(pipefds[1], &request, sizeof(struct fs_request *)) < 0)
+        err(1, "write request filed\n");
     errno = saved_errno;
 }
 
diff -r b8242b82b561 -r fe4b23bd3a95 tools/fs-back/fs-ops.c
--- a/tools/fs-back/fs-ops.c    Wed Mar 18 13:24:42 2009 +0000
+++ b/tools/fs-back/fs-ops.c    Wed Mar 18 13:25:25 2009 +0000
@@ -49,7 +49,6 @@ static void dispatch_file_open(struct fs
 {
     char *file_name, full_path[BUFFER_SIZE];
     int fd;
-    struct timeval tv1, tv2;
     RING_IDX rsp_idx;
     fsif_response_t *rsp;
     uint16_t req_id;
@@ -127,7 +126,7 @@ static void dispatch_file_read(struct fs
 static void dispatch_file_read(struct fs_mount *mount, struct fsif_request 
*req)
 {
     void *buf;
-    int fd, i, count;
+    int fd, count;
     uint16_t req_id;
     unsigned short priv_id;
     struct fs_request *priv_req;
@@ -169,7 +168,6 @@ static void dispatch_file_read(struct fs
     priv_req->aiocb.aio_sigevent.sigev_value.sival_ptr = priv_req;
     assert(aio_read(&priv_req->aiocb) >= 0);
 
-out: 
     /* We can advance the request consumer index, from here on, the request
      * should not be used (it may be overrinden by a response) */
     mount->ring.req_cons++;
@@ -198,7 +196,7 @@ static void dispatch_file_write(struct f
 static void dispatch_file_write(struct fs_mount *mount, struct fsif_request 
*req)
 {
     void *buf;
-    int fd, count, i;
+    int fd, count;
     uint16_t req_id;
     unsigned short priv_id;
     struct fs_request *priv_req;
@@ -268,7 +266,6 @@ static void end_file_write(struct fs_mou
 
 static void dispatch_stat(struct fs_mount *mount, struct fsif_request *req)
 {
-    struct fsif_stat_response *buf;
     struct stat stat;
     int fd, ret;
     uint16_t req_id;

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.