mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 18:51:56 -04:00
parent
2233f31aad
commit
ac6614b764
9 changed files with 57 additions and 68 deletions
33
fs/readdir.c
33
fs/readdir.c
|
|
@ -109,15 +109,14 @@ SYSCALL_DEFINE3(old_readdir, unsigned int, fd,
|
|||
{
|
||||
int error;
|
||||
struct fd f = fdget(fd);
|
||||
struct readdir_callback buf;
|
||||
struct readdir_callback buf = {
|
||||
.ctx.actor = fillonedir,
|
||||
.dirent = dirent
|
||||
};
|
||||
|
||||
if (!f.file)
|
||||
return -EBADF;
|
||||
|
||||
buf.ctx.actor = fillonedir;
|
||||
buf.result = 0;
|
||||
buf.dirent = dirent;
|
||||
|
||||
error = iterate_dir(f.file, &buf.ctx);
|
||||
if (buf.result)
|
||||
error = buf.result;
|
||||
|
|
@ -195,7 +194,11 @@ SYSCALL_DEFINE3(getdents, unsigned int, fd,
|
|||
{
|
||||
struct fd f;
|
||||
struct linux_dirent __user * lastdirent;
|
||||
struct getdents_callback buf;
|
||||
struct getdents_callback buf = {
|
||||
.ctx.actor = filldir,
|
||||
.count = count,
|
||||
.current_dir = dirent
|
||||
};
|
||||
int error;
|
||||
|
||||
if (!access_ok(VERIFY_WRITE, dirent, count))
|
||||
|
|
@ -205,12 +208,6 @@ SYSCALL_DEFINE3(getdents, unsigned int, fd,
|
|||
if (!f.file)
|
||||
return -EBADF;
|
||||
|
||||
buf.current_dir = dirent;
|
||||
buf.previous = NULL;
|
||||
buf.count = count;
|
||||
buf.error = 0;
|
||||
buf.ctx.actor = filldir;
|
||||
|
||||
error = iterate_dir(f.file, &buf.ctx);
|
||||
if (error >= 0)
|
||||
error = buf.error;
|
||||
|
|
@ -277,7 +274,11 @@ SYSCALL_DEFINE3(getdents64, unsigned int, fd,
|
|||
{
|
||||
struct fd f;
|
||||
struct linux_dirent64 __user * lastdirent;
|
||||
struct getdents_callback64 buf;
|
||||
struct getdents_callback64 buf = {
|
||||
.ctx.actor = filldir64,
|
||||
.count = count,
|
||||
.current_dir = dirent
|
||||
};
|
||||
int error;
|
||||
|
||||
if (!access_ok(VERIFY_WRITE, dirent, count))
|
||||
|
|
@ -287,12 +288,6 @@ SYSCALL_DEFINE3(getdents64, unsigned int, fd,
|
|||
if (!f.file)
|
||||
return -EBADF;
|
||||
|
||||
buf.current_dir = dirent;
|
||||
buf.previous = NULL;
|
||||
buf.count = count;
|
||||
buf.error = 0;
|
||||
buf.ctx.actor = filldir64;
|
||||
|
||||
error = iterate_dir(f.file, &buf.ctx);
|
||||
if (error >= 0)
|
||||
error = buf.error;
|
||||
|
|
|
|||
Loading…
Reference in a new issue