History

export kernel_write(), convert open-coded instances

Al Viro committed 13 years ago

Commit 7bb307e1 parent 94e07a75 files · +24 −61Browse files

Showing the changes to kernel/sysctl_binary.c (1 of 5 files). Show all

Unified · Split

kernel/sysctl_binary.c+7−32
@@ -971,7 +971,6 @@ out: · 970 unmodified lines
971971 static ssize_t bin_intvec(struct file *file,
972972 void __user *oldval, size_t oldlen, void __user *newval, size_t newlen)
973973 {
974− mm_segment_t old_fs = get_fs();
975974 ssize_t copied = 0;
976975 char *buffer;
977976 ssize_t result;
@@ -984,13 +983,10 @@ static ssize_t bin_intvec(struct file *file, · 6 unmodified lines
984983 if (oldval && oldlen) {
985984 unsigned __user *vec = oldval;
986985 size_t length = oldlen / sizeof(*vec);
987− loff_t pos = 0;
988986 char *str, *end;
989987 int i;
990988
991− set_fs(KERNEL_DS);
992− result = vfs_read(file, buffer, BUFSZ - 1, &pos);
993− set_fs(old_fs);
989+ result = kernel_read(file, 0, buffer, BUFSZ - 1);
994990 if (result < 0)
995991 goto out_kfree;
996992
@@ -1017,7 +1013,6 @@ static ssize_t bin_intvec(struct file *file, · 20 unmodified lines
10171013 if (newval && newlen) {
10181014 unsigned __user *vec = newval;
10191015 size_t length = newlen / sizeof(*vec);
1020− loff_t pos = 0;
10211016 char *str, *end;
10221017 int i;
10231018
@@ -1033,9 +1028,7 @@ static ssize_t bin_intvec(struct file *file, · 9 unmodified lines
10331028 str += snprintf(str, end - str, "%lu\t", value);
10341029 }
10351030
1036− set_fs(KERNEL_DS);
1037− result = vfs_write(file, buffer, str - buffer, &pos);
1038− set_fs(old_fs);
1031+ result = kernel_write(file, buffer, str - buffer, 0);
10391032 if (result < 0)
10401033 goto out_kfree;
10411034 }
@@ -1049,7 +1042,6 @@ out: · 7 unmodified lines
10491042 static ssize_t bin_ulongvec(struct file *file,
10501043 void __user *oldval, size_t oldlen, void __user *newval, size_t newlen)
10511044 {
1052− mm_segment_t old_fs = get_fs();
10531045 ssize_t copied = 0;
10541046 char *buffer;
10551047 ssize_t result;
@@ -1062,13 +1054,10 @@ static ssize_t bin_ulongvec(struct file *file, · 6 unmodified lines
10621054 if (oldval && oldlen) {
10631055 unsigned long __user *vec = oldval;
10641056 size_t length = oldlen / sizeof(*vec);
1065− loff_t pos = 0;
10661057 char *str, *end;
10671058 int i;
10681059
1069− set_fs(KERNEL_DS);
1070− result = vfs_read(file, buffer, BUFSZ - 1, &pos);
1071− set_fs(old_fs);
1060+ result = kernel_read(file, 0, buffer, BUFSZ - 1);
10721061 if (result < 0)
10731062 goto out_kfree;
10741063
@@ -1095,7 +1084,6 @@ static ssize_t bin_ulongvec(struct file *file, · 20 unmodified lines
10951084 if (newval && newlen) {
10961085 unsigned long __user *vec = newval;
10971086 size_t length = newlen / sizeof(*vec);
1098− loff_t pos = 0;
10991087 char *str, *end;
11001088 int i;
11011089
@@ -1111,9 +1099,7 @@ static ssize_t bin_ulongvec(struct file *file, · 9 unmodified lines
11111099 str += snprintf(str, end - str, "%lu\t", value);
11121100 }
11131101
1114− set_fs(KERNEL_DS);
1115− result = vfs_write(file, buffer, str - buffer, &pos);
1116− set_fs(old_fs);
1102+ result = kernel_write(file, buffer, str - buffer, 0);
11171103 if (result < 0)
11181104 goto out_kfree;
11191105 }
@@ -1127,19 +1113,15 @@ out: · 7 unmodified lines
11271113 static ssize_t bin_uuid(struct file *file,
11281114 void __user *oldval, size_t oldlen, void __user *newval, size_t newlen)
11291115 {
1130− mm_segment_t old_fs = get_fs();
11311116 ssize_t result, copied = 0;
11321117
11331118 /* Only supports reads */
11341119 if (oldval && oldlen) {
1135− loff_t pos = 0;
11361120 char buf[40], *str = buf;
11371121 unsigned char uuid[16];
11381122 int i;
11391123
1140− set_fs(KERNEL_DS);
1141− result = vfs_read(file, buf, sizeof(buf) - 1, &pos);
1142− set_fs(old_fs);
1124+ result = kernel_read(file, 0, buf, sizeof(buf) - 1);
11431125 if (result < 0)
11441126 goto out;
11451127
@@ -1175,18 +1157,14 @@ out: · 29 unmodified lines
11751157 static ssize_t bin_dn_node_address(struct file *file,
11761158 void __user *oldval, size_t oldlen, void __user *newval, size_t newlen)
11771159 {
1178− mm_segment_t old_fs = get_fs();
11791160 ssize_t result, copied = 0;
11801161
11811162 if (oldval && oldlen) {
1182− loff_t pos = 0;
11831163 char buf[15], *nodep;
11841164 unsigned long area, node;
11851165 __le16 dnaddr;
11861166
1187− set_fs(KERNEL_DS);
1188− result = vfs_read(file, buf, sizeof(buf) - 1, &pos);
1189− set_fs(old_fs);
1167+ result = kernel_read(file, 0, buf, sizeof(buf) - 1);
11901168 if (result < 0)
11911169 goto out;
11921170
@@ -1215,7 +1193,6 @@ static ssize_t bin_dn_node_address(struct file *file, · 22 unmodified lines
12151193 }
12161194
12171195 if (newval && newlen) {
1218− loff_t pos = 0;
12191196 __le16 dnaddr;
12201197 char buf[15];
12211198 int len;
@@ -1232,9 +1209,7 @@ static ssize_t bin_dn_node_address(struct file *file, · 10 unmodified lines
12321209 le16_to_cpu(dnaddr) >> 10,
12331210 le16_to_cpu(dnaddr) & 0x3ff);
12341211
1235− set_fs(KERNEL_DS);
1236− result = vfs_write(file, buf, len, &pos);
1237− set_fs(old_fs);
1212+ result = kernel_write(file, buf, len, 0);
12381213 if (result < 0)
12391214 goto out;
12401215 }