nvme/opal: remove opal_locking_range_setup_session definition

We can use the unpacked parameters instead of the packed
structure, this is more clear according to the function
definition.

Change-Id: I2de6cb456c2d40aea4408bbb1c7c6453b69cf290
Signed-off-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1574
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
This commit is contained in:
Changpeng Liu 2020-03-30 22:33:25 +08:00
parent 507f7da288
commit 82e2f28df4
2 changed files with 18 additions and 36 deletions

View File

@ -1255,8 +1255,7 @@ opal_lock_unlock_range(struct spdk_opal_dev *dev, struct opal_session *sess,
static int opal_generic_locking_range_enable_disable(struct spdk_opal_dev *dev, static int opal_generic_locking_range_enable_disable(struct spdk_opal_dev *dev,
struct opal_session *sess, struct opal_session *sess,
uint8_t *uid, bool read_lock_enabled, bool write_lock_enabled, uint8_t *uid, bool read_lock_enabled, bool write_lock_enabled)
bool read_locked, bool write_locked)
{ {
int err = 0; int err = 0;
@ -1281,12 +1280,12 @@ static int opal_generic_locking_range_enable_disable(struct spdk_opal_dev *dev,
SPDK_OPAL_STARTNAME, SPDK_OPAL_STARTNAME,
SPDK_OPAL_READLOCKED, SPDK_OPAL_READLOCKED,
read_locked, 0,
SPDK_OPAL_ENDNAME, SPDK_OPAL_ENDNAME,
SPDK_OPAL_STARTNAME, SPDK_OPAL_STARTNAME,
SPDK_OPAL_WRITELOCKED, SPDK_OPAL_WRITELOCKED,
write_locked, 0,
SPDK_OPAL_ENDNAME, SPDK_OPAL_ENDNAME,
SPDK_OPAL_ENDLIST, SPDK_OPAL_ENDLIST,
@ -1300,23 +1299,21 @@ static int opal_generic_locking_range_enable_disable(struct spdk_opal_dev *dev,
static int static int
opal_setup_locking_range(struct spdk_opal_dev *dev, struct opal_session *sess, opal_setup_locking_range(struct spdk_opal_dev *dev, struct opal_session *sess,
struct opal_locking_range_setup_session *setup_session) enum spdk_opal_locking_range locking_range,
uint64_t range_start, uint64_t range_length,
bool read_lock_enabled, bool write_lock_enabled)
{ {
uint8_t uid_locking_range[OPAL_UID_LENGTH]; uint8_t uid_locking_range[OPAL_UID_LENGTH];
uint8_t locking_range_id;
int err = 0; int err = 0;
opal_clear_cmd(sess); opal_clear_cmd(sess);
opal_set_comid(sess, dev->comid); opal_set_comid(sess, dev->comid);
locking_range_id = setup_session->session.opal_key.locking_range; opal_build_locking_range(uid_locking_range, locking_range);
opal_build_locking_range(uid_locking_range, locking_range_id);
if (locking_range_id == 0) { if (locking_range == 0) {
err = opal_generic_locking_range_enable_disable(dev, sess, uid_locking_range, err = opal_generic_locking_range_enable_disable(dev, sess, uid_locking_range,
setup_session->read_lock_enabled, read_lock_enabled, write_lock_enabled);
setup_session->write_lock_enabled,
0, 0);
} else { } else {
opal_add_token_u8(&err, sess, SPDK_OPAL_CALL); opal_add_token_u8(&err, sess, SPDK_OPAL_CALL);
opal_add_token_bytestring(&err, sess, uid_locking_range, OPAL_UID_LENGTH); opal_add_token_bytestring(&err, sess, uid_locking_range, OPAL_UID_LENGTH);
@ -1330,22 +1327,22 @@ opal_setup_locking_range(struct spdk_opal_dev *dev, struct opal_session *sess,
SPDK_OPAL_STARTLIST, SPDK_OPAL_STARTLIST,
SPDK_OPAL_STARTNAME, SPDK_OPAL_STARTNAME,
SPDK_OPAL_RANGESTART); SPDK_OPAL_RANGESTART);
opal_add_token_u64(&err, sess, setup_session->range_start); opal_add_token_u64(&err, sess, range_start);
opal_add_tokens(&err, sess, 3, opal_add_tokens(&err, sess, 3,
SPDK_OPAL_ENDNAME, SPDK_OPAL_ENDNAME,
SPDK_OPAL_STARTNAME, SPDK_OPAL_STARTNAME,
SPDK_OPAL_RANGELENGTH); SPDK_OPAL_RANGELENGTH);
opal_add_token_u64(&err, sess, setup_session->range_length); opal_add_token_u64(&err, sess, range_length);
opal_add_tokens(&err, sess, 3, opal_add_tokens(&err, sess, 3,
SPDK_OPAL_ENDNAME, SPDK_OPAL_ENDNAME,
SPDK_OPAL_STARTNAME, SPDK_OPAL_STARTNAME,
SPDK_OPAL_READLOCKENABLED); SPDK_OPAL_READLOCKENABLED);
opal_add_token_u64(&err, sess, setup_session->read_lock_enabled); opal_add_token_u64(&err, sess, read_lock_enabled);
opal_add_tokens(&err, sess, 3, opal_add_tokens(&err, sess, 3,
SPDK_OPAL_ENDNAME, SPDK_OPAL_ENDNAME,
SPDK_OPAL_STARTNAME, SPDK_OPAL_STARTNAME,
SPDK_OPAL_WRITELOCKENABLED); SPDK_OPAL_WRITELOCKENABLED);
opal_add_token_u64(&err, sess, setup_session->write_lock_enabled); opal_add_token_u64(&err, sess, write_lock_enabled);
opal_add_tokens(&err, sess, 4, opal_add_tokens(&err, sess, 4,
SPDK_OPAL_ENDNAME, SPDK_OPAL_ENDNAME,
SPDK_OPAL_ENDLIST, SPDK_OPAL_ENDLIST,
@ -2014,33 +2011,28 @@ spdk_opal_cmd_setup_locking_range(struct spdk_opal_dev *dev, enum spdk_opal_user
enum spdk_opal_locking_range locking_range_id, uint64_t range_start, enum spdk_opal_locking_range locking_range_id, uint64_t range_start,
uint64_t range_length, const char *passwd) uint64_t range_length, const char *passwd)
{ {
struct opal_locking_range_setup_session setup_session = {}; struct spdk_opal_key opal_key = {};
int ret; int ret;
if (dev->supported == false) { if (dev->supported == false) {
return -ENOTSUP; return -ENOTSUP;
} }
ret = opal_init_key(&setup_session.session.opal_key, passwd, locking_range_id); ret = opal_init_key(&opal_key, passwd, locking_range_id);
if (ret != 0) { if (ret != 0) {
return ret; return ret;
} }
setup_session.id = locking_range_id;
setup_session.range_length = range_length;
setup_session.range_start = range_start;
setup_session.read_lock_enabled = true;
setup_session.write_lock_enabled = true;
pthread_mutex_lock(&dev->mutex_lock); pthread_mutex_lock(&dev->mutex_lock);
ret = opal_start_auth_session(dev, &dev->sess, user, &setup_session.session.opal_key); ret = opal_start_auth_session(dev, &dev->sess, user, &opal_key);
if (ret) { if (ret) {
SPDK_ERRLOG("start authenticate session error %d\n", ret); SPDK_ERRLOG("start authenticate session error %d\n", ret);
pthread_mutex_unlock(&dev->mutex_lock); pthread_mutex_unlock(&dev->mutex_lock);
return ret; return ret;
} }
ret = opal_setup_locking_range(dev, &dev->sess, &setup_session); ret = opal_setup_locking_range(dev, &dev->sess, locking_range_id, range_start, range_length, true,
true);
if (ret) { if (ret) {
SPDK_ERRLOG("setup locking range error %d\n", ret); SPDK_ERRLOG("setup locking range error %d\n", ret);
goto end; goto end;

View File

@ -246,16 +246,6 @@ struct spdk_opal_resp_parsed {
struct spdk_opal_resp_token resp_tokens[MAX_TOKS]; struct spdk_opal_resp_token resp_tokens[MAX_TOKS];
}; };
struct opal_locking_range_setup_session {
uint8_t id;
uint8_t _padding[7];
uint64_t range_start;
uint64_t range_length;
bool read_lock_enabled;
bool write_lock_enabled;
struct opal_common_session session;
};
/* header of a response */ /* header of a response */
struct spdk_opal_header { struct spdk_opal_header {
struct spdk_opal_compacket com_packet; struct spdk_opal_compacket com_packet;