diff options
author | Christoph Hellwig <hch@lst.de> | 2017-09-01 11:39:22 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2017-09-04 19:05:16 -0400 |
commit | 8257723993e29335bcbd1912e6956357a5539976 (patch) | |
tree | 7eb245972cefc365763c1361734ae805e91e2616 | |
parent | 05a4a33b6d82bc6ec157b0bda409b2708b1fa45f (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.c | 10 | ||||
-rw-r--r-- | drivers/staging/lustre/lustre/obdclass/kernelcomm.c | 7 |
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); |