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"`
 }
diff --git a/openstack/compute/v2/extensions/diskconfig/requests.go b/openstack/compute/v2/extensions/diskconfig/requests.go
index 06a922a..cc390f7 100644
--- a/openstack/compute/v2/extensions/diskconfig/requests.go
+++ b/openstack/compute/v2/extensions/diskconfig/requests.go
@@ -45,13 +45,16 @@
 }
 
 // ToServerCreateMap adds the diskconfig option to the base server creation options.
-func (opts CreateOptsExt) ToServerCreateMap() map[string]interface{} {
-	base := opts.CreateOptsBuilder.ToServerCreateMap()
+func (opts CreateOptsExt) ToServerCreateMap() (map[string]interface{}, error) {
+	base, err := opts.CreateOptsBuilder.ToServerCreateMap()
+	if err != nil {
+		return nil, err
+	}
 
 	serverMap := base["server"].(map[string]interface{})
 	serverMap["OS-DCF:diskConfig"] = string(opts.DiskConfig)
 
-	return base
+	return base, nil
 }
 
 // RebuildOptsExt adds a DiskConfig option to the base RebuildOpts.
diff --git a/openstack/compute/v2/extensions/diskconfig/requests_test.go b/openstack/compute/v2/extensions/diskconfig/requests_test.go
index 1f4f626..e3c26d4 100644
--- a/openstack/compute/v2/extensions/diskconfig/requests_test.go
+++ b/openstack/compute/v2/extensions/diskconfig/requests_test.go
@@ -29,7 +29,9 @@
 			}
 		}
 	`
-	th.CheckJSONEquals(t, expected, ext.ToServerCreateMap())
+	actual, err := ext.ToServerCreateMap()
+	th.AssertNoErr(t, err)
+	th.CheckJSONEquals(t, expected, actual)
 }
 
 func TestRebuildOpts(t *testing.T) {