Hi Shlomo, On Sun, 2013-05-05 at 17:36 +0300, Shlomo Pongratz wrote: > Fix two issues in OOO commands processing done at iscsit_attach_ooo_cmdsn. > > Handle command serial numbers wrap around by using iscsi_sna_lt and not regular comparisson. > > The routine iterates until it finds an entry whose serial number is greater than the serial number of > the new one, thus the new entry should be inserted before that entry and not after. > > Signed-off-by: Shlomo Pongratz <shlomop@xxxxxxxxxxxx> > --- This bugfix looks correct to me. Applying to target-pending/queue. Thanks! --nab > drivers/target/iscsi/iscsi_target_erl1.c | 7 ++++--- > 1 files changed, 4 insertions(+), 3 deletions(-) > > diff --git a/drivers/target/iscsi/iscsi_target_erl1.c b/drivers/target/iscsi/iscsi_target_erl1.c > index 7816af6..40d9dbc 100644 > --- a/drivers/target/iscsi/iscsi_target_erl1.c > +++ b/drivers/target/iscsi/iscsi_target_erl1.c > @@ -823,7 +823,7 @@ static int iscsit_attach_ooo_cmdsn( > /* > * CmdSN is greater than the tail of the list. > */ > - if (ooo_tail->cmdsn < ooo_cmdsn->cmdsn) > + if (iscsi_sna_lt(ooo_tail->cmdsn, ooo_cmdsn->cmdsn)) > list_add_tail(&ooo_cmdsn->ooo_list, > &sess->sess_ooo_cmdsn_list); > else { > @@ -833,11 +833,12 @@ static int iscsit_attach_ooo_cmdsn( > */ > list_for_each_entry(ooo_tmp, &sess->sess_ooo_cmdsn_list, > ooo_list) { > - if (ooo_tmp->cmdsn < ooo_cmdsn->cmdsn) > + if (iscsi_sna_lt(ooo_tmp->cmdsn, ooo_cmdsn->cmdsn)) > continue; > > + /* Insert before this entry */ > list_add(&ooo_cmdsn->ooo_list, > - &ooo_tmp->ooo_list); > + ooo_tmp->ooo_list.prev); > break; > } > } -- To unsubscribe from this list: send the line "unsubscribe target-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html