C.Y.M wrote: > This is a quick hack that solves the build problem with kernel 2.6.18. This > is > not a backwards compatible patch. >
Apparently, The 2.6.18 stats callback parameters have changed from 2.6.17 so that it takes a struct dentry* rather than a struct super_block. Revised patch applied for 2.6.18. Best Regards.
--- lufs/kernel/Linux/2.6/inode.c 2006-10-05 04:10:30.000000000 -0700 +++ lufs.new/kernel/Linux/2.6/inode.c 2006-10-05 04:07:27.000000000 -0700 @@ -53,7 +53,7 @@ static void lu_delete_inode(struct inode*); static void lu_put_super(struct super_block*); -static int lu_statfs(struct super_block*, struct statfs*); +static int lu_statfs(struct dentry*, struct statfs*); static struct super_operations lu_sops = { .drop_inode = generic_drop_inode, @@ -383,7 +383,7 @@ return res; } -static int lu_statfs(struct super_block *sb, struct statfs *attr) +static int lu_statfs(struct dentry * dentry, struct statfs *attr) { TRACE("in\n"); @@ -510,9 +510,9 @@ return -EINVAL; } -static struct super_block *lu_get_sb(struct file_system_type *fs_type, int flags, char *dev_name, void *data) +static int lu_get_sb(struct file_system_type *fs_type, int flags, char *dev_name, void *data, struct vfsmount *mnt) { - return get_sb_nodev(fs_type, flags, data, lu_fill_super); + return get_sb_nodev(fs_type, flags, data, lu_fill_super, mnt); } static struct file_system_type lu_fs_type = {