1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
--- a/debugfs.c
+++ b/debugfs.c
@@ -279,7 +279,6 @@ static void core_dump_file(u8 *valbuf, u
u32 append, u32 totallen, bool textmode)
{
struct file *filp_core = NULL;
- mm_segment_t oldfs;
char file_name[40];
u8 *buf = kmalloc(length * 3, GFP_KERNEL);
u8 *data_p = buf;
@@ -292,9 +291,6 @@ static void core_dump_file(u8 *valbuf, u
sprintf(file_name, "/dev/shm/coredump-%x-%x",
region, (region + totallen));
- oldfs = get_fs();
- set_fs(KERNEL_DS);
-
if (append)
filp_core = filp_open(file_name, O_RDWR | O_APPEND, 0);
else
@@ -317,15 +313,15 @@ static void core_dump_file(u8 *valbuf, u
}
data_p = buf + j;
data_p += sprintf(data_p, "\n");
- vfs_write(filp_core, buf, strlen(buf),
- &filp_core->f_pos);
+ kernel_write(filp_core, buf, strlen(buf),
+ &filp_core->f_pos);
} else
- vfs_write(filp_core, valbuf, length, &filp_core->f_pos);
+ kernel_write(filp_core, valbuf, length,
+ &filp_core->f_pos);
filp_close(filp_core, current->files);
}
- set_fs(oldfs);
kfree(buf);
}
@@ -1339,7 +1335,6 @@ static ssize_t mwl_debugfs_ba_hist_read(
u8 bmap0flag, nobaflag;
char buff[500], file_location[20];
struct file *filp_bahisto;
- mm_segment_t oldfs;
u8 *data_p = buff;
ssize_t ret;
@@ -1355,13 +1350,10 @@ static ssize_t mwl_debugfs_ba_hist_read(
memset(file_location, 0, sizeof(file_location));
sprintf(file_location, "/tmp/ba_histo-%d", priv->ba_aid);
- oldfs = get_fs();
- set_fs(KERNEL_DS);
filp_bahisto = filp_open(file_location,
O_RDWR | O_CREAT | O_TRUNC, 0);
if (IS_ERR(filp_bahisto)) {
- set_fs(oldfs);
ret = -EIO;
goto err;
}
@@ -1402,8 +1394,8 @@ static ssize_t mwl_debugfs_ba_hist_read(
/* Buffer is full. Write to file and reset buf */
if ((strlen(buff) + 36) >= 500) {
- vfs_write(filp_bahisto, buff, strlen(buff),
- &filp_bahisto->f_pos);
+ kernel_write(filp_bahisto, buff, strlen(buff),
+ &filp_bahisto->f_pos);
mdelay(2);
memset(buff, 0, sizeof(buff));
data_p = buff;
@@ -1427,8 +1419,8 @@ static ssize_t mwl_debugfs_ba_hist_read(
data_p += sprintf(data_p, "%8d\n", nobaflag);
}
- vfs_write(filp_bahisto, buff, strlen(buff),
- &filp_bahisto->f_pos);
+ kernel_write(filp_bahisto, buff, strlen(buff),
+ &filp_bahisto->f_pos);
len += scnprintf(p + len, size - len,
"hole: %d, expect: %d, bmap0: %d, noba: %d\n",
baholecnt, baexpcnt, bmap0cnt, nobacnt);
@@ -1441,7 +1433,6 @@ static ssize_t mwl_debugfs_ba_hist_read(
priv->ba_aid);
filp_close(filp_bahisto, current->files);
- set_fs(oldfs);
ret = simple_read_from_buffer(ubuf, count, ppos, p, len);
|