1. 07 1月, 2018 1 次提交
  2. 04 7月, 2017 2 次提交
    • D
      bio: add bvec_iter rewind API · f9df1cd9
      Dmitry Monakhov 提交于
      Some ->bi_end_io handlers (for example: pi_verify or decrypt handlers)
      need to know original data vector, but after bio traverse io-stack it may
      be advanced, splited and relocated many times so it is hard to guess
      original iterator. Let's add 'bi_done' conter which accounts number
      of bytes iterator was advanced during it's evolution. Later end_io handler
      may easily restore original iterator by rewinding iterator to
      iter->bi_done.
      
      Note: this change makes sizeof (struct bvec_iter) multiple to 8
      Reviewed-by: NHannes Reinecke <hare@suse.com>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NDmitry Monakhov <dmonakhov@openvz.org>
      [hch: switched to true/false return]
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      f9df1cd9
    • D
      block: guard bvec iteration logic · b1fb2c52
      Dmitry Monakhov 提交于
      Currently if some one try to advance bvec beyond it's size we simply
      dump WARN_ONCE and continue to iterate beyond bvec array boundaries.
      This simply means that we endup dereferencing/corrupting random memory
      region.
      
      Sane reaction would be to propagate error back to calling context
      But bvec_iter_advance's calling context is not always good for error
      handling. For safity reason let truncate iterator size to zero which
      will break external iteration loop which prevent us from unpredictable
      memory range corruption. And even it caller ignores an error, it will
      corrupt it's own bvecs, not others.
      
      This patch does:
      - Return error back to caller with hope that it will react on this
      - Truncate iterator size
      
      Code was added long time ago here 4550dd6c, luckily no one hit it
      in real life :)
      Signed-off-by: NDmitry Monakhov <dmonakhov@openvz.org>
      Reviewed-by: NMing Lei <ming.lei@redhat.com>
      Reviewed-by: NMartin K. Petersen <martin.petersen@oracle.com>
      [hch: switch to true/false returns instead of errno values]
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      b1fb2c52
  3. 11 8月, 2016 1 次提交
  4. 10 6月, 2016 3 次提交