diff options
| author | Andrew Morton <akpm@osdl.org> | 2004-02-18 04:46:25 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-02-18 04:46:25 -0800 |
| commit | 3185e663d57141fd19980417b753c48f0c9918c8 (patch) | |
| tree | 826d71ea727e66b755ec7bbbd1b2c723a8ded7a7 /include/linux/loop.h | |
| parent | a34c0ae9ebd6ba36cb5b3b12ffe8b3ef83a50c0b (diff) | |
[PATCH] remove useless highmem bounce from loop/cryptoloop
From: Ben Slusky <sluskyb@paranoiacs.org>
The attached patch changes the loop device transfer functions (including
cryptoloop transfers) to accept page/offset pairs instead of virtual
addresses, and removes the redundant kmaps in do_lo_send, do_lo_receive,
and loop_transfer_bio. Per Andrew Morton's request a while back.
Diffstat (limited to 'include/linux/loop.h')
| -rw-r--r-- | include/linux/loop.h | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/include/linux/loop.h b/include/linux/loop.h index a9a6525c2112..31754df95143 100644 --- a/include/linux/loop.h +++ b/include/linux/loop.h @@ -34,8 +34,9 @@ struct loop_device { loff_t lo_sizelimit; int lo_flags; int (*transfer)(struct loop_device *, int cmd, - char *raw_buf, char *loop_buf, int size, - sector_t real_block); + struct page *raw_page, unsigned raw_off, + struct page *loop_page, unsigned loop_off, + int size, sector_t real_block); char lo_file_name[LO_NAME_SIZE]; char lo_crypt_name[LO_NAME_SIZE]; char lo_encrypt_key[LO_KEY_SIZE]; @@ -127,8 +128,10 @@ struct loop_info64 { /* Support for loadable transfer modules */ struct loop_func_table { int number; /* filter type */ - int (*transfer)(struct loop_device *lo, int cmd, char *raw_buf, - char *loop_buf, int size, sector_t real_block); + int (*transfer)(struct loop_device *lo, int cmd, + struct page *raw_page, unsigned raw_off, + struct page *loop_page, unsigned loop_off, + int size, sector_t real_block); int (*init)(struct loop_device *, const struct loop_info64 *); /* release is called from loop_unregister_transfer or clr_fd */ int (*release)(struct loop_device *); |
