move block handling into dedicated function Signed-off-by: Enrico Scholz <enrico.scholz@xxxxxxxxxxxxxxxxx> --- fs/tftp.c | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/fs/tftp.c b/fs/tftp.c index 01d3beff14bf..81141626ab91 100644 --- a/fs/tftp.c +++ b/fs/tftp.c @@ -249,6 +249,20 @@ static void tftp_timer_reset(struct file_priv *priv) priv->progress_timeout = priv->resend_timeout = get_time_ns(); } +static void tftp_put_data(struct file_priv *priv, uint16_t block, + void const *pkt, size_t len) +{ + priv->last_block = block; + + kfifo_put(priv->fifo, pkt, len); + + if (len < priv->blocksize) { + tftp_send(priv); + priv->err = 0; + priv->state = STATE_DONE; + } +} + static void tftp_recv(struct file_priv *priv, uint8_t *pkt, unsigned len, uint16_t uh_sport) { @@ -332,17 +346,8 @@ static void tftp_recv(struct file_priv *priv, /* Same block again; ignore it. */ break; - priv->last_block = priv->block; - tftp_timer_reset(priv); - - kfifo_put(priv->fifo, pkt + 2, len); - - if (len < priv->blocksize) { - tftp_send(priv); - priv->err = 0; - priv->state = STATE_DONE; - } + tftp_put_data(priv, priv->block, pkt + 2, len); break; -- 2.36.1