Skip to contentSkip to conversation

staging: lustre: remove uses and definition of container_of0

PATCH New Aya Mahfouz 3 participants 13 messages Oct 13, 2015 – Oct 24, 2015 Staging

lore
Share & tools
lore
#0 lore raw

cover staging: lustre: remove uses and definition of container_of0

container_of0 can be replaced by the Linux kernel macro container_of. The only difference is that container_of0 tries to evade type casting when the pointer is erroneous or null. All uses of container_of0 have been replaced by container_of and then the macro was removed in the last patch.

Aya Mahfouz (7):
staging: lustre: lcommon_cl.c: replace container_of0 by container_of
staging: lustre: llite_nfs.c: replace container_of0 by container_of
staging: lustre: lu_object.c: replace container_of0 by container_of
staging: lustre: echo_client.c: replace container_of0 by container_of
staging: lustre: osc_io.c: replace container_of0 by container_of
staging: lustre: osc_object.c: replace container_of0 by container_of
staging: lustre: remove container_of0 and __container_of

 drivers/staging/lustre/include/linux/libcfs/libcfs.h | 11 -----------
 drivers/staging/lustre/lustre/lclient/lcommon_cl.c   | 10 +++++-----
 drivers/staging/lustre/lustre/llite/llite_nfs.c      |  2 +-
 drivers/staging/lustre/lustre/obdclass/lu_object.c   |  6 +++---
 drivers/staging/lustre/lustre/obdecho/echo_client.c  |  2 +-
 drivers/staging/lustre/lustre/osc/osc_io.c           |  4 ++--
 drivers/staging/lustre/lustre/osc/osc_object.c       |  2 +-
 7 files changed, 13 insertions(+), 24 deletions(-)
Signature · 6 lines
2.4.2


-- 
Kind Regards,
Aya Saif El-yazal Mahfouz
#1 lore raw

PATCH 1/7 staging: lustre: lcommon_cl.c: replace container_of0 by container_of

Replaces container_of0 by container_of. The only difference between the two implementations is that container_of0 tries to evade type casting if the pointer is erroneous or null. The use of container_of is encouraged to bring lustre one step closer to community standards.

Cc jes.sorensen at gmail.com
Cc kyle at mcmartin.ca
---
 drivers/staging/lustre/lustre/lclient/lcommon_cl.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)
drivers/staging/lustre/lustre/lclient/lcommon_cl.c +5 -5
index ef2e266..a941aaf 100644
@@ -917,12 +917,12 @@ struct lu_device *ccc2lu_dev(struct ccc_device *vdv)
 
 struct ccc_device *lu2ccc_dev(const struct lu_device *d)
 {
-	return container_of0(d, struct ccc_device, cdv_cl.cd_lu_dev);
+	return container_of(d, struct ccc_device, cdv_cl.cd_lu_dev);
 }
 
 struct ccc_device *cl2ccc_dev(const struct cl_device *d)
 {
-	return container_of0(d, struct ccc_device, cdv_cl);
+	return container_of(d, struct ccc_device, cdv_cl);
 }
 
 struct lu_object *ccc2lu(struct ccc_object *vob)
@@ -932,12 +932,12 @@ struct lu_object *ccc2lu(struct ccc_object *vob)
 
 struct ccc_object *lu2ccc(const struct lu_object *obj)
 {
-	return container_of0(obj, struct ccc_object, cob_cl.co_lu);
+	return container_of(obj, struct ccc_object, cob_cl.co_lu);
 }
 
 struct ccc_object *cl2ccc(const struct cl_object *obj)
 {
-	return container_of0(obj, struct ccc_object, cob_cl);
+	return container_of(obj, struct ccc_object, cob_cl);
 }
 
 struct ccc_lock *cl2ccc_lock(const struct cl_lock_slice *slice)
@@ -957,7 +957,7 @@ struct ccc_io *cl2ccc_io(const struct lu_env *env,
 
 struct ccc_req *cl2ccc_req(const struct cl_req_slice *slice)
 {
-	return container_of0(slice, struct ccc_req, crq_cl);
+	return container_of(slice, struct ccc_req, crq_cl);
 }
 
 struct page *cl2vm_page(const struct cl_page_slice *slice)
Signature · 6 lines
2.4.2


-- 
Kind Regards,
Aya Saif El-yazal Mahfouz
#2 lore raw

PATCH 2/7 staging: lustre: llite_nfs.c: replace container_of0 by container_of

In reply to Aya Mahfouz

Replaces container_of0 by container_of. The only difference between the two implementations is that container_of0 tries to evade type casting if the pointer is erroneous or null. The use of container_of is encouraged to bring lustre one step closer to community standards.

---
 drivers/staging/lustre/lustre/llite/llite_nfs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/staging/lustre/lustre/llite/llite_nfs.c +1 -1
index e578a11..340fb61 100644
@@ -210,7 +210,7 @@ static int ll_nfs_get_name_filldir(struct dir_context *ctx, const char *name,
 {
 	/* It is hack to access lde_fid for comparison with lgd_fid.
 	 * So the input 'name' must be part of the 'lu_dirent'. */
-	struct lu_dirent *lde = container_of0(name, struct lu_dirent, lde_name);
+	struct lu_dirent *lde = container_of(name, struct lu_dirent, lde_name);
 	struct ll_getname_data *lgd =
 		container_of(ctx, struct ll_getname_data, ctx);
 	struct lu_fid fid;
Signature · 6 lines
2.4.2


-- 
Kind Regards,
Aya Saif El-yazal Mahfouz
#3 lore raw

[lustre-devel] [PATCH 2/7] staging: lustre: llite_nfs.c: replace container_of0 by container_of

reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree…

Hi Aya,

[auto build test WARNING on staging/staging-next -- if it's inappropriate base, please suggest rules for selecting the more suitable base]

url:    https://github.com/0day-ci/linux/commits/Aya-Mahfouz/staging-lustre-remove-uses-and-definition-of-container_of0/20151014-062751
config: blackfin-allmodconfig (attached as .config)

reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=blackfin

All warnings (new ones prefixed by >>):

drivers/staging/lustre/lustre/llite/llite_nfs.c: In function 'll_nfs_get_name_filldir':

>> drivers/staging/lustre/lustre/llite/llite_nfs.c:213:26: warning: initialization from incompatible pointer type [enabled by default]
>> drivers/staging/lustre/lustre/llite/llite_nfs.c:213:26: warning: (near initialization for 'lde') [enabled by default]

vim +213 drivers/staging/lustre/lustre/llite/llite_nfs.c

197 if (*plen < sizeof(struct lustre_nfs_fid) / 4)
198 return 255;
199
200 nfs_fid->lnf_child = *ll_inode2fid(inode);
201 nfs_fid->lnf_parent = *ll_inode2fid(parent);
202 *plen = sizeof(struct lustre_nfs_fid) / 4;
203
204 return LUSTRE_NFS_FID;
205 }
206
207 static int ll_nfs_get_name_filldir(struct dir_context *ctx, const char *name,
208 int namelen, loff_t hash, u64 ino,
209 unsigned type)
210 {
211 /* It is hack to access lde_fid for comparison with lgd_fid.
212 * So the input 'name' must be part of the 'lu_dirent'. */

 > 213		struct lu_dirent *lde = container_of(name, struct lu_dirent, lde_name);

214 struct ll_getname_data *lgd =
215 container_of(ctx, struct ll_getname_data, ctx);
216 struct lu_fid fid;
217
218 fid_le_to_cpu(&fid, &lde->lde_fid);
219 if (lu_fid_eq(&fid, &lgd->lgd_fid)) {
220 memcpy(lgd->lgd_name, name, namelen);
221 lgd->lgd_name[namelen] = 0;

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/octet-stream
Size: 38047 bytes
Desc: not available
URL: <http://lists.lustre.org/pipermail/lustre-devel-lustre.org/attachments/20151014/b9f371b1/attachment-0001.obj>

#4 lore raw

[lustre-devel] [PATCH 2/7] staging: lustre: llite_nfs.c: replace container_of0 by container_of

In reply to Aya Mahfouz
reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree…

Hi Aya,

[auto build test WARNING on staging/staging-next -- if it's inappropriate base, please suggest rules for selecting the more suitable base]

url:    https://github.com/0day-ci/linux/commits/Aya-Mahfouz/staging-lustre-remove-uses-and-definition-of-container_of0/20151014-062751
config: arm64-allmodconfig (attached as .config)

reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=arm64

All warnings (new ones prefixed by >>):

In file included from include/linux/list.h:8:0,
from include/linux/wait.h:6,
from include/linux/fs.h:5,
from drivers/staging/lustre/lustre/llite/../include/linux/lustre_lite.h:44, from drivers/staging/lustre/lustre/llite/../include/lustre_lite.h:45, from drivers/staging/lustre/lustre/llite/llite_nfs.c:45:
drivers/staging/lustre/lustre/llite/llite_nfs.c: In function 'll_nfs_get_name_filldir':
include/linux/kernel.h:811:48: warning: initialization from incompatible pointer type

     const typeof( ((type *)0)->member ) *__mptr = (ptr); \
                                                   ^
   drivers/staging/lustre/lustre/llite/llite_nfs.c:213:26: note: in expansion of macro 'container_of'
     struct lu_dirent *lde = container_of(name, struct lu_dirent, lde_name);
                             ^
>> include/linux/kernel.h:811:48: warning: (near initialization for 'lde')
     const typeof( ((type *)0)->member ) *__mptr = (ptr); \
                                                   ^
   drivers/staging/lustre/lustre/llite/llite_nfs.c:213:26: note: in expansion of macro 'container_of'
     struct lu_dirent *lde = container_of(name, struct lu_dirent, lde_name);
                             ^

vim +/lde +811 include/linux/kernel.h

^1da177e Linus Torvalds 2005-04-16  795  
91f68b73 Wu Fengguang   2009-01-07  796  
91f68b73 Wu Fengguang   2009-01-07  797  /*
91f68b73 Wu Fengguang   2009-01-07  798   * swap - swap value of @a and @b
91f68b73 Wu Fengguang   2009-01-07  799   */
ac7b9004 Peter Zijlstra 2009-02-04  800  #define swap(a, b) \
ac7b9004 Peter Zijlstra 2009-02-04  801  	do { typeof(a) __tmp = (a); (a) = (b); (b) = __tmp; } while (0)
91f68b73 Wu Fengguang   2009-01-07  802  
^1da177e Linus Torvalds 2005-04-16  803  /**
^1da177e Linus Torvalds 2005-04-16  804   * container_of - cast a member of a structure out to the containing structure
^1da177e Linus Torvalds 2005-04-16  805   * @ptr:	the pointer to the member.
^1da177e Linus Torvalds 2005-04-16  806   * @type:	the type of the container struct this is embedded in.
^1da177e Linus Torvalds 2005-04-16  807   * @member:	the name of the member within the struct.
^1da177e Linus Torvalds 2005-04-16  808   *
^1da177e Linus Torvalds 2005-04-16  809   */
^1da177e Linus Torvalds 2005-04-16  810  #define container_of(ptr, type, member) ({			\
^1da177e Linus Torvalds 2005-04-16 @811  	const typeof( ((type *)0)->member ) *__mptr = (ptr);	\
^1da177e Linus Torvalds 2005-04-16  812  	(type *)( (char *)__mptr - offsetof(type,member) );})
^1da177e Linus Torvalds 2005-04-16  813  
b9d4f426 Arnaud Lacombe 2011-07-25  814  /* Rebuild everything on CONFIG_FTRACE_MCOUNT_RECORD */
b9d4f426 Arnaud Lacombe 2011-07-25  815  #ifdef CONFIG_FTRACE_MCOUNT_RECORD
b9d4f426 Arnaud Lacombe 2011-07-25  816  # define REBUILD_DUE_TO_FTRACE_MCOUNT_RECORD
b9d4f426 Arnaud Lacombe 2011-07-25  817  #endif
9d00f92f WANG Cong      2011-07-25  818  
58f86cc8 Rusty Russell  2014-03-24  819  /* Permissions on a sysfs file: you didn't miss the 0 prefix did you? */

:::::: The code at line 811 was first introduced by commit :::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2

:::::: TO: Linus Torvalds <[email protected]> :::::: CC: Linus Torvalds <[email protected]>

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/octet-stream
Size: 45658 bytes
Desc: not available
URL: <http://lists.lustre.org/pipermail/lustre-devel-lustre.org/attachments/20151014/0585f166/attachment-0001.obj>

#5 lore raw

PATCH 3/7 staging: lustre: lu_object.c: replace container_of0 by container_of

In reply to Aya Mahfouz

Replaces container_of0 by container_of. The only difference between the two implementations is that container_of0 tries to evade type casting if the pointer is erroneous or null. The use of container_of is encouraged to bring lustre one step closer to community standards.

---
 drivers/staging/lustre/lustre/obdclass/lu_object.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
drivers/staging/lustre/lustre/obdclass/lu_object.c +3 -3
index 0d15bd5..82873fb 100644
@@ -294,7 +294,7 @@ static void lu_object_free(const struct lu_env *env, struct lu_object *o)
 		 * lives as long as possible and ->loo_object_free() methods
 		 * can look at its contents.
 		 */
-		o = container_of0(splice.prev, struct lu_object, lo_linkage);
+		o = container_of(splice.prev, struct lu_object, lo_linkage);
 		list_del_init(&o->lo_linkage);
 		LASSERT(o->lo_ops->loo_object_free != NULL);
 		o->lo_ops->loo_object_free(env, o);
@@ -368,7 +368,7 @@ int lu_site_purge(const struct lu_env *env, struct lu_site *s, int nr)
 		 * races due to the reasons described in lu_object_put().
 		 */
 		while (!list_empty(&dispose)) {
-			h = container_of0(dispose.next,
+			h = container_of(dispose.next,
 					  struct lu_object_header, loh_lru);
 			list_del_init(&h->loh_lru);
 			lu_object_free(env, lu_object_top(h));
@@ -542,7 +542,7 @@ static struct lu_object *htable_lookup(struct lu_site *s,
 		return ERR_PTR(-ENOENT);
 	}
 
-	h = container_of0(hnode, struct lu_object_header, loh_hash);
+	h = container_of(hnode, struct lu_object_header, loh_hash);
 	if (likely(!lu_object_is_dying(h))) {
 		cfs_hash_get(s->ls_obj_hash, hnode);
 		lprocfs_counter_incr(s->ls_stats, LU_SS_CACHE_HIT);
Signature · 6 lines
2.4.2


-- 
Kind Regards,
Aya Saif El-yazal Mahfouz
#6 lore raw

PATCH 4/7 staging: lustre: echo_client.c: replace container_of0 by container_of

In reply to Aya Mahfouz

Replaces container_of0 by container_of. The only difference between the two implementations is that container_of0 tries to evade type casting if the pointer is erroneous or null. The use of container_of is encouraged to bring lustre one step closer to community standards.

---
 drivers/staging/lustre/lustre/obdecho/echo_client.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/staging/lustre/lustre/obdecho/echo_client.c +1 -1
index ef9cb31..1e9a57f 100644
@@ -103,7 +103,7 @@ static int echo_client_cleanup(struct obd_device *obddev);
  */
 static inline struct echo_device *cl2echo_dev(const struct cl_device *dev)
 {
-	return container_of0(dev, struct echo_device, ed_cl);
+	return container_of(dev, struct echo_device, ed_cl);
 }
 
 static inline struct cl_device *echo_dev2cl(struct echo_device *d)
Signature · 6 lines
2.4.2


-- 
Kind Regards,
Aya Saif El-yazal Mahfouz
#7 lore raw

PATCH 5/7 staging: lustre: osc_io.c: replace container_of0 by container_of

In reply to Aya Mahfouz

Replaces container_of0 by container_of. The only difference between the two implementations is that container_of0 tries to evade type casting if the pointer is erroneous or null. The use of container_of is encouraged to bring lustre one step closer to community standards.

---
 drivers/staging/lustre/lustre/osc/osc_io.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/staging/lustre/lustre/osc/osc_io.c +2 -2
index 3a4200f..fb3b415 100644
@@ -56,13 +56,13 @@
 static struct osc_req *cl2osc_req(const struct cl_req_slice *slice)
 {
 	LINVRNT(slice->crs_dev->cd_lu_dev.ld_type == &osc_device_type);
-	return container_of0(slice, struct osc_req, or_cl);
+	return container_of(slice, struct osc_req, or_cl);
 }
 
 static struct osc_io *cl2osc_io(const struct lu_env *env,
 				const struct cl_io_slice *slice)
 {
-	struct osc_io *oio = container_of0(slice, struct osc_io, oi_cl);
+	struct osc_io *oio = container_of(slice, struct osc_io, oi_cl);
 
 	LINVRNT(oio == osc_env_io(env));
 	return oio;
Signature · 6 lines
2.4.2


-- 
Kind Regards,
Aya Saif El-yazal Mahfouz
#8 lore raw

PATCH 6/7 staging: lustre: osc_object.c: replace container_of0 by container_of

In reply to Aya Mahfouz

Replaces container_of0 by container_of. The only difference between the two implementations is that container_of0 tries to evade type casting if the pointer is erroneous or null. The use of container_of is encouraged to bring lustre one step closer to community standards.

---
 drivers/staging/lustre/lustre/osc/osc_object.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/staging/lustre/lustre/osc/osc_object.c +1 -1
index acffab9..f916b09 100644
@@ -60,7 +60,7 @@ static struct lu_object *osc2lu(struct osc_object *osc)
 static struct osc_object *lu2osc(const struct lu_object *obj)
 {
 	LINVRNT(osc_is_object(obj));
-	return container_of0(obj, struct osc_object, oo_cl.co_lu);
+	return container_of(obj, struct osc_object, oo_cl.co_lu);
 }
 
 /*****************************************************************************
Signature · 6 lines
2.4.2


-- 
Kind Regards,
Aya Saif El-yazal Mahfouz
#9 lore raw

PATCH 7/7 staging: lustre: remove container_of0 and __container_of

In reply to Aya Mahfouz

All uses of container_of0 have been replaced by container_of. container_of0 and __container_of can be safely removed.

---
 drivers/staging/lustre/include/linux/libcfs/libcfs.h | 11 -----------
 1 file changed, 11 deletions(-)
drivers/staging/lustre/include/linux/libcfs/libcfs.h +0 -11
index 385ced1..e4a0c40 100644
@@ -128,17 +128,6 @@ void cfs_get_random_bytes(void *buf, int size);
 #include "libcfs_fail.h"
 #include "libcfs_crypto.h"
 
-/* container_of depends on "likely" which is defined in libcfs_private.h */
-static inline void *__container_of(void *ptr, unsigned long shift)
-{
-	if (IS_ERR_OR_NULL(ptr))
-		return ptr;
-	return (char *)ptr - shift;
-}
-
-#define container_of0(ptr, type, member) \
-	((type *)__container_of((void *)(ptr), offsetof(type, member)))
-
 #define _LIBCFS_H
 
 void *libcfs_kvzalloc(size_t size, gfp_t flags);
Signature · 6 lines
2.4.2


-- 
Kind Regards,
Aya Saif El-yazal Mahfouz
#10 lore raw

[lustre-devel] [PATCH 7/7] staging: lustre: remove container_of0 and __container_of

url: https://github.com/0day-ci/linux/commits/Aya-Mahfouz/staging-lustre-remove-uses-and-definition-of-container_of0/20151014-062751 reproduce:

Hi Aya,

[auto build test WARNING on staging/staging-next -- if it's inappropriate base, please suggest rules for selecting the more suitable base]

url: https://github.com/0day-ci/linux/commits/Aya-Mahfouz/staging-lustre-remove-uses-and-definition-of-container_of0/20151014-062751
reproduce:

        # apt-get install sparse
        make ARCH=x86_64 allmodconfig
        make C=1 CF=-D__CHECK_ENDIAN__

sparse warnings: (new ones prefixed by >>)

>> drivers/staging/lustre/lustre/fid/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/fid/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/fid/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/fid/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/fid/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/fid/../include/lu_object.h:745:57: sparse: got lu_object
   In file included from drivers/staging/lustre/lustre/fid/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/fid/../include/lustre_lib.h:64,
                    from drivers/staging/lustre/lustre/fid/../include/obd.h:52,
                    from drivers/staging/lustre/lustre/fid/fid_request.c:48:
   drivers/staging/lustre/lustre/fid/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/fid/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/fid/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/fid/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/fid/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   cc1: some warnings being treated as errors
--
>> drivers/staging/lustre/lustre/fld/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/fld/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/fld/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/fld/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/fld/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/fld/../include/lu_object.h:745:57: sparse: got lu_object
   In file included from drivers/staging/lustre/lustre/fld/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/fld/../include/lustre_lib.h:64,
                    from drivers/staging/lustre/lustre/fld/../include/obd.h:52,
                    from drivers/staging/lustre/lustre/fld/fld_request.c:49:
   drivers/staging/lustre/lustre/fld/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/fld/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/fld/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/fld/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/fld/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   cc1: some warnings being treated as errors
--
>> drivers/staging/lustre/lustre/llite/../include/linux/../lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../include/linux/../lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../include/linux/../lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/llite/../include/linux/../lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../include/linux/../lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../include/linux/../lu_object.h:745:57: sparse: got lu_object
>> drivers/staging/lustre/lustre/llite/../include/cl_object.h:2657:33: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2657:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2657:40: sparse: got cl_device
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2668:33: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2668:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2668:40: sparse: got cl_object
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2674:36: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2674:43: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2674:43: sparse: got cl_object_conf
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2685:47: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2685:54: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2685:54: sparse: got cl_device
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2690:33: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2690:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2690:40: sparse: got cl_object_header
   In file included from drivers/staging/lustre/lustre/llite/../include/linux/../lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/llite/../include/linux/../obd_class.h:41,
                    from drivers/staging/lustre/lustre/llite/../include/linux/lustre_lite.h:47,
                    from drivers/staging/lustre/lustre/llite/../include/lustre_lite.h:45,
                    from drivers/staging/lustre/lustre/llite/dcache.c:44:
   drivers/staging/lustre/lustre/llite/../include/linux/../lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/llite/../include/linux/../lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/llite/../include/linux/../lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/llite/../include/linux/../lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/llite/../include/linux/../lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/llite/llite_internal.h:45:0,
                    from drivers/staging/lustre/lustre/llite/dcache.c:48:
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^
   cc1: some warnings being treated as errors
--
>> drivers/staging/lustre/lustre/llite/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/llite/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../include/lu_object.h:745:57: sparse: got lu_object
>> drivers/staging/lustre/lustre/llite/../include/cl_object.h:2657:33: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2657:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2657:40: sparse: got cl_device
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2668:33: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2668:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2668:40: sparse: got cl_object
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2674:36: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2674:43: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2674:43: sparse: got cl_object_conf
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2685:47: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2685:54: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2685:54: sparse: got cl_device
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2690:33: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2690:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2690:40: sparse: got cl_object_header
   In file included from drivers/staging/lustre/lustre/llite/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/llite/../include/obd_class.h:41,
                    from drivers/staging/lustre/lustre/llite/dir.c:52:
   drivers/staging/lustre/lustre/llite/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/llite/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/llite/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/llite/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/llite/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/llite/llite_internal.h:45:0,
                    from drivers/staging/lustre/lustre/llite/dir.c:58:
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^
   cc1: some warnings being treated as errors
--
>> drivers/staging/lustre/lustre/llite/../include/linux/../lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../include/linux/../lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../include/linux/../lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/llite/../include/linux/../lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../include/linux/../lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../include/linux/../lu_object.h:745:57: sparse: got lu_object
>> drivers/staging/lustre/lustre/llite/../include/cl_object.h:2657:33: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2657:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2657:40: sparse: got cl_device
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2668:33: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2668:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2668:40: sparse: got cl_object
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2674:36: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2674:43: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2674:43: sparse: got cl_object_conf
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2685:47: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2685:54: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2685:54: sparse: got cl_device
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2690:33: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2690:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2690:40: sparse: got cl_object_header
   In file included from drivers/staging/lustre/lustre/llite/../include/linux/../lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/llite/../include/linux/../obd_class.h:41,
                    from drivers/staging/lustre/lustre/llite/../include/linux/lustre_lite.h:47,
                    from drivers/staging/lustre/lustre/llite/../include/lustre_lite.h:45,
                    from drivers/staging/lustre/lustre/llite/llite_nfs.c:45:
   drivers/staging/lustre/lustre/llite/../include/linux/../lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/llite/../include/linux/../lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/llite/../include/linux/../lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/llite/../include/linux/../lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/llite/../include/linux/../lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/llite/llite_internal.h:45:0,
                    from drivers/staging/lustre/lustre/llite/llite_nfs.c:46:
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^
   In file included from include/linux/list.h:8:0,
                    from include/linux/wait.h:6,
                    from include/linux/fs.h:5,
                    from drivers/staging/lustre/lustre/llite/../include/linux/lustre_lite.h:44,
                    from drivers/staging/lustre/lustre/llite/../include/lustre_lite.h:45,
                    from drivers/staging/lustre/lustre/llite/llite_nfs.c:45:
   drivers/staging/lustre/lustre/llite/llite_nfs.c: In function 'll_nfs_get_name_filldir':
   include/linux/kernel.h:811:48: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types]
     const typeof( ((type *)0)->member ) *__mptr = (ptr); \
                                                   ^
   drivers/staging/lustre/lustre/llite/llite_nfs.c:213:26: note: in expansion of macro 'container_of'
     struct lu_dirent *lde = container_of(name, struct lu_dirent, lde_name);
                             ^
   include/linux/kernel.h:811:48: note: (near initialization for 'lde')
     const typeof( ((type *)0)->member ) *__mptr = (ptr); \
                                                   ^
   drivers/staging/lustre/lustre/llite/llite_nfs.c:213:26: note: in expansion of macro 'container_of'
     struct lu_dirent *lde = container_of(name, struct lu_dirent, lde_name);
                             ^
   cc1: some warnings being treated as errors
--
>> drivers/staging/lustre/lustre/llite/../lclient/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../lclient/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../lclient/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/llite/../lclient/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../lclient/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../lclient/../include/lu_object.h:745:57: sparse: got lu_object
>> drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2657:33: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2657:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2657:40: sparse: got cl_device
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2668:33: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2668:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2668:40: sparse: got cl_object
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2674:36: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2674:43: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2674:43: sparse: got cl_object_conf
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2685:47: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2685:54: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2685:54: sparse: got cl_device
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2690:33: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2690:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2690:40: sparse: got cl_object_header
   In file included from drivers/staging/lustre/lustre/llite/../lclient/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/llite/../lclient/../include/obd_class.h:41,
                    from drivers/staging/lustre/lustre/llite/../lclient/glimpse.c:44:
   drivers/staging/lustre/lustre/llite/../lclient/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/llite/../lclient/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/llite/../lclient/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/llite/../lclient/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/llite/../lclient/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/llite/../lclient/glimpse.c:54:0:
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^
   cc1: some warnings being treated as errors
--
>> drivers/staging/lustre/lustre/llite/../lclient/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../lclient/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../lclient/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/llite/../lclient/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../lclient/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../lclient/../include/lu_object.h:745:57: sparse: got lu_object
>> drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2657:33: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2657:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2657:40: sparse: got cl_device
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2668:33: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2668:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2668:40: sparse: got cl_object
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2674:36: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2674:43: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2674:43: sparse: got cl_object_conf
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2685:47: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2685:54: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2685:54: sparse: got cl_device
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2690:33: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2690:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2690:40: sparse: got cl_object_header
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2657:16: sparse: undefined identifier 'container_of0'
>> drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2657:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2657:33: sparse: undefined identifier 'struct'
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2690:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2690:33: sparse: undefined identifier 'struct'
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2674:16: sparse: undefined identifier 'container_of0'
>> drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2657:29: sparse: not a function <noident>
   In file included from drivers/staging/lustre/lustre/llite/../lclient/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/llite/../lclient/../include/lustre_lib.h:64,
                    from drivers/staging/lustre/lustre/llite/../lclient/../include/obd.h:52,
                    from drivers/staging/lustre/lustre/llite/../lclient/lcommon_cl.c:53:
   drivers/staging/lustre/lustre/llite/../lclient/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/llite/../lclient/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/llite/../lclient/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/llite/../lclient/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/llite/../lclient/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/llite/../lclient/lcommon_cl.c:60:0:
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2658:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2691:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2675:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   cc1: some warnings being treated as errors
--
>> drivers/staging/lustre/lustre/llite/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/llite/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../include/lu_object.h:745:57: sparse: got lu_object
>> drivers/staging/lustre/lustre/llite/../include/cl_object.h:2657:33: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2657:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2657:40: sparse: got cl_device
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2668:33: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2668:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2668:40: sparse: got cl_object
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2674:36: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2674:43: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2674:43: sparse: got cl_object_conf
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2685:47: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2685:54: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2685:54: sparse: got cl_device
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2690:33: sparse: typename in expression
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2690:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2690:40: sparse: got cl_object_header
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2668:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/llite/../include/lu_object.h:737:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2690:16: sparse: undefined identifier 'container_of0'
>> drivers/staging/lustre/lustre/llite/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2690:33: sparse: undefined identifier 'struct'
   In file included from drivers/staging/lustre/lustre/llite/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/llite/../include/lustre_lib.h:64,
                    from drivers/staging/lustre/lustre/llite/../include/obd.h:52,
                    from drivers/staging/lustre/lustre/llite/vvp_dev.c:43:
   drivers/staging/lustre/lustre/llite/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/llite/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/llite/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/llite/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/llite/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/llite/llite_internal.h:45:0,
                    from drivers/staging/lustre/lustre/llite/vvp_dev.c:45:
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2669:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   In file included from drivers/staging/lustre/lustre/llite/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/llite/../include/lustre_lib.h:64,
                    from drivers/staging/lustre/lustre/llite/../include/obd.h:52,
                    from drivers/staging/lustre/lustre/llite/vvp_dev.c:43:
   drivers/staging/lustre/lustre/llite/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/llite/../include/lu_object.h:738:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   In file included from drivers/staging/lustre/lustre/llite/llite_internal.h:45:0,
                    from drivers/staging/lustre/lustre/llite/vvp_dev.c:45:
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2691:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   cc1: some warnings being treated as errors
--
>> drivers/staging/lustre/lustre/lmv/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/lmv/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lmv/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/lmv/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/lmv/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lmv/../include/lu_object.h:745:57: sparse: got lu_object
   In file included from drivers/staging/lustre/lustre/lmv/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/lmv/../include/lustre_lib.h:64,
                    from drivers/staging/lustre/lustre/lmv/lmv_obd.c:50:
   drivers/staging/lustre/lustre/lmv/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/lmv/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/lmv/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/lmv/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/lmv/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   cc1: some warnings being treated as errors
--
>> drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:57: sparse: got lu_object
>> drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:40: sparse: got cl_device
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:40: sparse: got cl_object
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:36: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:43: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:43: sparse: got cl_object_conf
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:47: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:54: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:54: sparse: got cl_device
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:40: sparse: got cl_object_header
   In file included from drivers/staging/lustre/lustre/lov/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/lov/../include/lustre_lib.h:64,
                    from drivers/staging/lustre/lustre/lov/lov_obd.c:48:
   drivers/staging/lustre/lustre/lov/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/lov/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/lov/lov_obd.c:56:0:
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^
   cc1: some warnings being treated as errors
--
>> drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:57: sparse: got lu_object
   In file included from drivers/staging/lustre/lustre/lov/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/lov/lov_pack.c:45:
   drivers/staging/lustre/lustre/lov/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/lov/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   cc1: some warnings being treated as errors
--
>> drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:57: sparse: got lu_object
>> drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:40: sparse: got cl_device
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:40: sparse: got cl_object
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:36: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:43: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:43: sparse: got cl_object_conf
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:47: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:54: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:54: sparse: got cl_device
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:40: sparse: got cl_object_header
>> drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:40: sparse: got lov_device
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:40: sparse: got lovsub_device
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:40: sparse: got lovsub_device
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:35: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:42: sparse: got lov_object
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:35: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:42: sparse: got lov_object
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:35: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:42: sparse: got lovsub_object
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:747:35: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:747:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:747:42: sparse: got lovsub_object
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:775:37: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:775:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:775:44: sparse: got lov_page
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:780:37: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:780:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:780:44: sparse: got lov_req
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:787:37: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:787:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:787:44: sparse: got lovsub_page
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:792:37: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:792:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:792:44: sparse: got lovsub_req
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:780:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:16: sparse: undefined identifier 'container_of0'
>> drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:33: sparse: undefined identifier 'struct'
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:16: sparse: undefined identifier 'container_of0'
>> drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:16: sparse: undefined identifier 'container_of0'
>> drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:29: sparse: not a function <noident>
>> drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:33: sparse: undefined identifier 'struct'
   In file included from drivers/staging/lustre/lustre/lov/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/lov/../include/obd_class.h:41,
                    from drivers/staging/lustre/lustre/lov/lov_dev.c:44:
   drivers/staging/lustre/lustre/lov/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/lov/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/lov/lov_cl_internal.h:52:0,
                    from drivers/staging/lustre/lustre/lov/lov_dev.c:46:
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^
   In file included from drivers/staging/lustre/lustre/lov/lov_dev.c:46:0:
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lov_dev':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:26: error: expected expression before 'struct'
     return container_of0(d, struct lov_device, ld_cl.cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lovsub_dev':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:26: error: expected expression before 'struct'
     return container_of0(d, struct lovsub_device, acid_cl.cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lovsub_dev':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:26: error: expected expression before 'struct'
     return container_of0(d, struct lovsub_device, acid_cl);
                             ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lov':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:28: error: expected expression before 'struct'
     return container_of0(obj, struct lov_object, lo_cl.co_lu);
                               ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lov':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:28: error: expected expression before 'struct'
     return container_of0(obj, struct lov_object, lo_cl);
                               ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lovsub':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:28: error: expected expression before 'struct'
     return container_of0(obj, struct lovsub_object, lso_cl);
                               ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lovsub':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:747:28: error: expected expression before 'struct'
     return container_of0(obj, struct lovsub_object, lso_cl.co_lu);
                               ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lov_page':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:775:30: error: expected expression before 'struct'
     return container_of0(slice, struct lov_page, lps_cl);
                                 ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lov_req':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:780:30: error: expected expression before 'struct'
     return container_of0(slice, struct lov_req, lr_cl);
                                 ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lovsub_page':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:787:30: error: expected expression before 'struct'
     return container_of0(slice, struct lovsub_page, lsb_cl);
                                 ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lovsub_req':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:792:30: error: expected expression before 'struct'
     return container_of0(slice, struct lovsub_req, lsrq_cl);
                                 ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lov_dev':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:682:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lovsub_dev':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:704:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   In file included from drivers/staging/lustre/lustre/lov/lov_cl_internal.h:52:0,
                    from drivers/staging/lustre/lustre/lov/lov_dev.c:46:
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2658:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^

In file included from drivers/staging/lustre/lustre/lov/lov_dev.c:46:0:
drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lov_req':
drivers/staging/lustre/lustre/lov/lov_cl_internal.h:781:1: warning: control reaches end of non-void function [-Wreturn-type]
--

>> drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:57: sparse: got lu_object
>> drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:40: sparse: got cl_device
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:40: sparse: got cl_object
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:36: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:43: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:43: sparse: got cl_object_conf
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:47: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:54: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:54: sparse: got cl_device
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:40: sparse: got cl_object_header
>> drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:40: sparse: got lov_device
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:40: sparse: got lovsub_device
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:40: sparse: got lovsub_device
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:35: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:42: sparse: got lov_object
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:35: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:42: sparse: got lov_object
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:35: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:42: sparse: got lovsub_object
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:747:35: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:747:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:747:42: sparse: got lovsub_object
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:775:37: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:775:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:775:44: sparse: got lov_page
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:780:37: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:780:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:780:44: sparse: got lov_req
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:787:37: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:787:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:787:44: sparse: got lovsub_page
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:792:37: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:792:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:792:44: sparse: got lovsub_req
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:16: sparse: undefined identifier 'container_of0'
>> drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:33: sparse: undefined identifier 'struct'
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:33: sparse: undefined identifier 'struct'
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:35: sparse: undefined identifier 'struct'
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:35: sparse: undefined identifier 'struct'
>> drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:16: sparse: undefined identifier 'container_of0'
>> drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:33: sparse: undefined identifier 'struct'
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:29: sparse: not a function <noident>
>> drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:29: sparse: not a function <noident>
>> drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:29: sparse: not a function <noident>
>> drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:29: sparse: not a function <noident>
>> drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:29: sparse: not a function <noident>
   In file included from drivers/staging/lustre/lustre/lov/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/lov/../include/lustre_lib.h:64,
                    from drivers/staging/lustre/lustre/lov/../include/obd.h:52,
                    from drivers/staging/lustre/lustre/lov/lov_cl_internal.h:51,
                    from drivers/staging/lustre/lustre/lov/lov_object.c:44:
   drivers/staging/lustre/lustre/lov/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/lov/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/lov/lov_cl_internal.h:52:0,
                    from drivers/staging/lustre/lustre/lov/lov_object.c:44:
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^
   In file included from drivers/staging/lustre/lustre/lov/lov_object.c:44:0:
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lov_dev':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:26: error: expected expression before 'struct'
     return container_of0(d, struct lov_device, ld_cl.cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lovsub_dev':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:26: error: expected expression before 'struct'
     return container_of0(d, struct lovsub_device, acid_cl.cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lovsub_dev':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:26: error: expected expression before 'struct'
     return container_of0(d, struct lovsub_device, acid_cl);
                             ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lov':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:28: error: expected expression before 'struct'
     return container_of0(obj, struct lov_object, lo_cl.co_lu);
                               ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lov':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:28: error: expected expression before 'struct'
     return container_of0(obj, struct lov_object, lo_cl);
                               ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lovsub':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:28: error: expected expression before 'struct'
     return container_of0(obj, struct lovsub_object, lso_cl);
                               ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lovsub':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:747:28: error: expected expression before 'struct'
     return container_of0(obj, struct lovsub_object, lso_cl.co_lu);
                               ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lov_page':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:775:30: error: expected expression before 'struct'
     return container_of0(slice, struct lov_page, lps_cl);
                                 ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lov_req':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:780:30: error: expected expression before 'struct'
     return container_of0(slice, struct lov_req, lr_cl);
                                 ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lovsub_page':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:787:30: error: expected expression before 'struct'
     return container_of0(slice, struct lovsub_page, lsb_cl);
                                 ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lovsub_req':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:792:30: error: expected expression before 'struct'
     return container_of0(slice, struct lovsub_req, lsrq_cl);
                                 ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lov':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:726:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   In file included from drivers/staging/lustre/lustre/lov/lov_cl_internal.h:52:0,
                    from drivers/staging/lustre/lustre/lov/lov_object.c:44:
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2691:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   In file included from drivers/staging/lustre/lustre/lov/lov_object.c:44:0:
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lovsub':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:742:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lov_dev':
--
>> drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:57: sparse: got lu_object
>> drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:40: sparse: got cl_device
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:40: sparse: got cl_object
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:36: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:43: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:43: sparse: got cl_object_conf
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:47: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:54: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:54: sparse: got cl_device
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:40: sparse: got cl_object_header
>> drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:40: sparse: got lov_device
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:40: sparse: got lovsub_device
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:40: sparse: got lovsub_device
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:35: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:42: sparse: got lov_object
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:35: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:42: sparse: got lov_object
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:35: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:42: sparse: got lovsub_object
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:747:35: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:747:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:747:42: sparse: got lovsub_object
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:775:37: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:775:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:775:44: sparse: got lov_page
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:780:37: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:780:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:780:44: sparse: got lov_req
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:787:37: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:787:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:787:44: sparse: got lovsub_page
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:792:37: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:792:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:792:44: sparse: got lovsub_req
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:775:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:775:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:775:37: sparse: undefined identifier 'struct'
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:775:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:16: sparse: undefined identifier 'container_of0'
   In file included from drivers/staging/lustre/lustre/lov/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/lov/../include/lustre_lib.h:64,
                    from drivers/staging/lustre/lustre/lov/../include/obd.h:52,
                    from drivers/staging/lustre/lustre/lov/lov_cl_internal.h:51,
                    from drivers/staging/lustre/lustre/lov/lov_page.c:43:
   drivers/staging/lustre/lustre/lov/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/lov/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/lov/lov_cl_internal.h:52:0,
                    from drivers/staging/lustre/lustre/lov/lov_page.c:43:
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^
   In file included from drivers/staging/lustre/lustre/lov/lov_page.c:43:0:
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lov_dev':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:26: error: expected expression before 'struct'
     return container_of0(d, struct lov_device, ld_cl.cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lovsub_dev':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:26: error: expected expression before 'struct'
     return container_of0(d, struct lovsub_device, acid_cl.cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lovsub_dev':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:26: error: expected expression before 'struct'
     return container_of0(d, struct lovsub_device, acid_cl);
                             ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lov':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:28: error: expected expression before 'struct'
     return container_of0(obj, struct lov_object, lo_cl.co_lu);
                               ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lov':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:28: error: expected expression before 'struct'
     return container_of0(obj, struct lov_object, lo_cl);
                               ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lovsub':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:28: error: expected expression before 'struct'
     return container_of0(obj, struct lovsub_object, lso_cl);
                               ^
--
>> drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:57: sparse: got lu_object
>> drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:40: sparse: got cl_device
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:40: sparse: got cl_object
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:36: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:43: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:43: sparse: got cl_object_conf
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:47: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:54: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:54: sparse: got cl_device
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:40: sparse: got cl_object_header
>> drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:40: sparse: got lov_device
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:40: sparse: got lovsub_device
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:40: sparse: got lovsub_device
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:35: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:42: sparse: got lov_object
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:35: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:42: sparse: got lov_object
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:35: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:42: sparse: got lovsub_object
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:747:35: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:747:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:747:42: sparse: got lovsub_object
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:775:37: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:775:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:775:44: sparse: got lov_page
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:780:37: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:780:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:780:44: sparse: got lov_req
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:787:37: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:787:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:787:44: sparse: got lovsub_page
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:792:37: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:792:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:792:44: sparse: got lovsub_req
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:16: sparse: undefined identifier 'container_of0'
>> drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:33: sparse: undefined identifier 'struct'
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:35: sparse: undefined identifier 'struct'
>> drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:29: sparse: not a function <noident>
>> drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:29: sparse: not a function <noident>
   In file included from drivers/staging/lustre/lustre/lov/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/lov/../include/lustre_lib.h:64,
                    from drivers/staging/lustre/lustre/lov/../include/obd.h:52,
                    from drivers/staging/lustre/lustre/lov/lov_cl_internal.h:51,
                    from drivers/staging/lustre/lustre/lov/lov_lock.c:43:
   drivers/staging/lustre/lustre/lov/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/lov/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/lov/lov_cl_internal.h:52:0,
                    from drivers/staging/lustre/lustre/lov/lov_lock.c:43:
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^
   In file included from drivers/staging/lustre/lustre/lov/lov_lock.c:43:0:
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lov_dev':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:26: error: expected expression before 'struct'
     return container_of0(d, struct lov_device, ld_cl.cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lovsub_dev':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:26: error: expected expression before 'struct'
     return container_of0(d, struct lovsub_device, acid_cl.cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lovsub_dev':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:26: error: expected expression before 'struct'
     return container_of0(d, struct lovsub_device, acid_cl);
                             ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lov':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:28: error: expected expression before 'struct'
     return container_of0(obj, struct lov_object, lo_cl.co_lu);
                               ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lov':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:28: error: expected expression before 'struct'
     return container_of0(obj, struct lov_object, lo_cl);
                               ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lovsub':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:28: error: expected expression before 'struct'
     return container_of0(obj, struct lovsub_object, lso_cl);
                               ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lovsub':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:747:28: error: expected expression before 'struct'
     return container_of0(obj, struct lovsub_object, lso_cl.co_lu);
                               ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lov_page':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:775:30: error: expected expression before 'struct'
     return container_of0(slice, struct lov_page, lps_cl);
                                 ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lov_req':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:780:30: error: expected expression before 'struct'
     return container_of0(slice, struct lov_req, lr_cl);
                                 ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lovsub_page':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:787:30: error: expected expression before 'struct'
     return container_of0(slice, struct lovsub_page, lsb_cl);
                                 ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lovsub_req':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:792:30: error: expected expression before 'struct'
     return container_of0(slice, struct lovsub_req, lsrq_cl);
                                 ^
   In file included from drivers/staging/lustre/lustre/lov/lov_cl_internal.h:52:0,
                    from drivers/staging/lustre/lustre/lov/lov_lock.c:43:
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2691:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   In file included from drivers/staging/lustre/lustre/lov/lov_lock.c:43:0:
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lov':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:726:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   cc1: some warnings being treated as errors
--
>> drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:57: sparse: got lu_object
>> drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:40: sparse: got cl_device
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:40: sparse: got cl_object
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:36: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:43: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:43: sparse: got cl_object_conf
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:47: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:54: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:54: sparse: got cl_device
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:40: sparse: got cl_object_header
>> drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:40: sparse: got lov_device
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:40: sparse: got lovsub_device
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:40: sparse: got lovsub_device
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:35: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:42: sparse: got lov_object
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:35: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:42: sparse: got lov_object
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:35: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:42: sparse: got lovsub_object
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:747:35: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:747:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:747:42: sparse: got lovsub_object
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:775:37: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:775:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:775:44: sparse: got lov_page
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:780:37: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:780:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:780:44: sparse: got lov_req
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:787:37: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:787:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:787:44: sparse: got lovsub_page
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:792:37: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:792:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:792:44: sparse: got lovsub_req
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:747:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:35: sparse: undefined identifier 'struct'
>> drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:33: sparse: undefined identifier 'struct'
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:29: sparse: not a function <noident>
   In file included from drivers/staging/lustre/lustre/lov/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/lov/../include/lustre_lib.h:64,
                    from drivers/staging/lustre/lustre/lov/../include/obd.h:52,
                    from drivers/staging/lustre/lustre/lov/lov_cl_internal.h:51,
                    from drivers/staging/lustre/lustre/lov/lov_io.c:44:
   drivers/staging/lustre/lustre/lov/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/lov/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/lov/lov_cl_internal.h:52:0,
                    from drivers/staging/lustre/lustre/lov/lov_io.c:44:
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^
   In file included from drivers/staging/lustre/lustre/lov/lov_io.c:44:0:
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lov_dev':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:26: error: expected expression before 'struct'
     return container_of0(d, struct lov_device, ld_cl.cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lovsub_dev':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:26: error: expected expression before 'struct'
     return container_of0(d, struct lovsub_device, acid_cl.cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lovsub_dev':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:26: error: expected expression before 'struct'
     return container_of0(d, struct lovsub_device, acid_cl);
                             ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lov':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:28: error: expected expression before 'struct'
     return container_of0(obj, struct lov_object, lo_cl.co_lu);
                               ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lov':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:28: error: expected expression before 'struct'
     return container_of0(obj, struct lov_object, lo_cl);
                               ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lovsub':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:28: error: expected expression before 'struct'
     return container_of0(obj, struct lovsub_object, lso_cl);
                               ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lovsub':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:747:28: error: expected expression before 'struct'
     return container_of0(obj, struct lovsub_object, lso_cl.co_lu);
                               ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lov_page':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:775:30: error: expected expression before 'struct'
     return container_of0(slice, struct lov_page, lps_cl);
                                 ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lov_req':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:780:30: error: expected expression before 'struct'
     return container_of0(slice, struct lov_req, lr_cl);
                                 ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lovsub_page':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:787:30: error: expected expression before 'struct'
     return container_of0(slice, struct lovsub_page, lsb_cl);
                                 ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lovsub_req':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:792:30: error: expected expression before 'struct'
     return container_of0(slice, struct lovsub_req, lsrq_cl);
                                 ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lov_dev':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:682:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lov':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:726:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lovsub':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:748:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
--
>> drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:57: sparse: got lu_object
>> drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:40: sparse: got cl_device
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:40: sparse: got cl_object
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:36: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:43: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:43: sparse: got cl_object_conf
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:47: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:54: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:54: sparse: got cl_device
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:40: sparse: got cl_object_header
>> drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:40: sparse: got lov_device
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:40: sparse: got lovsub_device
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:40: sparse: got lovsub_device
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:35: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:42: sparse: got lov_object
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:35: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:42: sparse: got lov_object
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:35: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:42: sparse: got lovsub_object
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:747:35: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:747:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:747:42: sparse: got lovsub_object
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:775:37: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:775:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:775:44: sparse: got lov_page
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:780:37: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:780:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:780:44: sparse: got lov_req
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:787:37: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:787:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:787:44: sparse: got lovsub_page
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:792:37: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:792:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:792:44: sparse: got lovsub_req
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:792:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:33: sparse: undefined identifier 'struct'
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:33: sparse: undefined identifier 'struct'
   In file included from drivers/staging/lustre/lustre/lov/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/lov/../include/lustre_lib.h:64,
                    from drivers/staging/lustre/lustre/lov/../include/obd.h:52,
                    from drivers/staging/lustre/lustre/lov/lov_cl_internal.h:51,
                    from drivers/staging/lustre/lustre/lov/lovsub_dev.c:41:
   drivers/staging/lustre/lustre/lov/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/lov/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/lov/lov_cl_internal.h:52:0,
                    from drivers/staging/lustre/lustre/lov/lovsub_dev.c:41:
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^
   In file included from drivers/staging/lustre/lustre/lov/lovsub_dev.c:41:0:
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lov_dev':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:26: error: expected expression before 'struct'
     return container_of0(d, struct lov_device, ld_cl.cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lovsub_dev':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:26: error: expected expression before 'struct'
     return container_of0(d, struct lovsub_device, acid_cl.cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lovsub_dev':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:26: error: expected expression before 'struct'
     return container_of0(d, struct lovsub_device, acid_cl);
                             ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lov':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:28: error: expected expression before 'struct'
     return container_of0(obj, struct lov_object, lo_cl.co_lu);
                               ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lov':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:28: error: expected expression before 'struct'
     return container_of0(obj, struct lov_object, lo_cl);
                               ^
--
>> drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:57: sparse: got lu_object
>> drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:40: sparse: got cl_device
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:40: sparse: got cl_object
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:36: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:43: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:43: sparse: got cl_object_conf
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:47: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:54: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:54: sparse: got cl_device
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:40: sparse: got cl_object_header
>> drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:40: sparse: got lov_device
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:40: sparse: got lovsub_device
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:40: sparse: got lovsub_device
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:35: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:42: sparse: got lov_object
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:35: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:42: sparse: got lov_object
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:35: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:42: sparse: got lovsub_object
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:747:35: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:747:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:747:42: sparse: got lovsub_object
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:775:37: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:775:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:775:44: sparse: got lov_page
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:780:37: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:780:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:780:44: sparse: got lov_req
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:787:37: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:787:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:787:44: sparse: got lovsub_page
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:792:37: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:792:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:792:44: sparse: got lovsub_req
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:16: sparse: undefined identifier 'container_of0'
>> drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:33: sparse: undefined identifier 'struct'
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:747:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:747:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:747:35: sparse: undefined identifier 'struct'
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:35: sparse: undefined identifier 'struct'
   In file included from drivers/staging/lustre/lustre/lov/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/lov/../include/lustre_lib.h:64,
                    from drivers/staging/lustre/lustre/lov/../include/obd.h:52,
                    from drivers/staging/lustre/lustre/lov/lov_cl_internal.h:51,
                    from drivers/staging/lustre/lustre/lov/lovsub_object.c:43:
   drivers/staging/lustre/lustre/lov/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/lov/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/lov/lov_cl_internal.h:52:0,
                    from drivers/staging/lustre/lustre/lov/lovsub_object.c:43:
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^
   In file included from drivers/staging/lustre/lustre/lov/lovsub_object.c:43:0:
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lov_dev':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:26: error: expected expression before 'struct'
     return container_of0(d, struct lov_device, ld_cl.cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lovsub_dev':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:26: error: expected expression before 'struct'
     return container_of0(d, struct lovsub_device, acid_cl.cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lovsub_dev':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:26: error: expected expression before 'struct'
     return container_of0(d, struct lovsub_device, acid_cl);
                             ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lov':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:28: error: expected expression before 'struct'
     return container_of0(obj, struct lov_object, lo_cl.co_lu);
                               ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lov':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:28: error: expected expression before 'struct'
     return container_of0(obj, struct lov_object, lo_cl);
                               ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lovsub':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:28: error: expected expression before 'struct'
     return container_of0(obj, struct lovsub_object, lso_cl);
                               ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lovsub':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:747:28: error: expected expression before 'struct'
     return container_of0(obj, struct lovsub_object, lso_cl.co_lu);
                               ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lov_page':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:775:30: error: expected expression before 'struct'
     return container_of0(slice, struct lov_page, lps_cl);
                                 ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lov_req':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:780:30: error: expected expression before 'struct'
     return container_of0(slice, struct lov_req, lr_cl);
                                 ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lovsub_page':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:787:30: error: expected expression before 'struct'
     return container_of0(slice, struct lovsub_page, lsb_cl);
                                 ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lovsub_req':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:792:30: error: expected expression before 'struct'
     return container_of0(slice, struct lovsub_req, lsrq_cl);
                                 ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lovsub_dev':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:698:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   In file included from drivers/staging/lustre/lustre/lov/lov_cl_internal.h:52:0,
                    from drivers/staging/lustre/lustre/lov/lovsub_object.c:43:
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2669:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
--
>> drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:57: sparse: got lu_object
>> drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:40: sparse: got cl_device
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:40: sparse: got cl_object
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:36: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:43: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:43: sparse: got cl_object_conf
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:47: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:54: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:54: sparse: got cl_device
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:40: sparse: got cl_object_header
>> drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:40: sparse: got lov_device
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:40: sparse: got lovsub_device
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:40: sparse: got lovsub_device
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:35: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:42: sparse: got lov_object
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:35: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:42: sparse: got lov_object
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:35: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:42: sparse: got lovsub_object
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:747:35: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:747:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:747:42: sparse: got lovsub_object
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:775:37: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:775:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:775:44: sparse: got lov_page
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:780:37: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:780:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:780:44: sparse: got lov_req
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:787:37: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:787:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:787:44: sparse: got lovsub_page
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:792:37: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:792:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:792:44: sparse: got lovsub_req
   In file included from drivers/staging/lustre/lustre/lov/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/lov/../include/lustre_lib.h:64,
                    from drivers/staging/lustre/lustre/lov/../include/obd.h:52,
                    from drivers/staging/lustre/lustre/lov/lov_cl_internal.h:51,
                    from drivers/staging/lustre/lustre/lov/lovsub_page.c:41:
   drivers/staging/lustre/lustre/lov/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/lov/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/lov/lov_cl_internal.h:52:0,
                    from drivers/staging/lustre/lustre/lov/lovsub_page.c:41:
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^
   In file included from drivers/staging/lustre/lustre/lov/lovsub_page.c:41:0:
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lov_dev':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:26: error: expected expression before 'struct'
     return container_of0(d, struct lov_device, ld_cl.cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lovsub_dev':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:26: error: expected expression before 'struct'
     return container_of0(d, struct lovsub_device, acid_cl.cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lovsub_dev':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:26: error: expected expression before 'struct'
     return container_of0(d, struct lovsub_device, acid_cl);
                             ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lov':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:28: error: expected expression before 'struct'
     return container_of0(obj, struct lov_object, lo_cl.co_lu);
                               ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lov':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:28: error: expected expression before 'struct'
     return container_of0(obj, struct lov_object, lo_cl);
                               ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lovsub':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:28: error: expected expression before 'struct'
     return container_of0(obj, struct lovsub_object, lso_cl);
                               ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lovsub':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:747:28: error: expected expression before 'struct'
     return container_of0(obj, struct lovsub_object, lso_cl.co_lu);
                               ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lov_page':
--
>> drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:57: sparse: got lu_object
>> drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:40: sparse: got cl_device
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:40: sparse: got cl_object
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:36: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:43: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:43: sparse: got cl_object_conf
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:47: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:54: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:54: sparse: got cl_device
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:40: sparse: got cl_object_header
>> drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:40: sparse: got lov_device
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:40: sparse: got lovsub_device
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:33: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:40: sparse: got lovsub_device
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:35: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:42: sparse: got lov_object
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:35: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:42: sparse: got lov_object
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:35: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:42: sparse: got lovsub_object
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:747:35: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:747:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:747:42: sparse: got lovsub_object
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:775:37: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:775:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:775:44: sparse: got lov_page
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:780:37: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:780:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:780:44: sparse: got lov_req
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:787:37: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:787:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:787:44: sparse: got lovsub_page
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:792:37: sparse: typename in expression
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:792:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:792:44: sparse: got lovsub_req
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:16: sparse: undefined identifier 'container_of0'
   In file included from drivers/staging/lustre/lustre/lov/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/lov/../include/lustre_lib.h:64,
                    from drivers/staging/lustre/lustre/lov/../include/obd.h:52,
                    from drivers/staging/lustre/lustre/lov/lov_cl_internal.h:51,
                    from drivers/staging/lustre/lustre/lov/lovsub_lock.c:43:
   drivers/staging/lustre/lustre/lov/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/lov/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/lov/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/lov/lov_cl_internal.h:52:0,
                    from drivers/staging/lustre/lustre/lov/lovsub_lock.c:43:
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/lov/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/lov/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^
   In file included from drivers/staging/lustre/lustre/lov/lovsub_lock.c:43:0:
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lov_dev':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:681:26: error: expected expression before 'struct'
     return container_of0(d, struct lov_device, ld_cl.cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lovsub_dev':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:697:26: error: expected expression before 'struct'
     return container_of0(d, struct lovsub_device, acid_cl.cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lovsub_dev':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:703:26: error: expected expression before 'struct'
     return container_of0(d, struct lovsub_device, acid_cl);
                             ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lov':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:719:28: error: expected expression before 'struct'
     return container_of0(obj, struct lov_object, lo_cl.co_lu);
                               ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lov':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:725:28: error: expected expression before 'struct'
     return container_of0(obj, struct lov_object, lo_cl);
                               ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'cl2lovsub':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:741:28: error: expected expression before 'struct'
     return container_of0(obj, struct lovsub_object, lso_cl);
                               ^
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h: In function 'lu2lovsub':
   drivers/staging/lustre/lustre/lov/lov_cl_internal.h:747:28: error: expected expression before 'struct'
     return container_of0(obj, struct lovsub_object, lso_cl.co_lu);
                               ^
--
>> drivers/staging/lustre/lustre/mdc/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/mdc/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/mdc/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/mdc/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/mdc/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/mdc/../include/lu_object.h:745:57: sparse: got lu_object
   In file included from drivers/staging/lustre/lustre/mdc/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/mdc/../include/obd_class.h:41,
                    from drivers/staging/lustre/lustre/mdc/mdc_request.c:46:
   drivers/staging/lustre/lustre/mdc/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/mdc/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/mdc/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/mdc/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/mdc/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   cc1: some warnings being treated as errors
--
>> drivers/staging/lustre/lustre/mgc/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/mgc/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/mgc/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/mgc/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/mgc/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/mgc/../include/lu_object.h:745:57: sparse: got lu_object
   In file included from drivers/staging/lustre/lustre/mgc/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/mgc/../include/obd_class.h:41,
                    from drivers/staging/lustre/lustre/mgc/mgc_request.c:45:
   drivers/staging/lustre/lustre/mgc/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/mgc/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/mgc/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/mgc/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/mgc/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   cc1: some warnings being treated as errors
--
>> drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:745:57: sparse: got lu_object
   In file included from drivers/staging/lustre/lustre/obdclass/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/obdclass/../include/obd_class.h:41,
                    from drivers/staging/lustre/lustre/obdclass/llog_obd.c:39:
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   cc1: some warnings being treated as errors
--
>> drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:745:57: sparse: got lu_object
>> drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2657:33: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2657:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2657:40: sparse: got cl_device
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2668:33: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2668:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2668:40: sparse: got cl_object
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2674:36: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2674:43: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2674:43: sparse: got cl_object_conf
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2685:47: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2685:54: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2685:54: sparse: got cl_device
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:33: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:40: sparse: got cl_object_header
   In file included from drivers/staging/lustre/lustre/obdclass/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/obdclass/../include/obd_class.h:41,
                    from drivers/staging/lustre/lustre/obdclass/class_obd.c:41:
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/obdclass/class_obd.c:47:0:
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^
   cc1: some warnings being treated as errors
--
>> drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:745:57: sparse: got lu_object
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:16: sparse: undefined identifier 'container_of0'
>> drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:50: sparse: undefined identifier 'struct'
>> drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:29: sparse: not a function <noident>
   In file included from drivers/staging/lustre/lustre/obdclass/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/obdclass/../include/obd_class.h:41,
                    from drivers/staging/lustre/lustre/obdclass/lu_object.c:53:
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:738:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   cc1: some warnings being treated as errors
--
>> drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:745:57: sparse: got lu_object
>> drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2657:33: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2657:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2657:40: sparse: got cl_device
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2668:33: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2668:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2668:40: sparse: got cl_object
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2674:36: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2674:43: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2674:43: sparse: got cl_object_conf
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2685:47: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2685:54: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2685:54: sparse: got cl_device
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:33: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:40: sparse: got cl_object_header
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2668:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:16: sparse: undefined identifier 'container_of0'
>> drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2668:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2668:33: sparse: undefined identifier 'struct'
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:33: sparse: undefined identifier 'struct'
>> drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:50: sparse: undefined identifier 'struct'
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2657:16: sparse: undefined identifier 'container_of0'
   In file included from drivers/staging/lustre/lustre/obdclass/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/obdclass/../include/obd_class.h:41,
                    from drivers/staging/lustre/lustre/obdclass/cl_object.c:56:
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/obdclass/cl_object.c:61:0:
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2669:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2691:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   In file included from drivers/staging/lustre/lustre/obdclass/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/obdclass/../include/obd_class.h:41,
                    from drivers/staging/lustre/lustre/obdclass/cl_object.c:56:
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:738:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   In file included from drivers/staging/lustre/lustre/obdclass/cl_object.c:61:0:
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2658:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   cc1: some warnings being treated as errors
--
>> drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:745:57: sparse: got lu_object
>> drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2657:33: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2657:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2657:40: sparse: got cl_device
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2668:33: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2668:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2668:40: sparse: got cl_object
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2674:36: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2674:43: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2674:43: sparse: got cl_object_conf
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2685:47: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2685:54: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2685:54: sparse: got cl_device
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:33: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:40: sparse: got cl_object_header
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:33: sparse: undefined identifier 'struct'
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:29: sparse: not a function <noident>
   In file included from drivers/staging/lustre/lustre/obdclass/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/obdclass/../include/obd_class.h:41,
                    from drivers/staging/lustre/lustre/obdclass/cl_page.c:44:
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/obdclass/cl_page.c:48:0:
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2691:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   cc1: some warnings being treated as errors
--
>> drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:745:57: sparse: got lu_object
>> drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2657:33: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2657:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2657:40: sparse: got cl_device
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2668:33: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2668:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2668:40: sparse: got cl_object
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2674:36: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2674:43: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2674:43: sparse: got cl_object_conf
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2685:47: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2685:54: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2685:54: sparse: got cl_device
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:33: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:40: sparse: got cl_object_header
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:33: sparse: undefined identifier 'struct'
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:29: sparse: not a function <noident>
   In file included from drivers/staging/lustre/lustre/obdclass/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/obdclass/../include/obd_class.h:41,
                    from drivers/staging/lustre/lustre/obdclass/cl_lock.c:43:
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/obdclass/cl_lock.c:47:0:
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2691:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   cc1: some warnings being treated as errors
--
>> drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:745:57: sparse: got lu_object
>> drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2657:33: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2657:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2657:40: sparse: got cl_device
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2668:33: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2668:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2668:40: sparse: got cl_object
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2674:36: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2674:43: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2674:43: sparse: got cl_object_conf
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2685:47: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2685:54: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2685:54: sparse: got cl_device
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:33: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:40: sparse: got cl_object_header
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2657:16: sparse: undefined identifier 'container_of0'
   In file included from drivers/staging/lustre/lustre/obdclass/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/obdclass/../include/obd_class.h:41,
                    from drivers/staging/lustre/lustre/obdclass/cl_io.c:43:
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/obdclass/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/obdclass/cl_io.c:47:0:
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/obdclass/../include/cl_object.h:2658:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   cc1: some warnings being treated as errors
--
>> drivers/staging/lustre/lustre/obdclass/linux/../../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/linux/../../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/linux/../../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/obdclass/linux/../../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/obdclass/linux/../../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdclass/linux/../../include/lu_object.h:745:57: sparse: got lu_object
   In file included from drivers/staging/lustre/lustre/obdclass/linux/../../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/obdclass/linux/../../include/obd_class.h:41,
                    from drivers/staging/lustre/lustre/obdclass/linux/linux-module.c:71:
   drivers/staging/lustre/lustre/obdclass/linux/../../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/obdclass/linux/../../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/obdclass/linux/../../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/obdclass/linux/../../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/obdclass/linux/../../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   cc1: some warnings being treated as errors
--
>> drivers/staging/lustre/lustre/obdecho/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/obdecho/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdecho/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/obdecho/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/obdecho/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdecho/../include/lu_object.h:745:57: sparse: got lu_object
>> drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2657:33: sparse: typename in expression
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2657:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2657:40: sparse: got cl_device
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2668:33: sparse: typename in expression
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2668:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2668:40: sparse: got cl_object
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2674:36: sparse: typename in expression
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2674:43: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2674:43: sparse: got cl_object_conf
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2685:47: sparse: typename in expression
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2685:54: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2685:54: sparse: got cl_device
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2690:33: sparse: typename in expression
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2690:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2690:40: sparse: got cl_object_header
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2690:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2657:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2668:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2674:16: sparse: undefined identifier 'container_of0'
>> drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2668:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2668:33: sparse: undefined identifier 'struct'
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2690:33: sparse: undefined identifier 'struct'
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2690:29: sparse: not a function <noident>
>> drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2668:29: sparse: not a function <noident>
>> drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2668:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2657:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2657:33: sparse: undefined identifier 'struct'
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2657:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2657:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2657:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2657:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2657:29: sparse: not a function <noident>
   In file included from drivers/staging/lustre/lustre/obdecho/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/obdecho/../include/lustre_lib.h:64,
                    from drivers/staging/lustre/lustre/obdecho/../include/obd.h:52,
                    from drivers/staging/lustre/lustre/obdecho/echo_client.c:40:
   drivers/staging/lustre/lustre/obdecho/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/obdecho/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/obdecho/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/obdecho/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/obdecho/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/obdecho/echo_client.c:45:0:
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2658:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2669:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2675:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/obdecho/../include/cl_object.h:2691:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   cc1: some warnings being treated as errors
--
>> drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:745:57: sparse: got lu_object
>> drivers/staging/lustre/lustre/osc/../include/cl_object.h:2657:33: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2657:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2657:40: sparse: got cl_device
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2668:33: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2668:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2668:40: sparse: got cl_object
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2674:36: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2674:43: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2674:43: sparse: got cl_object_conf
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2685:47: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2685:54: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2685:54: sparse: got cl_device
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:33: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:40: sparse: got cl_object_header
>> drivers/staging/lustre/lustre/osc/osc_internal.h:177:45: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_internal.h:177:52: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_internal.h:177:52: sparse: got osc_device
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:33: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:40: sparse: got osc_device
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:35: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:42: sparse: got osc_object
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:37: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:44: sparse: got osc_page
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:35: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:42: sparse: got osc_page
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:37: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:44: sparse: got osc_lock
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:16: sparse: undefined identifier 'container_of0'
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:33: sparse: undefined identifier 'struct'
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:37: sparse: undefined identifier 'struct'
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:37: sparse: undefined identifier 'struct'
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:16: sparse: undefined identifier 'container_of0'
>> drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:33: sparse: undefined identifier 'struct'
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:35: sparse: undefined identifier 'struct'
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:29: sparse: not a function <noident>
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:29: sparse: not a function <noident>
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:29: sparse: not a function <noident>
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:29: sparse: not a function <noident>
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:29: sparse: not a function <noident>
   In file included from drivers/staging/lustre/lustre/osc/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/osc/../include/lustre_lib.h:64,
                    from drivers/staging/lustre/lustre/osc/../include/obd.h:52,
                    from drivers/staging/lustre/lustre/osc/osc_cl_internal.h:51,
                    from drivers/staging/lustre/lustre/osc/osc_page.c:43:
   drivers/staging/lustre/lustre/osc/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/osc/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/osc/osc_cl_internal.h:53:0,
                    from drivers/staging/lustre/lustre/osc/osc_page.c:43:
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^
   In file included from drivers/staging/lustre/lustre/osc/osc_cl_internal.h:55:0,
                    from drivers/staging/lustre/lustre/osc/osc_page.c:43:
   drivers/staging/lustre/lustre/osc/osc_internal.h: In function 'obd2osc_dev':
   drivers/staging/lustre/lustre/osc/osc_internal.h:177:38: error: expected expression before 'struct'
     return container_of0(d->obd_lu_dev, struct osc_device, od_cl.cd_lu_dev);
                                         ^
   In file included from drivers/staging/lustre/lustre/osc/osc_page.c:43:0:
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'lu2osc_dev':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:26: error: expected expression before 'struct'
     return container_of0(d, struct osc_device, od_cl.cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'cl2osc':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:28: error: expected expression before 'struct'
     return container_of0(obj, struct osc_object, oo_cl);
                               ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'cl2osc_page':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:30: error: expected expression before 'struct'
     return container_of0(slice, struct osc_page, ops_cl);
                                 ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'oap2osc':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:28: error: expected expression before 'struct'
     return container_of0(oap, struct osc_page, ops_oap);
                               ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'cl2osc_lock':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:30: error: expected expression before 'struct'
     return container_of0(slice, struct osc_lock, ols_cl);
                                 ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'cl2osc_page':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:551:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'lu2osc_dev':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:502:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'cl2osc_lock':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:572:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   In file included from drivers/staging/lustre/lustre/osc/osc_cl_internal.h:53:0,
                    from drivers/staging/lustre/lustre/osc/osc_page.c:43:
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2691:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   In file included from drivers/staging/lustre/lustre/osc/osc_page.c:43:0:
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'cl2osc':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:518:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   cc1: some warnings being treated as errors
--
>> drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:745:57: sparse: got lu_object
>> drivers/staging/lustre/lustre/osc/../include/cl_object.h:2657:33: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2657:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2657:40: sparse: got cl_device
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2668:33: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2668:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2668:40: sparse: got cl_object
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2674:36: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2674:43: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2674:43: sparse: got cl_object_conf
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2685:47: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2685:54: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2685:54: sparse: got cl_device
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:33: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:40: sparse: got cl_object_header
>> drivers/staging/lustre/lustre/osc/osc_internal.h:177:45: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_internal.h:177:52: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_internal.h:177:52: sparse: got osc_device
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:33: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:40: sparse: got osc_device
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:35: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:42: sparse: got osc_object
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:37: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:44: sparse: got osc_page
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:35: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:42: sparse: got osc_page
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:37: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:44: sparse: got osc_lock
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:16: sparse: undefined identifier 'container_of0'
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:33: sparse: undefined identifier 'struct'
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:35: sparse: undefined identifier 'struct'
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:37: sparse: undefined identifier 'struct'
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:16: sparse: undefined identifier 'container_of0'
>> drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:33: sparse: undefined identifier 'struct'
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:29: sparse: not a function <noident>
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:29: sparse: not a function <noident>
>> drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:29: sparse: not a function <noident>
>> drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:29: sparse: not a function <noident>
   In file included from drivers/staging/lustre/lustre/osc/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/osc/../include/lustre_lib.h:64,
                    from drivers/staging/lustre/lustre/osc/../include/obd.h:52,
                    from drivers/staging/lustre/lustre/osc/osc_cl_internal.h:51,
                    from drivers/staging/lustre/lustre/osc/osc_lock.c:47:
   drivers/staging/lustre/lustre/osc/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/osc/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/osc/osc_cl_internal.h:53:0,
                    from drivers/staging/lustre/lustre/osc/osc_lock.c:47:
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^
   In file included from drivers/staging/lustre/lustre/osc/osc_cl_internal.h:55:0,
                    from drivers/staging/lustre/lustre/osc/osc_lock.c:47:
   drivers/staging/lustre/lustre/osc/osc_internal.h: In function 'obd2osc_dev':
   drivers/staging/lustre/lustre/osc/osc_internal.h:177:38: error: expected expression before 'struct'
     return container_of0(d->obd_lu_dev, struct osc_device, od_cl.cd_lu_dev);
                                         ^
   In file included from drivers/staging/lustre/lustre/osc/osc_lock.c:47:0:
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'lu2osc_dev':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:26: error: expected expression before 'struct'
     return container_of0(d, struct osc_device, od_cl.cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'cl2osc':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:28: error: expected expression before 'struct'
     return container_of0(obj, struct osc_object, oo_cl);
                               ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'cl2osc_page':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:30: error: expected expression before 'struct'
     return container_of0(slice, struct osc_page, ops_cl);
                                 ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'oap2osc':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:28: error: expected expression before 'struct'
     return container_of0(oap, struct osc_page, ops_oap);
                               ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'cl2osc_lock':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:30: error: expected expression before 'struct'
     return container_of0(slice, struct osc_lock, ols_cl);
                                 ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:572:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'cl2osc':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:518:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   In file included from drivers/staging/lustre/lustre/osc/osc_cl_internal.h:53:0,
                    from drivers/staging/lustre/lustre/osc/osc_lock.c:47:
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2691:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   In file included from drivers/staging/lustre/lustre/osc/osc_lock.c:47:0:
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'lu2osc_dev':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:502:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   cc1: some warnings being treated as errors
--
>> drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:745:57: sparse: got lu_object
>> drivers/staging/lustre/lustre/osc/../include/cl_object.h:2657:33: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2657:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2657:40: sparse: got cl_device
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2668:33: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2668:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2668:40: sparse: got cl_object
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2674:36: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2674:43: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2674:43: sparse: got cl_object_conf
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2685:47: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2685:54: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2685:54: sparse: got cl_device
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:33: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:40: sparse: got cl_object_header
>> drivers/staging/lustre/lustre/osc/osc_internal.h:177:45: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_internal.h:177:52: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_internal.h:177:52: sparse: got osc_device
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:33: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:40: sparse: got osc_device
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:35: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:42: sparse: got osc_object
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:37: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:44: sparse: got osc_page
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:35: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:42: sparse: got osc_page
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:37: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:44: sparse: got osc_lock
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:35: sparse: undefined identifier 'struct'
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:33: sparse: undefined identifier 'struct'
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:37: sparse: undefined identifier 'struct'
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:29: sparse: not a function <noident>
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:29: sparse: not a function <noident>
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:29: sparse: not a function <noident>
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:29: sparse: not a function <noident>
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:29: sparse: not a function <noident>
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:16: sparse: undefined identifier 'container_of0'
>> drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:33: sparse: undefined identifier 'struct'
>> drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:16: sparse: undefined identifier 'container_of0'
   In file included from drivers/staging/lustre/lustre/osc/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/osc/../include/lustre_lib.h:64,
                    from drivers/staging/lustre/lustre/osc/../include/obd.h:52,
                    from drivers/staging/lustre/lustre/osc/osc_cl_internal.h:51,
                    from drivers/staging/lustre/lustre/osc/osc_io.c:44:
   drivers/staging/lustre/lustre/osc/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/osc/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/osc/osc_cl_internal.h:53:0,
                    from drivers/staging/lustre/lustre/osc/osc_io.c:44:
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^
   In file included from drivers/staging/lustre/lustre/osc/osc_cl_internal.h:55:0,
                    from drivers/staging/lustre/lustre/osc/osc_io.c:44:
   drivers/staging/lustre/lustre/osc/osc_internal.h: In function 'obd2osc_dev':
   drivers/staging/lustre/lustre/osc/osc_internal.h:177:38: error: expected expression before 'struct'
     return container_of0(d->obd_lu_dev, struct osc_device, od_cl.cd_lu_dev);
                                         ^
   In file included from drivers/staging/lustre/lustre/osc/osc_io.c:44:0:
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'lu2osc_dev':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:26: error: expected expression before 'struct'
     return container_of0(d, struct osc_device, od_cl.cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'cl2osc':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:28: error: expected expression before 'struct'
     return container_of0(obj, struct osc_object, oo_cl);
                               ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'cl2osc_page':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:30: error: expected expression before 'struct'
     return container_of0(slice, struct osc_page, ops_cl);
                                 ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'oap2osc':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:28: error: expected expression before 'struct'
     return container_of0(oap, struct osc_page, ops_oap);
                               ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'cl2osc_lock':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:30: error: expected expression before 'struct'
     return container_of0(slice, struct osc_lock, ols_cl);
                                 ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'cl2osc':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:518:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'cl2osc_page':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:551:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'lu2osc_dev':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:502:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   In file included from drivers/staging/lustre/lustre/osc/osc_cl_internal.h:53:0,
                    from drivers/staging/lustre/lustre/osc/osc_io.c:44:
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2691:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   In file included from drivers/staging/lustre/lustre/osc/osc_io.c:44:0:
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'cl2osc_lock':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:572:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   cc1: some warnings being treated as errors
--
>> drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:745:57: sparse: got lu_object
>> drivers/staging/lustre/lustre/osc/../include/cl_object.h:2657:33: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2657:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2657:40: sparse: got cl_device
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2668:33: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2668:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2668:40: sparse: got cl_object
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2674:36: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2674:43: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2674:43: sparse: got cl_object_conf
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2685:47: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2685:54: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2685:54: sparse: got cl_device
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:33: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:40: sparse: got cl_object_header
>> drivers/staging/lustre/lustre/osc/osc_internal.h:177:45: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_internal.h:177:52: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_internal.h:177:52: sparse: got osc_device
   In file included from drivers/staging/lustre/lustre/osc/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/osc/../include/obd_class.h:41,
                    from drivers/staging/lustre/lustre/osc/osc_quota.c:31:
   drivers/staging/lustre/lustre/osc/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/osc/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/osc/osc_internal.h:104:0,
                    from drivers/staging/lustre/lustre/osc/osc_quota.c:32:
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^
   In file included from drivers/staging/lustre/lustre/osc/osc_quota.c:32:0:
   drivers/staging/lustre/lustre/osc/osc_internal.h: In function 'obd2osc_dev':
   drivers/staging/lustre/lustre/osc/osc_internal.h:177:38: error: expected expression before 'struct'
     return container_of0(d->obd_lu_dev, struct osc_device, od_cl.cd_lu_dev);
                                         ^
   cc1: some warnings being treated as errors
--
>> drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:745:57: sparse: got lu_object
>> drivers/staging/lustre/lustre/osc/../include/cl_object.h:2657:33: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2657:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2657:40: sparse: got cl_device
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2668:33: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2668:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2668:40: sparse: got cl_object
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2674:36: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2674:43: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2674:43: sparse: got cl_object_conf
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2685:47: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2685:54: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2685:54: sparse: got cl_device
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:33: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:40: sparse: got cl_object_header
>> drivers/staging/lustre/lustre/osc/osc_internal.h:177:45: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_internal.h:177:52: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_internal.h:177:52: sparse: got osc_device
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:33: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:40: sparse: got osc_device
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:35: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:42: sparse: got osc_object
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:37: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:44: sparse: got osc_page
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:35: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:42: sparse: got osc_page
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:37: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:44: sparse: got osc_lock
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:16: sparse: undefined identifier 'container_of0'
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:33: sparse: undefined identifier 'struct'
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:35: sparse: undefined identifier 'struct'
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:29: sparse: not a function <noident>
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:29: sparse: not a function <noident>
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:29: sparse: not a function <noident>
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:29: sparse: not a function <noident>
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:29: sparse: not a function <noident>
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:29: sparse: not a function <noident>
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:16: sparse: undefined identifier 'container_of0'
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:29: sparse: not a function <noident>
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:29: sparse: not a function <noident>
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:29: sparse: not a function <noident>
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:35: sparse: undefined identifier 'struct'
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:29: sparse: not a function <noident>
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:29: sparse: not a function <noident>
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:29: sparse: not a function <noident>
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:29: sparse: not a function <noident>
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:29: sparse: not a function <noident>
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:29: sparse: not a function <noident>
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:29: sparse: not a function <noident>
   In file included from drivers/staging/lustre/lustre/osc/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/osc/../include/lustre_lib.h:64,
                    from drivers/staging/lustre/lustre/osc/../include/obd.h:52,
                    from drivers/staging/lustre/lustre/osc/osc_cl_internal.h:51,
                    from drivers/staging/lustre/lustre/osc/osc_cache.c:44:
   drivers/staging/lustre/lustre/osc/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/osc/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/osc/osc_cl_internal.h:53:0,
                    from drivers/staging/lustre/lustre/osc/osc_cache.c:44:
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^
   In file included from drivers/staging/lustre/lustre/osc/osc_cl_internal.h:55:0,
                    from drivers/staging/lustre/lustre/osc/osc_cache.c:44:
   drivers/staging/lustre/lustre/osc/osc_internal.h: In function 'obd2osc_dev':
   drivers/staging/lustre/lustre/osc/osc_internal.h:177:38: error: expected expression before 'struct'
     return container_of0(d->obd_lu_dev, struct osc_device, od_cl.cd_lu_dev);
                                         ^
   In file included from drivers/staging/lustre/lustre/osc/osc_cache.c:44:0:
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'lu2osc_dev':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:26: error: expected expression before 'struct'
     return container_of0(d, struct osc_device, od_cl.cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'cl2osc':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:28: error: expected expression before 'struct'
     return container_of0(obj, struct osc_object, oo_cl);
                               ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'cl2osc_page':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:30: error: expected expression before 'struct'
     return container_of0(slice, struct osc_page, ops_cl);
                                 ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'oap2osc':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:28: error: expected expression before 'struct'
     return container_of0(oap, struct osc_page, ops_oap);
                               ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'cl2osc_lock':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:30: error: expected expression before 'struct'
     return container_of0(slice, struct osc_lock, ols_cl);
                                 ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'oap2osc':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:556:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'lu2osc_dev':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:502:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'cl2osc':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:518:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   cc1: some warnings being treated as errors
--
>> drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:745:57: sparse: got lu_object
>> drivers/staging/lustre/lustre/osc/../include/cl_object.h:2657:33: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2657:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2657:40: sparse: got cl_device
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2668:33: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2668:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2668:40: sparse: got cl_object
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2674:36: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2674:43: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2674:43: sparse: got cl_object_conf
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2685:47: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2685:54: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2685:54: sparse: got cl_device
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:33: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:40: sparse: got cl_object_header
>> drivers/staging/lustre/lustre/osc/osc_internal.h:177:45: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_internal.h:177:52: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_internal.h:177:52: sparse: got osc_device
   drivers/staging/lustre/lustre/osc/osc_internal.h:177:16: sparse: undefined identifier 'container_of0'
>> drivers/staging/lustre/lustre/osc/osc_internal.h:177:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_internal.h:177:45: sparse: undefined identifier 'struct'
>> drivers/staging/lustre/lustre/osc/osc_internal.h:177:29: sparse: not a function <noident>
>> drivers/staging/lustre/lustre/osc/osc_internal.h:177:29: sparse: not a function <noident>
>> drivers/staging/lustre/lustre/osc/osc_internal.h:177:29: sparse: not a function <noident>
>> drivers/staging/lustre/lustre/osc/osc_internal.h:177:29: sparse: not a function <noident>
   In file included from drivers/staging/lustre/lustre/osc/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/osc/../include/obd_class.h:41,
                    from drivers/staging/lustre/lustre/osc/lproc_osc.c:40:
   drivers/staging/lustre/lustre/osc/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/osc/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/osc/osc_internal.h:104:0,
                    from drivers/staging/lustre/lustre/osc/lproc_osc.c:43:
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^
   In file included from drivers/staging/lustre/lustre/osc/lproc_osc.c:43:0:
   drivers/staging/lustre/lustre/osc/osc_internal.h: In function 'obd2osc_dev':
   drivers/staging/lustre/lustre/osc/osc_internal.h:177:38: error: expected expression before 'struct'
     return container_of0(d->obd_lu_dev, struct osc_device, od_cl.cd_lu_dev);
                                         ^
   drivers/staging/lustre/lustre/osc/osc_internal.h:178:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   cc1: some warnings being treated as errors
--
>> drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:745:57: sparse: got lu_object
>> drivers/staging/lustre/lustre/osc/../include/cl_object.h:2657:33: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2657:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2657:40: sparse: got cl_device
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2668:33: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2668:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2668:40: sparse: got cl_object
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2674:36: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2674:43: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2674:43: sparse: got cl_object_conf
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2685:47: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2685:54: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2685:54: sparse: got cl_device
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:33: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:40: sparse: got cl_object_header
>> drivers/staging/lustre/lustre/osc/osc_internal.h:177:45: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_internal.h:177:52: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_internal.h:177:52: sparse: got osc_device
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:33: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:40: sparse: got osc_device
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:35: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:42: sparse: got osc_object
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:37: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:44: sparse: got osc_page
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:35: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:42: sparse: got osc_page
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:37: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:44: sparse: got osc_lock
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:16: sparse: undefined identifier 'container_of0'
   In file included from drivers/staging/lustre/lustre/osc/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/osc/../include/lustre_lib.h:64,
                    from drivers/staging/lustre/lustre/osc/../include/lustre_dlm.h:51,
                    from drivers/staging/lustre/lustre/osc/osc_request.c:41:
   drivers/staging/lustre/lustre/osc/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/osc/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/osc/osc_internal.h:104:0,
                    from drivers/staging/lustre/lustre/osc/osc_request.c:53:
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^
   In file included from drivers/staging/lustre/lustre/osc/osc_request.c:53:0:
   drivers/staging/lustre/lustre/osc/osc_internal.h: In function 'obd2osc_dev':
   drivers/staging/lustre/lustre/osc/osc_internal.h:177:38: error: expected expression before 'struct'
     return container_of0(d->obd_lu_dev, struct osc_device, od_cl.cd_lu_dev);
                                         ^
   In file included from drivers/staging/lustre/lustre/osc/osc_request.c:54:0:
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'lu2osc_dev':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:26: error: expected expression before 'struct'
     return container_of0(d, struct osc_device, od_cl.cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'cl2osc':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:28: error: expected expression before 'struct'
     return container_of0(obj, struct osc_object, oo_cl);
                               ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'cl2osc_page':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:30: error: expected expression before 'struct'
     return container_of0(slice, struct osc_page, ops_cl);
                                 ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'oap2osc':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:28: error: expected expression before 'struct'
     return container_of0(oap, struct osc_page, ops_oap);
                               ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'cl2osc_lock':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:30: error: expected expression before 'struct'
     return container_of0(slice, struct osc_lock, ols_cl);
                                 ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'oap2osc':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:556:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   cc1: some warnings being treated as errors
--
>> drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:745:57: sparse: got lu_object
>> drivers/staging/lustre/lustre/osc/../include/cl_object.h:2657:33: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2657:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2657:40: sparse: got cl_device
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2668:33: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2668:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2668:40: sparse: got cl_object
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2674:36: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2674:43: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2674:43: sparse: got cl_object_conf
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2685:47: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2685:54: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2685:54: sparse: got cl_device
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:33: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:40: sparse: got cl_object_header
>> drivers/staging/lustre/lustre/osc/osc_internal.h:177:45: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_internal.h:177:52: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_internal.h:177:52: sparse: got osc_device
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:33: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:40: sparse: got osc_device
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:35: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:42: sparse: got osc_object
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:37: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:44: sparse: got osc_page
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:35: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:42: sparse: got osc_page
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:37: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:44: sparse: got osc_lock
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2657:16: sparse: undefined identifier 'container_of0'
   In file included from drivers/staging/lustre/lustre/osc/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/osc/../include/obd_class.h:41,
                    from drivers/staging/lustre/lustre/osc/osc_dev.c:44:
   drivers/staging/lustre/lustre/osc/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/osc/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/osc/osc_cl_internal.h:53:0,
                    from drivers/staging/lustre/lustre/osc/osc_dev.c:46:
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^
   In file included from drivers/staging/lustre/lustre/osc/osc_cl_internal.h:55:0,
                    from drivers/staging/lustre/lustre/osc/osc_dev.c:46:
   drivers/staging/lustre/lustre/osc/osc_internal.h: In function 'obd2osc_dev':
   drivers/staging/lustre/lustre/osc/osc_internal.h:177:38: error: expected expression before 'struct'
     return container_of0(d->obd_lu_dev, struct osc_device, od_cl.cd_lu_dev);
                                         ^
   In file included from drivers/staging/lustre/lustre/osc/osc_dev.c:46:0:
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'lu2osc_dev':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:26: error: expected expression before 'struct'
     return container_of0(d, struct osc_device, od_cl.cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'cl2osc':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:28: error: expected expression before 'struct'
     return container_of0(obj, struct osc_object, oo_cl);
                               ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'cl2osc_page':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:30: error: expected expression before 'struct'
     return container_of0(slice, struct osc_page, ops_cl);
                                 ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'oap2osc':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:28: error: expected expression before 'struct'
     return container_of0(oap, struct osc_page, ops_oap);
                               ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'cl2osc_lock':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:30: error: expected expression before 'struct'
     return container_of0(slice, struct osc_lock, ols_cl);
                                 ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'lu2osc_dev':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:502:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   In file included from drivers/staging/lustre/lustre/osc/osc_cl_internal.h:53:0,
                    from drivers/staging/lustre/lustre/osc/osc_dev.c:46:
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2658:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   cc1: some warnings being treated as errors
--
>> drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:745:57: sparse: got lu_object
>> drivers/staging/lustre/lustre/osc/../include/cl_object.h:2657:33: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2657:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2657:40: sparse: got cl_device
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2668:33: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2668:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2668:40: sparse: got cl_object
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2674:36: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2674:43: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2674:43: sparse: got cl_object_conf
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2685:47: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2685:54: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2685:54: sparse: got cl_device
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:33: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:40: sparse: got cl_object_header
>> drivers/staging/lustre/lustre/osc/osc_internal.h:177:45: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_internal.h:177:52: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_internal.h:177:52: sparse: got osc_device
>> drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:33: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:40: sparse: got osc_device
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:35: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:42: sparse: got osc_object
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:37: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:44: sparse: got osc_page
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:35: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:42: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:42: sparse: got osc_page
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:37: sparse: typename in expression
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:44: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:44: sparse: got osc_lock
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2674:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2668:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:16: sparse: undefined identifier 'container_of0'
>> drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:33: sparse: undefined identifier 'struct'
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:16: sparse: undefined identifier 'container_of0'
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:35: sparse: undefined identifier 'struct'
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:29: sparse: not a function <noident>
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:16: sparse: undefined identifier 'container_of0'
   In file included from drivers/staging/lustre/lustre/osc/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/osc/../include/lustre_lib.h:64,
                    from drivers/staging/lustre/lustre/osc/../include/obd.h:52,
                    from drivers/staging/lustre/lustre/osc/osc_cl_internal.h:51,
                    from drivers/staging/lustre/lustre/osc/osc_object.c:43:
   drivers/staging/lustre/lustre/osc/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/osc/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/osc/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/osc/osc_cl_internal.h:53:0,
                    from drivers/staging/lustre/lustre/osc/osc_object.c:43:
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^
   In file included from drivers/staging/lustre/lustre/osc/osc_cl_internal.h:55:0,
                    from drivers/staging/lustre/lustre/osc/osc_object.c:43:
   drivers/staging/lustre/lustre/osc/osc_internal.h: In function 'obd2osc_dev':
   drivers/staging/lustre/lustre/osc/osc_internal.h:177:38: error: expected expression before 'struct'
     return container_of0(d->obd_lu_dev, struct osc_device, od_cl.cd_lu_dev);
                                         ^
   In file included from drivers/staging/lustre/lustre/osc/osc_object.c:43:0:
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'lu2osc_dev':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:501:26: error: expected expression before 'struct'
     return container_of0(d, struct osc_device, od_cl.cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'cl2osc':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:517:28: error: expected expression before 'struct'
     return container_of0(obj, struct osc_object, oo_cl);
                               ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'cl2osc_page':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:550:30: error: expected expression before 'struct'
     return container_of0(slice, struct osc_page, ops_cl);
                                 ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'oap2osc':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:555:28: error: expected expression before 'struct'
     return container_of0(oap, struct osc_page, ops_oap);
                               ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'cl2osc_lock':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:571:30: error: expected expression before 'struct'
     return container_of0(slice, struct osc_lock, ols_cl);
                                 ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'cl2osc':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:518:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h: In function 'lu2osc_dev':
   drivers/staging/lustre/lustre/osc/osc_cl_internal.h:502:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   In file included from drivers/staging/lustre/lustre/osc/osc_cl_internal.h:53:0,
                    from drivers/staging/lustre/lustre/osc/osc_object.c:43:
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2675:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2669:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   drivers/staging/lustre/lustre/osc/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/osc/../include/cl_object.h:2691:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   cc1: some warnings being treated as errors
--
>> drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/lu_object.h:745:57: sparse: got lu_object
   In file included from drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/lustre_lib.h:64,
                    from drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/lustre_dlm.h:51,
                    from drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/ldlm_resource.c:43:
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   cc1: some warnings being treated as errors
--
>> drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/lu_object.h:745:57: sparse: got lu_object
>> drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/cl_object.h:2657:33: sparse: typename in expression
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/cl_object.h:2657:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/cl_object.h:2657:40: sparse: got cl_device
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/cl_object.h:2668:33: sparse: typename in expression
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/cl_object.h:2668:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/cl_object.h:2668:40: sparse: got cl_object
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/cl_object.h:2674:36: sparse: typename in expression
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/cl_object.h:2674:43: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/cl_object.h:2674:43: sparse: got cl_object_conf
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/cl_object.h:2685:47: sparse: typename in expression
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/cl_object.h:2685:54: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/cl_object.h:2685:54: sparse: got cl_device
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/cl_object.h:2690:33: sparse: typename in expression
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/cl_object.h:2690:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/cl_object.h:2690:40: sparse: got cl_object_header
   In file included from drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/lustre_lib.h:64,
                    from drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/lustre_dlm.h:51,
                    from drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/ldlm_pool.c:101:
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/ldlm_pool.c:102:0:
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/ptlrpc/../../lustre/ldlm/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^
   cc1: some warnings being treated as errors
--
>> drivers/staging/lustre/lustre/ptlrpc/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/ptlrpc/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/ptlrpc/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/ptlrpc/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/ptlrpc/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/ptlrpc/../include/lu_object.h:745:57: sparse: got lu_object
   In file included from drivers/staging/lustre/lustre/ptlrpc/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/ptlrpc/../include/obd_class.h:41,
                    from drivers/staging/lustre/lustre/ptlrpc/client.c:42:
   drivers/staging/lustre/lustre/ptlrpc/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/ptlrpc/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/ptlrpc/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/ptlrpc/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/ptlrpc/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   cc1: some warnings being treated as errors
--
>> drivers/staging/lustre/lustre/ptlrpc/../include/lu_object.h:737:50: sparse: typename in expression
   drivers/staging/lustre/lustre/ptlrpc/../include/lu_object.h:737:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/ptlrpc/../include/lu_object.h:737:57: sparse: got lu_object
   drivers/staging/lustre/lustre/ptlrpc/../include/lu_object.h:745:50: sparse: typename in expression
   drivers/staging/lustre/lustre/ptlrpc/../include/lu_object.h:745:57: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/ptlrpc/../include/lu_object.h:745:57: sparse: got lu_object
>> drivers/staging/lustre/lustre/ptlrpc/../include/cl_object.h:2657:33: sparse: typename in expression
   drivers/staging/lustre/lustre/ptlrpc/../include/cl_object.h:2657:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/ptlrpc/../include/cl_object.h:2657:40: sparse: got cl_device
   drivers/staging/lustre/lustre/ptlrpc/../include/cl_object.h:2668:33: sparse: typename in expression
   drivers/staging/lustre/lustre/ptlrpc/../include/cl_object.h:2668:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/ptlrpc/../include/cl_object.h:2668:40: sparse: got cl_object
   drivers/staging/lustre/lustre/ptlrpc/../include/cl_object.h:2674:36: sparse: typename in expression
   drivers/staging/lustre/lustre/ptlrpc/../include/cl_object.h:2674:43: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/ptlrpc/../include/cl_object.h:2674:43: sparse: got cl_object_conf
   drivers/staging/lustre/lustre/ptlrpc/../include/cl_object.h:2685:47: sparse: typename in expression
   drivers/staging/lustre/lustre/ptlrpc/../include/cl_object.h:2685:54: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/ptlrpc/../include/cl_object.h:2685:54: sparse: got cl_device
   drivers/staging/lustre/lustre/ptlrpc/../include/cl_object.h:2690:33: sparse: typename in expression
   drivers/staging/lustre/lustre/ptlrpc/../include/cl_object.h:2690:40: sparse: Expected ) in function call
   drivers/staging/lustre/lustre/ptlrpc/../include/cl_object.h:2690:40: sparse: got cl_object_header
   In file included from drivers/staging/lustre/lustre/ptlrpc/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/ptlrpc/ptlrpcd.c:60:
   drivers/staging/lustre/lustre/ptlrpc/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/ptlrpc/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
   drivers/staging/lustre/lustre/ptlrpc/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/ptlrpc/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/ptlrpc/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/ptlrpc/ptlrpcd.c:65:0:
   drivers/staging/lustre/lustre/ptlrpc/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/ptlrpc/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/ptlrpc/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/ptlrpc/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/ptlrpc/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/ptlrpc/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/ptlrpc/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/ptlrpc/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/ptlrpc/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/ptlrpc/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^

cc1: some warnings being treated as errors

vim +737 drivers/staging/lustre/lustre/fid/../include/lu_object.h

d7e09d039 Peng Tao 2013-05-02  721  				       struct lu_device *dev,
d7e09d039 Peng Tao 2013-05-02  722  				       const struct lu_fid *f,
d7e09d039 Peng Tao 2013-05-02  723  				       const struct lu_object_conf *conf);
d7e09d039 Peng Tao 2013-05-02  724  /** @} caching */
d7e09d039 Peng Tao 2013-05-02  725  
d7e09d039 Peng Tao 2013-05-02  726  /** \name helpers
d7e09d039 Peng Tao 2013-05-02  727   * Helpers.
d7e09d039 Peng Tao 2013-05-02  728   * @{
d7e09d039 Peng Tao 2013-05-02  729   */
d7e09d039 Peng Tao 2013-05-02  730  
d7e09d039 Peng Tao 2013-05-02  731  /**
d7e09d039 Peng Tao 2013-05-02  732   * First (topmost) sub-object of given compound object
d7e09d039 Peng Tao 2013-05-02  733   */
d7e09d039 Peng Tao 2013-05-02  734  static inline struct lu_object *lu_object_top(struct lu_object_header *h)
d7e09d039 Peng Tao 2013-05-02  735  {
d7e09d039 Peng Tao 2013-05-02  736  	LASSERT(!list_empty(&h->loh_layers));
d7e09d039 Peng Tao 2013-05-02 @737  	return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
d7e09d039 Peng Tao 2013-05-02  738  }
d7e09d039 Peng Tao 2013-05-02  739  
d7e09d039 Peng Tao 2013-05-02  740  /**
d7e09d039 Peng Tao 2013-05-02  741   * Next sub-object in the layering
d7e09d039 Peng Tao 2013-05-02  742   */
d7e09d039 Peng Tao 2013-05-02  743  static inline struct lu_object *lu_object_next(const struct lu_object *o)
d7e09d039 Peng Tao 2013-05-02  744  {
d7e09d039 Peng Tao 2013-05-02  745  	return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);

:::::: The code at line 737 was first introduced by commit
:::::: d7e09d0397e84eefbabfd9cb353221f3c6448d83 staging: add Lustre file system client support

:::::: TO: Peng Tao <[email protected]>
:::::: CC: Greg Kroah-Hartman <[email protected]>

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

#11 lore raw

[lustre-devel] [PATCH 7/7] staging: lustre: remove container_of0 and __container_of

In reply to Aya Mahfouz
reproduce:

Hi Aya,

[auto build test ERROR on staging/staging-next -- if it's inappropriate base, please suggest rules for selecting the more suitable base]

url:    https://github.com/0day-ci/linux/commits/Aya-Mahfouz/staging-lustre-remove-uses-and-definition-of-container_of0/20151014-062751
config: x86_64-randconfig-s2-10250612 (attached as .config)
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All errors (new ones prefixed by >>):

In file included from drivers/staging/lustre/lustre/fid/../include/lustre_net.h:65:0,
from drivers/staging/lustre/lustre/fid/../include/lustre_lib.h:64, from drivers/staging/lustre/lustre/fid/../include/obd.h:52, from drivers/staging/lustre/lustre/fid/fid_request.c:48:
drivers/staging/lustre/lustre/fid/../include/lu_object.h: In function 'lu_object_top':

>> drivers/staging/lustre/lustre/fid/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
>> drivers/staging/lustre/lustre/fid/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/fid/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/fid/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^

cc1: some warnings being treated as errors
--
In file included from drivers/staging/lustre/lustre/fld/../include/lustre_net.h:65:0,
from drivers/staging/lustre/lustre/fld/../include/lustre_lib.h:64, from drivers/staging/lustre/lustre/fld/../include/obd.h:52, from drivers/staging/lustre/lustre/fld/fld_request.c:49:
drivers/staging/lustre/lustre/fld/../include/lu_object.h: In function 'lu_object_top':

>> drivers/staging/lustre/lustre/fld/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
>> drivers/staging/lustre/lustre/fld/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/fld/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/fld/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^

cc1: some warnings being treated as errors
--
In file included from drivers/staging/lustre/lustre/llite/../include/linux/../lustre_net.h:65:0,
from drivers/staging/lustre/lustre/llite/../include/linux/../obd_class.h:41, from drivers/staging/lustre/lustre/llite/../include/linux/lustre_lite.h:47, from drivers/staging/lustre/lustre/llite/../include/lustre_lite.h:45, from drivers/staging/lustre/lustre/llite/dcache.c:44:
drivers/staging/lustre/lustre/llite/../include/linux/../lu_object.h: In function 'lu_object_top':

>> drivers/staging/lustre/lustre/llite/../include/linux/../lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
>> drivers/staging/lustre/lustre/llite/../include/linux/../lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/llite/../include/linux/../lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/llite/../include/linux/../lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/llite/llite_internal.h:45:0,
                    from drivers/staging/lustre/lustre/llite/dcache.c:48:
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'lu2cl_dev':
>> drivers/staging/lustre/lustre/llite/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^

cc1: some warnings being treated as errors
--
In file included from drivers/staging/lustre/lustre/llite/../include/lustre_net.h:65:0,
from drivers/staging/lustre/lustre/llite/../include/obd_class.h:41, from drivers/staging/lustre/lustre/llite/dir.c:52:
drivers/staging/lustre/lustre/llite/../include/lu_object.h: In function 'lu_object_top':

>> drivers/staging/lustre/lustre/llite/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
>> drivers/staging/lustre/lustre/llite/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/llite/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/llite/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/llite/llite_internal.h:45:0,
                    from drivers/staging/lustre/lustre/llite/dir.c:58:
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'lu2cl_dev':
>> drivers/staging/lustre/lustre/llite/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^

cc1: some warnings being treated as errors
--
In file included from drivers/staging/lustre/lustre/llite/../include/linux/../lustre_net.h:65:0,
from drivers/staging/lustre/lustre/llite/../include/linux/../obd_class.h:41, from drivers/staging/lustre/lustre/llite/../include/linux/lustre_lite.h:47, from drivers/staging/lustre/lustre/llite/../include/lustre_lite.h:45, from drivers/staging/lustre/lustre/llite/llite_nfs.c:45:
drivers/staging/lustre/lustre/llite/../include/linux/../lu_object.h: In function 'lu_object_top':

>> drivers/staging/lustre/lustre/llite/../include/linux/../lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
>> drivers/staging/lustre/lustre/llite/../include/linux/../lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/llite/../include/linux/../lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/llite/../include/linux/../lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/llite/llite_internal.h:45:0,
                    from drivers/staging/lustre/lustre/llite/llite_nfs.c:46:
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'lu2cl_dev':
>> drivers/staging/lustre/lustre/llite/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^
   In file included from include/linux/list.h:8:0,
                    from include/linux/wait.h:6,
                    from include/linux/fs.h:5,
                    from drivers/staging/lustre/lustre/llite/../include/linux/lustre_lite.h:44,
                    from drivers/staging/lustre/lustre/llite/../include/lustre_lite.h:45,
                    from drivers/staging/lustre/lustre/llite/llite_nfs.c:45:
   drivers/staging/lustre/lustre/llite/llite_nfs.c: In function 'll_nfs_get_name_filldir':
   include/linux/kernel.h:811:48: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types]
     const typeof( ((type *)0)->member ) *__mptr = (ptr); \
                                                   ^
   drivers/staging/lustre/lustre/llite/llite_nfs.c:213:26: note: in expansion of macro 'container_of'
     struct lu_dirent *lde = container_of(name, struct lu_dirent, lde_name);
                             ^
   include/linux/kernel.h:811:48: note: (near initialization for 'lde')
     const typeof( ((type *)0)->member ) *__mptr = (ptr); \
                                                   ^
   drivers/staging/lustre/lustre/llite/llite_nfs.c:213:26: note: in expansion of macro 'container_of'
     struct lu_dirent *lde = container_of(name, struct lu_dirent, lde_name);
                             ^

cc1: some warnings being treated as errors
--
In file included from drivers/staging/lustre/lustre/llite/../lclient/../include/lustre_net.h:65:0,
from drivers/staging/lustre/lustre/llite/../lclient/../include/obd_class.h:41, from drivers/staging/lustre/lustre/llite/../lclient/glimpse.c:44:
drivers/staging/lustre/lustre/llite/../lclient/../include/lu_object.h: In function 'lu_object_top':

>> drivers/staging/lustre/lustre/llite/../lclient/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
>> drivers/staging/lustre/lustre/llite/../lclient/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/llite/../lclient/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/llite/../lclient/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/llite/../lclient/glimpse.c:54:0:
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h: In function 'lu2cl_dev':
>> drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^

cc1: some warnings being treated as errors
--
In file included from drivers/staging/lustre/lustre/llite/../lclient/../include/lustre_net.h:65:0,
from drivers/staging/lustre/lustre/llite/../lclient/../include/lustre_lib.h:64, from drivers/staging/lustre/lustre/llite/../lclient/../include/obd.h:52, from drivers/staging/lustre/lustre/llite/../lclient/lcommon_cl.c:53:
drivers/staging/lustre/lustre/llite/../lclient/../include/lu_object.h: In function 'lu_object_top':

>> drivers/staging/lustre/lustre/llite/../lclient/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
>> drivers/staging/lustre/lustre/llite/../lclient/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/llite/../lclient/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/llite/../lclient/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/llite/../lclient/lcommon_cl.c:60:0:
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h: In function 'lu2cl_dev':
>> drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h: In function 'lu2cl_dev':
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2658:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2691:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/llite/../lclient/../include/cl_object.h:2675:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^

cc1: some warnings being treated as errors
--
In file included from drivers/staging/lustre/lustre/llite/../include/lustre_net.h:65:0,
from drivers/staging/lustre/lustre/llite/../include/lustre_lib.h:64, from drivers/staging/lustre/lustre/llite/../include/obd.h:52, from drivers/staging/lustre/lustre/llite/vvp_dev.c:43:
drivers/staging/lustre/lustre/llite/../include/lu_object.h: In function 'lu_object_top':

>> drivers/staging/lustre/lustre/llite/../include/lu_object.h:737:9: error: implicit declaration of function 'container_of0' [-Werror=implicit-function-declaration]
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
            ^
>> drivers/staging/lustre/lustre/llite/../include/lu_object.h:737:43: error: expected expression before 'struct'
     return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
                                              ^
   drivers/staging/lustre/lustre/llite/../include/lu_object.h: In function 'lu_object_next':
   drivers/staging/lustre/lustre/llite/../include/lu_object.h:745:43: error: expected expression before 'struct'
     return container_of0(o->lo_linkage.next, struct lu_object, lo_linkage);
                                              ^
   In file included from drivers/staging/lustre/lustre/llite/llite_internal.h:45:0,
                    from drivers/staging/lustre/lustre/llite/vvp_dev.c:45:
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'lu2cl_dev':
>> drivers/staging/lustre/lustre/llite/../include/cl_object.h:2657:26: error: expected expression before 'struct'
     return container_of0(d, struct cl_device, cd_lu_dev);
                             ^
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2668:26: error: expected expression before 'struct'
     return container_of0(o, struct cl_object, co_lu);
                             ^
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'lu2cl_conf':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2674:29: error: expected expression before 'struct'
     return container_of0(conf, struct cl_object_conf, coc_lu);
                                ^
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'cl_object_device':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2685:40: error: expected expression before 'struct'
     return container_of0(o->co_lu.lo_dev, struct cl_device, cd_lu_dev);
                                           ^
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2690:26: error: expected expression before 'struct'
     return container_of0(h, struct cl_object_header, coh_lu);
                             ^
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'lu2cl':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2669:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   In file included from drivers/staging/lustre/lustre/llite/../include/lustre_net.h:65:0,
                    from drivers/staging/lustre/lustre/llite/../include/lustre_lib.h:64,
                    from drivers/staging/lustre/lustre/llite/../include/obd.h:52,
                    from drivers/staging/lustre/lustre/llite/vvp_dev.c:43:
   drivers/staging/lustre/lustre/llite/../include/lu_object.h: In function 'lu_object_top':
   drivers/staging/lustre/lustre/llite/../include/lu_object.h:738:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^
   In file included from drivers/staging/lustre/lustre/llite/llite_internal.h:45:0,
                    from drivers/staging/lustre/lustre/llite/vvp_dev.c:45:
   drivers/staging/lustre/lustre/llite/../include/cl_object.h: In function 'luh2coh':
   drivers/staging/lustre/lustre/llite/../include/cl_object.h:2691:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^

cc1: some warnings being treated as errors
..

vim +/container_of0 +737 drivers/staging/lustre/lustre/fid/../include/lu_object.h

d7e09d039 Peng Tao 2013-05-02  731  /**
d7e09d039 Peng Tao 2013-05-02  732   * First (topmost) sub-object of given compound object
d7e09d039 Peng Tao 2013-05-02  733   */
d7e09d039 Peng Tao 2013-05-02  734  static inline struct lu_object *lu_object_top(struct lu_object_header *h)
d7e09d039 Peng Tao 2013-05-02  735  {
d7e09d039 Peng Tao 2013-05-02  736  	LASSERT(!list_empty(&h->loh_layers));
d7e09d039 Peng Tao 2013-05-02 @737  	return container_of0(h->loh_layers.next, struct lu_object, lo_linkage);
d7e09d039 Peng Tao 2013-05-02  738  }
d7e09d039 Peng Tao 2013-05-02  739  
d7e09d039 Peng Tao 2013-05-02  740  /**

:::::: The code at line 737 was first introduced by commit
:::::: d7e09d0397e84eefbabfd9cb353221f3c6448d83 staging: add Lustre file system client support

:::::: TO: Peng Tao <[email protected]>
:::::: CC: Greg Kroah-Hartman <[email protected]>

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/octet-stream
Size: 26634 bytes
Desc: not available
URL: <http://lists.lustre.org/pipermail/lustre-devel-lustre.org/attachments/20151025/fd9127a4/attachment-0001.obj>

#12 lore raw

cover staging: lustre: remove uses and definition of container_of0

In reply to Aya Mahfouz
Quoted 5 lines · Aya Mahfouz

container_of0 can be replaced by the Linux kernel macro container_of. The only difference is that container_of0 tries to evade type casting when the pointer is erroneous or null. All uses of container_of0 have been replaced by container_of and then the macro was removed in the last patch.

Thank you for your patch. However, it should be noted that this blanket replacement of container_of0() isn't necessarily safe. If the caller isn't explicitly checking for IS_ERR(ptr) or ptr == NULL then the container_of() macro can transform the err/NULL pointer into another pointer that is NOT err/NULL and cause the kernel to oops when the bad pointer is used, even if there are later IS_ERR() or NULL checks.

I'm not against removing container_of0() completely, but not without a clear review of the callers to determine whether err/NULL pointers are not actually possible in this callpath, or explicit checks in the callers for err/NULL pointers before container_of() is used. Did you do that?

Cheers, Andreas

Quoted 9 lines

Aya Mahfouz (7):
staging: lustre: lcommon_cl.c: replace container_of0 by container_of
staging: lustre: llite_nfs.c: replace container_of0 by container_of
staging: lustre: lu_object.c: replace container_of0 by container_of
staging: lustre: echo_client.c: replace container_of0 by container_of
staging: lustre: osc_io.c: replace container_of0 by container_of
staging: lustre: osc_object.c: replace container_of0 by container_of
staging: lustre: remove container_of0 and __container_of

Quoted 17 lines
drivers/staging/lustre/include/linux/libcfs/libcfs.h | 11 -----------
drivers/staging/lustre/lustre/lclient/lcommon_cl.c   | 10 +++++-----
drivers/staging/lustre/lustre/llite/llite_nfs.c      |  2 +-
drivers/staging/lustre/lustre/obdclass/lu_object.c   |  6 +++---
drivers/staging/lustre/lustre/obdecho/echo_client.c  |  2 +-
drivers/staging/lustre/lustre/osc/osc_io.c           |  4 ++--
drivers/staging/lustre/lustre/osc/osc_object.c       |  2 +-
7 files changed, 13 insertions(+), 24 deletions(-)
Signature · 6 lines
2.4.2


-- 
Kind Regards,
Aya Saif El-yazal Mahfouz

Cheers, Andreas

Signature · 4 lines
Andreas Dilger

Lustre Software Architect
Intel High Performance Data Division