Print this page
1845 allow disable of UNMAP via stmfadm(1M).
        
@@ -62,10 +62,11 @@
         SBD_RET_LU_BUSY,
         SBD_RET_NOT_FOUND,
         SBD_RET_INSUFFICIENT_BUF_SPACE,
         SBD_RET_WRITE_CACHE_SET_FAILED,
         SBD_RET_ACCESS_STATE_FAILED,
+        SBD_RET_UNMAP_SET_FAILED,
 
         SBD_RET_MAX_VAL
 } sbd_ret_t;
 
 #define SBD_IOCTL_DEF(n)        ((((int)0x5B) << 16) | (n))
@@ -80,11 +81,11 @@
 #define SBD_IOCTL_GET_GLOBAL_LU                         SBD_IOCTL_DEF(9)
 #define SBD_IOCTL_GET_UNMAP_PROPS                       SBD_IOCTL_DEF(10)
 
 typedef struct sbd_create_and_reg_lu {
         uint32_t        slu_struct_size;
-        uint16_t        slu_meta_fname_valid:1,
+        uint32_t        slu_meta_fname_valid:1,
                         slu_lu_size_valid:1,
                         slu_blksize_valid:1,
                         slu_vid_valid:1,
                         slu_pid_valid:1,
                         slu_rev_valid:1,
@@ -94,11 +95,15 @@
                         slu_guid_valid:1,
                         slu_company_id_valid:1,
                         slu_host_id_valid:1,
                         slu_writeback_cache_disable_valid:1,
                         slu_writeback_cache_disable:1,
-                        slu_write_protected:1;
+                        slu_write_protected:1,
+                        slu_unmap_valid:1,
+                        slu_unmap:1;
+        uint32_t        slu_pad1;       /* To preserve 64-bit alignment */
+        uint16_t        slu_pad2;       /* for the following fields. */
         uint16_t        slu_meta_fname_off;
         uint64_t        slu_lu_size;
         uint16_t        slu_data_fname_off;
         uint16_t        slu_serial_off;
         uint8_t         slu_serial_size;
@@ -161,11 +166,13 @@
                         mlu_write_protected_valid:1,
                         mlu_write_protected:1,
                         mlu_by_guid:1,
                         mlu_by_fname:1,
                         mlu_standby_valid:1,
-                        mlu_standby:1;
+                        mlu_standby:1,
+                        mlu_unmap_valid:1,
+                        mlu_unmap:1;
         uint64_t        mlu_lu_size;
         uint16_t        mlu_alias_off;
         uint16_t        mlu_mgmt_url_off;
         uint16_t        mlu_serial_off;
         uint16_t        mlu_serial_size;
@@ -203,10 +210,12 @@
                         slp_mgmt_url_valid:1,
                         slp_lu_vid:1,
                         slp_lu_pid:1,
                         slp_lu_rev:1,
                         slp_serial_valid:1,
+                        slp_unmap_cur:1,
+                        slp_unmap_saved:1,
                         slp_writeback_cache_disable_cur:1,
                         slp_writeback_cache_disable_saved:1,
                         slp_write_protected:1;
         uint16_t        slp_meta_fname_off;
         uint16_t        slp_data_fname_off;