diff options
-rw-r--r-- | fs/ocfs2/file.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c index 77b8a742866f..9c27adf4ac72 100644 --- a/fs/ocfs2/file.c +++ b/fs/ocfs2/file.c | |||
@@ -2381,9 +2381,12 @@ relock: | |||
2381 | goto out_dio; | 2381 | goto out_dio; |
2382 | } | 2382 | } |
2383 | } else { | 2383 | } else { |
2384 | struct iov_iter from; | ||
2385 | iov_iter_init(&from, iov, nr_segs, count, 0); | ||
2384 | current->backing_dev_info = file->f_mapping->backing_dev_info; | 2386 | current->backing_dev_info = file->f_mapping->backing_dev_info; |
2385 | written = generic_file_buffered_write(iocb, iov, nr_segs, *ppos, | 2387 | written = generic_perform_write(file, &from, *ppos); |
2386 | count, 0); | 2388 | if (likely(written >= 0)) |
2389 | iocb->ki_pos = *ppos + written; | ||
2387 | current->backing_dev_info = NULL; | 2390 | current->backing_dev_info = NULL; |
2388 | } | 2391 | } |
2389 | 2392 | ||