2.6.36-git14 build break - fs/compat.c :631 (PAGE_CACHE_MASK undeclared)
Latest 2.6.36 git [commit 44234d0c46...] fails to build on s390x with following error :
fs/compat.c: In function compat_rw_copy_check_uvector:fs/compat.c:631: error: PAGE_CACHE_MASK undeclared (first use in this function) fs/compat.c:631: error: (Each undeclared identifier is reported only once fs/compat.c:631: error: for each function it appears in.)
make[1]: *** [fs/compat.o] Error 1
The code in question was added via following commit:
commit 435f49a518c78eec8e2edbbadd912737246cbe20 readv/writev: do the same MAX_RW_COUNT truncation that read/write does
Thanks
-Sachin
Signature · 6 lines
--------------------------------- Sachin Sant IBM Linux Technology Center India Systems and Technology Labs Bangalore, India ---------------------------------
The same problem on MIPS.
Perhaps this can help:
$ git diff
fs/compat.c +1 -0
@@ -49,6 +49,7 @@#include <linux/eventpoll.h> #include <linux/fs_struct.h> #include <linux/slab.h> +#include <linux/pagemap.h> #include <asm/uaccess.h> #include <asm/mmu_context.h>
I'm not sure if this is a good fixup, because the problem is introduced by MAX_RW_COUNT defined in include/linux/fs.h:
#define MAX_RW_COUNT (INT_MAX & PAGE_CACHE_MASK)
and the PAGE_CACHE_MASK is defined in pagemap.h, we may be possible to add <linux/pagemap.h> in include/linux/fs.h but pagemap.h has included <linux/fs.h> too ...
Regards,
Wu Zhangjin
Quoted 17 lines · Sachin Sant
Latest 2.6.36 git [commit
44234d0c46...] fails to build on s390x with following error :
fs/compat.c: In functioncompat_rw_copy_check_uvector:fs/compat.c:631: error:PAGE_CACHE_MASKundeclared (first use in this function)fs/compat.c:631: error: (Each undeclared identifier is reported only oncefs/compat.c:631: error: for each function it appears in.) make[1]: *** [fs/compat.o] Error 1The code in question was added via following commit:
commit
435f49a518c78eec8e2edbbadd912737246cbe20readv/writev: do the sameMAX_RW_COUNTtruncation that read/write doesThanks
-Sachin
(Seems Linus added that patch, add him in this loop)
Quoted 49 lines · wu zhangjin
The same problem on MIPS.
Perhaps this can help:
$ git difffs/compat.c +1
-0@@ -49,6 +49,7 @@ #include <linux/eventpoll.h> #include <linux/fs_struct.h> #include <linux/slab.h> +#include <linux/pagemap.h> #include <asm/uaccess.h> #include <asm/mmu_context.h>I'm not sure if this is a good fixup, because the problem is introduced by
MAX_RW_COUNTdefined ininclude/linux/fs.h:#define
MAX_RW_COUNT(INT_MAX&PAGE_CACHE_MASK)and the
PAGE_CACHE_MASKis defined inpagemap.h, we may be possible to add <linux/pagemap.h> ininclude/linux/fs.hbutpagemap.hhas included <linux/fs.h> too ...Regards,
Wu ZhangjinQuoted 17 lines · Sachin Sant
Latest 2.6.36 git [commit
44234d0c46...] fails to build on s390x with following error :
fs/compat.c: In functioncompat_rw_copy_check_uvector:fs/compat.c:631: error:PAGE_CACHE_MASKundeclared (first use in this function)fs/compat.c:631: error: (Each undeclared identifier is reported only oncefs/compat.c:631: error: for each function it appears in.) make[1]: *** [fs/compat.o] Error 1The code in question was added via following commit:
commit
435f49a518c78eec8e2edbbadd912737246cbe20readv/writev: do the sameMAX_RW_COUNTtruncation that read/write doesThanks
-Sachin
Quoted 2 lines · wu zhangjin
(Seems Linus added that patch, add him in this loop)
My bad. It was such a totally obvious and trivial patch, and it compiled for me on x86-64. Too bad our header include dependencies are such a mess, and actually change from one architecture to another.
I'd love to fix up the header mess, but that's not going to happen. So I'll take the <linux/filemap.h> addition.
Thanks,
Linus