Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
DISCONTINUED:openSUSE:11.1:Update
dazuko
dazuko_redirfs_2.6.27.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File dazuko_redirfs_2.6.27.patch of Package dazuko
diff -Nru dazuko-2.3.6-pre2-a/dazuko_linux26.h dazuko-2.3.6-pre2-b/dazuko_linux26.h --- dazuko-2.3.6-pre2-a/dazuko_linux26.h 2008-02-20 22:05:34.000000000 +0100 +++ dazuko-2.3.6-pre2-b/dazuko_linux26.h 2008-08-27 13:54:51.000000000 +0200 @@ -24,7 +24,13 @@ #define DAZUKO_LINUX26_H #include <linux/module.h> +#include <linux/version.h> + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27) #include <asm/semaphore.h> +#else +#include <linux/semaphore.h> +#endif #define DEVICE_NAME "dazuko" diff -Nru dazuko-2.3.6-pre2-a/dazuko_redirfs.c dazuko-2.3.6-pre2-b/dazuko_redirfs.c --- dazuko-2.3.6-pre2-a/dazuko_redirfs.c 2008-07-17 20:00:02.000000000 +0200 +++ dazuko-2.3.6-pre2-b/dazuko_redirfs.c 2008-08-27 15:18:23.000000000 +0200 @@ -66,19 +66,19 @@ static int dev_major = -1; static int module_disabled = 0; -enum redirfs_rv dazukoflt_permission(redirfs_context context, struct redirfs_args *args); +enum redirfs_rv dazukoflt_open(redirfs_context context, struct redirfs_args *args); static redirfs_filter dazukoflt; static struct redirfs_filter_info dazukoflt_info = { .owner = THIS_MODULE, .name = "dazukoflt", - .priority = 1, + .priority = 860000000, .active = 1, }; static struct redirfs_op_info dazukoflt_op_info[] = { - { REDIRFS_REG_IOP_PERMISSION, dazukoflt_permission, NULL }, + { REDIRFS_REG_FOP_OPEN, dazukoflt_open, NULL }, { REDIRFS_OP_END, NULL, NULL } }; @@ -629,7 +629,7 @@ /* system hooks */ -int dazuko_sys_generic(struct inode *inode, int mask, struct nameidata *nd) +int dazuko_sys_generic(struct inode *inode, struct nameidata *nd) { struct dazuko_file_struct *dfs = NULL; int error = 0; @@ -645,34 +645,6 @@ dazuko_bzero(&event_p, sizeof(event_p)); - if ((mask & MAY_EXEC) != 0) - { - event = DAZUKO_ON_EXEC; - daemon_is_allowed = 0; - } - else - { - /* mask == 0 is passed in when a file is created */ - if (mask == 0 || (mask & (MAY_WRITE|MAY_APPEND)) != 0) - { - if ((mask & MAY_READ) != 0) - { - event_p.flags = O_RDWR; - } - else - { - event_p.flags = O_WRONLY; - } - - event_p.set_flags = 1; - } - else if ((mask & MAY_READ) != 0) - { - event_p.flags = O_RDONLY; - event_p.set_flags = 1; - } - } - xp_id.pid = current->pid; xp_id.tgid = current->tgid; xp_id.file = NULL; @@ -721,18 +693,14 @@ return 0; } -enum redirfs_rv dazukoflt_permission(redirfs_context context, struct redirfs_args *args) +enum redirfs_rv dazukoflt_open(redirfs_context context, struct redirfs_args *args) { - if (!args->args.i_permission.nd) - return REDIRFS_CONTINUE; - - if (!args->args.i_permission.mask) - return REDIRFS_CONTINUE; + struct nameidata nd; - if (!args->args.i_permission.nd) - return REDIRFS_CONTINUE; + nd.path.dentry = args->args.f_open.file->f_dentry; + nd.path.mnt = args->args.f_open.file->f_vfsmnt; - if (dazuko_sys_generic(args->args.i_permission.inode, args->args.i_permission.mask, args->args.i_permission.nd) != 0) + if (dazuko_sys_generic(args->args.f_open.file->f_dentry->d_inode, &nd) != 0) { args->rv.rv_int = -EACCES; return REDIRFS_STOP; @@ -804,20 +772,11 @@ return dev_major; } -#ifndef WITHOUT_UDEV -#ifdef USE_CLASS dazuko_class = class_create(THIS_MODULE, DEVICE_NAME); -#if defined (CLASS_class_device_create_2_6_15) - class_device_create(dazuko_class, NULL, MKDEV(dev_major, 0), NULL, DEVICE_NAME); -#elif defined (CLASS_device_create_2_6_26) +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27) device_create(dazuko_class, NULL, MKDEV(dev_major, 0), DEVICE_NAME); #else - class_device_create(dazuko_class, MKDEV(dev_major, 0), NULL, DEVICE_NAME); -#endif -#else - dazuko_class = class_simple_create(THIS_MODULE, DEVICE_NAME); - class_simple_device_add(dazuko_class, MKDEV(dev_major, 0), NULL, DEVICE_NAME); -#endif + device_create(dazuko_class, NULL, MKDEV(dev_major, 0), NULL, DEVICE_NAME); #endif return 0; @@ -826,21 +785,9 @@ inline int xp_sys_unhook() { if (!module_disabled) { - unregister_chrdev(dev_major, DEVICE_NAME); - -#ifndef WITHOUT_UDEV -#ifdef USE_CLASS -#if defined (CLASS_device_create_2_6_26) device_destroy(dazuko_class, MKDEV(dev_major, 0)); -#else - class_device_destroy(dazuko_class, MKDEV(dev_major, 0)); -#endif class_destroy(dazuko_class); -#else - class_simple_device_remove(MKDEV(dev_major, 0)); - class_simple_destroy(dazuko_class); -#endif -#endif + unregister_chrdev(dev_major, DEVICE_NAME); } redirfs_delete_filter(dazukoflt);
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor