mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* Re: [PATCH] gfs2: add missing __rcu annotation to i_gl in incore.h
@ 2026-07-24 16:50 Adrian Garcia Casado
  0 siblings, 0 replies; 11+ messages in thread
From: Adrian Garcia Casado @ 2026-07-24 16:50 UTC (permalink / raw)
  To: Andreas Gruenbacher; +Cc: gfs2, linux-kernel

Hi Andreas,

I am terribly sorry for the confusion and the noise in my previous email. 
I completely misread your message and drafted a rushed reply by mistake. 
Please disregard my previous "Thanks for applying" message.

You are absolutely right. Adding the __rcu annotation only exposes the 
200 sparse warnings without fixing the actual underlying RCU dereferences, 
which is indeed not very useful for upstream yet.

I will go back and work on a proper patch series to cleanly address those 
underlying RCU dereference warnings in fs/gfs2/ before submitting again.

My sincere apologies for the noise, and thank you for your patience and 
valuable feedback.

Best regards,
Adrian


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

* Re: [PATCH] gfs2: add missing __rcu annotation to i_gl in incore.h
  2026-06-18 13:56 Adrian
@ 2026-08-04 19:53 ` kernel test robot
  0 siblings, 0 replies; 11+ messages in thread
From: kernel test robot @ 2026-08-04 19:53 UTC (permalink / raw)
  To: Adrian, gfs2; +Cc: oe-kbuild-all, linux-kernel

Hi Adrian,

kernel test robot noticed the following build warnings:

[auto build test WARNING on gfs2/for-next]
[also build test WARNING on linus/master v7.2-rc6 next-20260804]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Adrian/gfs2-add-missing-__rcu-annotation-to-i_gl-in-incore-h/20260804-040145
base:   https://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git for-next
patch link:    https://lore.kernel.org/r/6a344397.561280e1.325e99.aabf%40mx.google.com
patch subject: [PATCH] gfs2: add missing __rcu annotation to i_gl in incore.h
config: nios2-randconfig-r132-20260804 (https://download.01.org/0day-ci/archive/20260805/202608050308.IDO5tJxh-lkp@intel.com/config)
compiler: nios2-linux-gcc (GCC) 11.5.0
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260805/202608050308.IDO5tJxh-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202608050308.IDO5tJxh-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
>> fs/gfs2/export.c:112:39: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/export.c:112:39: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/export.c:112:39: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
--
>> fs/gfs2/acl.c:70:43: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/acl.c:70:43: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/acl.c:70:43: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/acl.c:71:48: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/acl.c:71:48: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/acl.c:71:48: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/acl.c:122:43: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/acl.c:122:43: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/acl.c:122:43: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/acl.c:123:44: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/acl.c:123:44: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/acl.c:123:44: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
--
>> fs/gfs2/dentry.c:60:51: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/dentry.c:60:51: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/dentry.c:60:51: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/dentry.c:62:47: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/dentry.c:62:47: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/dentry.c:62:47: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
--
>> fs/gfs2/util.c:61:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/util.c:61:38: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/util.c:61:38: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/util.c:345:33: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/util.c:345:33: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/util.c:345:33: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
--
>> fs/gfs2/recovery.c:36:35: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/recovery.c:36:35: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/recovery.c:36:35: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
>> fs/gfs2/recovery.c:348:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/recovery.c:348:31: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/recovery.c:348:31: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/recovery.c:443:46: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/recovery.c:443:46: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/recovery.c:443:46: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
--
>> fs/gfs2/meta_io.c:416:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/meta_io.c:416:36: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/meta_io.c:416:36: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
>> fs/gfs2/meta_io.c:451:35: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/meta_io.c:451:35: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/meta_io.c:451:35: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
--
>> fs/gfs2/aops.c:114:43: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/aops.c:114:43: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/aops.c:114:43: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/aops.c:371:39: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/aops.c:371:39: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/aops.c:371:39: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/aops.c:569:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/aops.c:569:38: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/aops.c:569:38: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
>> fs/gfs2/aops.c:135:13: sparse: sparse: dereference of noderef expression
--
>> fs/gfs2/glops.c:606:37: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct gfs2_glock *j_gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/glops.c:606:37: sparse:     expected struct gfs2_glock *j_gl
   fs/gfs2/glops.c:606:37: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
--
>> fs/gfs2/xattr.c:135:34: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/xattr.c:135:34: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/xattr.c:135:34: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/xattr.c:159:42: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/xattr.c:159:42: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/xattr.c:159:42: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/xattr.c:282:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/xattr.c:282:31: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/xattr.c:282:31: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/xattr.c:429:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/xattr.c:429:38: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/xattr.c:429:38: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/xattr.c:475:42: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/xattr.c:475:42: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/xattr.c:475:42: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/xattr.c:508:47: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/xattr.c:508:47: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/xattr.c:508:47: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/xattr.c:617:43: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/xattr.c:617:43: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/xattr.c:617:43: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/xattr.c:618:44: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/xattr.c:618:44: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/xattr.c:618:44: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/xattr.c:650:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/xattr.c:650:32: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/xattr.c:650:32: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/xattr.c:651:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/xattr.c:651:31: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/xattr.c:651:31: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/xattr.c:712:46: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/xattr.c:712:46: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/xattr.c:712:46: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/xattr.c:713:47: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/xattr.c:713:47: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/xattr.c:713:47: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/xattr.c:848:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/xattr.c:848:31: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/xattr.c:848:31: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/xattr.c:885:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/xattr.c:885:31: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/xattr.c:885:31: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/xattr.c:909:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/xattr.c:909:31: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/xattr.c:909:31: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/xattr.c:983:42: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/xattr.c:983:42: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/xattr.c:983:42: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/xattr.c:1005:39: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/xattr.c:1005:39: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/xattr.c:1005:39: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/xattr.c:1013:41: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/xattr.c:1013:41: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/xattr.c:1013:41: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/xattr.c:1014:39: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/xattr.c:1014:39: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/xattr.c:1014:39: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/xattr.c:1099:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/xattr.c:1099:31: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/xattr.c:1099:31: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/xattr.c:1247:43: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/xattr.c:1247:43: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/xattr.c:1247:43: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/xattr.c:1248:44: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/xattr.c:1248:44: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/xattr.c:1248:44: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/xattr.c:1286:34: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/xattr.c:1286:34: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/xattr.c:1286:34: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/xattr.c:1336:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/xattr.c:1336:31: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/xattr.c:1336:31: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/xattr.c:1370:39: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/xattr.c:1370:39: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/xattr.c:1370:39: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/xattr.c:1422:47: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/xattr.c:1422:47: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/xattr.c:1422:47: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
>> fs/gfs2/xattr.c:1252:21: sparse: sparse: dereference of noderef expression
--
>> fs/gfs2/dir.c:95:30: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/dir.c:95:30: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/dir.c:95:30: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/dir.c:96:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/dir.c:96:31: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/dir.c:96:31: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/dir.c:109:34: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/dir.c:109:34: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/dir.c:109:34: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/dir.c:130:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/dir.c:130:31: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/dir.c:130:31: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/dir.c:211:39: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/dir.c:211:39: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/dir.c:211:39: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/dir.c:233:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/dir.c:233:31: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/dir.c:233:31: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/dir.c:302:45: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/dir.c:302:45: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/dir.c:302:45: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/dir.c:304:50: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/dir.c:304:50: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/dir.c:304:50: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/dir.c:682:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/dir.c:682:32: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/dir.c:682:32: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/dir.c:721:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/dir.c:721:31: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/dir.c:721:31: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/dir.c:764:35: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/dir.c:764:35: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/dir.c:764:35: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/dir.c:878:30: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/dir.c:878:30: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/dir.c:878:30: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/dir.c:883:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/dir.c:883:31: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/dir.c:883:31: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/dir.c:971:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/dir.c:971:32: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/dir.c:971:32: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/dir.c:1028:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/dir.c:1028:32: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/dir.c:1028:32: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/dir.c:1121:40: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/dir.c:1121:40: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/dir.c:1121:40: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
>> fs/gfs2/dir.c:1484:35: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/dir.c:1484:35: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/dir.c:1484:35: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/dir.c:1748:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/dir.c:1748:31: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/dir.c:1748:31: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/dir.c:1763:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/dir.c:1763:31: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/dir.c:1763:31: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/dir.c:1949:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/dir.c:1949:32: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/dir.c:1949:32: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/dir.c:2069:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/dir.c:2069:32: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/dir.c:2069:32: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
--
>> fs/gfs2/lops.c:780:35: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/lops.c:780:35: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/lops.c:780:35: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
>> fs/gfs2/lops.c:835:39: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/lops.c:835:39: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/lops.c:835:39: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/lops.c:841:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/lops.c:841:31: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/lops.c:841:31: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/lops.c:1004:35: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/lops.c:1004:35: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/lops.c:1004:35: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/lops.c:1055:39: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/lops.c:1055:39: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/lops.c:1055:39: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/lops.c:1062:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/lops.c:1062:31: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/lops.c:1062:31: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
--
>> fs/gfs2/bmap.c:1834:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/bmap.c:1834:36: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/bmap.c:1834:36: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/bmap.c:1954:60: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/bmap.c:1954:60: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/bmap.c:1954:60: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/bmap.c:1989:39: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/bmap.c:1989:39: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/bmap.c:1989:39: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/bmap.c:81:39: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/bmap.c:81:39: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/bmap.c:81:39: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/bmap.c:127:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/bmap.c:127:31: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/bmap.c:127:31: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/bmap.c:681:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/bmap.c:681:31: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/bmap.c:681:31: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/bmap.c:725:58: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/bmap.c:725:58: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/bmap.c:725:58: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/bmap.c:751:55: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/bmap.c:751:55: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/bmap.c:751:55: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/bmap.c:753:58: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/bmap.c:753:58: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/bmap.c:753:58: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/bmap.c:763:47: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/bmap.c:763:47: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/bmap.c:763:47: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/bmap.c:996:43: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/bmap.c:996:43: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/bmap.c:996:43: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
>> fs/gfs2/bmap.c:1199:31: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected unsigned long volatile *addr @@     got unsigned long [noderef] __rcu * @@
   fs/gfs2/bmap.c:1199:31: sparse:     expected unsigned long volatile *addr
   fs/gfs2/bmap.c:1199:31: sparse:     got unsigned long [noderef] __rcu *
   fs/gfs2/bmap.c:1416:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/bmap.c:1416:31: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/bmap.c:1416:31: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/bmap.c:1588:39: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/bmap.c:1588:39: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/bmap.c:1588:39: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/bmap.c:1622:47: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/bmap.c:1622:47: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/bmap.c:1622:47: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/bmap.c:2034:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/bmap.c:2034:31: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/bmap.c:2034:31: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/bmap.c:2139:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/bmap.c:2139:31: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/bmap.c:2139:31: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/bmap.c:2390:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/bmap.c:2390:31: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/bmap.c:2390:31: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/bmap.c:1708:42: sparse: sparse: unsigned value that used to be signed checked against zero?
   fs/gfs2/bmap.c:2006:16: sparse: signed value source
--
>> fs/gfs2/rgrp.c:1037:35: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/rgrp.c:1037:35: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/rgrp.c:1037:35: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
>> fs/gfs2/rgrp.c:2456:47: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/rgrp.c:2456:47: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/rgrp.c:2456:47: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
--
>> fs/gfs2/super.c:136:37: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct gfs2_glock *j_gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/super.c:136:37: sparse:     expected struct gfs2_glock *j_gl
   fs/gfs2/super.c:136:37: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
>> fs/gfs2/super.c:186:40: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/super.c:186:40: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/super.c:186:40: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/super.c:225:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/super.c:225:33: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/super.c:225:33: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/super.c:252:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/super.c:252:33: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/super.c:252:33: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/super.c:253:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/super.c:253:33: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/super.c:253:33: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/super.c:276:40: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/super.c:276:40: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/super.c:276:40: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/super.c:345:46: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/super.c:345:46: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/super.c:345:46: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/super.c:443:65: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/super.c:443:65: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/super.c:443:65: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/super.c:449:50: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/super.c:449:50: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/super.c:449:50: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/super.c:498:43: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/super.c:498:43: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/super.c:498:43: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/super.c:499:44: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/super.c:499:44: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/super.c:499:44: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/super.c:502:49: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/super.c:502:49: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/super.c:502:49: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/super.c:520:39: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/super.c:520:39: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/super.c:520:39: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/super.c:1212:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/super.c:1212:9: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/super.c:1212:9: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/super.c:1212:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/super.c:1212:9: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/super.c:1212:9: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/super.c:1212:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/super.c:1212:9: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/super.c:1212:9: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/super.c:1218:42: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/super.c:1218:42: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/super.c:1218:42: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/super.c:1258:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/super.c:1258:36: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/super.c:1258:36: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/super.c:1262:42: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/super.c:1262:42: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/super.c:1262:42: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
>> fs/gfs2/super.c:1292:35: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/super.c:1292:35: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/super.c:1292:35: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/super.c:1394:35: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/super.c:1394:35: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/super.c:1394:35: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/super.c:1509:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/super.c:1509:38: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/super.c:1509:38: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/super.c:1511:45: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/super.c:1511:45: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/super.c:1511:45: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
>> fs/gfs2/super.c:506:20: sparse: sparse: dereference of noderef expression
--
>> fs/gfs2/inode.c:150:41: sparse: sparse: incorrect type in argument 5 (different address spaces) @@     expected struct gfs2_glock **glp @@     got struct gfs2_glock [noderef] __rcu ** @@
   fs/gfs2/inode.c:150:41: sparse:     expected struct gfs2_glock **glp
   fs/gfs2/inode.c:150:41: sparse:     got struct gfs2_glock [noderef] __rcu **
>> fs/gfs2/inode.c:181:54: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:181:54: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:181:54: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/inode.c:188:58: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:188:58: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:188:58: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
>> fs/gfs2/inode.c:199:52: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected unsigned long volatile *addr @@     got unsigned long [noderef] __rcu * @@
   fs/gfs2/inode.c:199:52: sparse:     expected unsigned long volatile *addr
   fs/gfs2/inode.c:199:52: sparse:     got unsigned long [noderef] __rcu *
   fs/gfs2/inode.c:206:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:206:36: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:206:36: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/inode.c:212:54: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:212:54: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:212:54: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/inode.c:244:34: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:244:34: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:244:34: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/inode.c:342:43: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:342:43: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:342:43: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/inode.c:343:47: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:343:47: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:343:47: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
>> fs/gfs2/inode.c:459:35: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:459:35: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:459:35: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/inode.c:553:30: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:553:30: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:553:30: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/inode.c:554:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:554:31: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:554:31: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/inode.c:580:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:580:32: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:580:32: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/inode.c:581:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:581:31: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:581:31: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/inode.c:729:39: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:729:39: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:729:39: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/inode.c:835:80: sparse: sparse: incorrect type in argument 5 (different address spaces) @@     expected struct gfs2_glock **glp @@     got struct gfs2_glock [noderef] __rcu ** @@
   fs/gfs2/inode.c:835:80: sparse:     expected struct gfs2_glock **glp
   fs/gfs2/inode.c:835:80: sparse:     got struct gfs2_glock [noderef] __rcu **
   fs/gfs2/inode.c:857:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:857:38: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:857:38: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/inode.c:860:46: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected unsigned long volatile *addr @@     got unsigned long [noderef] __rcu * @@
   fs/gfs2/inode.c:860:46: sparse:     expected unsigned long volatile *addr
   fs/gfs2/inode.c:860:46: sparse:     got unsigned long [noderef] __rcu *
   fs/gfs2/inode.c:873:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:873:28: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:873:28: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/inode.c:917:30: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:917:30: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:917:30: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/inode.c:936:34: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:936:34: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:936:34: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
>> fs/gfs2/inode.c:1000:12: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:1000:12: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:1000:12: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/inode.c:1060:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:1060:29: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:1060:29: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/inode.c:1061:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:1061:28: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:1061:28: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/inode.c:1134:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:1134:31: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:1134:31: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/inode.c:1260:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:1260:29: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:1260:29: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/inode.c:1261:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:1261:28: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:1261:28: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/inode.c:1535:30: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:1535:30: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:1535:30: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/inode.c:1537:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:1537:38: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:1537:38: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/inode.c:1541:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:1541:28: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:1541:28: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/inode.c:1545:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:1545:37: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:1545:37: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/inode.c:1781:30: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:1781:30: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:1781:30: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/inode.c:1783:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:1783:38: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:1783:38: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/inode.c:1787:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:1787:29: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:1787:29: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/inode.c:1790:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:1790:29: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:1790:29: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/inode.c:1921:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:1921:28: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:1921:28: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/inode.c:2111:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:2111:38: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:2111:38: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/inode.c:2171:42: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:2171:42: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:2171:42: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/inode.c:2172:46: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:2172:46: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:2172:46: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/inode.c:2215:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:2215:36: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:2215:36: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/inode.c:2243:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:2243:36: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:2243:36: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/inode.c:2262:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:2262:36: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:2262:36: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/inode.c:2277:35: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/inode.c:2277:35: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/inode.c:2277:35: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
--
>> fs/gfs2/ops_fstype.c:548:47: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/ops_fstype.c:548:47: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/ops_fstype.c:548:47: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/ops_fstype.c:660:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/ops_fstype.c:660:38: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/ops_fstype.c:660:38: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/ops_fstype.c:755:46: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/ops_fstype.c:755:46: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/ops_fstype.c:755:46: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/ops_fstype.c:924:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/ops_fstype.c:924:38: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/ops_fstype.c:924:38: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
--
>> fs/gfs2/file.c:66:46: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/file.c:66:46: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/file.c:66:46: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/file.c:112:39: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/file.c:112:39: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/file.c:112:39: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/file.c:169:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/file.c:169:28: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/file.c:169:28: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/file.c:228:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/file.c:228:38: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/file.c:228:38: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/file.c:245:47: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/file.c:245:47: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/file.c:245:47: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/file.c:265:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/file.c:265:31: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/file.c:265:31: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/file.c:433:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/file.c:433:28: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/file.c:433:28: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
>> fs/gfs2/file.c:458:31: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected unsigned long volatile *addr @@     got unsigned long [noderef] __rcu * @@
   fs/gfs2/file.c:458:31: sparse:     expected unsigned long volatile *addr
   fs/gfs2/file.c:458:31: sparse:     got unsigned long [noderef] __rcu *
   fs/gfs2/file.c:560:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/file.c:560:28: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/file.c:560:28: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/file.c:600:46: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/file.c:600:46: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/file.c:600:46: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/file.c:683:46: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/file.c:683:46: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/file.c:683:46: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/file.c:770:34: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/file.c:770:34: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/file.c:770:34: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/file.c:840:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/file.c:840:28: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/file.c:840:28: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/file.c:903:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/file.c:903:28: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/file.c:903:28: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/file.c:983:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/file.c:983:28: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/file.c:983:28: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/file.c:1037:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/file.c:1037:28: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/file.c:1037:28: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/file.c:1054:46: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/file.c:1054:46: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/file.c:1054:46: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/file.c:1115:44: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/file.c:1115:44: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/file.c:1115:44: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/file.c:1192:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/file.c:1192:31: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/file.c:1192:31: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/file.c:1393:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/file.c:1393:28: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/file.c:1393:28: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
--
>> fs/gfs2/quota.c:437:34: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/quota.c:437:34: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/quota.c:437:34: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/quota.c:695:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/quota.c:695:31: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/quota.c:695:31: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/quota.c:783:39: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/quota.c:783:39: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/quota.c:783:39: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/quota.c:938:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/quota.c:938:38: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/quota.c:938:38: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/quota.c:996:47: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/quota.c:996:47: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/quota.c:996:47: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/quota.c:1065:46: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/quota.c:1065:46: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/quota.c:1065:46: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/quota.c:1442:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/quota.c:1442:37: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/quota.c:1442:37: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
   fs/gfs2/quota.c:1748:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/quota.c:1748:38: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/quota.c:1748:38: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl
>> fs/gfs2/quota.c:996:24: sparse: sparse: dereference of noderef expression
--
>> fs/gfs2/glock.c:894:43: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct gfs2_glock *gl @@     got struct gfs2_glock [noderef] __rcu *i_gl @@
   fs/gfs2/glock.c:894:43: sparse:     expected struct gfs2_glock *gl
   fs/gfs2/glock.c:894:43: sparse:     got struct gfs2_glock [noderef] __rcu *i_gl

vim +112 fs/gfs2/export.c

b3b94faa5fe5968 fs/gfs2/ops_export.c David Teigland    2006-01-16   84  
b3b94faa5fe5968 fs/gfs2/ops_export.c David Teigland    2006-01-16   85  static int gfs2_get_name(struct dentry *parent, char *name,
b3b94faa5fe5968 fs/gfs2/ops_export.c David Teigland    2006-01-16   86  			 struct dentry *child)
b3b94faa5fe5968 fs/gfs2/ops_export.c David Teigland    2006-01-16   87  {
2b0143b5c986be1 fs/gfs2/export.c     David Howells     2015-03-17   88  	struct inode *dir = d_inode(parent);
2b0143b5c986be1 fs/gfs2/export.c     David Howells     2015-03-17   89  	struct inode *inode = d_inode(child);
b3b94faa5fe5968 fs/gfs2/ops_export.c David Teigland    2006-01-16   90  	struct gfs2_inode *dip, *ip;
ac6614b76478e68 fs/gfs2/export.c     Al Viro           2013-05-22   91  	struct get_name_filldir gnfd = {
ac6614b76478e68 fs/gfs2/export.c     Al Viro           2013-05-22   92  		.ctx.actor = get_name_filldir,
ac6614b76478e68 fs/gfs2/export.c     Al Viro           2013-05-22   93  		.name = name
ac6614b76478e68 fs/gfs2/export.c     Al Viro           2013-05-22   94  	};
b3b94faa5fe5968 fs/gfs2/ops_export.c David Teigland    2006-01-16   95  	struct gfs2_holder gh;
b3b94faa5fe5968 fs/gfs2/ops_export.c David Teigland    2006-01-16   96  	int error;
dfe4d34b39b80fa fs/gfs2/export.c     Bob Peterson      2011-10-27   97  	struct file_ra_state f_ra = { .start = 0 };
b3b94faa5fe5968 fs/gfs2/ops_export.c David Teigland    2006-01-16   98  
b3b94faa5fe5968 fs/gfs2/ops_export.c David Teigland    2006-01-16   99  	if (!dir)
b3b94faa5fe5968 fs/gfs2/ops_export.c David Teigland    2006-01-16  100  		return -EINVAL;
b3b94faa5fe5968 fs/gfs2/ops_export.c David Teigland    2006-01-16  101  
b3b94faa5fe5968 fs/gfs2/ops_export.c David Teigland    2006-01-16  102  	if (!S_ISDIR(dir->i_mode) || !inode)
b3b94faa5fe5968 fs/gfs2/ops_export.c David Teigland    2006-01-16  103  		return -EINVAL;
b3b94faa5fe5968 fs/gfs2/ops_export.c David Teigland    2006-01-16  104  
feaa7bba026c181 fs/gfs2/ops_export.c Steven Whitehouse 2006-06-14  105  	dip = GFS2_I(dir);
feaa7bba026c181 fs/gfs2/ops_export.c Steven Whitehouse 2006-06-14  106  	ip = GFS2_I(inode);
b3b94faa5fe5968 fs/gfs2/ops_export.c David Teigland    2006-01-16  107  
b3b94faa5fe5968 fs/gfs2/ops_export.c David Teigland    2006-01-16  108  	*name = 0;
dbb7cae2a36170c fs/gfs2/ops_export.c Steven Whitehouse 2007-05-15  109  	gnfd.inum.no_addr = ip->i_no_addr;
dbb7cae2a36170c fs/gfs2/ops_export.c Steven Whitehouse 2007-05-15  110  	gnfd.inum.no_formal_ino = ip->i_no_formal_ino;
b3b94faa5fe5968 fs/gfs2/ops_export.c David Teigland    2006-01-16  111  
b3b94faa5fe5968 fs/gfs2/ops_export.c David Teigland    2006-01-16 @112  	error = gfs2_glock_nq_init(dip->i_gl, LM_ST_SHARED, 0, &gh);
b3b94faa5fe5968 fs/gfs2/ops_export.c David Teigland    2006-01-16  113  	if (error)
b3b94faa5fe5968 fs/gfs2/ops_export.c David Teigland    2006-01-16  114  		return error;
b3b94faa5fe5968 fs/gfs2/ops_export.c David Teigland    2006-01-16  115  
d81a8ef59802d2d fs/gfs2/export.c     Al Viro           2013-05-16  116  	error = gfs2_dir_read(dir, &gnfd.ctx, &f_ra);
b3b94faa5fe5968 fs/gfs2/ops_export.c David Teigland    2006-01-16  117  
b3b94faa5fe5968 fs/gfs2/ops_export.c David Teigland    2006-01-16  118  	gfs2_glock_dq_uninit(&gh);
b3b94faa5fe5968 fs/gfs2/ops_export.c David Teigland    2006-01-16  119  
b3b94faa5fe5968 fs/gfs2/ops_export.c David Teigland    2006-01-16  120  	if (!error && !*name)
b3b94faa5fe5968 fs/gfs2/ops_export.c David Teigland    2006-01-16  121  		error = -ENOENT;
b3b94faa5fe5968 fs/gfs2/ops_export.c David Teigland    2006-01-16  122  
b3b94faa5fe5968 fs/gfs2/ops_export.c David Teigland    2006-01-16  123  	return error;
b3b94faa5fe5968 fs/gfs2/ops_export.c David Teigland    2006-01-16  124  }
b3b94faa5fe5968 fs/gfs2/ops_export.c David Teigland    2006-01-16  125  

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

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

* Re: [PATCH] gfs2: add missing __rcu annotation to i_gl in incore.h
       [not found]   ` <CA+cq9YO=6PJ1Xx97vMuWsv+h8ebe2a8mKYoktuyZOY6MBKRxzg@mail.gmail.com>
@ 2026-07-24 16:17     ` Andreas Gruenbacher
  0 siblings, 0 replies; 11+ messages in thread
From: Andreas Gruenbacher @ 2026-07-24 16:17 UTC (permalink / raw)
  To: Adrián García Casado; +Cc: gfs2, linux-kernel

On Fri, Jul 24, 2026 at 6:05 PM Adrián García Casado
<adriangarciacasado42@gmail.com> wrote:
> Hi Andreas,
>
> Thanks for applying the patch!

No, I'm not applying that patch. As I said, it's not really fixing
anything, it's only trading two errors against 200 warnings.

> For the record, I have successfully boot-tested the patched v7.2-rc4+
> kernel on bare-metal x86_64 (Debian 13 native on an ASUS Vivobook).
>
> To stress-test the kernel stability under load, I ran some heavy workloads:
> - A standalone loopback mount of GFS2 (using lock_nolock) with I/O stress
>   tests (100+ concurrent files).
> - A full multi-threaded compilation of the PCSX2 emulator (using CMake
>   and Ninja) with all CPU cores sustained at 100% load.
>
> The system behaved completely stable with no deadlocks, hangs, or OOM.
>
> Tested-by: Adrian Garcia Casado <adriangarciacasado42@gmail.com>
>
> Best regards,
> Adrian

Andreas

> El vie, 24 jul 2026, 17:33, Andreas Gruenbacher <agruenba@redhat.com> escribió:
>>
>> On Tue, Jun 30, 2026 at 12:03 PM Adrian Garcia Casado
>> <adriangarciacasado42@gmail.com> wrote:
>> > In gfs2_inode_lookup() and other parts of the GFS2 filesystem,
>> > ip->i_gl is accessed and dereferenced via RCU helpers like
>> > rcu_dereference_check() and rcu_access_pointer(). However, the
>> > actual i_gl pointer in struct gfs2_inode was never annotated
>> > with __rcu in incore.h.
>> >
>> > This missing annotation causes Sparse to throw multiple
>> > "incompatible types in comparison expression (different address spaces)"
>> > warnings and compilation-blocking errors under strict static analysis builds.
>>
>> Indeed, there are two sparse errors related to i_gl.
>>
>> > Fix this by adding the __rcu annotation to i_gl in struct gfs2_inode.
>>
>> With this fix, I get about 200 sparse warnings instead of the two
>> errors. So thanks for pointing out that there are errors, but without
>> fixing any of the underlying problems, this patch isn't very useful.
>>
>> Andreas
>>
>> > Signed-off-by: Adrian Garcia Casado <adriangarciacasado42@gmail.com>
>> > Tested-by: Adrian Garcia Casado <adriangarciacasado42@gmail.com>
>> > ---
>> >
>> > diff --git a/fs/gfs2/incore.h b/fs/gfs2/incore.h
>> > index 6146577..16df753 100644
>> > --- a/fs/gfs2/incore.h
>> > +++ b/fs/gfs2/incore.h
>> > @@ -392,7 +392,7 @@ struct gfs2_inode {
>> >         u64 i_generation;
>> >         u64 i_eattr;
>> >         unsigned long i_flags;          /* GIF_... */
>> > -       struct gfs2_glock *i_gl;
>> > +       struct gfs2_glock __rcu *i_gl;
>> >         struct gfs2_holder i_iopen_gh;
>> >         struct gfs2_qadata *i_qadata; /* quota allocation data */
>> >         struct gfs2_holder i_rgd_gh;
>>
>> Applied, thanks.
>>
>>
>>
>> Andreas
>>


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

* Re: [PATCH] gfs2: add missing __rcu annotation to i_gl in incore.h
@ 2026-07-24 16:08 Adrian Garcia Casado
  0 siblings, 0 replies; 11+ messages in thread
From: Adrian Garcia Casado @ 2026-07-24 16:08 UTC (permalink / raw)
  To: Andreas Gruenbacher; +Cc: gfs2, linux-kernel

Hi Andreas,

Thanks for applying the patch!

For the record, I have successfully boot-tested the patched v7.2-rc4+
kernel on bare-metal x86_64 (Debian 13 native on an ASUS Vivobook).

To stress-test the kernel stability under load, I ran some heavy workloads:
- A standalone loopback mount of GFS2 (using lock_nolock) with I/O stress
  tests (100+ concurrent files).
- A full multi-threaded compilation of the PCSX2 emulator (using CMake
  and Ninja) with all CPU cores sustained at 100% load.

The system behaved completely stable with no deadlocks, hangs, or OOM.

Tested-by: Adrian Garcia Casado <adriangarciacasado42@gmail.com>

Best regards,
Adrian


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

* Re: [PATCH] gfs2: add missing __rcu annotation to i_gl in incore.h
@ 2026-07-24 16:08 Adrian Garcia Casado
  0 siblings, 0 replies; 11+ messages in thread
From: Adrian Garcia Casado @ 2026-07-24 16:08 UTC (permalink / raw)
  To: Andreas Gruenbacher; +Cc: gfs2, linux-kernel

Hi Andreas,

Thanks for applying the patch!

For the record, I have successfully boot-tested the patched v7.2-rc4+
kernel on bare-metal x86_64 (Debian 13 native on an ASUS Vivobook).

To stress-test the kernel stability under load, I ran some heavy workloads:
- A standalone loopback mount of GFS2 (using lock_nolock) with I/O stress
  tests (100+ concurrent files).
- A full multi-threaded compilation of the PCSX2 emulator (using CMake
  and Ninja) with all CPU cores sustained at 100% load.

The system behaved completely stable with no deadlocks, hangs, or OOM.

Tested-by: Adrian Garcia Casado <adriangarciacasado42@gmail.com>

Best regards,
Adrian


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

* Re: [PATCH] gfs2: add missing __rcu annotation to i_gl in incore.h
  2026-06-30 10:02 Adrian Garcia Casado
@ 2026-07-24 15:32 ` Andreas Gruenbacher
       [not found]   ` <CA+cq9YO=6PJ1Xx97vMuWsv+h8ebe2a8mKYoktuyZOY6MBKRxzg@mail.gmail.com>
  0 siblings, 1 reply; 11+ messages in thread
From: Andreas Gruenbacher @ 2026-07-24 15:32 UTC (permalink / raw)
  To: Adrian Garcia Casado; +Cc: gfs2, linux-kernel

On Tue, Jun 30, 2026 at 12:03 PM Adrian Garcia Casado
<adriangarciacasado42@gmail.com> wrote:
> In gfs2_inode_lookup() and other parts of the GFS2 filesystem,
> ip->i_gl is accessed and dereferenced via RCU helpers like
> rcu_dereference_check() and rcu_access_pointer(). However, the
> actual i_gl pointer in struct gfs2_inode was never annotated
> with __rcu in incore.h.
>
> This missing annotation causes Sparse to throw multiple
> "incompatible types in comparison expression (different address spaces)"
> warnings and compilation-blocking errors under strict static analysis builds.

Indeed, there are two sparse errors related to i_gl.

> Fix this by adding the __rcu annotation to i_gl in struct gfs2_inode.

With this fix, I get about 200 sparse warnings instead of the two
errors. So thanks for pointing out that there are errors, but without
fixing any of the underlying problems, this patch isn't very useful.

Andreas

> Signed-off-by: Adrian Garcia Casado <adriangarciacasado42@gmail.com>
> Tested-by: Adrian Garcia Casado <adriangarciacasado42@gmail.com>
> ---
>
> diff --git a/fs/gfs2/incore.h b/fs/gfs2/incore.h
> index 6146577..16df753 100644
> --- a/fs/gfs2/incore.h
> +++ b/fs/gfs2/incore.h
> @@ -392,7 +392,7 @@ struct gfs2_inode {
>         u64 i_generation;
>         u64 i_eattr;
>         unsigned long i_flags;          /* GIF_... */
> -       struct gfs2_glock *i_gl;
> +       struct gfs2_glock __rcu *i_gl;
>         struct gfs2_holder i_iopen_gh;
>         struct gfs2_qadata *i_qadata; /* quota allocation data */
>         struct gfs2_holder i_rgd_gh;

Applied, thanks.



Andreas


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

* [PATCH] gfs2: add missing __rcu annotation to i_gl in incore.h
@ 2026-07-23 17:44 Adrian Garcia Casado
  0 siblings, 0 replies; 11+ messages in thread
From: Adrian Garcia Casado @ 2026-07-23 17:44 UTC (permalink / raw)
  To: gfs2; +Cc: linux-kernel, agruenba

Signed-off-by: Adrian Garcia Casado <adriangarciacasado42@gmail.com>
---
 fs/gfs2/incore.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/gfs2/incore.h b/fs/gfs2/incore.h
index 614657778..16df75336 100644
--- a/fs/gfs2/incore.h
+++ b/fs/gfs2/incore.h
@@ -392,7 +392,7 @@ struct gfs2_inode {
 	u64 i_generation;
 	u64 i_eattr;
 	unsigned long i_flags;		/* GIF_... */
-	struct gfs2_glock *i_gl;
+	struct gfs2_glock __rcu *i_gl;
 	struct gfs2_holder i_iopen_gh;
 	struct gfs2_qadata *i_qadata; /* quota allocation data */
 	struct gfs2_holder i_rgd_gh;
-- 
2.47.3



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

* [PATCH] gfs2: add missing __rcu annotation to i_gl in incore.h
@ 2026-06-30 10:02 Adrian Garcia Casado
  2026-07-24 15:32 ` Andreas Gruenbacher
  0 siblings, 1 reply; 11+ messages in thread
From: Adrian Garcia Casado @ 2026-06-30 10:02 UTC (permalink / raw)
  To: gfs2; +Cc: linux-kernel, agruenba

In gfs2_inode_lookup() and other parts of the GFS2 filesystem,
ip->i_gl is accessed and dereferenced via RCU helpers like
rcu_dereference_check() and rcu_access_pointer(). However, the
actual i_gl pointer in struct gfs2_inode was never annotated
with __rcu in incore.h.

This missing annotation causes Sparse to throw multiple
"incompatible types in comparison expression (different address spaces)"
warnings and compilation-blocking errors under strict static analysis builds.

Fix this by adding the __rcu annotation to i_gl in struct gfs2_inode.

Signed-off-by: Adrian Garcia Casado <adriangarciacasado42@gmail.com>
Tested-by: Adrian Garcia Casado <adriangarciacasado42@gmail.com>
---

diff --git a/fs/gfs2/incore.h b/fs/gfs2/incore.h
index 6146577..16df753 100644
--- a/fs/gfs2/incore.h
+++ b/fs/gfs2/incore.h
@@ -392,7 +392,7 @@ struct gfs2_inode {
 	u64 i_generation;
 	u64 i_eattr;
 	unsigned long i_flags;		/* GIF_... */
-	struct gfs2_glock *i_gl;
+	struct gfs2_glock __rcu *i_gl;
 	struct gfs2_holder i_iopen_gh;
 	struct gfs2_qadata *i_qadata; /* quota allocation data */
 	struct gfs2_holder i_rgd_gh;


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

* [PATCH] gfs2: add missing __rcu annotation to i_gl in incore.h
@ 2026-06-30  9:55 Adrian Garcia Casado
  0 siblings, 0 replies; 11+ messages in thread
From: Adrian Garcia Casado @ 2026-06-30  9:55 UTC (permalink / raw)
  To: gfs2; +Cc: linux-kernel, rpeterso, agruenba

In gfs2_inode_lookup() and other parts of the GFS2 filesystem,
ip->i_gl is accessed and dereferenced via RCU helpers like
rcu_dereference_check() and rcu_access_pointer(). However, the
actual i_gl pointer in struct gfs2_inode was never annotated
with __rcu in incore.h.

This missing annotation causes Sparse to throw multiple
"incompatible types in comparison expression (different address spaces)"
warnings and compilation-blocking errors under strict static analysis builds.

Fix this by adding the __rcu annotation to i_gl in struct gfs2_inode.

Signed-off-by: Adrian Garcia Casado <adriangarciacasado42@gmail.com>
Tested-by: Adrian Garcia Casado <adriangarciacasado42@gmail.com>
---

diff --git a/fs/gfs2/incore.h b/fs/gfs2/incore.h
index 6146577..16df753 100644
--- a/fs/gfs2/incore.h
+++ b/fs/gfs2/incore.h
@@ -392,7 +392,7 @@ struct gfs2_inode {
 	u64 i_generation;
 	u64 i_eattr;
 	unsigned long i_flags;		/* GIF_... */
-	struct gfs2_glock *i_gl;
+	struct gfs2_glock __rcu *i_gl;
 	struct gfs2_holder i_iopen_gh;
 	struct gfs2_qadata *i_qadata; /* quota allocation data */
 	struct gfs2_holder i_rgd_gh;


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

* [PATCH] gfs2: add missing __rcu annotation to i_gl in incore.h
@ 2026-06-18 13:56 Adrian
  2026-08-04 19:53 ` kernel test robot
  0 siblings, 1 reply; 11+ messages in thread
From: Adrian @ 2026-06-18 13:56 UTC (permalink / raw)
  To: gfs2; +Cc: linux-kernel

Signed-off-by: Adrian <adrian@tu-correo.com>
---
 fs/gfs2/incore.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/gfs2/incore.h b/fs/gfs2/incore.h
index 614657778..16df75336 100644
--- a/fs/gfs2/incore.h
+++ b/fs/gfs2/incore.h
@@ -392,7 +392,7 @@ struct gfs2_inode {
 	u64 i_generation;
 	u64 i_eattr;
 	unsigned long i_flags;		/* GIF_... */
-	struct gfs2_glock *i_gl;
+	struct gfs2_glock __rcu *i_gl;
 	struct gfs2_holder i_iopen_gh;
 	struct gfs2_qadata *i_qadata; /* quota allocation data */
 	struct gfs2_holder i_rgd_gh;
-- 
2.47.3



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

* [PATCH] gfs2: add missing __rcu annotation to i_gl in incore.h
@ 2026-06-18 13:56 Adrian
  0 siblings, 0 replies; 11+ messages in thread
From: Adrian @ 2026-06-18 13:56 UTC (permalink / raw)
  To: gfs2; +Cc: linux-kernel

Signed-off-by: Adrian <adriangarciacasado42@gmail.com>
---
 fs/gfs2/incore.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/gfs2/incore.h b/fs/gfs2/incore.h
index 614657778..16df75336 100644
--- a/fs/gfs2/incore.h
+++ b/fs/gfs2/incore.h
@@ -392,7 +392,7 @@ struct gfs2_inode {
 	u64 i_generation;
 	u64 i_eattr;
 	unsigned long i_flags;		/* GIF_... */
-	struct gfs2_glock *i_gl;
+	struct gfs2_glock __rcu *i_gl;
 	struct gfs2_holder i_iopen_gh;
 	struct gfs2_qadata *i_qadata; /* quota allocation data */
 	struct gfs2_holder i_rgd_gh;
-- 
2.47.3



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

end of thread, other threads:[~2026-08-04 19:54 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-07-24 16:50 [PATCH] gfs2: add missing __rcu annotation to i_gl in incore.h Adrian Garcia Casado
  -- strict thread matches above, loose matches on Subject: below --
2026-07-24 16:08 Adrian Garcia Casado
2026-07-24 16:08 Adrian Garcia Casado
2026-07-23 17:44 Adrian Garcia Casado
2026-06-30 10:02 Adrian Garcia Casado
2026-07-24 15:32 ` Andreas Gruenbacher
     [not found]   ` <CA+cq9YO=6PJ1Xx97vMuWsv+h8ebe2a8mKYoktuyZOY6MBKRxzg@mail.gmail.com>
2026-07-24 16:17     ` Andreas Gruenbacher
2026-06-30  9:55 Adrian Garcia Casado
2026-06-18 13:56 Adrian
2026-08-04 19:53 ` kernel test robot
2026-06-18 13:56 Adrian

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

all inboxes | Powered by JetHome®