lustre: switch to kernel_write
authorChristoph Hellwig <hch@lst.de>
Fri, 1 Sep 2017 15:39:22 +0000 (17:39 +0200)
committerAl Viro <viro@zeniv.linux.org.uk>
Mon, 4 Sep 2017 23:05:16 +0000 (19:05 -0400)
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
drivers/staging/lustre/lnet/libcfs/tracefile.c
drivers/staging/lustre/lustre/obdclass/kernelcomm.c

index d1aa79bb20174d7dd0561aa4cc68fd477b6659b6..af61dd75003349c14ed45ce7004569cbb520abd3 100644 (file)
@@ -731,8 +731,7 @@ int cfs_tracefile_dump_all_pages(char *filename)
                __LASSERT_TAGE_INVARIANT(tage);
 
                buf = kmap(tage->page);
-               rc = vfs_write(filp, (__force const char __user *)buf,
-                              tage->used, &filp->f_pos);
+               rc = kernel_write(filp, buf, tage->used, &filp->f_pos);
                kunmap(tage->page);
 
                if (rc != (int)tage->used) {
@@ -976,7 +975,6 @@ static int tracefiled(void *arg)
        struct tracefiled_ctl *tctl = arg;
        struct cfs_trace_page *tage;
        struct cfs_trace_page *tmp;
-       mm_segment_t __oldfs;
        struct file *filp;
        char *buf;
        int last_loop = 0;
@@ -1014,8 +1012,6 @@ static int tracefiled(void *arg)
                        __LASSERT(list_empty(&pc.pc_pages));
                        goto end_loop;
                }
-               __oldfs = get_fs();
-               set_fs(get_ds());
 
                list_for_each_entry_safe(tage, tmp, &pc.pc_pages, linkage) {
                        static loff_t f_pos;
@@ -1028,8 +1024,7 @@ static int tracefiled(void *arg)
                                f_pos = i_size_read(file_inode(filp));
 
                        buf = kmap(tage->page);
-                       rc = vfs_write(filp, (__force const char __user *)buf,
-                                      tage->used, &f_pos);
+                       rc = kernel_write(filp, buf, tage->used, &f_pos);
                        kunmap(tage->page);
 
                        if (rc != (int)tage->used) {
@@ -1040,7 +1035,6 @@ static int tracefiled(void *arg)
                                break;
                        }
                }
-               set_fs(__oldfs);
 
                filp_close(filp, NULL);
                put_pages_on_daemon_list(&pc);
index a0f65c470f4daccfbcf872d95d4e524026cbe049..7afe8471a762da6ddcb105ac70959511954c1f10 100644 (file)
@@ -52,7 +52,6 @@ int libcfs_kkuc_msg_put(struct file *filp, void *payload)
        struct kuc_hdr *kuch = (struct kuc_hdr *)payload;
        ssize_t count = kuch->kuc_msglen;
        loff_t offset = 0;
-       mm_segment_t fs;
        int rc = -ENXIO;
 
        if (IS_ERR_OR_NULL(filp))
@@ -63,18 +62,14 @@ int libcfs_kkuc_msg_put(struct file *filp, void *payload)
                return rc;
        }
 
-       fs = get_fs();
-       set_fs(KERNEL_DS);
        while (count > 0) {
-               rc = vfs_write(filp, (void __force __user *)payload,
-                              count, &offset);
+               rc = kernel_write(filp, payload, count, &offset);
                if (rc < 0)
                        break;
                count -= rc;
                payload += rc;
                rc = 0;
        }
-       set_fs(fs);
 
        if (rc < 0)
                CWARN("message send failed (%d)\n", rc);