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:
@@ -409,6 +409,7 @@ static struct elf_phdr *load_elf_phdrs(struct elfhdr *elf_ex,
|
||||
{
|
||||
struct elf_phdr *elf_phdata = NULL;
|
||||
int retval, size, err = -1;
|
||||
loff_t pos = elf_ex->e_phoff;
|
||||
|
||||
/*
|
||||
* If the size of this structure has changed, then punt, since
|
||||
@@ -432,8 +433,7 @@ static struct elf_phdr *load_elf_phdrs(struct elfhdr *elf_ex,
|
||||
goto out;
|
||||
|
||||
/* Read in the program headers */
|
||||
retval = kernel_read(elf_file, elf_ex->e_phoff,
|
||||
(char *)elf_phdata, size);
|
||||
retval = kernel_read(elf_file, elf_phdata, size, &pos);
|
||||
if (retval != size) {
|
||||
err = (retval < 0) ? retval : -EIO;
|
||||
goto out;
|
||||
@@ -698,6 +698,7 @@ static int load_elf_binary(struct linux_binprm *bprm)
|
||||
struct elfhdr interp_elf_ex;
|
||||
} *loc;
|
||||
struct arch_elf_state arch_state = INIT_ARCH_ELF_STATE;
|
||||
loff_t pos;
|
||||
|
||||
loc = kmalloc(sizeof(*loc), GFP_KERNEL);
|
||||
if (!loc) {
|
||||
@@ -750,9 +751,9 @@ static int load_elf_binary(struct linux_binprm *bprm)
|
||||
if (!elf_interpreter)
|
||||
goto out_free_ph;
|
||||
|
||||
retval = kernel_read(bprm->file, elf_ppnt->p_offset,
|
||||
elf_interpreter,
|
||||
elf_ppnt->p_filesz);
|
||||
pos = elf_ppnt->p_offset;
|
||||
retval = kernel_read(bprm->file, elf_interpreter,
|
||||
elf_ppnt->p_filesz, &pos);
|
||||
if (retval != elf_ppnt->p_filesz) {
|
||||
if (retval >= 0)
|
||||
retval = -EIO;
|
||||
@@ -776,9 +777,9 @@ static int load_elf_binary(struct linux_binprm *bprm)
|
||||
would_dump(bprm, interpreter);
|
||||
|
||||
/* Get the exec headers */
|
||||
retval = kernel_read(interpreter, 0,
|
||||
(void *)&loc->interp_elf_ex,
|
||||
sizeof(loc->interp_elf_ex));
|
||||
pos = 0;
|
||||
retval = kernel_read(interpreter, &loc->interp_elf_ex,
|
||||
sizeof(loc->interp_elf_ex), &pos);
|
||||
if (retval != sizeof(loc->interp_elf_ex)) {
|
||||
if (retval >= 0)
|
||||
retval = -EIO;
|
||||
@@ -1175,9 +1176,10 @@ static int load_elf_library(struct file *file)
|
||||
unsigned long elf_bss, bss, len;
|
||||
int retval, error, i, j;
|
||||
struct elfhdr elf_ex;
|
||||
loff_t pos = 0;
|
||||
|
||||
error = -ENOEXEC;
|
||||
retval = kernel_read(file, 0, (char *)&elf_ex, sizeof(elf_ex));
|
||||
retval = kernel_read(file, &elf_ex, sizeof(elf_ex), &pos);
|
||||
if (retval != sizeof(elf_ex))
|
||||
goto out;
|
||||
|
||||
@@ -1201,7 +1203,8 @@ static int load_elf_library(struct file *file)
|
||||
|
||||
eppnt = elf_phdata;
|
||||
error = -ENOEXEC;
|
||||
retval = kernel_read(file, elf_ex.e_phoff, (char *)eppnt, j);
|
||||
pos = elf_ex.e_phoff;
|
||||
retval = kernel_read(file, eppnt, j, &pos);
|
||||
if (retval != j)
|
||||
goto out_free_ph;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user