Package: cdfs-src Version: 2.6.23-3 Severity: important Tags: patch cdfs-src Debian package don't build in 2.6.25 kernels
I have made a patch for it. Patch can also be downloaded from: http://trac.tcosproject.org/browser/trunk/tcos-extra-modules/patches/cdfs-2.6.25-2-486.patch?rev=812&format=raw Greetings and thanks for your work at Debian -- System Information: Debian Release: lenny/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: i386 (i686) Kernel: Linux 2.6.25-2-686 (SMP w/2 CPU cores) Locale: LANG=es_ES.UTF-8, LC_CTYPE=es_ES.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages cdfs-src depends on: ii bzip2 1.0.5-0.1 high-quality block-sorting file co ii debhelper 7.0.9 helper programs for debian/rules ii kernel-package 11.001-0.1 A utility for building Linux kerne ii make 3.81-4 The GNU version of the "make" util ii module-assistant 0.10.11.0 tool to make module package creati cdfs-src recommends no packages. -- no debconf information
diff -Naur --exclude=Makefile build/modules/cdfs.orig/2.6/modules.order build/modules/cdfs/2.6/modules.order --- build/modules/cdfs.orig/2.6/modules.order 1970-01-01 01:00:00.000000000 +0100 +++ build/modules/cdfs/2.6/modules.order 2008-05-20 18:27:00.000000000 +0200 @@ -0,0 +1 @@ +kernel//home/mario/forja-rediris/trunk/tcos-extra-modules/build/modules/cdfs/2.6/cdfs.ko diff -Naur --exclude=Makefile build/modules/cdfs.orig/2.6/root.c build/modules/cdfs/2.6/root.c --- build/modules/cdfs.orig/2.6/root.c 2006-10-24 21:41:12.000000000 +0200 +++ build/modules/cdfs/2.6/root.c 2008-05-20 18:26:56.000000000 +0200 @@ -42,6 +42,9 @@ extern struct seq_operations cdfs_operations; extern struct _track_info *dummy_track_p; +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,4,24) +struct inode *cdfs_iget(struct super_block *sp, unsigned long ino); +#endif /*============================================================================* * cdfs_open() * @@ -361,8 +364,12 @@ sb->s_magic = CDFS_MAGIC; sb->s_flags |= MS_RDONLY; sb->s_op = &cdfs_ops; +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,4,24) + sb->s_root = d_alloc_root(cdfs_iget(sb, 0)); +#else sb->s_root = d_alloc_root(iget(sb, 0)); - +#endif + cdfs_proc_cd = this_cd; #ifdef OLD_KERNEL @@ -459,7 +466,11 @@ for(i=0; i<T2I(this_cd->tracks); i++) if (!(strcmp(this_cd->track[i].name, dentry->d_name.name))) { +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,4,24) + if ((inode=iget_locked(dir->i_sb, i))==NULL) { +#else if ((inode=iget(dir->i_sb, i))==NULL) { +#endif return ERR_PTR(-EACCES); } else { d_add(dentry, inode); @@ -482,8 +493,19 @@ }; /**************************************************************************/ - +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,4,24) +struct inode *cdfs_iget(struct super_block *sp, unsigned long ino) { + /* info from http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=12debc4248a4a7f1873e47cda2cdd7faca80b099 */ + struct inode *i; + i = iget_locked(sp, ino); + if (!i) + return ERR_PTR(-ENOMEM); + if (!(i->i_state & I_NEW)) + return i; +#else static void cdfs_read_inode(struct inode *i) { +#endif + cd * this_cd = cdfs_info(i->i_sb); //printk("this_cd = 0x%x\n\n\n", (unsigned)this_cd); @@ -536,12 +558,23 @@ i->i_data.a_ops = &cdfs_cdXA_aops; } } +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,4,24) + unlock_new_inode(i); + return i; +/* +error: + iget_failed(inode); + return ERR_PTR(ret); +*/ +#endif } /******************************************************************/ static struct super_operations cdfs_ops = { +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,24) .read_inode = cdfs_read_inode, +#endif .put_super = cdfs_umount, .statfs = cdfs_statfs };