2007-01-19 19:07:23

by Noah Watkins

[permalink] [raw]
Subject: [PATCH] include linux/fs.h in linux/cdev.h for struct inode

---
include/linux/cdev.h | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/include/linux/cdev.h b/include/linux/cdev.h
index f309b00..b53e2a0 100644
--- a/include/linux/cdev.h
+++ b/include/linux/cdev.h
@@ -5,6 +5,7 @@
#include <linux/kobject.h>
#include <linux/kdev_t.h>
#include <linux/list.h>
+#include <linux/fs.h>

struct cdev {
struct kobject kobj;
--
1.4.4.1


2007-01-19 19:15:54

by Randy Dunlap

[permalink] [raw]
Subject: Re: [PATCH] include linux/fs.h in linux/cdev.h for struct inode

On Fri, 19 Jan 2007 12:54:07 -0600 Noah Watkins wrote:

> ---
> include/linux/cdev.h | 1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/include/linux/cdev.h b/include/linux/cdev.h
> index f309b00..b53e2a0 100644
> --- a/include/linux/cdev.h
> +++ b/include/linux/cdev.h
> @@ -5,6 +5,7 @@
> #include <linux/kobject.h>
> #include <linux/kdev_t.h>
> #include <linux/list.h>
> +#include <linux/fs.h>
>
> struct cdev {
> struct kobject kobj;
> --

You can just do this forward declaration instead:

struct inode;

since no struct members are used/needed.

This cuts down on #include spider webs & nests.

---
~Randy

2007-01-19 20:04:39

by Alexey Dobriyan

[permalink] [raw]
Subject: Re: [PATCH] include linux/fs.h in linux/cdev.h for struct inode

On Fri, Jan 19, 2007 at 12:54:07PM -0600, Noah Watkins wrote:
> --- a/include/linux/cdev.h
> +++ b/include/linux/cdev.h
> @@ -5,6 +5,7 @@
> #include <linux/kobject.h>
> #include <linux/kdev_t.h>
> #include <linux/list.h>
> +#include <linux/fs.h>
>
> struct cdev {
> struct kobject kobj;

It is not for "struct inode", but to a pointer to struct inode!
You don't need full-blown header for pointer.

2007-01-19 22:26:37

by Jan Engelhardt

[permalink] [raw]
Subject: Re: [PATCH] include linux/fs.h in linux/cdev.h for struct inode


>Subject: [PATCH] include linux/fs.h in linux/cdev.h for struct inode

NAK.

Better is this:

Add missing struct predeclarations, otherwise we may get

x.c:2: warning: ‘struct inode’ declared inside parameter list
x.c:2: warning: its scope is only this definition or declaration, which is
probably not what you want

Signed-off-by: Jan Engelhardt <[email protected]>

Index: linux-2.6.20-rc5/include/linux/cdev.h
===================================================================
--- linux-2.6.20-rc5.orig/include/linux/cdev.h
+++ linux-2.6.20-rc5/include/linux/cdev.h
@@ -6,6 +6,10 @@
#include <linux/kdev_t.h>
#include <linux/list.h>

+struct file_operations;
+struct inode;
+struct module;
+
struct cdev {
struct kobject kobj;
struct module *owner;