Re: inode_permission problem

From: Serge E. Hallyn (hallyn@private)
Date: Sat Nov 27 2004 - 17:33:41 PST


Hi,

Among your includes, add

#include <linux/namei.h>

as struct nameidata is defined in linux/include/linux/namei.h

-serge

Quoting Javier Valencia (jvalencia@private):
> Hi all, i'm trying to use a very simple function to print when inode_permission is called:
> 
> line_number    code
> --------------------------------------------
> 
> 53    static int smac_inode_permission (struct inode *inode, int mask, struct nameidata *nd)
> 54    {
> 55        if (nd)
> 56        {
> 57            if (nd->dentry)
> 58                printk(KERN_INFO "inode_permission on: %s\n", nd->dentry->d_name.name);
> 59        }
> 60        return 0;
> 61    }
> 
> 
> I get the following errors when compiling:
> 
> enigma linux # make modules
>   CHK     include/linux/version.h
> make[1]: `arch/i386/kernel/asm-offsets.s' is up to date.
>   CHK     include/asm-i386/asm_offsets.h
>   CC [M]  security/smac.o
> security/smac.c: In function `smac_inode_permission':
> security/smac.c:57: error: dereferencing pointer to incomplete type
> security/smac.c:58: error: dereferencing pointer to incomplete type
> make[1]: *** [security/smac.o] Error 1
> make: *** [security] Error 2
> 
> If i delete "nd->entry" it works. It looks like nd is not populated. Do i have to populate it with some function?
> My kernel is a vanilla 2.6.9
> 
> thanks.



This archive was generated by hypermail 2.1.3 : Sat Nov 27 2004 - 17:54:56 PST