summaryrefslogtreecommitdiff
path: root/fs/buffer.c
diff options
context:
space:
mode:
authorAndrew Morton <akpm@zip.com.au>2002-07-18 21:10:30 -0700
committerLinus Torvalds <torvalds@home.transmeta.com>2002-07-18 21:10:30 -0700
commite3339bee8dcfe3fe6a521b9700d78bbe79c3c6d2 (patch)
tree2fee0e16b23b68698f1c30d813419cc3d7c07952 /fs/buffer.c
parent4504a57ef1e0454c1679ccc8ff9c7050f4385ff0 (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.c49
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).