lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20130604054233.GA23572@kroah.com>
Date:	Mon, 3 Jun 2013 22:42:33 -0700
From:	Greg KH <greg@...ah.com>
To:	Stephen Rothwell <sfr@...b.auug.org.au>
Cc:	linux-next@...r.kernel.org, linux-kernel@...r.kernel.org,
	Lukas Czerner <lczerner@...hat.com>,
	Theodore Ts'o <tytso@....edu>, Peng Tao <bergwolf@...il.com>,
	Andreas Dilger <andreas.dilger@...el.com>
Subject: Re: linux-next: build failure after merge of the staging tree

On Tue, Jun 04, 2013 at 02:57:00PM +1000, Stephen Rothwell wrote:
> Hi Greg,
> 
> After merging the staging tree, today's linux-next build (x86_64
> allmodconfig) failed like this:
> 
> In file included from drivers/staging/lustre/lustre/fid/../include/linux/lustre_compat25.h:44:0,
>                  from drivers/staging/lustre/lustre/fid/../include/linux/lvfs.h:48,
>                  from drivers/staging/lustre/lustre/fid/../include/lvfs.h:45,
>                  from drivers/staging/lustre/lustre/fid/../include/obd_support.h:41,
>                  from drivers/staging/lustre/lustre/fid/../include/linux/obd.h:44,
>                  from drivers/staging/lustre/lustre/fid/../include/obd.h:40,
>                  from drivers/staging/lustre/lustre/fid/fid_store.c:48:
> drivers/staging/lustre/lustre/fid/../include/linux/lustre_patchless_compat.h: In function 'truncate_complete_page':
> drivers/staging/lustre/lustre/fid/../include/linux/lustre_patchless_compat.h:56:3: error: too few arguments to function 'page->mapping->a_ops->invalidatepage'
>    page->mapping->a_ops->invalidatepage(page, 0);
>    ^
> 
> Lots of times.
> 
> Caused by the Lustre client patches interacting with commit d47992f86b30
> ("mm: change invalidatepage prototype to accept length") from the ext4
> tree.
> 
> I added this merge fix patch:
> 
> From 3873636f50eb89ba5e4f8e4e0523fd62f681edc8 Mon Sep 17 00:00:00 2001
> From: Stephen Rothwell <sfr@...b.auug.org.au>
> Date: Tue, 4 Jun 2013 14:41:00 +1000
> Subject: [PATCH] staging/lustre: fix for invalidatepage() API change
> 
> Signed-off-by: Stephen Rothwell <sfr@...b.auug.org.au>
> ---
>  drivers/staging/lustre/lustre/include/linux/lustre_patchless_compat.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/staging/lustre/lustre/include/linux/lustre_patchless_compat.h b/drivers/staging/lustre/lustre/include/linux/lustre_patchless_compat.h
> index f050808..67c4644 100644
> --- a/drivers/staging/lustre/lustre/include/linux/lustre_patchless_compat.h
> +++ b/drivers/staging/lustre/lustre/include/linux/lustre_patchless_compat.h
> @@ -53,7 +53,7 @@ truncate_complete_page(struct address_space *mapping, struct page *page)
>  		return;
>  
>  	if (PagePrivate(page))
> -		page->mapping->a_ops->invalidatepage(page, 0);
> +		page->mapping->a_ops->invalidatepage(page, 0, PAGE_CACHE_SIZE);
>  
>  	cancel_dirty_page(page, PAGE_SIZE);
>  	ClearPageMappedToDisk(page);
> -- 
> 1.8.1
> 
> diff --git a/drivers/staging/lustre/lustre/llite/rw26.c b/drivers/staging/lustre/lustre/llite/rw26.c
> index 27e4e64..f1a1c5f 100644
> --- a/drivers/staging/lustre/lustre/llite/rw26.c
> +++ b/drivers/staging/lustre/lustre/llite/rw26.c
> @@ -72,7 +72,8 @@
>   * aligned truncate). Lustre leaves partially truncated page in the cache,
>   * relying on struct inode::i_size to limit further accesses.
>   */
> -static void ll_invalidatepage(struct page *vmpage, unsigned long offset)
> +static void ll_invalidatepage(struct page *vmpage, unsigned int offset,
> +			      unsigned int length)
>  {
>  	struct inode     *inode;
>  	struct lu_env    *env;
> @@ -89,7 +90,7 @@ static void ll_invalidatepage(struct page *vmpage, unsigned long offset)
>  	 * below because they are run with page locked and all our io is
>  	 * happening with locked page too
>  	 */
> -	if (offset == 0) {
> +	if (offset == 0 && length == PAGE_CACHE_SIZE) {
>  		env = cl_env_get(&refcheck);
>  		if (!IS_ERR(env)) {
>  			inode = vmpage->mapping->host;

That patch makes sense.

But then:

> But then got these errors:
> 
> drivers/staging/lustre/lustre/libcfs/linux/linux-cpu.c: In function 'cfs_cpt_bind':
> drivers/staging/lustre/lustre/libcfs/linux/linux-cpu.c:630:3: error: implicit declaration of function 'set_cpus_allowed' [-Werror=implicit-function-declaration]
>    rc = set_cpus_allowed(current, *cpumask);
>    ^
> cc1: some warnings being treated as errors
> drivers/staging/lustre/lustre/obdclass/lu_object.c: In function 'key_fini':
> drivers/staging/lustre/lustre/obdclass/lu_object.c:1354:4: error: implicit declaration of function 'module_refcount' [-Werror=implicit-function-declaration]
>     LINVRNT(module_refcount(key->lct_owner) > 0);
>     ^
> In file included from drivers/staging/lustre/include/linux/libcfs/libcfs.h:203:0,
>                  from drivers/staging/lustre/lustre/obdclass/lu_object.c:47:
> drivers/staging/lustre/lustre/obdclass/lu_object.c: In function 'lu_context_keys_dump':
> drivers/staging/lustre/lustre/obdclass/lu_object.c:1936:42: error: dereferencing pointer to incomplete type
>            key->lct_owner ? key->lct_owner->name : "",
>                                           ^
> drivers/staging/lustre/include/linux/libcfs/libcfs_debug.h:221:41: note: in definition of macro '__CDEBUG'
>    libcfs_debug_msg(&msgdata, format, ## __VA_ARGS__);     \
>                                          ^
> drivers/staging/lustre/include/linux/libcfs/libcfs_debug.h:238:30: note: in expansion of macro 'CDEBUG_LIMIT'
>  #define CERROR(format, ...)  CDEBUG_LIMIT(D_ERROR, format, ## __VA_ARGS__)
>                               ^
> drivers/staging/lustre/lustre/obdclass/lu_object.c:1932:4: note: in expansion of macro 'CERROR'
>     CERROR("[%d]: %p %x (%p,%p,%p) %d %d \"%s\"@%p\n",
>     ^
> cc1: some warnings being treated as errors
> drivers/staging/lustre/lustre/ptlrpc/ptlrpcd.c: In function 'ptlrpcd':
> drivers/staging/lustre/lustre/ptlrpc/ptlrpcd.c:398:4: error: implicit declaration of function 'set_cpus_allowed' [-Werror=implicit-function-declaration]
>     cfs_set_cpus_allowed(current,
>     ^
> cc1: some warnings being treated as errors

That must be some #include files needed for ppc.

> So I gave up and just reverted commit 52f6317528c6 ("staging/lustre: drop
> CONFIG_BROKEN dependency") (thus disabling the code again) for now.

That makes sense.

Any of the lustre developers want to send me patches to fix the build
issues up please?

thanks,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ