On Fri, 2019-03-15 at 16:57 +-0800, Jianchao Wang wrote: +AD4 blk+AF8-mq+AF8-tagset+AF8-busy+AF8-iter is not safe that it could get stale request +AD4 in tags-+AD4-rqs+AFsAXQ. Use blk+AF8-mq+AF8-queue+AF8-tag+AF8-busy+AF8-iter here. +AD4 +AD4 Signed-off-by: Jianchao Wang +ADw-jianchao.w.wang+AEA-oracle.com+AD4 +AD4 --- +AD4 drivers/block/skd+AF8-main.c +AHw 4 ++1filechanged2insertions(), 2 deletions(-) +AD4 +AD4 diff --git a/drivers/block/skd+AF8-main.c b/drivers/block/skd+AF8-main.c +AD4 index ab893a7..60c34ff 100644 +AD4 --- a/drivers/block/skd+AF8-main.c +AD4 diff --git a/drivers/block/skd+AF8-main.c b/drivers/block/skd+AF8-main.c +AD4 index ab893a7..60c34ff 100644 +AD4 --- a/drivers/block/skd+AF8-main.c +AD4 +-+-+- b/drivers/block/skd+AF8-main.c +AD4 +AEAAQA -395,7 +-395,7 +AEAAQA static int skd+AF8-in+AF8-flight(struct skd+AF8-device +ACo-skdev) +AD4 +AHs +AD4 int count +AD0 0+ADs +AD4 +AD4 - blk+AF8-mq+AF8-tagset+AF8-busy+AF8-iter(+ACY-skdev-+AD4-tag+AF8-set, skd+AF8-inc+AF8-in+AF8-flight, +ACY-count)+ADs +AD4 +- blk+AF8-mq+AF8-queue+AF8-tag+AF8-busy+AF8-iter(skdev-+AD4-queue, skd+AF8-inc+AF8-in+AF8-flight, +ACY-count, true)+ADs +AD4 +AD4 return count+ADs +AD4 +AH0 Hi Jianchao, If you have a look at the skd+AF8-in+AF8-flight() callers you will see that the above change is not necessary. +AD4 +AEAAQA -1916,7 +-1916,7 +AEAAQA static bool skd+AF8-recover+AF8-request(struct request +ACo-req, void +ACo-data, bool reserved) +AD4 +AD4 static void skd+AF8-recover+AF8-requests(struct skd+AF8-device +ACo-skdev) +AD4 +AHs +AD4 - blk+AF8-mq+AF8-tagset+AF8-busy+AF8-iter(+ACY-skdev-+AD4-tag+AF8-set, skd+AF8-recover+AF8-request, skdev)+ADs +AD4 +- blk+AF8-mq+AF8-queue+AF8-tag+AF8-busy+AF8-iter(skdev-+AD4-queue, skd+AF8-recover+AF8-request, skdev, true)+ADs +AD4 +AH0 Same comment here. If you have a look at the callers of this function you will see that this change is not necessary. Thanks, Bart.