Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

fs: fix kernel_write prototype

Make the position an in/out argument like all the other read/write
helpers and and make the buf argument a void pointer.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

authored by

Christoph Hellwig and committed by
Al Viro
e13ec939 bdd1d2d3

+19 -13
+1 -1
drivers/mtd/nand/nandsim.c
··· 1395 1395 if (err) 1396 1396 return err; 1397 1397 noreclaim_flag = memalloc_noreclaim_save(); 1398 - tx = kernel_write(file, buf, count, pos); 1398 + tx = kernel_write(file, buf, count, &pos); 1399 1399 memalloc_noreclaim_restore(noreclaim_flag); 1400 1400 put_pages(ns); 1401 1401 return tx;
+2 -1
drivers/target/target_core_alua.c
··· 896 896 u32 md_buf_len) 897 897 { 898 898 struct file *file = filp_open(path, O_RDWR | O_CREAT | O_TRUNC, 0600); 899 + loff_t pos = 0; 899 900 int ret; 900 901 901 902 if (IS_ERR(file)) { 902 903 pr_err("filp_open(%s) for ALUA metadata failed\n", path); 903 904 return -ENODEV; 904 905 } 905 - ret = kernel_write(file, md_buf, md_buf_len, 0); 906 + ret = kernel_write(file, md_buf, md_buf_len, &pos); 906 907 if (ret < 0) 907 908 pr_err("Error writing ALUA metadata file: %s\n", path); 908 909 fput(file);
+1 -1
drivers/target/target_core_file.c
··· 443 443 444 444 for (prot = 0; prot < prot_length;) { 445 445 sector_t len = min_t(sector_t, bufsize, prot_length - prot); 446 - ssize_t ret = kernel_write(prot_fd, buf, len, pos + prot); 446 + ssize_t ret = kernel_write(prot_fd, buf, len, &pos); 447 447 448 448 if (ret != len) { 449 449 pr_err("vfs_write to prot file failed: %zd\n", ret);
+2 -1
drivers/target/target_core_pr.c
··· 1974 1974 char path[512]; 1975 1975 u32 pr_aptpl_buf_len; 1976 1976 int ret; 1977 + loff_t pos = 0; 1977 1978 1978 1979 memset(path, 0, 512); 1979 1980 ··· 1994 1993 1995 1994 pr_aptpl_buf_len = (strlen(buf) + 1); /* Add extra for NULL */ 1996 1995 1997 - ret = kernel_write(file, buf, pr_aptpl_buf_len, 0); 1996 + ret = kernel_write(file, buf, pr_aptpl_buf_len, &pos); 1998 1997 1999 1998 if (ret < 0) 2000 1999 pr_debug("Error writing APTPL metadata file: %s\n", path);
+1 -1
fs/ecryptfs/read_write.c
··· 47 47 lower_file = ecryptfs_inode_to_private(ecryptfs_inode)->lower_file; 48 48 if (!lower_file) 49 49 return -EIO; 50 - rc = kernel_write(lower_file, data, size, offset); 50 + rc = kernel_write(lower_file, data, size, &offset); 51 51 mark_inode_dirty_sync(ecryptfs_inode); 52 52 return rc; 53 53 }
+3 -3
fs/read_write.c
··· 512 512 } 513 513 EXPORT_SYMBOL(__kernel_write); 514 514 515 - ssize_t kernel_write(struct file *file, const char *buf, size_t count, 516 - loff_t pos) 515 + ssize_t kernel_write(struct file *file, const void *buf, size_t count, 516 + loff_t *pos) 517 517 { 518 518 mm_segment_t old_fs; 519 519 ssize_t res; ··· 521 521 old_fs = get_fs(); 522 522 set_fs(get_ds()); 523 523 /* The cast to a user pointer is valid due to the set_fs() */ 524 - res = vfs_write(file, (__force const char __user *)buf, count, &pos); 524 + res = vfs_write(file, (__force const char __user *)buf, count, pos); 525 525 set_fs(old_fs); 526 526 527 527 return res;
+1 -1
include/linux/fs.h
··· 2779 2779 extern int kernel_read_file_from_fd(int, void **, loff_t *, loff_t, 2780 2780 enum kernel_read_file_id); 2781 2781 extern ssize_t kernel_read(struct file *, void *, size_t, loff_t *); 2782 - extern ssize_t kernel_write(struct file *, const char *, size_t, loff_t); 2782 + extern ssize_t kernel_write(struct file *, const void *, size_t, loff_t *); 2783 2783 extern ssize_t __kernel_write(struct file *, const char *, size_t, loff_t *); 2784 2784 extern struct file * open_exec(const char *); 2785 2785
+6 -3
kernel/sysctl_binary.c
··· 1017 1017 size_t length = newlen / sizeof(*vec); 1018 1018 char *str, *end; 1019 1019 int i; 1020 + loff_t pos = 0; 1020 1021 1021 1022 str = buffer; 1022 1023 end = str + BUFSZ; ··· 1031 1030 str += scnprintf(str, end - str, "%lu\t", value); 1032 1031 } 1033 1032 1034 - result = kernel_write(file, buffer, str - buffer, 0); 1033 + result = kernel_write(file, buffer, str - buffer, &pos); 1035 1034 if (result < 0) 1036 1035 goto out_kfree; 1037 1036 } ··· 1090 1089 size_t length = newlen / sizeof(*vec); 1091 1090 char *str, *end; 1092 1091 int i; 1092 + loff_t pos = 0; 1093 1093 1094 1094 str = buffer; 1095 1095 end = str + BUFSZ; ··· 1104 1102 str += scnprintf(str, end - str, "%lu\t", value); 1105 1103 } 1106 1104 1107 - result = kernel_write(file, buffer, str - buffer, 0); 1105 + result = kernel_write(file, buffer, str - buffer, &pos); 1108 1106 if (result < 0) 1109 1107 goto out_kfree; 1110 1108 } ··· 1194 1192 __le16 dnaddr; 1195 1193 char buf[15]; 1196 1194 int len; 1195 + loff_t pos = 0; 1197 1196 1198 1197 result = -EINVAL; 1199 1198 if (newlen != sizeof(dnaddr)) ··· 1208 1205 le16_to_cpu(dnaddr) >> 10, 1209 1206 le16_to_cpu(dnaddr) & 0x3ff); 1210 1207 1211 - result = kernel_write(file, buf, len, 0); 1208 + result = kernel_write(file, buf, len, &pos); 1212 1209 if (result < 0) 1213 1210 goto out; 1214 1211 }
+2 -1
security/keys/big_key.c
··· 147 147 * File content is stored encrypted with randomly generated key. 148 148 */ 149 149 size_t enclen = ALIGN(datalen, crypto_skcipher_blocksize(big_key_skcipher)); 150 + loff_t pos = 0; 150 151 151 152 /* prepare aligned data to encrypt */ 152 153 data = kmalloc(enclen, GFP_KERNEL); ··· 180 179 goto err_enckey; 181 180 } 182 181 183 - written = kernel_write(file, data, enclen, 0); 182 + written = kernel_write(file, data, enclen, &pos); 184 183 if (written != enclen) { 185 184 ret = written; 186 185 if (written >= 0)