mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-21 22:21:21 +00:00
Merge branch 'work.set_fs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull more set_fs removal from Al Viro: "Christoph's 'use kernel_read and friends rather than open-coding set_fs()' series" * 'work.set_fs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: fs: unexport vfs_readv and vfs_writev fs: unexport vfs_read and vfs_write fs: unexport __vfs_read/__vfs_write lustre: switch to kernel_write gadget/f_mass_storage: stop messing with the address limit mconsole: switch to kernel_read btrfs: switch write_buf to kernel_write net/9p: switch p9_fd_read to kernel_write mm/nommu: switch do_mmap_private to kernel_read serial2002: switch serial2002_tty_write to kernel_{read/write} fs: make the buf argument to __kernel_write a void pointer fs: fix kernel_write prototype fs: fix kernel_read prototype fs: move kernel_read to fs/read_write.c fs: move kernel_write to fs/read_write.c autofs4: switch autofs4_write to __kernel_write ashmem: switch to ->read_iter
This commit is contained in:
commit
581bfce969
31 changed files with 147 additions and 236 deletions
24
fs/exec.c
24
fs/exec.c
|
@ -885,23 +885,6 @@ struct file *open_exec(const char *name)
|
|||
}
|
||||
EXPORT_SYMBOL(open_exec);
|
||||
|
||||
int kernel_read(struct file *file, loff_t offset,
|
||||
char *addr, unsigned long count)
|
||||
{
|
||||
mm_segment_t old_fs;
|
||||
loff_t pos = offset;
|
||||
int result;
|
||||
|
||||
old_fs = get_fs();
|
||||
set_fs(get_ds());
|
||||
/* The cast to a user pointer is valid due to the set_fs() */
|
||||
result = vfs_read(file, (void __user *)addr, count, &pos);
|
||||
set_fs(old_fs);
|
||||
return result;
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL(kernel_read);
|
||||
|
||||
int kernel_read_file(struct file *file, void **buf, loff_t *size,
|
||||
loff_t max_size, enum kernel_read_file_id id)
|
||||
{
|
||||
|
@ -939,8 +922,7 @@ int kernel_read_file(struct file *file, void **buf, loff_t *size,
|
|||
|
||||
pos = 0;
|
||||
while (pos < i_size) {
|
||||
bytes = kernel_read(file, pos, (char *)(*buf) + pos,
|
||||
i_size - pos);
|
||||
bytes = kernel_read(file, *buf + pos, i_size - pos, &pos);
|
||||
if (bytes < 0) {
|
||||
ret = bytes;
|
||||
goto out;
|
||||
|
@ -948,7 +930,6 @@ int kernel_read_file(struct file *file, void **buf, loff_t *size,
|
|||
|
||||
if (bytes == 0)
|
||||
break;
|
||||
pos += bytes;
|
||||
}
|
||||
|
||||
if (pos != i_size) {
|
||||
|
@ -1567,6 +1548,7 @@ static void bprm_fill_uid(struct linux_binprm *bprm)
|
|||
int prepare_binprm(struct linux_binprm *bprm)
|
||||
{
|
||||
int retval;
|
||||
loff_t pos = 0;
|
||||
|
||||
bprm_fill_uid(bprm);
|
||||
|
||||
|
@ -1577,7 +1559,7 @@ int prepare_binprm(struct linux_binprm *bprm)
|
|||
bprm->called_set_creds = 1;
|
||||
|
||||
memset(bprm->buf, 0, BINPRM_BUF_SIZE);
|
||||
return kernel_read(bprm->file, 0, bprm->buf, BINPRM_BUF_SIZE);
|
||||
return kernel_read(bprm->file, bprm->buf, BINPRM_BUF_SIZE, &pos);
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL(prepare_binprm);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue