All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lorenzo Campedelli <lorenzo.campedelli@tele2.it>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] Re: [PATCH] vvfat mbr fixes
Date: Sun, 23 Sep 2007 09:31:20 +0200	[thread overview]
Message-ID: <fd54o8$kjc$1@sea.gmane.org> (raw)
In-Reply-To: <Pine.LNX.4.64.0709222342190.28395@racer.site>

[-- Attachment #1: Type: text/plain, Size: 1710 bytes --]

Johannes Schindelin wrote:
> Hi,
> 
> On Sun, 23 Sep 2007, Ivan Kalvachev wrote:
> 
>> I've been having problems using vvfat virtual block device. Even linux 
>> fdisk was able to find problems with it. The reason turned out to be 
>> simple, MBR have bogus parameters.
> 
> Thanks for doing this; I did not find any time for that.
> 
> Overall, I like what you did, but here are some comments (if you would 
> have inlined the patch, I would have commented with references):
> 
> - I like the convert_sector2CHS() function, although I would have named it 
>   sector2CHS() for brevity (although the pretty magic -- or unintuitive 
>   -- detection if lba is needed would have to be done differently, which 
>   I maintain would be better),
> 
> - you write the NT-ID byte-per-byte, whereas I would have used strcpy() 
>   for clarity,
> 
> - I'd have introduced a member nt_id instead of hardcoding an offset into 
>   the "ignored" part, and
> 
> - fat_type == 12 and lba does not make sense, or does it?
> 
> Thanks,
> Dscho

While you are working on vvfat issues, could you give a look to the 
attached small patch?

It tries to fix the problem with using vvfat together with -snapshot.

The patch is not complete (it doesn't fix additional options such as 
:rw:, :floppy: :32: etc,) nor clean (I guess this specific code should 
be in block-vvfat.c, not in block.c, but the backing file handling is 
done there...) but I needed a quick fix for my needs.

If anybody has suggestions on how to make a better patch to be 
integrated in CVS I'd be glad :)

While I'm here I'd add a related question: wouldn't it be useful to be 
able to specify a per-device "-snapshot" option? Is it doable?

Thanks,
Lorenzo

[-- Attachment #2: qemu-0.9.0.20070921-block.c.patch --]
[-- Type: text/x-patch, Size: 1241 bytes --]

--- qemu-0.9.0.20070921/block.c.orig	2007-09-21 21:10:53.000000000 +0200
+++ qemu-0.9.0.20070921/block.c	2007-09-22 10:09:32.000000000 +0200
@@ -331,6 +331,7 @@
 
     if (flags & BDRV_O_SNAPSHOT) {
         BlockDriverState *bs1;
+        BlockDriver *drv1;
         int64_t total_size;
 
         /* if snapshot, we create a temporary backing file and open it
@@ -346,10 +347,22 @@
             return -1;
         }
         total_size = bdrv_getlength(bs1) >> SECTOR_BITS;
+        drv1 = bs1->drv;
         bdrv_delete(bs1);
 
         get_tmp_filename(tmp_filename, sizeof(tmp_filename));
-        realpath(filename, backing_filename);
+        /*
+         * for vvfat protocol the string "fat:<options>:" should remain
+         * the prefix of the filename even after realpath() call ...
+         */
+        if (drv1 == &bdrv_vvfat) {
+            int i = strrchr(filename, ':') - filename + 1;
+
+            strncpy(backing_filename, filename, i);
+            realpath(filename + i, backing_filename + i);
+        } else {
+            realpath(filename, backing_filename);
+        }
         if (bdrv_create(&bdrv_qcow2, tmp_filename,
                         total_size, backing_filename, 0) < 0) {
             return -1;

  reply	other threads:[~2007-09-23  7:31 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-09-22 21:43 [Qemu-devel] [PATCH] vvfat mbr fixes Ivan Kalvachev
2007-09-22 22:48 ` Johannes Schindelin
2007-09-23  7:31   ` Lorenzo Campedelli [this message]
2007-09-23 11:34     ` [Qemu-devel] " Johannes Schindelin
2007-09-23 15:55       ` Lorenzo Campedelli
2007-09-23 19:18         ` Johannes Schindelin
2007-09-23 20:17           ` Lorenzo Campedelli
2007-09-24 10:50   ` [Qemu-devel] " Ivan Kalvachev
2007-09-24 11:18     ` Johannes Schindelin
2007-09-24 14:12       ` Ivan Kalvachev
2007-09-24 15:32         ` Johannes Schindelin
2007-09-24 17:23           ` Ivan Kalvachev
2007-09-24 19:19           ` [Qemu-devel] " Lorenzo Campedelli
2007-09-24 21:58             ` Johannes Schindelin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='fd54o8$kjc$1@sea.gmane.org' \
    --to=lorenzo.campedelli@tele2.it \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.