diff options
| author | Andrew Morton <akpm@zip.com.au> | 2002-06-17 20:19:26 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.transmeta.com> | 2002-06-17 20:19:26 -0700 |
| commit | 8504e4792403def2b9d5e1a6c91c15a1840f39c8 (patch) | |
| tree | 7449aee83fabfbc37ffa105d087b0e2f72565a32 /include/linux/loop.h | |
| parent | 88c4650a9ece8fef2be042fbbec2dde2d0afa1a4 (diff) | |
[PATCH] fix loop driver for large BIOs
Fix the loop driver for loop-on-blockdev setups.
When presented with a multipage BIO, loop_make_request overindexes the
first page and corrupts kernel memory. Fix it to walk the individual
pages.
BTW, I suspect the IV handling in loop may be incorrect for multipage
BIOs. Should we not be recalculating the IV for each page in the BIOs,
or incrementing the offset by the size of the preceding pages, or such?
Diffstat (limited to 'include/linux/loop.h')
| -rw-r--r-- | include/linux/loop.h | 8 |
1 files changed, 0 insertions, 8 deletions
diff --git a/include/linux/loop.h b/include/linux/loop.h index d4dc0665a92d..4dfa8b14a586 100644 --- a/include/linux/loop.h +++ b/include/linux/loop.h @@ -62,14 +62,6 @@ typedef int (* transfer_proc_t)(struct loop_device *, int cmd, char *raw_buf, char *loop_buf, int size, int real_block); -static inline int lo_do_transfer(struct loop_device *lo, int cmd, char *rbuf, - char *lbuf, int size, int rblock) -{ - if (!lo->transfer) - return 0; - - return lo->transfer(lo, cmd, rbuf, lbuf, size, rblock); -} #endif /* __KERNEL__ */ /* |
