[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH] fs-backend: fix compile problems
Hi all, this patch removes 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> --- diff -r 9fc957e63f8d tools/fs-back/fs-backend.c --- a/tools/fs-back/fs-backend.c Tue Mar 17 15:40:25 2009 +0000 +++ b/tools/fs-back/fs-backend.c Wed Mar 18 12:00:10 2009 +0000 @@ -9,6 +9,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" @@ -181,7 +182,6 @@ { struct fs_mount *mount; struct fs_export *export; - int evt_port; struct fsif_sring *sring; uint32_t dom_ids[MAX_RING_SIZE]; int i; @@ -335,12 +335,8 @@ } 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) { @@ -379,7 +375,8 @@ { 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 9fc957e63f8d tools/fs-back/fs-ops.c --- a/tools/fs-back/fs-ops.c Tue Mar 17 15:40:25 2009 +0000 +++ b/tools/fs-back/fs-ops.c Wed Mar 18 12:00:10 2009 +0000 @@ -49,7 +49,6 @@ { 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_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 @@ 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 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 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-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |