From 6227a220ccdd0193a1912f3a0010a72d91f06818 Mon Sep 17 00:00:00 2001 From: Osier Yang Date: Thu, 15 Mar 2012 18:16:52 +0800 Subject: [PATCH] virsh: A bit smarter attach-disk Detects the file type of source path if no "--sourcetype" and "driver" is specified, instead of always set the disk type as "block". --- tools/virsh.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tools/virsh.c b/tools/virsh.c index d45a4c917e..19f9bbe393 100644 --- a/tools/virsh.c +++ b/tools/virsh.c @@ -14428,6 +14428,7 @@ cmdAttachDisk(vshControl *ctl, const vshCmd *cmd) const char *stype = NULL; virBuffer buf = VIR_BUFFER_INITIALIZER; char *xml; + struct stat st; if (!vshConnectionUsability(ctl, ctl->conn)) goto cleanup; @@ -14458,8 +14459,12 @@ cmdAttachDisk(vshControl *ctl, const vshCmd *cmd) } if (!stype) { - if (driver && (STREQ(driver, "file") || STREQ(driver, "tap"))) + if (driver && (STREQ(driver, "file") || STREQ(driver, "tap"))) { isFile = true; + } else { + if (source && !stat(source, &st)) + isFile = S_ISREG(st.st_mode) ? true : false; + } } else if (STREQ(stype, "file")) { isFile = true; } else if (STRNEQ(stype, "block")) {