WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] Revert 11728:30f13007be. Breaks Solaris g

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] Revert 11728:30f13007be. Breaks Solaris guests.
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Tue, 10 Oct 2006 22:01:08 +0000
Delivery-date: Tue, 10 Oct 2006 15:01:29 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User kaf24@xxxxxxxxxxxxxxxxxxxxx
# Node ID f7d65fb7299b95b8b6d3a44134a9f2af211393c6
# Parent  f8ddc9abf3ef7b8b8ab3a235f096a0ccb66efcb7
Revert 11728:30f13007be. Breaks Solaris guests.
Will need a new method for handling padded gzip files.
Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>
---
 tools/libxc/xc_linux_build.c |   20 ++++++++++++--------
 1 files changed, 12 insertions(+), 8 deletions(-)

diff -r f8ddc9abf3ef -r f7d65fb7299b tools/libxc/xc_linux_build.c
--- a/tools/libxc/xc_linux_build.c      Tue Oct 10 16:02:30 2006 +0100
+++ b/tools/libxc/xc_linux_build.c      Tue Oct 10 22:04:01 2006 +0100
@@ -38,7 +38,7 @@ struct initrd_info {
     enum { INITRD_none, INITRD_file, INITRD_mem } type;
     unsigned long len;
     union {
-        int fd;
+        gzFile file_handle;
         char *mem_addr;
     } u;
 };
@@ -152,7 +152,7 @@ int load_initrd(int xc_handle, domid_t d
         }
         else
         {
-            if ( read(initrd->u.fd, page, PAGE_SIZE) == -1 )
+            if ( gzread(initrd->u.file_handle, page, PAGE_SIZE) == -1 )
             {
                 PERROR("Error reading initrd image, could not");
                 return -EINVAL;
@@ -1344,16 +1344,20 @@ int xc_linux_build(int xc_handle,
 
     if ( (initrd_name != NULL) && (strlen(initrd_name) != 0) )
     {
+        initrd_info.type = INITRD_file;
+
         if ( (fd = open(initrd_name, O_RDONLY)) < 0 )
         {
             PERROR("Could not open the initial ramdisk image");
             goto error_out;
         }
 
-        initrd_info.type = INITRD_file;
-        initrd_info.u.fd = fd;
-        initrd_info.len  = lseek(fd, 0, SEEK_END);
-        lseek(fd, 0, SEEK_SET);
+        initrd_info.len = xc_get_filesz(fd);
+        if ( (initrd_info.u.file_handle = gzdopen(fd, "rb")) == NULL )
+        {
+            PERROR("Could not allocate decompression state for initrd");
+            goto error_out;
+        }
     }
 
     sts = xc_linux_build_internal(xc_handle, domid, image, image_size,
@@ -1363,8 +1367,8 @@ int xc_linux_build(int xc_handle,
 
  error_out:
     free(image);
-    if ( initrd_info.type == INITRD_file )
-        close(initrd_info.u.fd);
+    if ( initrd_info.type == INITRD_file && initrd_info.u.file_handle )
+        gzclose(initrd_info.u.file_handle);
     else if ( fd >= 0 )
         close(fd);
 

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] Revert 11728:30f13007be. Breaks Solaris guests., Xen patchbot-unstable <=