Hi Anthony, I have merged the configure fix which is sent as a part of
http://thread.gmane.org/gmane.comp.emulators.qemu/160620/focus=160634 The following changes since commit 5e3bc7144edd6e4fa2824944e5eb16c28197dd5a: Merge remote-tracking branch 'mst/tags/for_anthony' into staging (2012-07-30 10:00:48 -0500) are available in the git repository at: git://github.com/kvaneesh/QEMU.git for-upstream for you to fetch changes up to 4cdc0789ec17ce1ce48506cae62035310e932a2e: hw/9pfs: Fix assert when disabling migration (2012-07-31 22:01:40 +0530) ---------------------------------------------------------------- Aneesh Kumar K.V (1): hw/9pfs: Fix assert when disabling migration Stefan Weil (1): configure: Fix build with capabilities configure | 2 +- hw/9pfs/virtio-9p.c | 15 ++++++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/configure b/configure index c65b5f6..309aeac 100755 --- a/configure +++ b/configure @@ -2084,7 +2084,7 @@ if test "$cap" != "no" ; then cat > $TMPC <<EOF #include <stdio.h> #include <sys/capability.h> -int main(void) { cap_t caps; caps = cap_init(); } +int main(void) { cap_t caps; caps = cap_init(); return caps != NULL; } EOF if compile_prog "" "-lcap" ; then cap=yes diff --git a/hw/9pfs/virtio-9p.c b/hw/9pfs/virtio-9p.c index f4a7026..4b52540 100644 --- a/hw/9pfs/virtio-9p.c +++ b/hw/9pfs/virtio-9p.c @@ -983,11 +983,16 @@ static void v9fs_attach(void *opaque) err += offset; trace_v9fs_attach_return(pdu->tag, pdu->id, qid.type, qid.version, qid.path); - s->root_fid = fid; - /* disable migration */ - error_set(&s->migration_blocker, QERR_VIRTFS_FEATURE_BLOCKS_MIGRATION, - s->ctx.fs_root ? s->ctx.fs_root : "NULL", s->tag); - migrate_add_blocker(s->migration_blocker); + /* + * disable migration if we haven't done already. + * attach could get called multiple times for the same export. + */ + if (!s->migration_blocker) { + s->root_fid = fid; + error_set(&s->migration_blocker, QERR_VIRTFS_FEATURE_BLOCKS_MIGRATION, + s->ctx.fs_root ? s->ctx.fs_root : "NULL", s->tag); + migrate_add_blocker(s->migration_blocker); + } out: put_fid(pdu, fidp); out_nofid: