diff options
author | Alexander Motin <mav@FreeBSD.org> | 2019-06-21 23:29:16 +0000 |
---|---|---|
committer | Alexander Motin <mav@FreeBSD.org> | 2019-06-21 23:29:16 +0000 |
commit | 7318fcb51df11b4b0020513a6945b0897d01c103 (patch) | |
tree | 008b51d9e33d1ed164477f74b3c26dc1decb8aff | |
parent | 1bb957296b3677de64b46de7832136b6bb5a2654 (diff) | |
download | src-7318fcb51df11b4b0020513a6945b0897d01c103.tar.gz src-7318fcb51df11b4b0020513a6945b0897d01c103.zip |
Fix individual_element_index when some type has 0 elements.
When some type has 0 elements, saved_individual_element_index was set
to -1 on second type bump, since individual_element_index was not
restored after the first. To me it looks easier just to increment
saved_individual_element_index separately than think when to save it.
MFC after: 2 weeks
Notes
Notes:
svn path=/head/; revision=349281
-rw-r--r-- | sys/cam/scsi/scsi_enc_ses.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/sys/cam/scsi/scsi_enc_ses.c b/sys/cam/scsi/scsi_enc_ses.c index 5e9d2dc94d2d..f34fe3de6aaf 100644 --- a/sys/cam/scsi/scsi_enc_ses.c +++ b/sys/cam/scsi/scsi_enc_ses.c @@ -444,6 +444,7 @@ ses_iter_next(struct ses_iterator *iter) iter->type_element_index = ITERATOR_INDEX_END; iter->global_element_index = ITERATOR_INDEX_END; iter->individual_element_index = ITERATOR_INDEX_END; + iter->saved_individual_element_index = ITERATOR_INDEX_END; return (NULL); } @@ -468,17 +469,12 @@ ses_iter_next(struct ses_iterator *iter) */ iter->type_index++; iter->type_element_index = 0; - iter->saved_individual_element_index - = iter->individual_element_index; iter->individual_element_index = ITERATOR_INDEX_INVALID; } if (iter->type_element_index > 0) { - if (iter->type_element_index == 1) { - iter->individual_element_index - = iter->saved_individual_element_index; - } - iter->individual_element_index++; + iter->individual_element_index = + ++iter->saved_individual_element_index; } return (&iter->cache->elm_map[iter->global_element_index]); |