public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* linux-next: build failure after merge of the final tree (maybe vfs tree related)
@ 2011-07-20  7:32 Stephen Rothwell
  2011-07-20 13:55 ` Al Viro
  0 siblings, 1 reply; 4+ messages in thread
From: Stephen Rothwell @ 2011-07-20  7:32 UTC (permalink / raw)
  To: Al Viro; +Cc: linux-next, linux-kernel, Dave Chinner, David S. Miller

[-- Attachment #1: Type: text/plain, Size: 1552 bytes --]

Hi all,

After merging the final tree, today's linux-next build (sparc defconfig)
failed like this:

In file included from /scratch/sfr/next/arch/sparc/include/asm/prom.h:22:0,
                 from /scratch/sfr/next/include/linux/of.h:130,
                 from /scratch/sfr/next/arch/sparc/include/asm/openprom.h:14,
                 from /scratch/sfr/next/arch/sparc/include/asm/oplib_32.h:11,
                 from /scratch/sfr/next/arch/sparc/include/asm/oplib.h:6,
                 from /scratch/sfr/next/arch/sparc/include/asm/pgtable_32.h:22,
                 from /scratch/sfr/next/arch/sparc/include/asm/pgtable.h:6,
                 from /scratch/sfr/next/include/linux/mm.h:41,
                 from /scratch/sfr/next/include/linux/fs.h:397,
                 from /scratch/sfr/next/init/do_mounts_initrd.c:3:
/scratch/sfr/next/include/linux/proc_fs.h:275:15: error: field 'vfs_inode' has incomplete type
/scratch/sfr/next/include/linux/proc_fs.h: In function 'PROC_I':
/scratch/sfr/next/include/linux/proc_fs.h:280:9: warning: type defaults to 'int' in declaration of '__mptr'
/scratch/sfr/next/include/linux/proc_fs.h:280:9: warning: initialization from incompatible pointer type

And many more similar.  Again, I assume some include files changed.
Maybe commit 347727d3f51d ("superblock: introduce per-sb cache shrinker
infrastructure") which included linux/mm.h in linux/fs.h ...

I have left this again.
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: linux-next: build failure after merge of the final tree (maybe vfs tree related)
  2011-07-20  7:32 linux-next: build failure after merge of the final tree (maybe vfs tree related) Stephen Rothwell
@ 2011-07-20 13:55 ` Al Viro
  2011-07-20 23:17   ` Dave Chinner
  2011-07-21  6:34   ` Stephen Rothwell
  0 siblings, 2 replies; 4+ messages in thread
From: Al Viro @ 2011-07-20 13:55 UTC (permalink / raw)
  To: Stephen Rothwell; +Cc: linux-next, linux-kernel, Dave Chinner, David S. Miller

On Wed, Jul 20, 2011 at 05:32:32PM +1000, Stephen Rothwell wrote:
> Hi all,
> 
> After merging the final tree, today's linux-next build (sparc defconfig)
> failed like this:

> And many more similar.  Again, I assume some include files changed.
> Maybe commit 347727d3f51d ("superblock: introduce per-sb cache shrinker
> infrastructure") which included linux/mm.h in linux/fs.h ...
> 
> I have left this again.

diff --git a/include/linux/fs.h b/include/linux/fs.h
index 1ce9086..e0569e4 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -395,7 +395,7 @@ struct inodes_stat_t {
 #include <linux/semaphore.h>
 #include <linux/fiemap.h>
 #include <linux/rculist_bl.h>
-#include <linux/mm.h>
+#include <linux/shrinker.h>
 #include <linux/atomic.h>
 
 #include <asm/byteorder.h>
diff --git a/include/linux/mm.h b/include/linux/mm.h
index 9b9777a..e3a1a9e 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -15,6 +15,7 @@
 #include <linux/range.h>
 #include <linux/pfn.h>
 #include <linux/bit_spinlock.h>
+#include <linux/shrinker.h>
 
 struct mempolicy;
 struct anon_vma;
@@ -1121,45 +1122,6 @@ static inline void sync_mm_rss(struct task_struct *task, struct mm_struct *mm)
 }
 #endif
 
-/*
- * This struct is used to pass information from page reclaim to the shrinkers.
- * We consolidate the values for easier extention later.
- */
-struct shrink_control {
-	gfp_t gfp_mask;
-
-	/* How many slab objects shrinker() should scan and try to reclaim */
-	unsigned long nr_to_scan;
-};
-
-/*
- * A callback you can register to apply pressure to ageable caches.
- *
- * 'sc' is passed shrink_control which includes a count 'nr_to_scan'
- * and a 'gfpmask'.  It should look through the least-recently-used
- * 'nr_to_scan' entries and attempt to free them up.  It should return
- * the number of objects which remain in the cache.  If it returns -1, it means
- * it cannot do any scanning at this time (eg. there is a risk of deadlock).
- *
- * The 'gfpmask' refers to the allocation we are currently trying to
- * fulfil.
- *
- * Note that 'shrink' will be passed nr_to_scan == 0 when the VM is
- * querying the cache size, so a fastpath for that case is appropriate.
- */
-struct shrinker {
-	int (*shrink)(struct shrinker *, struct shrink_control *sc);
-	int seeks;	/* seeks to recreate an obj */
-	long batch;	/* reclaim batch size, 0 = default */
-
-	/* These are for internal use */
-	struct list_head list;
-	long nr;	/* objs pending delete */
-};
-#define DEFAULT_SEEKS 2 /* A good number if you don't know better. */
-extern void register_shrinker(struct shrinker *);
-extern void unregister_shrinker(struct shrinker *);
-
 int vma_wants_writenotify(struct vm_area_struct *vma);
 
 extern pte_t *__get_locked_pte(struct mm_struct *mm, unsigned long addr,
diff --git a/include/linux/shrinker.h b/include/linux/shrinker.h
new file mode 100644
index 0000000..790651b
--- /dev/null
+++ b/include/linux/shrinker.h
@@ -0,0 +1,42 @@
+#ifndef _LINUX_SHRINKER_H
+#define _LINUX_SHRINKER_H
+
+/*
+ * This struct is used to pass information from page reclaim to the shrinkers.
+ * We consolidate the values for easier extention later.
+ */
+struct shrink_control {
+	gfp_t gfp_mask;
+
+	/* How many slab objects shrinker() should scan and try to reclaim */
+	unsigned long nr_to_scan;
+};
+
+/*
+ * A callback you can register to apply pressure to ageable caches.
+ *
+ * 'sc' is passed shrink_control which includes a count 'nr_to_scan'
+ * and a 'gfpmask'.  It should look through the least-recently-used
+ * 'nr_to_scan' entries and attempt to free them up.  It should return
+ * the number of objects which remain in the cache.  If it returns -1, it means
+ * it cannot do any scanning at this time (eg. there is a risk of deadlock).
+ *
+ * The 'gfpmask' refers to the allocation we are currently trying to
+ * fulfil.
+ *
+ * Note that 'shrink' will be passed nr_to_scan == 0 when the VM is
+ * querying the cache size, so a fastpath for that case is appropriate.
+ */
+struct shrinker {
+	int (*shrink)(struct shrinker *, struct shrink_control *sc);
+	int seeks;	/* seeks to recreate an obj */
+	long batch;	/* reclaim batch size, 0 = default */
+
+	/* These are for internal use */
+	struct list_head list;
+	long nr;	/* objs pending delete */
+};
+#define DEFAULT_SEEKS 2 /* A good number if you don't know better. */
+extern void register_shrinker(struct shrinker *);
+extern void unregister_shrinker(struct shrinker *);
+#endif

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: linux-next: build failure after merge of the final tree (maybe vfs tree related)
  2011-07-20 13:55 ` Al Viro
@ 2011-07-20 23:17   ` Dave Chinner
  2011-07-21  6:34   ` Stephen Rothwell
  1 sibling, 0 replies; 4+ messages in thread
From: Dave Chinner @ 2011-07-20 23:17 UTC (permalink / raw)
  To: Al Viro
  Cc: Stephen Rothwell, linux-next, linux-kernel, Dave Chinner,
	David S. Miller

On Wed, Jul 20, 2011 at 02:55:24PM +0100, Al Viro wrote:
> On Wed, Jul 20, 2011 at 05:32:32PM +1000, Stephen Rothwell wrote:
> > Hi all,
> > 
> > After merging the final tree, today's linux-next build (sparc defconfig)
> > failed like this:
> 
> > And many more similar.  Again, I assume some include files changed.
> > Maybe commit 347727d3f51d ("superblock: introduce per-sb cache shrinker
> > infrastructure") which included linux/mm.h in linux/fs.h ...
> > 
> > I have left this again.
> 
> diff --git a/include/linux/fs.h b/include/linux/fs.h
> index 1ce9086..e0569e4 100644
> --- a/include/linux/fs.h
> +++ b/include/linux/fs.h
> @@ -395,7 +395,7 @@ struct inodes_stat_t {
>  #include <linux/semaphore.h>
>  #include <linux/fiemap.h>
>  #include <linux/rculist_bl.h>
> -#include <linux/mm.h>
> +#include <linux/shrinker.h>
>  #include <linux/atomic.h>
>  
>  #include <asm/byteorder.h>
> diff --git a/include/linux/mm.h b/include/linux/mm.h
> index 9b9777a..e3a1a9e 100644
> --- a/include/linux/mm.h
> +++ b/include/linux/mm.h
> @@ -15,6 +15,7 @@
>  #include <linux/range.h>
>  #include <linux/pfn.h>
>  #include <linux/bit_spinlock.h>
> +#include <linux/shrinker.h>
>  
>  struct mempolicy;
>  struct anon_vma;
> @@ -1121,45 +1122,6 @@ static inline void sync_mm_rss(struct task_struct *task, struct mm_struct *mm)
>  }
>  #endif
>  
> -/*
> - * This struct is used to pass information from page reclaim to the shrinkers.
> - * We consolidate the values for easier extention later.
> - */
> -struct shrink_control {
> -	gfp_t gfp_mask;
> -
> -	/* How many slab objects shrinker() should scan and try to reclaim */
> -	unsigned long nr_to_scan;
> -};
> -
> -/*
> - * A callback you can register to apply pressure to ageable caches.
> - *
> - * 'sc' is passed shrink_control which includes a count 'nr_to_scan'
> - * and a 'gfpmask'.  It should look through the least-recently-used
> - * 'nr_to_scan' entries and attempt to free them up.  It should return
> - * the number of objects which remain in the cache.  If it returns -1, it means
> - * it cannot do any scanning at this time (eg. there is a risk of deadlock).
> - *
> - * The 'gfpmask' refers to the allocation we are currently trying to
> - * fulfil.
> - *
> - * Note that 'shrink' will be passed nr_to_scan == 0 when the VM is
> - * querying the cache size, so a fastpath for that case is appropriate.
> - */
> -struct shrinker {
> -	int (*shrink)(struct shrinker *, struct shrink_control *sc);
> -	int seeks;	/* seeks to recreate an obj */
> -	long batch;	/* reclaim batch size, 0 = default */
> -
> -	/* These are for internal use */
> -	struct list_head list;
> -	long nr;	/* objs pending delete */
> -};
> -#define DEFAULT_SEEKS 2 /* A good number if you don't know better. */
> -extern void register_shrinker(struct shrinker *);
> -extern void unregister_shrinker(struct shrinker *);
> -
>  int vma_wants_writenotify(struct vm_area_struct *vma);
>  
>  extern pte_t *__get_locked_pte(struct mm_struct *mm, unsigned long addr,
> diff --git a/include/linux/shrinker.h b/include/linux/shrinker.h
> new file mode 100644
> index 0000000..790651b
> --- /dev/null
> +++ b/include/linux/shrinker.h
> @@ -0,0 +1,42 @@
> +#ifndef _LINUX_SHRINKER_H
> +#define _LINUX_SHRINKER_H
> +
> +/*
> + * This struct is used to pass information from page reclaim to the shrinkers.
> + * We consolidate the values for easier extention later.
> + */
> +struct shrink_control {
> +	gfp_t gfp_mask;
> +
> +	/* How many slab objects shrinker() should scan and try to reclaim */
> +	unsigned long nr_to_scan;
> +};
> +
> +/*
> + * A callback you can register to apply pressure to ageable caches.
> + *
> + * 'sc' is passed shrink_control which includes a count 'nr_to_scan'
> + * and a 'gfpmask'.  It should look through the least-recently-used
> + * 'nr_to_scan' entries and attempt to free them up.  It should return
> + * the number of objects which remain in the cache.  If it returns -1, it means
> + * it cannot do any scanning at this time (eg. there is a risk of deadlock).
> + *
> + * The 'gfpmask' refers to the allocation we are currently trying to
> + * fulfil.
> + *
> + * Note that 'shrink' will be passed nr_to_scan == 0 when the VM is
> + * querying the cache size, so a fastpath for that case is appropriate.
> + */
> +struct shrinker {
> +	int (*shrink)(struct shrinker *, struct shrink_control *sc);
> +	int seeks;	/* seeks to recreate an obj */
> +	long batch;	/* reclaim batch size, 0 = default */
> +
> +	/* These are for internal use */
> +	struct list_head list;
> +	long nr;	/* objs pending delete */
> +};
> +#define DEFAULT_SEEKS 2 /* A good number if you don't know better. */
> +extern void register_shrinker(struct shrinker *);
> +extern void unregister_shrinker(struct shrinker *);
> +#endif

Yup, that was what I was considering doing to fix it. Thanks, Al.

Acked-by: Dave Chinner <dchinner@redhat.com>

-- 
Dave Chinner
david@fromorbit.com

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: linux-next: build failure after merge of the final tree (maybe vfs tree related)
  2011-07-20 13:55 ` Al Viro
  2011-07-20 23:17   ` Dave Chinner
@ 2011-07-21  6:34   ` Stephen Rothwell
  1 sibling, 0 replies; 4+ messages in thread
From: Stephen Rothwell @ 2011-07-21  6:34 UTC (permalink / raw)
  To: Al Viro; +Cc: linux-next, linux-kernel, Dave Chinner, David S. Miller

[-- Attachment #1: Type: text/plain, Size: 911 bytes --]

Hi Al,

On Wed, 20 Jul 2011 14:55:24 +0100 Al Viro <viro@ZenIV.linux.org.uk> wrote:
>
> On Wed, Jul 20, 2011 at 05:32:32PM +1000, Stephen Rothwell wrote:
> > Hi all,
> > 
> > After merging the final tree, today's linux-next build (sparc defconfig)
> > failed like this:
> 
> > And many more similar.  Again, I assume some include files changed.
> > Maybe commit 347727d3f51d ("superblock: introduce per-sb cache shrinker
> > infrastructure") which included linux/mm.h in linux/fs.h ...
> > 
> > I have left this again.
> 
> diff --git a/include/linux/fs.h b/include/linux/fs.h
> index 1ce9086..e0569e4 100644
> --- a/include/linux/fs.h
> +++ b/include/linux/fs.h

I added this patch to the end of linux-next today and it fixed both the
sparc and sparc64 build problems.  Thanks.

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2011-07-21  6:34 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-07-20  7:32 linux-next: build failure after merge of the final tree (maybe vfs tree related) Stephen Rothwell
2011-07-20 13:55 ` Al Viro
2011-07-20 23:17   ` Dave Chinner
2011-07-21  6:34   ` Stephen Rothwell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox