diff --git a/README.rst b/README.rst
index a10c96b..57ac725 100644
--- a/README.rst
+++ b/README.rst
@@ -298,6 +298,8 @@
                     mount: '/'
                   part2:
                     size: 2G
+                    mount: '/var/tmp'
+                    mount_options: defaults,nodev,noexec,nosuid
                   part3:
                     size: 3G
               vdc:
@@ -338,6 +340,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..763795d 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
