diff --git a/lustre/llite/file.c b/lustre/llite/file.c index 7107e81..14e6805 100644 --- a/lustre/llite/file.c +++ b/lustre/llite/file.c @@ -1733,9 +1733,15 @@ error: RETURN(rc); } +#ifdef HAVE_UNLOCKED_IOCTL +long ll_file_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + struct inode *inode = file->f_dentry->d_inode; +#else int ll_file_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) { +#endif struct ll_file_data *fd = LUSTRE_FPRIVATE(file); int flags; ENTRY; @@ -2483,7 +2489,11 @@ struct file_operations ll_file_operations = { .READ_METHOD = READ_FUNCTION, .write = ll_file_write, .WRITE_METHOD = WRITE_FUNCTION, +#ifdef HAVE_UNLOCKED_IOCTL + .unlocked_ioctl = ll_file_ioctl, +#else .ioctl = ll_file_ioctl, +#endif .open = ll_file_open, .release = ll_file_release, .mmap = ll_file_mmap, @@ -2503,7 +2513,11 @@ struct file_operations ll_file_operations_flock = { .READ_METHOD = READ_FUNCTION, .write = ll_file_write, .WRITE_METHOD = WRITE_FUNCTION, +#ifdef HAVE_UNLOCKED_IOCTL + .unlocked_ioctl = ll_file_ioctl, +#else .ioctl = ll_file_ioctl, +#endif .open = ll_file_open, .release = ll_file_release, .mmap = ll_file_mmap, @@ -2528,7 +2542,11 @@ struct file_operations ll_file_operations_noflock = { .READ_METHOD = READ_FUNCTION, .write = ll_file_write, .WRITE_METHOD = WRITE_FUNCTION, +#ifdef HAVE_UNLOCKED_IOCTL + .unlocked_ioctl = ll_file_ioctl, +#else .ioctl = ll_file_ioctl, +#endif .open = ll_file_open, .release = ll_file_release, .mmap = ll_file_mmap, diff --git a/lustre/obdclass/linux/linux-module.c b/lustre/obdclass/linux/linux-module.c index 4b6ca83..a1d3d7f 100644 --- a/lustre/obdclass/linux/linux-module.c +++ b/lustre/obdclass/linux/linux-module.c @@ -198,8 +198,13 @@ static int obd_class_release(struct inode * inode, struct file * file) } /* to control /dev/obd */ +#ifdef HAVE_UNLOCKED_IOCTL +static long obd_class_ioctl(struct file *filp, unsigned int cmd, + unsigned long arg) +#else static int obd_class_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg) +#endif { int err = 0; ENTRY; @@ -218,7 +223,11 @@ static int obd_class_ioctl(struct inode *inode, struct file *filp, /* declare character device */ static struct file_operations obd_psdev_fops = { .owner = THIS_MODULE, +#if HAVE_UNLOCKED_IOCTL + .unlocked_ioctl = obd_class_ioctl, /* unlocked_ioctl */ +#else .ioctl = obd_class_ioctl, /* ioctl */ +#endif .open = obd_class_open, /* open */ .release = obd_class_release, /* release */ }; diff --git a/lustre/obdecho/echo_client.c b/lustre/obdecho/echo_client.c index 9d548e0..c412303 100644 --- a/lustre/obdecho/echo_client.c +++ b/lustre/obdecho/echo_client.c @@ -1800,7 +1800,9 @@ echo_client_iocontrol(unsigned int cmd, struct obd_export *exp, int i; ENTRY; +#ifndef HAVE_UNLOCKED_IOCTL cfs_unlock_kernel(); +#endif memset(&dummy_oti, 0, sizeof(dummy_oti)); @@ -1931,7 +1933,9 @@ echo_client_iocontrol(unsigned int cmd, struct obd_export *exp, ldlm_lock_decref(&ack_lock->lock, ack_lock->mode); } +#ifndef HAVE_UNLOCKED_IOCTL cfs_lock_kernel(); +#endif return rc; } diff --git a/lustre/tests/obdfilter-survey.sh b/lustre/tests/obdfilter-survey.sh index 3c8aff9..1e1284b 100644 --- a/lustre/tests/obdfilter-survey.sh +++ b/lustre/tests/obdfilter-survey.sh @@ -5,6 +5,7 @@ set -e LUSTRE=${LUSTRE:-`dirname $0`/..} . $LUSTRE/tests/test-framework.sh init_test_env $@ +init_logging nobjhi=${nobjhi:-1} thrhi=${thrhi:-16}