diff --git a/README.rst b/README.rst
index 939ad53..bc963e8 100644
--- a/README.rst
+++ b/README.rst
@@ -300,6 +300,8 @@
                     mount: '/'
                   part2:
                     size: 2G
+                    mount: '/var/tmp'
+                    mount_options: defaults,nodev,noexec,nosuid
                   part3:
                     size: 3G
               vdc:
@@ -340,6 +342,7 @@
                     size: 5G
                     type: ext4
                     mount: '/tmp'
+                    mount_options: defaults,nodev,noexec,nosuid
                   log:
                     size: 7G
                     type: ext4
diff --git a/_modules/maasng.py b/_modules/maasng.py
index 4002e05..06d9ef6 100644
--- a/_modules/maasng.py
+++ b/_modules/maasng.py
@@ -501,7 +501,7 @@
     return list_partitions(partition)[name]
 
 
-def create_partition(hostname, disk, size, fs_type=None, mount=None):
+def create_partition(hostname, disk, size, fs_type=None, mount=None, mount_options=None):
     """
     Create new partition on device.
 
@@ -551,6 +551,8 @@
         data = {
             "mount_point": mount
         }
+        if mount_options:
+            data["mount_options"] = mount_options
 
         # TODO validation
         json_res = json.loads(maas.post(u"api/2.0/nodes/{0}/blockdevices/{1}/partition/{2}".format(
@@ -1063,7 +1065,7 @@
 
 
 def create_volume(hostname, volume_name, volume_group, size, fs_type=None,
-                  mount=None):
+                  mount=None, mount_options=None):
     """
     Create volume on volume group.
 
@@ -1100,7 +1102,7 @@
 
     if fs_type != None or mount != None:
         ret = create_volume_filesystem(
-            hostname, volume_group + "-" + volume_name, fs_type, mount)
+            hostname, volume_group + "-" + volume_name, fs_type, mount, mount_options)
 
     return True
 
@@ -1156,7 +1158,7 @@
 # END LVM
 
 
-def create_volume_filesystem(hostname, device, fs_type=None, mount=None):
+def create_volume_filesystem(hostname, device, fs_type=None, mount=None, mount_options=None):
 
     maas = _create_maas_client()
     system_id = get_machine(hostname)["system_id"]
@@ -1172,6 +1174,8 @@
 
     if mount != None:
         data["mount_point"] = mount
+        if mount_options:
+            data["mount_options"] = mount_options
         # TODO validation
         json_res = json.loads(maas.post(u"/api/2.0/nodes/{0}/blockdevices/{1}/".format(
             system_id, blockdevices_id), "mount", **data).read())
diff --git a/_states/maasng.py b/_states/maasng.py
index 5c68652..f309986 100644
--- a/_states/maasng.py
+++ b/_states/maasng.py
@@ -229,10 +229,13 @@
         LOG.info(part)
         if "mount" not in part:
             part["mount"] = None
+        if "mount_options" not in part:
+            part["mount_options"] = None
         if "type" not in part:
             part["type"] = None
         ret["changes"] = __salt__['maasng.create_partition'](
-            hostname, name, part["size"], part["type"], part["mount"])
+            hostname, name, part["size"], part["type"], part["mount"], 
+            part["mount_options"])
 
     if "error" in ret["changes"]:
         ret["result"] = False
@@ -290,7 +293,7 @@
 
 
 def volume_present(hostname, name, volume_group_name, size, type=None,
-                   mount=None):
+                   mount=None, mount_options=None):
     """
     Ensure that the disk layout does exist
 
@@ -326,7 +329,7 @@
     # TODO validation if exists
 
     ret["changes"] = __salt__['maasng.create_volume'](
-        hostname, name, volume_group_name, size, type, mount)
+        hostname, name, volume_group_name, size, type, mount, mount_options)
 
     return ret
 
diff --git a/maas/machines/storage.sls b/maas/machines/storage.sls
index d632c90..b6c174a 100644
--- a/maas/machines/storage.sls
+++ b/maas/machines/storage.sls
@@ -141,6 +141,9 @@
     {%- endif %}
     {%- if volume.mount is defined %}
     - mount: {{ volume.mount }}
+    {%- if volume.mount_options is defined %}
+    - mount_options: {{ volume.mount_options }}
+    {%- endif %}
     {%- endif %}
     - require:
       - maasng: maas_machine_vg_{{ machine_name }}_{{ disk_name }}
diff --git a/tests/pillar/maas_storage.sls b/tests/pillar/maas_storage.sls
index 1f3a35b..7a5b08d 100644
--- a/tests/pillar/maas_storage.sls
+++ b/tests/pillar/maas_storage.sls
@@ -32,6 +32,8 @@
                   mount: '/'
                 part2:
                   size: 2G
+                  mount: '/var/tmp'
+                  mount_options: defaults,nodev,noexec,nosuid
                 part3:
                   size: 3G
             vdc:
@@ -72,6 +74,7 @@
                   size: 5G
                   fs_type: ext4
                   mount: '/tmp'
+                  mount_options: defaults,nodev,noexec,nosuid
                 log:
                   size: 7G
                   fs_type: ext4
