mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-26 19:19:32 +03:00
Remove user_path_dir() wrapper
The user_path_dir() function has been available since Linux 2.6.27. There is no longer a need to maintain this compatibility code. Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
This commit is contained in:
parent
44778f4110
commit
3c49a16989
@ -28,7 +28,6 @@ AC_DEFUN([SPL_AC_CONFIG_KERNEL], [
|
|||||||
SPL_AC_PDE_DATA
|
SPL_AC_PDE_DATA
|
||||||
SPL_AC_MUTEX_OWNER
|
SPL_AC_MUTEX_OWNER
|
||||||
SPL_AC_MUTEX_OWNER_TASK_STRUCT
|
SPL_AC_MUTEX_OWNER_TASK_STRUCT
|
||||||
SPL_AC_USER_PATH_DIR
|
|
||||||
SPL_AC_SET_FS_PWD
|
SPL_AC_SET_FS_PWD
|
||||||
SPL_AC_SET_FS_PWD_WITH_CONST
|
SPL_AC_SET_FS_PWD_WITH_CONST
|
||||||
SPL_AC_2ARGS_VFS_UNLINK
|
SPL_AC_2ARGS_VFS_UNLINK
|
||||||
@ -973,25 +972,6 @@ AC_DEFUN([SPL_AC_PDE_DATA], [
|
|||||||
])
|
])
|
||||||
])
|
])
|
||||||
|
|
||||||
dnl #
|
|
||||||
dnl # 2.6.27 API change,
|
|
||||||
dnl # The user_path_dir() replaces __user_walk()
|
|
||||||
dnl #
|
|
||||||
AC_DEFUN([SPL_AC_USER_PATH_DIR],
|
|
||||||
[AC_MSG_CHECKING([whether user_path_dir() is available])
|
|
||||||
SPL_LINUX_TRY_COMPILE_SYMBOL([
|
|
||||||
#include <linux/fcntl.h>
|
|
||||||
#include <linux/namei.h>
|
|
||||||
], [
|
|
||||||
user_path_dir(NULL, NULL);
|
|
||||||
], [user_path_at], [], [
|
|
||||||
AC_MSG_RESULT(yes)
|
|
||||||
AC_DEFINE(HAVE_USER_PATH_DIR, 1, [user_path_dir() is available])
|
|
||||||
], [
|
|
||||||
AC_MSG_RESULT(no)
|
|
||||||
])
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl #
|
dnl #
|
||||||
dnl # Symbol available in RHEL kernels not in stock kernels.
|
dnl # Symbol available in RHEL kernels not in stock kernels.
|
||||||
dnl #
|
dnl #
|
||||||
|
@ -798,11 +798,7 @@ set_fs_pwd(struct fs_struct *fs, struct path *path)
|
|||||||
int
|
int
|
||||||
vn_set_pwd(const char *filename)
|
vn_set_pwd(const char *filename)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_USER_PATH_DIR
|
|
||||||
struct path path;
|
struct path path;
|
||||||
#else
|
|
||||||
struct nameidata nd;
|
|
||||||
#endif /* HAVE_USER_PATH_DIR */
|
|
||||||
mm_segment_t saved_fs;
|
mm_segment_t saved_fs;
|
||||||
int rc;
|
int rc;
|
||||||
SENTRY;
|
SENTRY;
|
||||||
@ -815,7 +811,6 @@ vn_set_pwd(const char *filename)
|
|||||||
saved_fs = get_fs();
|
saved_fs = get_fs();
|
||||||
set_fs(get_ds());
|
set_fs(get_ds());
|
||||||
|
|
||||||
# ifdef HAVE_USER_PATH_DIR
|
|
||||||
rc = user_path_dir(filename, &path);
|
rc = user_path_dir(filename, &path);
|
||||||
if (rc)
|
if (rc)
|
||||||
SGOTO(out, rc);
|
SGOTO(out, rc);
|
||||||
@ -828,21 +823,6 @@ vn_set_pwd(const char *filename)
|
|||||||
|
|
||||||
dput_and_out:
|
dput_and_out:
|
||||||
path_put(&path);
|
path_put(&path);
|
||||||
# else
|
|
||||||
rc = __user_walk(filename,
|
|
||||||
LOOKUP_FOLLOW|LOOKUP_DIRECTORY|LOOKUP_CHDIR, &nd);
|
|
||||||
if (rc)
|
|
||||||
SGOTO(out, rc);
|
|
||||||
|
|
||||||
rc = vfs_permission(&nd, MAY_EXEC);
|
|
||||||
if (rc)
|
|
||||||
SGOTO(dput_and_out, rc);
|
|
||||||
|
|
||||||
set_fs_pwd(current->fs, &nd.path);
|
|
||||||
|
|
||||||
dput_and_out:
|
|
||||||
path_put(&nd.path);
|
|
||||||
# endif /* HAVE_USER_PATH_DIR */
|
|
||||||
out:
|
out:
|
||||||
set_fs(saved_fs);
|
set_fs(saved_fs);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user