2010-04-27 20:06:00

by John Kacur

[permalink] [raw]
Subject: 2.6.33.3-rt16 compile failure in fs/ecryptfs/inode.o


make O=/bld/2.6.33.3-rt16/ fs/ecryptfs/inode.o
Using /home/jkacur/jk-2.6 as source for kernel
GEN /bld/2.6.33.3-rt16/Makefile
CHK include/linux/version.h
CHK include/generated/utsrelease.h
CALL /home/jkacur/jk-2.6/scripts/checksyscalls.sh
CC [M] fs/ecryptfs/inode.o
/home/jkacur/jk-2.6/fs/ecryptfs/inode.c: In function
?ecryptfs_lookup_and_interpose_lower?:
/home/jkacur/jk-2.6/fs/ecryptfs/inode.c:266: error: wrong type argument to
unary exclamation mark
make[2]: *** [fs/ecryptfs/inode.o] Error 1
make[1]: *** [fs/ecryptfs/inode.o] Error 2
make: *** [sub-make] Error 2

The above comes from:
commit 5c0eb5cec064ce26ffcd0cdd684c9b6dd7c9074e
Author: Nick Piggin <[email protected]>
Date: Fri Jan 29 15:38:21 2010 -0800

fs-dcache-scale-d_count


2010-04-27 20:50:59

by Thomas Gleixner

[permalink] [raw]
Subject: Re: 2.6.33.3-rt16 compile failure in fs/ecryptfs/inode.o

On Tue, 27 Apr 2010, John Kacur wrote:
> make O=/bld/2.6.33.3-rt16/ fs/ecryptfs/inode.o
> Using /home/jkacur/jk-2.6 as source for kernel
> GEN /bld/2.6.33.3-rt16/Makefile
> CHK include/linux/version.h
> CHK include/generated/utsrelease.h
> CALL /home/jkacur/jk-2.6/scripts/checksyscalls.sh
> CC [M] fs/ecryptfs/inode.o
> /home/jkacur/jk-2.6/fs/ecryptfs/inode.c: In function
> ?ecryptfs_lookup_and_interpose_lower?:
> /home/jkacur/jk-2.6/fs/ecryptfs/inode.c:266: error: wrong type argument to
> unary exclamation mark
> make[2]: *** [fs/ecryptfs/inode.o] Error 1
> make[1]: *** [fs/ecryptfs/inode.o] Error 2
> make: *** [sub-make] Error 2
>
> The above comes from:
> commit 5c0eb5cec064ce26ffcd0cdd684c9b6dd7c9074e
> Author: Nick Piggin <[email protected]>
> Date: Fri Jan 29 15:38:21 2010 -0800

Half the truth :) It got not fixed up in a later patch which made
d_count atomic_t again. Fix below.

Thanks,

tglx
---
diff --git a/fs/ecryptfs/inode.c b/fs/ecryptfs/inode.c
index 2fb8fd1..23dc2af 100644
--- a/fs/ecryptfs/inode.c
+++ b/fs/ecryptfs/inode.c
@@ -263,7 +263,7 @@ int ecryptfs_lookup_and_interpose_lower(struct dentry *ecryptfs_dentry,
ecryptfs_dentry->d_parent));
lower_inode = lower_dentry->d_inode;
fsstack_copy_attr_atime(ecryptfs_dir_inode, lower_dir_dentry->d_inode);
- BUG_ON(!lower_dentry->d_count);
+ BUG_ON(!atomic_read(&lower_dentry->d_count));
ecryptfs_set_dentry_private(ecryptfs_dentry,
kmem_cache_alloc(ecryptfs_dentry_info_cache,
GFP_KERNEL));