diff options
| author | Andrew Morton <akpm@zip.com.au> | 2002-07-18 21:10:30 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.transmeta.com> | 2002-07-18 21:10:30 -0700 |
| commit | e3339bee8dcfe3fe6a521b9700d78bbe79c3c6d2 (patch) | |
| tree | 2fee0e16b23b68698f1c30d813419cc3d7c07952 /fs/buffer.c | |
| parent | 4504a57ef1e0454c1679ccc8ff9c7050f4385ff0 (diff) | |
[PATCH] direct_io mopup
Some cleanup from the surprise direct-to-bio for O_DIRECT merge.
- Remove bits and pieces from the kiobuf implementation
- Replace the waitqueue in struct dio with just a task_struct pointer
and use wake_up_process. (Ben).
- Only take mmap_sem around the individual calls to get_user_pages().
(It pins the vmas, yes?)
- Remove some debug code.
- Fix JFS.
Diffstat (limited to 'fs/buffer.c')
| -rw-r--r-- | fs/buffer.c | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/fs/buffer.c b/fs/buffer.c index 27300f9a6ee0..dfb38f4a6f44 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -2309,55 +2309,6 @@ sector_t generic_block_bmap(struct address_space *mapping, sector_t block, return tmp.b_blocknr; } -#if 0 -int generic_direct_IO(int rw, struct inode *inode, - struct kiobuf *iobuf, unsigned long blocknr, - int blocksize, get_block_t *get_block) -{ - int i, nr_blocks, retval = 0; - sector_t *blocks = iobuf->blocks; - struct block_device *bdev = NULL; - - nr_blocks = iobuf->length / blocksize; - /* build the blocklist */ - for (i = 0; i < nr_blocks; i++, blocknr++) { - struct buffer_head bh; - - bh.b_state = 0; - bh.b_size = blocksize; - - retval = get_block(inode, blocknr, &bh, rw & 1); - if (retval) - goto out; - - if (rw == READ) { - if (buffer_new(&bh)) - BUG(); - if (!buffer_mapped(&bh)) { - /* there was an hole in the filesystem */ - blocks[i] = -1UL; - continue; - } - } else { - if (buffer_new(&bh)) - unmap_underlying_metadata(bh.b_bdev, - bh.b_blocknr); - if (!buffer_mapped(&bh)) - BUG(); - } - blocks[i] = bh.b_blocknr; - bdev = bh.b_bdev; - } - - /* This does not understand multi-device filesystems currently */ - if (bdev) - retval = brw_kiovec(rw, 1, &iobuf, bdev, blocks, blocksize); - - out: - return retval; -} -#endif - /* * Start I/O on a physical range of kernel memory, defined by a vector * of kiobuf structs (much like a user-space iovec list). |
