Package: squashfs-source
Version: 1:3.3-7
Severity: wishlist
Tags: patch

The following commit to the upstream kernel (part of 2.6.28) removes 
d_alloc_anon(), as a result squashfs-source fails to build against 
kernel >=2.6.28.

Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9308a6128d9074e348d9f9b5822546fe12a794a9
Commit:     9308a6128d9074e348d9f9b5822546fe12a794a9
Parent:     440037287c5ebb07033ab927ca16bb68c291d309
Author:     Christoph Hellwig <[email protected]>
AuthorDate: Mon Aug 11 15:49:12 2008 +0200
Committer:  Al Viro <[email protected]>
CommitDate: Thu Oct 23 05:13:02 2008 -0400

    [PATCH] kill d_alloc_anon
    
    Remove d_alloc_anon now that no users are left.
    
    Signed-off-by: Christoph Hellwig <[email protected]>
    Signed-off-by: Al Viro <[email protected]>

Trying to build it, fails with the following error message.

/usr/bin/make -f debian/rules.real build MAJOR='2.6' 
MODULESOURCE='squashfs-source' FLAVOUR='sidux-amd64' UPSTREAMVERSION='2.6.28' 
MODULE='squashfs' FEATURESET='none' VERSION_SOURCE='2.6.28.rev1' 
VERSION_REVISION='1' ABINAME='-0.slh.1' LOCALVERSION='-sidux-amd64' ARCH='amd64'
make[2]: Entering directory 
`/tmp/buildd/linux-modules-sidux-main-2.6-2.6.28.rev1'
/usr/bin/make -C /usr/src/linux-headers-2.6.28-0.slh.1-sidux-amd64 
M=/tmp/buildd/linux-modules-sidux-main-2.6-2.6.28.rev1/debian/build/build_amd64_none_sidux-amd64_squashfs
make[3]: Entering directory `/usr/src/linux-headers-2.6.28-0.slh.1-sidux-amd64'
  LD      
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.28.rev1/debian/build/build_amd64_none_sidux-amd64_squashfs/built-in.o
  CC [M]  
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.28.rev1/debian/build/build_amd64_none_sidux-amd64_squashfs/inode.o
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.28.rev1/debian/build/build_amd64_none_sidux-amd64_squashfs/inode.c:
 In function 'squashfs_export_iget':
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.28.rev1/debian/build/build_amd64_none_sidux-amd64_squashfs/inode.c:659:
 error: implicit declaration of function 'd_alloc_anon'
/tmp/buildd/linux-modules-sidux-main-2.6-2.6.28.rev1/debian/build/build_amd64_none_sidux-amd64_squashfs/inode.c:659:
 warning: assignment makes pointer from integer without a cast
make[4]: *** 
[/tmp/buildd/linux-modules-sidux-main-2.6-2.6.28.rev1/debian/build/build_amd64_none_sidux-amd64_squashfs/inode.o]
 Error 1
make[3]: *** 
[_module_/tmp/buildd/linux-modules-sidux-main-2.6-2.6.28.rev1/debian/build/build_amd64_none_sidux-amd64_squashfs]
 Error 2 

The attached, minimal and tested, patch (which depends on the 2.6.27 
compatibility fix in #504187) fixes this issue, while keeping compatibility
to older kernels. Severity wishlist, given that testing and l-m-e are
frozen on 2.6.26 anyways.

Regards
        Stefan Lippers-Hollmann

Post scriptum: 
This is a backport of the interdiff between upstream squashfs
        squashfs3.4/kernel-patches/linux-2.6.27-rc4/squashfs3.4-patch
and
        squashfs3.4/kernel-patches/linux-2.6.27-rc4-next/squashfs3.4-patch
to squashfs 3.3 and therefore fixed upstream.

-- System Information:
Debian Release: 5.0
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.28-0.slh.1-sidux-amd64 (SMP w/4 CPU cores; PREEMPT)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages squashfs-source depends on:
ii  bzip2                  1.0.5-1           high-quality block-sorting file co
ii  debhelper              7.0.17            helper programs for debian/rules
ii  make                   3.81-5            The GNU version of the "make" util
ii  module-assistant       0.10.11.0         tool to make module package creati
ii  zlib1g-dev             1:1.2.3.3.dfsg-12 compression library - development

Versions of packages squashfs-source recommends:
ii  squashfs-tools        1:3.3-7            Tool to create and append to squas

squashfs-source suggests no packages.

-- no debconf information
The following commit to the upstream kernel (part of 2.6.28) removes 
d_alloc_anon(), as a result squashfs-source fails to build against 
kernel >=2.6.28.

Gitweb:     http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9308a6128d9074e348d9f9b5822546fe12a794a9
Commit:     9308a6128d9074e348d9f9b5822546fe12a794a9
Parent:     440037287c5ebb07033ab927ca16bb68c291d309
Author:     Christoph Hellwig <[email protected]>
AuthorDate: Mon Aug 11 15:49:12 2008 +0200
Committer:  Al Viro <[email protected]>
CommitDate: Thu Oct 23 05:13:02 2008 -0400

    [PATCH] kill d_alloc_anon
    
    Remove d_alloc_anon now that no users are left.
    
    Signed-off-by: Christoph Hellwig <[email protected]>
    Signed-off-by: Al Viro <[email protected]>

This is a backport of the interdiff between 
	squashfs3.4/kernel-patches/linux-2.6.27-rc4/squashfs3.4-patch
and
	squashfs3.4/kernel-patches/linux-2.6.27-rc4-next/squashfs3.4-patch
to squashfs 3.3 and therefore fixed upstream.

Copyright (C) 2008 Kyle McMartin <[email protected]>
              Message-ID: <[email protected]>
Copyright (C) 2008 Phillip Lougher <[email protected]>
              Message-Id: <e1kv0c4-0006h6...@dylan>
Copyright (C) 2008 Stefan Lippers-Hollmann <[email protected]>
              backport to squashfs 3.3.

--- a/linux-2.6/inode.c
+++ b/linux-2.6/inode.c
@@ -639,12 +639,17 @@ static struct dentry *squashfs_export_ig
 	unsigned int inode_number)
 {
 	squashfs_inode_t inode;
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28))
 	struct inode *i;
 	struct dentry *dentry;
+#else
+	struct dentry *dentry = ERR_PTR(-ENOENT);
+#endif
 
 	TRACE("Entered squashfs_export_iget\n");
 
 	inode = squashfs_inode_lookup(s, inode_number);
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28))
 	if(inode == SQUASHFS_INVALID_BLK) {
 		dentry = ERR_PTR(-ENOENT);
 		goto failure;
@@ -663,6 +668,10 @@ static struct dentry *squashfs_export_ig
 	}
 
 failure:
+#else
+	if(inode != SQUASHFS_INVALID_BLK)
+		dentry = d_obtain_alias(squashfs_iget(s, inode, inode_number));
+#endif
 	return dentry;
 }
 

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to