diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-06-12 13:30:18 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-06-12 13:30:18 -0400 |
commit | 16b9057804c02e2d351e9c8f606e909b43cbd9e7 (patch) | |
tree | a3ac6e1d9d57a8abf4267e5ead3f2de1309335eb /fs/reiserfs | |
parent | 5c02c392cd2320e8d612376d6b72b6548a680923 (diff) | |
parent | c2338f2dc7c1e9f6202f370c64ffd7f44f3d4b51 (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull vfs updates from Al Viro:
"This the bunch that sat in -next + lock_parent() fix. This is the
minimal set; there's more pending stuff.
In particular, I really hope to get acct.c fixes merged this cycle -
we need that to deal sanely with delayed-mntput stuff. In the next
pile, hopefully - that series is fairly short and localized
(kernel/acct.c, fs/super.c and fs/namespace.c). In this pile: more
iov_iter work. Most of prereqs for ->splice_write with sane locking
order are there and Kent's dio rewrite would also fit nicely on top of
this pile"
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (70 commits)
lock_parent: don't step on stale ->d_parent of all-but-freed one
kill generic_file_splice_write()
ceph: switch to iter_file_splice_write()
shmem: switch to iter_file_splice_write()
nfs: switch to iter_splice_write_file()
fs/splice.c: remove unneeded exports
ocfs2: switch to iter_file_splice_write()
->splice_write() via ->write_iter()
bio_vec-backed iov_iter
optimize copy_page_{to,from}_iter()
bury generic_file_aio_{read,write}
lustre: get rid of messing with iovecs
ceph: switch to ->write_iter()
ceph_sync_direct_write: stop poking into iov_iter guts
ceph_sync_read: stop poking into iov_iter guts
new helper: copy_page_from_iter()
fuse: switch to ->write_iter()
btrfs: switch to ->write_iter()
ocfs2: switch to ->write_iter()
xfs: switch to ->write_iter()
...
Diffstat (limited to 'fs/reiserfs')
-rw-r--r-- | fs/reiserfs/file.c | 10 | ||||
-rw-r--r-- | fs/reiserfs/inode.c | 10 |
2 files changed, 10 insertions, 10 deletions
diff --git a/fs/reiserfs/file.c b/fs/reiserfs/file.c index 5f6c32c668b6..db9e80ba53a0 100644 --- a/fs/reiserfs/file.c +++ b/fs/reiserfs/file.c | |||
@@ -243,8 +243,8 @@ drop_write_lock: | |||
243 | } | 243 | } |
244 | 244 | ||
245 | const struct file_operations reiserfs_file_operations = { | 245 | const struct file_operations reiserfs_file_operations = { |
246 | .read = do_sync_read, | 246 | .read = new_sync_read, |
247 | .write = do_sync_write, | 247 | .write = new_sync_write, |
248 | .unlocked_ioctl = reiserfs_ioctl, | 248 | .unlocked_ioctl = reiserfs_ioctl, |
249 | #ifdef CONFIG_COMPAT | 249 | #ifdef CONFIG_COMPAT |
250 | .compat_ioctl = reiserfs_compat_ioctl, | 250 | .compat_ioctl = reiserfs_compat_ioctl, |
@@ -253,10 +253,10 @@ const struct file_operations reiserfs_file_operations = { | |||
253 | .open = reiserfs_file_open, | 253 | .open = reiserfs_file_open, |
254 | .release = reiserfs_file_release, | 254 | .release = reiserfs_file_release, |
255 | .fsync = reiserfs_sync_file, | 255 | .fsync = reiserfs_sync_file, |
256 | .aio_read = generic_file_aio_read, | 256 | .read_iter = generic_file_read_iter, |
257 | .aio_write = generic_file_aio_write, | 257 | .write_iter = generic_file_write_iter, |
258 | .splice_read = generic_file_splice_read, | 258 | .splice_read = generic_file_splice_read, |
259 | .splice_write = generic_file_splice_write, | 259 | .splice_write = iter_file_splice_write, |
260 | .llseek = generic_file_llseek, | 260 | .llseek = generic_file_llseek, |
261 | }; | 261 | }; |
262 | 262 | ||
diff --git a/fs/reiserfs/inode.c b/fs/reiserfs/inode.c index e3ca04894919..63b2b0ec49e6 100644 --- a/fs/reiserfs/inode.c +++ b/fs/reiserfs/inode.c | |||
@@ -3279,15 +3279,15 @@ static int reiserfs_releasepage(struct page *page, gfp_t unused_gfp_flags) | |||
3279 | * to do in this section of the code. | 3279 | * to do in this section of the code. |
3280 | */ | 3280 | */ |
3281 | static ssize_t reiserfs_direct_IO(int rw, struct kiocb *iocb, | 3281 | static ssize_t reiserfs_direct_IO(int rw, struct kiocb *iocb, |
3282 | const struct iovec *iov, loff_t offset, | 3282 | struct iov_iter *iter, loff_t offset) |
3283 | unsigned long nr_segs) | ||
3284 | { | 3283 | { |
3285 | struct file *file = iocb->ki_filp; | 3284 | struct file *file = iocb->ki_filp; |
3286 | struct inode *inode = file->f_mapping->host; | 3285 | struct inode *inode = file->f_mapping->host; |
3286 | size_t count = iov_iter_count(iter); | ||
3287 | ssize_t ret; | 3287 | ssize_t ret; |
3288 | 3288 | ||
3289 | ret = blockdev_direct_IO(rw, iocb, inode, iov, offset, nr_segs, | 3289 | ret = blockdev_direct_IO(rw, iocb, inode, iter, offset, |
3290 | reiserfs_get_blocks_direct_io); | 3290 | reiserfs_get_blocks_direct_io); |
3291 | 3291 | ||
3292 | /* | 3292 | /* |
3293 | * In case of error extending write may have instantiated a few | 3293 | * In case of error extending write may have instantiated a few |
@@ -3295,7 +3295,7 @@ static ssize_t reiserfs_direct_IO(int rw, struct kiocb *iocb, | |||
3295 | */ | 3295 | */ |
3296 | if (unlikely((rw & WRITE) && ret < 0)) { | 3296 | if (unlikely((rw & WRITE) && ret < 0)) { |
3297 | loff_t isize = i_size_read(inode); | 3297 | loff_t isize = i_size_read(inode); |
3298 | loff_t end = offset + iov_length(iov, nr_segs); | 3298 | loff_t end = offset + count; |
3299 | 3299 | ||
3300 | if ((end > isize) && inode_newsize_ok(inode, isize) == 0) { | 3300 | if ((end > isize) && inode_newsize_ok(inode, isize) == 0) { |
3301 | truncate_setsize(inode, isize); | 3301 | truncate_setsize(inode, isize); |