<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><div dir="ltr"><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Sep 11, 2023 at 11:00 AM Sebastian Huber <<a href="mailto:sebastian.huber@embedded-brains.de">sebastian.huber@embedded-brains.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello Kinsey,<br>
<br>
since this patch fixes a bug, there should be a ticket. There should be <br>
also a test case which demonstrates the problem and shows that the patch <br>
fixes the issue.<br>
<br></blockquote><div>I'll open an issue and see what I can do about creating a test case for JFFS2 that reproduces this issue. <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
<br>
How do you ensure that nobody calls jffs2_queue_delayed_work() with a <br>
node present on this temporary chain?<br></blockquote><div><br></div><div>This is handled by the off_chain checks along with the locking. If the node is already in a chain, then delayed work is already pending and will be handled upon expiration so additional attempts to queue the node can be ignored. See below for off_chain issues. <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
The existing code seems to have more issues. Firstly, it uses the <br>
protected chain methods.</blockquote><div><br></div><div>I'll swap the protected calls to unprotected for those surrounded by locking. <br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Secondly, is uses <br>
rtems_chain_is_node_off_chain() with nobody setting a node off chain <br>
after use.<br></blockquote><div> </div><div>I was developing under RTEMS_DEBUG which does set the node off chain upon extraction. I'll get this fixed for the non-RTEMS_DEBUG case.</div><div><br></div><div>Thanks for taking a look at this.<br></div><div><br></div><div>Kinsey<br></div></div></div>