Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b78a7226 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Greg Kroah-Hartman
Browse files

fs: add a vfs_fchmod helper



[ Upstream commit 9e96c8c0e94eea2f69a9705f5d0f51928ea26c17 ]

Add a helper for struct file based chmode operations.  To be used by
the initramfs code soon.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Acked-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
Stable-dep-of: 4624b346cf67 ("init: open /initrd.image with O_LARGEFILE")
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent c2f18e9a
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -569,14 +569,19 @@ static int chmod_common(const struct path *path, umode_t mode)
	return error;
}

int vfs_fchmod(struct file *file, umode_t mode)
{
	audit_file(file);
	return chmod_common(&file->f_path, mode);
}

int ksys_fchmod(unsigned int fd, umode_t mode)
{
	struct fd f = fdget(fd);
	int err = -EBADF;

	if (f.file) {
		audit_file(f.file);
		err = chmod_common(&f.file->f_path, mode);
		err = vfs_fchmod(f.file, mode);
		fdput(f);
	}
	return err;
+1 −0
Original line number Diff line number Diff line
@@ -1661,6 +1661,7 @@ int vfs_mkobj(struct dentry *, umode_t,
		void *);

int vfs_fchown(struct file *file, uid_t user, gid_t group);
int vfs_fchmod(struct file *file, umode_t mode);

extern long vfs_ioctl(struct file *file, unsigned int cmd, unsigned long arg);