title: KFIFO APIs: Difference kfifo_put and kfifo_in (or kfifo_get and kfifo_out)
body: <p>It is not obvious from the implementation in <code>include/linux/kfifo.h</code> and <code>lib/kfifo.c</code> whether or not there is any difference between the <code>kfifo_in</code> and <code>kfifo_put</code> ( OR <code>kfifo_out</code> and <code>kfifo_get</code>) APIs. They essentially do the similar functionality, but because they distinctly exist there must be difference in the two.</p>
  
  <p>Also, is it that <code>kfifo_put</code> provides a circular queue like functionality (i.e. waits if queue is full), whereas <code>kfifo_in</code> provides a ring buffer like functionality (i.e. if the ring is full overwrite the oldest entry and push the read pointer to next position) ?</p>