Author: mav
Date: Sun Jul  7 18:29:37 2019
New Revision: 349814
URL: https://svnweb.freebsd.org/changeset/base/349814

Log:
  MFC r349281: 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.

Modified:
  stable/11/sys/cam/scsi/scsi_enc_ses.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/cam/scsi/scsi_enc_ses.c
==============================================================================
--- stable/11/sys/cam/scsi/scsi_enc_ses.c       Sun Jul  7 18:29:10 2019        
(r349813)
+++ stable/11/sys/cam/scsi/scsi_enc_ses.c       Sun Jul  7 18:29:37 2019        
(r349814)
@@ -442,6 +442,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);
        }
 
@@ -466,17 +467,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]);
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to