diff options
Diffstat (limited to 'sys/dev/aacraid/aacraid_linux.c')
-rw-r--r-- | sys/dev/aacraid/aacraid_linux.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/sys/dev/aacraid/aacraid_linux.c b/sys/dev/aacraid/aacraid_linux.c index 3d85445..e58d0a4 100644 --- a/sys/dev/aacraid/aacraid_linux.c +++ b/sys/dev/aacraid/aacraid_linux.c @@ -34,6 +34,9 @@ __FBSDID("$FreeBSD$"); */ #include <sys/param.h> +#if __FreeBSD_version >= 900000 +#include <sys/capability.h> +#endif #include <sys/systm.h> #include <sys/conf.h> #include <sys/kernel.h> @@ -77,15 +80,19 @@ static int aacraid_linux_ioctl(struct thread *td, struct linux_ioctl_args *args) { struct file *fp; +#if __FreeBSD_version >= 900000 + cap_rights_t rights; +#endif u_long cmd; int error; + if ((error = fget(td, args->fd, #if __FreeBSD_version >= 900000 - if ((error = fget(td, args->fd, 0, &fp)) != 0) -#else - if ((error = fget(td, args->fd, &fp)) != 0) + cap_rights_init(&rights, CAP_IOCTL), #endif + &fp)) != 0) { return (error); + } cmd = args->cmd; /* |