diff options
Diffstat (limited to 'kernel/sysctl_binary.c')
| -rw-r--r-- | kernel/sysctl_binary.c | 22 | 
1 files changed, 15 insertions, 7 deletions
| diff --git a/kernel/sysctl_binary.c b/kernel/sysctl_binary.c index 02e1859f2ca8..e8c0dab4fd65 100644 --- a/kernel/sysctl_binary.c +++ b/kernel/sysctl_binary.c @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: GPL-2.0  #include <linux/stat.h>  #include <linux/sysctl.h>  #include "../fs/xfs/xfs_sysctl.h" @@ -986,8 +987,9 @@ static ssize_t bin_intvec(struct file *file,  		size_t length = oldlen / sizeof(*vec);  		char *str, *end;  		int i; +		loff_t pos = 0; -		result = kernel_read(file, 0, buffer, BUFSZ - 1); +		result = kernel_read(file, buffer, BUFSZ - 1, &pos);  		if (result < 0)  			goto out_kfree; @@ -1016,6 +1018,7 @@ static ssize_t bin_intvec(struct file *file,  		size_t length = newlen / sizeof(*vec);  		char *str, *end;  		int i; +		loff_t pos = 0;  		str = buffer;  		end = str + BUFSZ; @@ -1029,7 +1032,7 @@ static ssize_t bin_intvec(struct file *file,  			str += scnprintf(str, end - str, "%lu\t", value);  		} -		result = kernel_write(file, buffer, str - buffer, 0); +		result = kernel_write(file, buffer, str - buffer, &pos);  		if (result < 0)  			goto out_kfree;  	} @@ -1057,8 +1060,9 @@ static ssize_t bin_ulongvec(struct file *file,  		size_t length = oldlen / sizeof(*vec);  		char *str, *end;  		int i; +		loff_t pos = 0; -		result = kernel_read(file, 0, buffer, BUFSZ - 1); +		result = kernel_read(file, buffer, BUFSZ - 1, &pos);  		if (result < 0)  			goto out_kfree; @@ -1087,6 +1091,7 @@ static ssize_t bin_ulongvec(struct file *file,  		size_t length = newlen / sizeof(*vec);  		char *str, *end;  		int i; +		loff_t pos = 0;  		str = buffer;  		end = str + BUFSZ; @@ -1100,7 +1105,7 @@ static ssize_t bin_ulongvec(struct file *file,  			str += scnprintf(str, end - str, "%lu\t", value);  		} -		result = kernel_write(file, buffer, str - buffer, 0); +		result = kernel_write(file, buffer, str - buffer, &pos);  		if (result < 0)  			goto out_kfree;  	} @@ -1120,8 +1125,9 @@ static ssize_t bin_uuid(struct file *file,  	if (oldval && oldlen) {  		char buf[UUID_STRING_LEN + 1];  		uuid_t uuid; +		loff_t pos = 0; -		result = kernel_read(file, 0, buf, sizeof(buf) - 1); +		result = kernel_read(file, buf, sizeof(buf) - 1, &pos);  		if (result < 0)  			goto out; @@ -1154,8 +1160,9 @@ static ssize_t bin_dn_node_address(struct file *file,  		char buf[15], *nodep;  		unsigned long area, node;  		__le16 dnaddr; +		loff_t pos = 0; -		result = kernel_read(file, 0, buf, sizeof(buf) - 1); +		result = kernel_read(file, buf, sizeof(buf) - 1, &pos);  		if (result < 0)  			goto out; @@ -1188,6 +1195,7 @@ static ssize_t bin_dn_node_address(struct file *file,  		__le16 dnaddr;  		char buf[15];  		int len; +		loff_t pos = 0;  		result = -EINVAL;  		if (newlen != sizeof(dnaddr)) @@ -1201,7 +1209,7 @@ static ssize_t bin_dn_node_address(struct file *file,  				le16_to_cpu(dnaddr) >> 10,  				le16_to_cpu(dnaddr) & 0x3ff); -		result = kernel_write(file, buf, len, 0); +		result = kernel_write(file, buf, len, &pos);  		if (result < 0)  			goto out;  	} |