aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2017-09-01 11:39:22 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2017-09-04 19:05:16 -0400
commit8257723993e29335bcbd1912e6956357a5539976 (patch)
tree7eb245972cefc365763c1361734ae805e91e2616
parent05a4a33b6d82bc6ec157b0bda409b2708b1fa45f (diff)
lustre: switch to kernel_write
Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r--drivers/staging/lustre/lnet/libcfs/tracefile.c10
-rw-r--r--drivers/staging/lustre/lustre/obdclass/kernelcomm.c7
2 files changed, 3 insertions, 14 deletions
diff --git a/drivers/staging/lustre/lnet/libcfs/tracefile.c b/drivers/staging/lustre/lnet/libcfs/tracefile.c
index d1aa79bb2017..af61dd750033 100644
--- a/drivers/staging/lustre/lnet/libcfs/tracefile.c
+++ b/drivers/staging/lustre/lnet/libcfs/tracefile.c
@@ -731,8 +731,7 @@ int cfs_tracefile_dump_all_pages(char *filename)
731 __LASSERT_TAGE_INVARIANT(tage); 731 __LASSERT_TAGE_INVARIANT(tage);
732 732
733 buf = kmap(tage->page); 733 buf = kmap(tage->page);
734 rc = vfs_write(filp, (__force const char __user *)buf, 734 rc = kernel_write(filp, buf, tage->used, &filp->f_pos);
735 tage->used, &filp->f_pos);
736 kunmap(tage->page); 735 kunmap(tage->page);
737 736
738 if (rc != (int)tage->used) { 737 if (rc != (int)tage->used) {
@@ -976,7 +975,6 @@ static int tracefiled(void *arg)
976 struct tracefiled_ctl *tctl = arg; 975 struct tracefiled_ctl *tctl = arg;
977 struct cfs_trace_page *tage; 976 struct cfs_trace_page *tage;
978 struct cfs_trace_page *tmp; 977 struct cfs_trace_page *tmp;
979 mm_segment_t __oldfs;
980 struct file *filp; 978 struct file *filp;
981 char *buf; 979 char *buf;
982 int last_loop = 0; 980 int last_loop = 0;
@@ -1014,8 +1012,6 @@ static int tracefiled(void *arg)
1014 __LASSERT(list_empty(&pc.pc_pages)); 1012 __LASSERT(list_empty(&pc.pc_pages));
1015 goto end_loop; 1013 goto end_loop;
1016 } 1014 }
1017 __oldfs = get_fs();
1018 set_fs(get_ds());
1019 1015
1020 list_for_each_entry_safe(tage, tmp, &pc.pc_pages, linkage) { 1016 list_for_each_entry_safe(tage, tmp, &pc.pc_pages, linkage) {
1021 static loff_t f_pos; 1017 static loff_t f_pos;
@@ -1028,8 +1024,7 @@ static int tracefiled(void *arg)
1028 f_pos = i_size_read(file_inode(filp)); 1024 f_pos = i_size_read(file_inode(filp));
1029 1025
1030 buf = kmap(tage->page); 1026 buf = kmap(tage->page);
1031 rc = vfs_write(filp, (__force const char __user *)buf, 1027 rc = kernel_write(filp, buf, tage->used, &f_pos);
1032 tage->used, &f_pos);
1033 kunmap(tage->page); 1028 kunmap(tage->page);
1034 1029
1035 if (rc != (int)tage->used) { 1030 if (rc != (int)tage->used) {
@@ -1040,7 +1035,6 @@ static int tracefiled(void *arg)
1040 break; 1035 break;
1041 } 1036 }
1042 } 1037 }
1043 set_fs(__oldfs);
1044 1038
1045 filp_close(filp, NULL); 1039 filp_close(filp, NULL);
1046 put_pages_on_daemon_list(&pc); 1040 put_pages_on_daemon_list(&pc);
diff --git a/drivers/staging/lustre/lustre/obdclass/kernelcomm.c b/drivers/staging/lustre/lustre/obdclass/kernelcomm.c
index a0f65c470f4d..7afe8471a762 100644
--- a/drivers/staging/lustre/lustre/obdclass/kernelcomm.c
+++ b/drivers/staging/lustre/lustre/obdclass/kernelcomm.c
@@ -52,7 +52,6 @@ int libcfs_kkuc_msg_put(struct file *filp, void *payload)
52 struct kuc_hdr *kuch = (struct kuc_hdr *)payload; 52 struct kuc_hdr *kuch = (struct kuc_hdr *)payload;
53 ssize_t count = kuch->kuc_msglen; 53 ssize_t count = kuch->kuc_msglen;
54 loff_t offset = 0; 54 loff_t offset = 0;
55 mm_segment_t fs;
56 int rc = -ENXIO; 55 int rc = -ENXIO;
57 56
58 if (IS_ERR_OR_NULL(filp)) 57 if (IS_ERR_OR_NULL(filp))
@@ -63,18 +62,14 @@ int libcfs_kkuc_msg_put(struct file *filp, void *payload)
63 return rc; 62 return rc;
64 } 63 }
65 64
66 fs = get_fs();
67 set_fs(KERNEL_DS);
68 while (count > 0) { 65 while (count > 0) {
69 rc = vfs_write(filp, (void __force __user *)payload, 66 rc = kernel_write(filp, payload, count, &offset);
70 count, &offset);
71 if (rc < 0) 67 if (rc < 0)
72 break; 68 break;
73 count -= rc; 69 count -= rc;
74 payload += rc; 70 payload += rc;
75 rc = 0; 71 rc = 0;
76 } 72 }
77 set_fs(fs);
78 73
79 if (rc < 0) 74 if (rc < 0)
80 CWARN("message send failed (%d)\n", rc); 75 CWARN("message send failed (%d)\n", rc);