[PATCH] uml: tidying COW code
authorPaolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Fri, 24 Feb 2006 21:03:58 +0000 (13:03 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Fri, 24 Feb 2006 22:31:37 +0000 (14:31 -0800)
Improve (especially for coherence) some prototypes, and return code of
init_cow_file in error case - for a short write return -EINVAL, otherwise
return the error we got!

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Acked-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/um/drivers/cow.h
arch/um/drivers/cow_sys.h
arch/um/drivers/cow_user.c
arch/um/drivers/ubd_kern.c

index dc36b22..04e3958 100644 (file)
@@ -46,7 +46,7 @@ extern int file_reader(__u64 offset, char *buf, int len, void *arg);
 extern int read_cow_header(int (*reader)(__u64, char *, int, void *),
                           void *arg, __u32 *version_out,
                           char **backing_file_out, time_t *mtime_out,
-                          unsigned long long *size_out, int *sectorsize_out,
+                          __u64 *size_out, int *sectorsize_out,
                           __u32 *align_out, int *bitmap_offset_out);
 
 extern int write_cow_header(char *cow_file, int fd, char *backing_file,
index df25263..94de4ea 100644 (file)
@@ -23,12 +23,12 @@ static inline char *cow_strdup(char *str)
        return(uml_strdup(str));
 }
 
-static inline int cow_seek_file(int fd, unsigned long long offset)
+static inline int cow_seek_file(int fd, __u64 offset)
 {
        return(os_seek_file(fd, offset));
 }
 
-static inline int cow_file_size(char *file, unsigned long long *size_out)
+static inline int cow_file_size(char *file, __u64 *size_out)
 {
        return(os_file_size(file, size_out));
 }
index d1c86bc..61951b7 100644 (file)
@@ -362,7 +362,8 @@ int init_cow_file(int fd, char *cow_file, char *backing_file, int sectorsize,
        if(err != sizeof(zero)){
                cow_printf("Write of bitmap to new COW file '%s' failed, "
                           "err = %d\n", cow_file, -err);
-               err = -EINVAL;
+               if (err >= 0)
+                       err = -EINVAL;
                goto out;
        }
 
index 101efd2..fa617e0 100644 (file)
@@ -1135,7 +1135,7 @@ static int path_requires_switch(char *from_cmdline, char *from_cow, char *cow)
 static int backing_file_mismatch(char *file, __u64 size, time_t mtime)
 {
        unsigned long modtime;
-       long long actual;
+       unsigned long long actual;
        int err;
 
        err = os_file_modtime(file, &modtime);