aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/read_write.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/read_write.c b/fs/read_write.c
index a2cbc8303dae..0cc7033aa413 100644
--- a/fs/read_write.c
+++ b/fs/read_write.c
@@ -925,12 +925,10 @@ static ssize_t do_iter_write(struct file *file, struct iov_iter *iter,
925 if (ret < 0) 925 if (ret < 0)
926 return ret; 926 return ret;
927 927
928 file_start_write(file);
929 if (file->f_op->write_iter) 928 if (file->f_op->write_iter)
930 ret = do_iter_readv_writev(file, iter, pos, WRITE, flags); 929 ret = do_iter_readv_writev(file, iter, pos, WRITE, flags);
931 else 930 else
932 ret = do_loop_readv_writev(file, iter, pos, WRITE, flags); 931 ret = do_loop_readv_writev(file, iter, pos, WRITE, flags);
933 file_end_write(file);
934 if (ret > 0) 932 if (ret > 0)
935 fsnotify_modify(file); 933 fsnotify_modify(file);
936 return ret; 934 return ret;
@@ -973,7 +971,9 @@ ssize_t vfs_writev(struct file *file, const struct iovec __user *vec,
973 971
974 ret = import_iovec(WRITE, vec, vlen, ARRAY_SIZE(iovstack), &iov, &iter); 972 ret = import_iovec(WRITE, vec, vlen, ARRAY_SIZE(iovstack), &iov, &iter);
975 if (ret >= 0) { 973 if (ret >= 0) {
974 file_start_write(file);
976 ret = do_iter_write(file, &iter, pos, flags); 975 ret = do_iter_write(file, &iter, pos, flags);
976 file_end_write(file);
977 kfree(iov); 977 kfree(iov);
978 } 978 }
979 return ret; 979 return ret;
@@ -1241,7 +1241,9 @@ static size_t compat_writev(struct file *file,
1241 1241
1242 ret = compat_import_iovec(WRITE, vec, vlen, UIO_FASTIOV, &iov, &iter); 1242 ret = compat_import_iovec(WRITE, vec, vlen, UIO_FASTIOV, &iov, &iter);
1243 if (ret >= 0) { 1243 if (ret >= 0) {
1244 file_start_write(file);
1244 ret = do_iter_write(file, &iter, pos, flags); 1245 ret = do_iter_write(file, &iter, pos, flags);
1246 file_end_write(file);
1245 kfree(iov); 1247 kfree(iov);
1246 } 1248 }
1247 if (ret > 0) 1249 if (ret > 0)