diff options
author | Badari Pulavarty <pbadari@us.ibm.com> | 2006-10-01 02:28:48 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-01 03:39:28 -0400 |
commit | 543ade1fc901db4c3dbe9fb27241fb977f1f3eea (patch) | |
tree | cdd1a1f67a718adf71e92fe08e4b3d33bf3dbadc /fs/block_dev.c | |
parent | ee0b3e671baff681d69fbf0db33b47603c0a8280 (diff) |
[PATCH] Streamline generic_file_* interfaces and filemap cleanups
This patch cleans up generic_file_*_read/write() interfaces. Christoph
Hellwig gave me the idea for this clean ups.
In a nutshell, all filesystems should set .aio_read/.aio_write methods and use
do_sync_read/ do_sync_write() as their .read/.write methods. This allows us
to cleanup all variants of generic_file_* routines.
Final available interfaces:
generic_file_aio_read() - read handler
generic_file_aio_write() - write handler
generic_file_aio_write_nolock() - no lock write handler
__generic_file_aio_write_nolock() - internal worker routine
Signed-off-by: Badari Pulavarty <pbadari@us.ibm.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs/block_dev.c')
-rw-r--r-- | fs/block_dev.c | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/fs/block_dev.c b/fs/block_dev.c index 0f143094ef1d..bc8f27cc4483 100644 --- a/fs/block_dev.c +++ b/fs/block_dev.c | |||
@@ -1154,14 +1154,6 @@ static int blkdev_close(struct inode * inode, struct file * filp) | |||
1154 | return blkdev_put(bdev); | 1154 | return blkdev_put(bdev); |
1155 | } | 1155 | } |
1156 | 1156 | ||
1157 | static ssize_t blkdev_file_write(struct file *file, const char __user *buf, | ||
1158 | size_t count, loff_t *ppos) | ||
1159 | { | ||
1160 | struct iovec local_iov = { .iov_base = (void __user *)buf, .iov_len = count }; | ||
1161 | |||
1162 | return generic_file_write_nolock(file, &local_iov, 1, ppos); | ||
1163 | } | ||
1164 | |||
1165 | static long block_ioctl(struct file *file, unsigned cmd, unsigned long arg) | 1157 | static long block_ioctl(struct file *file, unsigned cmd, unsigned long arg) |
1166 | { | 1158 | { |
1167 | return blkdev_ioctl(file->f_mapping->host, file, cmd, arg); | 1159 | return blkdev_ioctl(file->f_mapping->host, file, cmd, arg); |
@@ -1181,8 +1173,8 @@ const struct file_operations def_blk_fops = { | |||
1181 | .open = blkdev_open, | 1173 | .open = blkdev_open, |
1182 | .release = blkdev_close, | 1174 | .release = blkdev_close, |
1183 | .llseek = block_llseek, | 1175 | .llseek = block_llseek, |
1184 | .read = generic_file_read, | 1176 | .read = do_sync_read, |
1185 | .write = blkdev_file_write, | 1177 | .write = do_sync_write, |
1186 | .aio_read = generic_file_aio_read, | 1178 | .aio_read = generic_file_aio_read, |
1187 | .aio_write = generic_file_aio_write_nolock, | 1179 | .aio_write = generic_file_aio_write_nolock, |
1188 | .mmap = generic_file_mmap, | 1180 | .mmap = generic_file_mmap, |