Commit a5f85d78 authored by Al Viro's avatar Al Viro
Browse files

uninline may_mount() and don't opencode it in fspick(2)/fsopen(2)



It's done once per (mount-related) syscall and there's no point
whatsoever making it inline.

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 31231092
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -119,7 +119,7 @@ SYSCALL_DEFINE2(fsopen, const char __user *, _fs_name, unsigned int, flags)
	const char *fs_name;
	int ret;

	if (!ns_capable(current->nsproxy->mnt_ns->user_ns, CAP_SYS_ADMIN))
	if (!may_mount())
		return -EPERM;

	if (flags & ~FSOPEN_CLOEXEC)
@@ -162,7 +162,7 @@ SYSCALL_DEFINE3(fspick, int, dfd, const char __user *, path, unsigned int, flags
	unsigned int lookup_flags;
	int ret;

	if (!ns_capable(current->nsproxy->mnt_ns->user_ns, CAP_SYS_ADMIN))
	if (!may_mount())
		return -EPERM;

	if ((flags & ~(FSPICK_CLOEXEC |
+1 −0
Original line number Diff line number Diff line
@@ -84,6 +84,7 @@ extern int __mnt_want_write_file(struct file *);
extern void __mnt_drop_write_file(struct file *);

extern void dissolve_on_fput(struct vfsmount *);
extern bool may_mount(void);

int path_mount(const char *dev_name, struct path *path,
		const char *type_page, unsigned long flags, void *data_page);
+1 −1
Original line number Diff line number Diff line
@@ -1760,7 +1760,7 @@ void __detach_mounts(struct dentry *dentry)
/*
 * Is the caller allowed to modify his namespace?
 */
static inline bool may_mount(void)
bool may_mount(void)
{
	return ns_capable(current->nsproxy->mnt_ns->user_ns, CAP_SYS_ADMIN);
}