/* See if we shot pass the end of this buffer page */
        if (unlikely(write > BUF_PAGE_SIZE)) {
 -              if (tail != w) {
 -                      /* before and after may now different, fix it up*/
 -                      b_ok = rb_time_read(&cpu_buffer->before_stamp, &info->before);
 -                      a_ok = rb_time_read(&cpu_buffer->write_stamp, &info->after);
 -                      if (a_ok && b_ok && info->before != info->after)
 -                              (void)rb_time_cmpxchg(&cpu_buffer->before_stamp,
 -                                                    info->before, info->after);
 -              }
 +              /* before and after may now different, fix it up*/
 +              b_ok = rb_time_read(&cpu_buffer->before_stamp, &info->before);
 +              a_ok = rb_time_read(&cpu_buffer->write_stamp, &info->after);
 +              if (a_ok && b_ok && info->before != info->after)
 +                      (void)rb_time_cmpxchg(&cpu_buffer->before_stamp,
 +                                            info->before, info->after);
+               if (a_ok && b_ok)
+                       check_buffer(cpu_buffer, info, CHECK_FULL_PAGE);
                return rb_move_tail(cpu_buffer, tail, info);
        }