diff options
| author | Andrew Morton <akpm@osdl.org> | 2004-04-18 22:06:03 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-04-18 22:06:03 -0700 |
| commit | 59fed502a431f604111642f27bb7a64bd6719f46 (patch) | |
| tree | f48d4dba95accfc0a19ea32da119fae1db968c51 /include/linux | |
| parent | fdc519457a3d4e49e3f8e22d8ea4dae79194a3d2 (diff) | |
[PATCH] direct-IO return type fixes
From: me, Badari Pulavarty <pbadari@us.ibm.com>
Currently a direct-IO read or write of more than 2G on 64-bit machines is
broken. Replace int with ssize_t in various places to fix that up.
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/fs.h | 8 | ||||
| -rw-r--r-- | include/linux/nfs_fs.h | 2 |
2 files changed, 5 insertions, 5 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h index edaaaf6ce341..ed06629b972e 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -317,7 +317,7 @@ struct address_space_operations { sector_t (*bmap)(struct address_space *, sector_t); int (*invalidatepage) (struct page *, unsigned long); int (*releasepage) (struct page *, int); - int (*direct_IO)(int, struct kiocb *, const struct iovec *iov, + ssize_t (*direct_IO)(int, struct kiocb *, const struct iovec *iov, loff_t offset, unsigned long nr_segs); }; @@ -1409,7 +1409,7 @@ static inline void do_generic_file_read(struct file * filp, loff_t *ppos, actor); } -int __blockdev_direct_IO(int rw, struct kiocb *iocb, struct inode *inode, +ssize_t __blockdev_direct_IO(int rw, struct kiocb *iocb, struct inode *inode, struct block_device *bdev, const struct iovec *iov, loff_t offset, unsigned long nr_segs, get_blocks_t get_blocks, dio_iodone_t end_io, int needs_special_locking); @@ -1417,7 +1417,7 @@ int __blockdev_direct_IO(int rw, struct kiocb *iocb, struct inode *inode, /* * For filesystems which need locking between buffered and direct access */ -static inline int blockdev_direct_IO(int rw, struct kiocb *iocb, +static inline ssize_t blockdev_direct_IO(int rw, struct kiocb *iocb, struct inode *inode, struct block_device *bdev, const struct iovec *iov, loff_t offset, unsigned long nr_segs, get_blocks_t get_blocks, dio_iodone_t end_io) @@ -1426,7 +1426,7 @@ static inline int blockdev_direct_IO(int rw, struct kiocb *iocb, nr_segs, get_blocks, end_io, 1); } -static inline int blockdev_direct_IO_no_locking(int rw, struct kiocb *iocb, +static inline ssize_t blockdev_direct_IO_no_locking(int rw, struct kiocb *iocb, struct inode *inode, struct block_device *bdev, const struct iovec *iov, loff_t offset, unsigned long nr_segs, get_blocks_t get_blocks, dio_iodone_t end_io) diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h index fccbab4d02b5..8b49e4be68d5 100644 --- a/include/linux/nfs_fs.h +++ b/include/linux/nfs_fs.h @@ -304,7 +304,7 @@ nfs_file_cred(struct file *file) /* * linux/fs/nfs/direct.c */ -extern int nfs_direct_IO(int, struct kiocb *, const struct iovec *, loff_t, +extern ssize_t nfs_direct_IO(int, struct kiocb *, const struct iovec *, loff_t, unsigned long); /* |
