additionally return 'error' from 'ToCreateServerMap'
diff --git a/openstack/compute/v2/extensions/bootfromvolume/requests.go b/openstack/compute/v2/extensions/bootfromvolume/requests.go
index b0cf61e..bbef496 100644
--- a/openstack/compute/v2/extensions/bootfromvolume/requests.go
+++ b/openstack/compute/v2/extensions/bootfromvolume/requests.go
@@ -1,31 +1,34 @@
 package bootfromvolume
 
 import (
-  "errors"
+	"errors"
 
-  "github.com/rackspace/gophercloud/openstack/compute/v2/servers"
+	"github.com/rackspace/gophercloud/openstack/compute/v2/servers"
 )
 
 type CreateOptsExt struct {
 	servers.CreateOptsBuilder
-	BlockDeviceMapping BlockDeviceMapping
+	BDM BlockDeviceMapping
 }
 
 // ToServerCreateMap adds the block device mapping option to the base server
 // creation options.
 func (opts CreateOptsExt) ToServerCreateMap() (map[string]interface{}, error) {
-  if opts.SourceType != "volume" && opts.SourceType != "image" && opts.SourceType != "snapshot" {
-    return nil, errors.New("SourceType must be one of: volume, image, snapshot.")
-  }
+	if opts.BDM.SourceType != "volume" && opts.BDM.SourceType != "image" && opts.BDM.SourceType != "snapshot" {
+		return nil, errors.New("SourceType must be one of: volume, image, snapshot.")
+	}
 
-  if opts.UUID == "" {
-    return nil, errors.New("Required field UUID not set.")
-  }
+	if opts.BDM.UUID == "" {
+		return nil, errors.New("Required field UUID not set.")
+	}
 
-  base := opts.CreateOptsBuilder.ToServerCreateMap()
+	base, err := opts.CreateOptsBuilder.ToServerCreateMap()
+	if err != nil {
+		return nil, err
+	}
 
-  serverMap := base["server"].(map[string]interface{})
-  serverMap["block_device_mapping_v2"] = opts.BlockDeviceMapping
+	serverMap := base["server"].(map[string]interface{})
+	serverMap["block_device_mapping_v2"] = opts.BDM
 
-  return base
+	return base, nil
 }
diff --git a/openstack/compute/v2/extensions/bootfromvolume/results.go b/openstack/compute/v2/extensions/bootfromvolume/results.go
index ef093e8..9d33728 100644
--- a/openstack/compute/v2/extensions/bootfromvolume/results.go
+++ b/openstack/compute/v2/extensions/bootfromvolume/results.go
@@ -1,10 +1,10 @@
 package bootfromvolume
 
 type BlockDeviceMapping struct {
-  BootIndex           int    `json:"boot_index"`
-  DeleteOnTermination bool   `json:"delete_on_termination"`
-  DestinationType     string `json:"destination_type"`
-  SourceType          string `json:"source_type"`
-  UUID                string `json:"uuid"`
-  VolumeSize          int    `json:"volume_size"`
+	BootIndex           int    `json:"boot_index"`
+	DeleteOnTermination bool   `json:"delete_on_termination"`
+	DestinationType     string `json:"destination_type"`
+	SourceType          string `json:"source_type"`
+	UUID                string `json:"uuid"`
+	VolumeSize          int    `json:"volume_size"`
 }