|
@@ -884,7 +884,7 @@ COMPAT_SYSCALL_DEFINE3(old_readdir, unsigned int, fd,
|
|
|
struct compat_old_linux_dirent __user *, dirent, unsigned int, count)
|
|
|
{
|
|
|
int error;
|
|
|
- struct fd f = fdget(fd);
|
|
|
+ struct fd f = fdget_pos(fd);
|
|
|
struct compat_readdir_callback buf = {
|
|
|
.ctx.actor = compat_fillonedir,
|
|
|
.dirent = dirent
|
|
@@ -897,7 +897,7 @@ COMPAT_SYSCALL_DEFINE3(old_readdir, unsigned int, fd,
|
|
|
if (buf.result)
|
|
|
error = buf.result;
|
|
|
|
|
|
- fdput(f);
|
|
|
+ fdput_pos(f);
|
|
|
return error;
|
|
|
}
|
|
|
|
|
@@ -975,7 +975,7 @@ COMPAT_SYSCALL_DEFINE3(getdents, unsigned int, fd,
|
|
|
if (!access_ok(VERIFY_WRITE, dirent, count))
|
|
|
return -EFAULT;
|
|
|
|
|
|
- f = fdget(fd);
|
|
|
+ f = fdget_pos(fd);
|
|
|
if (!f.file)
|
|
|
return -EBADF;
|
|
|
|
|
@@ -989,7 +989,7 @@ COMPAT_SYSCALL_DEFINE3(getdents, unsigned int, fd,
|
|
|
else
|
|
|
error = count - buf.count;
|
|
|
}
|
|
|
- fdput(f);
|
|
|
+ fdput_pos(f);
|
|
|
return error;
|
|
|
}
|
|
|
|
|
@@ -1062,7 +1062,7 @@ COMPAT_SYSCALL_DEFINE3(getdents64, unsigned int, fd,
|
|
|
if (!access_ok(VERIFY_WRITE, dirent, count))
|
|
|
return -EFAULT;
|
|
|
|
|
|
- f = fdget(fd);
|
|
|
+ f = fdget_pos(fd);
|
|
|
if (!f.file)
|
|
|
return -EBADF;
|
|
|
|
|
@@ -1077,7 +1077,7 @@ COMPAT_SYSCALL_DEFINE3(getdents64, unsigned int, fd,
|
|
|
else
|
|
|
error = count - buf.count;
|
|
|
}
|
|
|
- fdput(f);
|
|
|
+ fdput_pos(f);
|
|
|
return error;
|
|
|
}
|
|
|
#endif /* __ARCH_WANT_COMPAT_SYS_GETDENTS64 */
|