The 'if' in chars_in_buffer() is misleadingly inverted. And since the
only difference is the head used for computation, cache the head using
ternary operator. And use that in return directly.
Signed-off-by: "Jiri Slaby (SUSE)" <jirislaby@kernel.org>
Link: https://lore.kernel.org/r/20230827074147.2287-11-jirislaby@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 static ssize_t chars_in_buffer(const struct tty_struct *tty)
 {
        const struct n_tty_data *ldata = tty->disc_data;
-       ssize_t n = 0;
+       size_t head = ldata->icanon ? ldata->canon_head : ldata->commit_head;
 
-       if (!ldata->icanon)
-               n = ldata->commit_head - ldata->read_tail;
-       else
-               n = ldata->canon_head - ldata->read_tail;
-       return n;
+       return head - ldata->read_tail;
 }
 
 /**