mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-11-18 02:20:59 +03:00
Linux 4.2 compat: vfs_rename()
Attempting to perform a vfs_rename() on Linux 4.2 and newer kernels results in an EACCES error. Rather than attempting to add and maintain more ugly compatibility code it's best to just retire this interface. As a first step the SPLAT test is disabled for Linux 4.2 and newer kernels. vn_rename: Failed vn_rename /tmp/vn.tmp.1 -> /tmp/vn.tmp.2 (13) Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Issue zfsonlinux/zfs#3653
This commit is contained in:
parent
851a549305
commit
ebc2c9374b
@ -28,6 +28,7 @@
|
|||||||
#include "splat-ctl.h"
|
#include "splat-ctl.h"
|
||||||
#include <sys/mutex.h>
|
#include <sys/mutex.h>
|
||||||
#include <linux/file_compat.h>
|
#include <linux/file_compat.h>
|
||||||
|
#include <linux/version.h>
|
||||||
|
|
||||||
#define SPLAT_SUBSYSTEM_INIT(type) \
|
#define SPLAT_SUBSYSTEM_INIT(type) \
|
||||||
({ splat_subsystem_t *_sub_; \
|
({ splat_subsystem_t *_sub_; \
|
||||||
|
@ -223,6 +223,7 @@ out:
|
|||||||
return -rc;
|
return -rc;
|
||||||
} /* splat_vnode_test3() */
|
} /* splat_vnode_test3() */
|
||||||
|
|
||||||
|
#if LINUX_VERSION_CODE <= KERNEL_VERSION(4,1,0)
|
||||||
static int
|
static int
|
||||||
splat_vnode_test4(struct file *file, void *arg)
|
splat_vnode_test4(struct file *file, void *arg)
|
||||||
{
|
{
|
||||||
@ -303,6 +304,7 @@ out:
|
|||||||
|
|
||||||
return -rc;
|
return -rc;
|
||||||
} /* splat_vnode_test4() */
|
} /* splat_vnode_test4() */
|
||||||
|
#endif
|
||||||
|
|
||||||
static int
|
static int
|
||||||
splat_vnode_test5(struct file *file, void *arg)
|
splat_vnode_test5(struct file *file, void *arg)
|
||||||
@ -413,8 +415,10 @@ splat_vnode_init(void)
|
|||||||
SPLAT_VNODE_TEST2_ID, splat_vnode_test2);
|
SPLAT_VNODE_TEST2_ID, splat_vnode_test2);
|
||||||
SPLAT_TEST_INIT(sub, SPLAT_VNODE_TEST3_NAME, SPLAT_VNODE_TEST3_DESC,
|
SPLAT_TEST_INIT(sub, SPLAT_VNODE_TEST3_NAME, SPLAT_VNODE_TEST3_DESC,
|
||||||
SPLAT_VNODE_TEST3_ID, splat_vnode_test3);
|
SPLAT_VNODE_TEST3_ID, splat_vnode_test3);
|
||||||
|
#if LINUX_VERSION_CODE <= KERNEL_VERSION(4,1,0)
|
||||||
SPLAT_TEST_INIT(sub, SPLAT_VNODE_TEST4_NAME, SPLAT_VNODE_TEST4_DESC,
|
SPLAT_TEST_INIT(sub, SPLAT_VNODE_TEST4_NAME, SPLAT_VNODE_TEST4_DESC,
|
||||||
SPLAT_VNODE_TEST4_ID, splat_vnode_test4);
|
SPLAT_VNODE_TEST4_ID, splat_vnode_test4);
|
||||||
|
#endif
|
||||||
SPLAT_TEST_INIT(sub, SPLAT_VNODE_TEST5_NAME, SPLAT_VNODE_TEST5_DESC,
|
SPLAT_TEST_INIT(sub, SPLAT_VNODE_TEST5_NAME, SPLAT_VNODE_TEST5_DESC,
|
||||||
SPLAT_VNODE_TEST5_ID, splat_vnode_test5);
|
SPLAT_VNODE_TEST5_ID, splat_vnode_test5);
|
||||||
SPLAT_TEST_INIT(sub, SPLAT_VNODE_TEST6_NAME, SPLAT_VNODE_TEST6_DESC,
|
SPLAT_TEST_INIT(sub, SPLAT_VNODE_TEST6_NAME, SPLAT_VNODE_TEST6_DESC,
|
||||||
@ -430,7 +434,9 @@ splat_vnode_fini(splat_subsystem_t *sub)
|
|||||||
|
|
||||||
SPLAT_TEST_FINI(sub, SPLAT_VNODE_TEST6_ID);
|
SPLAT_TEST_FINI(sub, SPLAT_VNODE_TEST6_ID);
|
||||||
SPLAT_TEST_FINI(sub, SPLAT_VNODE_TEST5_ID);
|
SPLAT_TEST_FINI(sub, SPLAT_VNODE_TEST5_ID);
|
||||||
|
#if LINUX_VERSION_CODE <= KERNEL_VERSION(4,1,0)
|
||||||
SPLAT_TEST_FINI(sub, SPLAT_VNODE_TEST4_ID);
|
SPLAT_TEST_FINI(sub, SPLAT_VNODE_TEST4_ID);
|
||||||
|
#endif
|
||||||
SPLAT_TEST_FINI(sub, SPLAT_VNODE_TEST3_ID);
|
SPLAT_TEST_FINI(sub, SPLAT_VNODE_TEST3_ID);
|
||||||
SPLAT_TEST_FINI(sub, SPLAT_VNODE_TEST2_ID);
|
SPLAT_TEST_FINI(sub, SPLAT_VNODE_TEST2_ID);
|
||||||
SPLAT_TEST_FINI(sub, SPLAT_VNODE_TEST1_ID);
|
SPLAT_TEST_FINI(sub, SPLAT_VNODE_TEST1_ID);
|
||||||
|
Loading…
Reference in New Issue
Block a user