block: sed-opal: Implement IOC_OPAL_REVERT_LSP
This is used in conjunction with IOC_OPAL_REVERT_TPR to return a drive to Original Factory State without erasing the data. If IOC_OPAL_REVERT_LSP is called with opal_revert_lsp.options bit OPAL_PRESERVE set prior to calling IOC_OPAL_REVERT_TPR, the drive global locking range will not be erased. Signed-off-by: Greg Joyce <gjoyce@linux.vnet.ibm.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Jonathan Derrick <jonathan.derrick@linux.dev> Acked-by: Jarkko Sakkinen <jarkko@kernel.org> Link: https://lore.kernel.org/r/20230721211534.3437070-3-gjoyce@linux.vnet.ibm.com Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
9fb10726ec
commit
5c82efc1ae
4 changed files with 56 additions and 0 deletions
|
|
@ -56,6 +56,10 @@ struct opal_key {
|
|||
__u8 key[OPAL_KEY_MAX];
|
||||
};
|
||||
|
||||
enum opal_revert_lsp_opts {
|
||||
OPAL_PRESERVE = 0x01,
|
||||
};
|
||||
|
||||
struct opal_lr_act {
|
||||
struct opal_key key;
|
||||
__u32 sum;
|
||||
|
|
@ -178,6 +182,12 @@ struct opal_discovery {
|
|||
__u64 size;
|
||||
};
|
||||
|
||||
struct opal_revert_lsp {
|
||||
struct opal_key key;
|
||||
__u32 options;
|
||||
__u32 __pad;
|
||||
};
|
||||
|
||||
#define IOC_OPAL_SAVE _IOW('p', 220, struct opal_lock_unlock)
|
||||
#define IOC_OPAL_LOCK_UNLOCK _IOW('p', 221, struct opal_lock_unlock)
|
||||
#define IOC_OPAL_TAKE_OWNERSHIP _IOW('p', 222, struct opal_key)
|
||||
|
|
@ -198,5 +208,6 @@ struct opal_discovery {
|
|||
#define IOC_OPAL_GET_LR_STATUS _IOW('p', 237, struct opal_lr_status)
|
||||
#define IOC_OPAL_GET_GEOMETRY _IOR('p', 238, struct opal_geometry)
|
||||
#define IOC_OPAL_DISCOVERY _IOW('p', 239, struct opal_discovery)
|
||||
#define IOC_OPAL_REVERT_LSP _IOW('p', 240, struct opal_revert_lsp)
|
||||
|
||||
#endif /* _UAPI_SED_OPAL_H */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue