Listing 3. The inode_operations Structure

struct inode_operations {
    struct file_operations * default_file_ops;
    int (*create) (struct inode *,
	const char *,int,int,struct inode **);
    int (*lookup) (struct inode *
	,const char *,int,struct inode **);
    int (*link) (struct inode *,
	struct inode *,const char *,int);
    int (*unlink) (struct inode *,
	const char *,int);
    int (*symlink) (struct inode *,
	const char *,int,const char *);
    int (*mkdir) (struct inode *,
	const char *,int,int);
    int (*rmdir) (struct inode *,
	const char *,int);
    int (*mknod) (struct inode *,
	const char *,int,int,int);
	/* this from 2.0.1 onwards */
    int (*rename) (struct inode *,
	const char *,int, struct inode *,
               const char *,int, int); 
    int (*readlink) (struct inode *,char *,int);
    int (*follow_link) (struct inode *,struct inode *
	,int,int,struct inode **);
    int (*readpage) (struct inode *, 
	struct page *);
    int (*writepage) (struct inode *, 
	struct page *);
    int (*bmap) (struct inode *,int);
    void (*truncate) (struct inode *);
    int (*permission) (struct inode *, int);
    int (*smap) (struct inode *,int);
};