|
@@ -551,7 +551,7 @@ out_unlock:
|
|
|
return error;
|
|
|
}
|
|
|
|
|
|
-SYSCALL_DEFINE2(fchmod, unsigned int, fd, umode_t, mode)
|
|
|
+int ksys_fchmod(unsigned int fd, umode_t mode)
|
|
|
{
|
|
|
struct fd f = fdget(fd);
|
|
|
int err = -EBADF;
|
|
@@ -564,7 +564,12 @@ SYSCALL_DEFINE2(fchmod, unsigned int, fd, umode_t, mode)
|
|
|
return err;
|
|
|
}
|
|
|
|
|
|
-SYSCALL_DEFINE3(fchmodat, int, dfd, const char __user *, filename, umode_t, mode)
|
|
|
+SYSCALL_DEFINE2(fchmod, unsigned int, fd, umode_t, mode)
|
|
|
+{
|
|
|
+ return ksys_fchmod(fd, mode);
|
|
|
+}
|
|
|
+
|
|
|
+int do_fchmodat(int dfd, const char __user *filename, umode_t mode)
|
|
|
{
|
|
|
struct path path;
|
|
|
int error;
|
|
@@ -582,9 +587,15 @@ retry:
|
|
|
return error;
|
|
|
}
|
|
|
|
|
|
+SYSCALL_DEFINE3(fchmodat, int, dfd, const char __user *, filename,
|
|
|
+ umode_t, mode)
|
|
|
+{
|
|
|
+ return do_fchmodat(dfd, filename, mode);
|
|
|
+}
|
|
|
+
|
|
|
SYSCALL_DEFINE2(chmod, const char __user *, filename, umode_t, mode)
|
|
|
{
|
|
|
- return sys_fchmodat(AT_FDCWD, filename, mode);
|
|
|
+ return do_fchmodat(AT_FDCWD, filename, mode);
|
|
|
}
|
|
|
|
|
|
static int chown_common(const struct path *path, uid_t user, gid_t group)
|