diff --git a/tools/virsh.c b/tools/virsh.c
index 98305c0d7e56cbabbf13b59eae82340e0e17184b..18625009ceb2641331b2fa2c5b7449c54b883b93 100644
--- a/tools/virsh.c
+++ b/tools/virsh.c
@@ -14765,18 +14765,18 @@ cmdAttachDisk(vshControl *ctl, const vshCmd *cmd)
virBufferAddLit(&buf, " rawio='yes'");
virBufferAddLit(&buf, ">\n");
- if (driver || subdriver)
+ if (driver || subdriver || cache) {
virBufferAsprintf(&buf, " \n");
+ }
if (source)
virBufferAsprintf(&buf, " \n",