From: Paolo 'Blaisorblade' Giarrusso * Fix the use of errno: it refers to the __errno_location glibc definition when in ubd_user.c, and hence works; but in ubd_kern.c it refers to kernel_errno, which is different. So use the return value of os_* functions, as we should always have done. * Remove {read,write}_ubd_fs(), which are just silly. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton --- 25-akpm/arch/um/drivers/ubd_kern.c | 21 ++++----------------- 1 files changed, 4 insertions(+), 17 deletions(-) diff -puN arch/um/drivers/ubd_kern.c~uml-fix-and-cleanup-code-in-ubd_kernc-coming-from-ubd_userc arch/um/drivers/ubd_kern.c --- 25/arch/um/drivers/ubd_kern.c~uml-fix-and-cleanup-code-in-ubd_kernc-coming-from-ubd_userc Thu Jan 13 15:32:21 2005 +++ 25-akpm/arch/um/drivers/ubd_kern.c Thu Jan 13 15:32:21 2005 @@ -83,8 +83,6 @@ extern int create_cow_file(char *cow_fil unsigned long *bitmap_len_out, int *data_offset_out); extern int read_cow_bitmap(int fd, void *buf, int offset, int len); -extern int read_ubd_fs(int fd, void *buffer, int len); -extern int write_ubd_fs(int fd, char *buffer, int len); extern void do_io(struct io_thread_req *req); static inline int ubd_test_bit(__u64 bit, unsigned char *data) @@ -323,7 +321,7 @@ static int ubd_setup_common(char *str, i } if(!strcmp(str, "sync")){ - global_openflags.s = 1; + global_openflags = of_sync(global_openflags); return(0); } major = simple_strtoul(str, &end, 0); @@ -513,7 +511,7 @@ static void ubd_handler(void) do_ubd = NULL; intr_count++; - n = read_ubd_fs(thread_fd, &req, sizeof(req)); + n = os_read_file(thread_fd, &req, sizeof(req)); if(n != sizeof(req)){ printk(KERN_ERR "Pid %d - spurious interrupt in ubd_handler, " "err = %d\n", os_getpid(), -n); @@ -1155,7 +1153,7 @@ static void do_ubd_request(request_queue err = prepare_request(req, &io_req); if(!err){ do_ubd = ubd_handler; - n = write_ubd_fs(thread_fd, (char *) &io_req, + n = os_write_file(thread_fd, (char *) &io_req, sizeof(io_req)); if(n != sizeof(io_req)) printk("write to io thread failed, " @@ -1436,7 +1434,7 @@ int open_ubd_file(char *file, struct ope if((fd == -ENOENT) && (create_cow_out != NULL)) *create_cow_out = 1; if(!openflags->w || - ((errno != EROFS) && (errno != EACCES))) return(-errno); + ((fd != -EROFS) && (fd != -EACCES))) return(fd); openflags->w = 0; fd = os_open_file(file, *openflags, mode); if(fd < 0) @@ -1513,17 +1511,6 @@ int create_cow_file(char *cow_file, char return(err); } -/* XXX Just trivial wrappers around os_read_file and os_write_file */ -int read_ubd_fs(int fd, void *buffer, int len) -{ - return(os_read_file(fd, buffer, len)); -} - -int write_ubd_fs(int fd, char *buffer, int len) -{ - return(os_write_file(fd, buffer, len)); -} - static int update_bitmap(struct io_thread_req *req) { int n; _