All of lore.kernel.org
 help / color / mirror / Atom feed
* [djwong-xfs:vectorized-scrub 154/283] fs/xfs/libxfs/xfs_inode_buf.c:477:27: sparse: sparse: dubious: x & !y
@ 2021-03-26  5:33 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2021-03-26  5:33 UTC (permalink / raw)
  To: kbuild

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

CC: kbuild-all(a)lists.01.org
CC: "Darrick J. Wong" <darrick.wong@oracle.com>
TO: "Darrick J. Wong" <djwong@kernel.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git vectorized-scrub
head:   13a296999ea49dd4cb16cab75c3aef5e691ed124
commit: 15b9a9194ac8364474c84f2077b2a1ab2c549444 [154/283] xfs: enforce metadata inode flag
:::::: branch date: 5 hours ago
:::::: commit date: 5 hours ago
config: x86_64-randconfig-s022-20210325 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.3-277-gc089cd2d-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git/commit/?id=15b9a9194ac8364474c84f2077b2a1ab2c549444
        git remote add djwong-xfs https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git
        git fetch --no-tags djwong-xfs vectorized-scrub
        git checkout 15b9a9194ac8364474c84f2077b2a1ab2c549444
        # save the attached .config to linux build tree
        make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=x86_64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>


sparse warnings: (new ones prefixed by >>)
>> fs/xfs/libxfs/xfs_inode_buf.c:477:27: sparse: sparse: dubious: x & !y

vim +477 fs/xfs/libxfs/xfs_inode_buf.c

339e1a3fcdd199 Eric Sandeen    2018-09-29  423  
15b9a9194ac836 Darrick J. Wong 2021-01-05  424  /*
15b9a9194ac836 Darrick J. Wong 2021-01-05  425   * Validate all the picky requirements we have for a file that claims to be
15b9a9194ac836 Darrick J. Wong 2021-01-05  426   * filesystem metadata.
15b9a9194ac836 Darrick J. Wong 2021-01-05  427   */
15b9a9194ac836 Darrick J. Wong 2021-01-05  428  xfs_failaddr_t
15b9a9194ac836 Darrick J. Wong 2021-01-05  429  xfs_dinode_verify_metaflag(
15b9a9194ac836 Darrick J. Wong 2021-01-05  430  	struct xfs_mount	*mp,
15b9a9194ac836 Darrick J. Wong 2021-01-05  431  	struct xfs_dinode	*dip,
15b9a9194ac836 Darrick J. Wong 2021-01-05  432  	uint16_t		mode,
15b9a9194ac836 Darrick J. Wong 2021-01-05  433  	uint16_t		flags,
15b9a9194ac836 Darrick J. Wong 2021-01-05  434  	uint64_t		flags2)
15b9a9194ac836 Darrick J. Wong 2021-01-05  435  {
15b9a9194ac836 Darrick J. Wong 2021-01-05  436  	if (!xfs_sb_version_hasmetadir(&mp->m_sb))
15b9a9194ac836 Darrick J. Wong 2021-01-05  437  		return __this_address;
15b9a9194ac836 Darrick J. Wong 2021-01-05  438  
15b9a9194ac836 Darrick J. Wong 2021-01-05  439  	/* V5 filesystem only */
15b9a9194ac836 Darrick J. Wong 2021-01-05  440  	if (dip->di_version < 3)
15b9a9194ac836 Darrick J. Wong 2021-01-05  441  		return __this_address;
15b9a9194ac836 Darrick J. Wong 2021-01-05  442  
15b9a9194ac836 Darrick J. Wong 2021-01-05  443  	/* V3 inode fields that are always zero */
15b9a9194ac836 Darrick J. Wong 2021-01-05  444  	if (dip->di_flushiter || dip->di_onlink)
15b9a9194ac836 Darrick J. Wong 2021-01-05  445  		return __this_address;
15b9a9194ac836 Darrick J. Wong 2021-01-05  446  
15b9a9194ac836 Darrick J. Wong 2021-01-05  447  	/* Metadata files can only be directories or regular files */
15b9a9194ac836 Darrick J. Wong 2021-01-05  448  	if (!S_ISDIR(mode) && !S_ISREG(mode))
15b9a9194ac836 Darrick J. Wong 2021-01-05  449  		return __this_address;
15b9a9194ac836 Darrick J. Wong 2021-01-05  450  
15b9a9194ac836 Darrick J. Wong 2021-01-05  451  	/* They must have zero access permissions */
15b9a9194ac836 Darrick J. Wong 2021-01-05  452  	if (mode & 0777)
15b9a9194ac836 Darrick J. Wong 2021-01-05  453  		return __this_address;
15b9a9194ac836 Darrick J. Wong 2021-01-05  454  
15b9a9194ac836 Darrick J. Wong 2021-01-05  455  	/* DMAPI event and state masks are zero */
15b9a9194ac836 Darrick J. Wong 2021-01-05  456  	if (dip->di_dmevmask || dip->di_dmstate)
15b9a9194ac836 Darrick J. Wong 2021-01-05  457  		return __this_address;
15b9a9194ac836 Darrick J. Wong 2021-01-05  458  
15b9a9194ac836 Darrick J. Wong 2021-01-05  459  	/* User, group, and project IDs must be zero */
15b9a9194ac836 Darrick J. Wong 2021-01-05  460  	if (dip->di_uid || dip->di_gid ||
15b9a9194ac836 Darrick J. Wong 2021-01-05  461  	    dip->di_projid_lo || dip->di_projid_hi)
15b9a9194ac836 Darrick J. Wong 2021-01-05  462  		return __this_address;
15b9a9194ac836 Darrick J. Wong 2021-01-05  463  
15b9a9194ac836 Darrick J. Wong 2021-01-05  464  	/* Immutable, sync, noatime, nodump, and nodefrag flags must be set */
15b9a9194ac836 Darrick J. Wong 2021-01-05  465  	if (!(flags & XFS_DIFLAG_IMMUTABLE))
15b9a9194ac836 Darrick J. Wong 2021-01-05  466  		return __this_address;
15b9a9194ac836 Darrick J. Wong 2021-01-05  467  	if (!(flags & XFS_DIFLAG_SYNC))
15b9a9194ac836 Darrick J. Wong 2021-01-05  468  		return __this_address;
15b9a9194ac836 Darrick J. Wong 2021-01-05  469  	if (!(flags & XFS_DIFLAG_NOATIME))
15b9a9194ac836 Darrick J. Wong 2021-01-05  470  		return __this_address;
15b9a9194ac836 Darrick J. Wong 2021-01-05  471  	if (!(flags & XFS_DIFLAG_NODUMP))
15b9a9194ac836 Darrick J. Wong 2021-01-05  472  		return __this_address;
15b9a9194ac836 Darrick J. Wong 2021-01-05  473  	if (!(flags & XFS_DIFLAG_NODEFRAG))
15b9a9194ac836 Darrick J. Wong 2021-01-05  474  		return __this_address;
15b9a9194ac836 Darrick J. Wong 2021-01-05  475  
15b9a9194ac836 Darrick J. Wong 2021-01-05  476  	/* Directories must have nosymlinks flags set */
15b9a9194ac836 Darrick J. Wong 2021-01-05 @477  	if (S_ISDIR(mode) & !(flags & XFS_DIFLAG_NOSYMLINKS))
15b9a9194ac836 Darrick J. Wong 2021-01-05  478  		return __this_address;
15b9a9194ac836 Darrick J. Wong 2021-01-05  479  
15b9a9194ac836 Darrick J. Wong 2021-01-05  480  	/* dax flags2 must not be set */
15b9a9194ac836 Darrick J. Wong 2021-01-05  481  	if (flags2 & XFS_DIFLAG2_DAX)
15b9a9194ac836 Darrick J. Wong 2021-01-05  482  		return __this_address;
15b9a9194ac836 Darrick J. Wong 2021-01-05  483  
15b9a9194ac836 Darrick J. Wong 2021-01-05  484  	return NULL;
15b9a9194ac836 Darrick J. Wong 2021-01-05  485  }
15b9a9194ac836 Darrick J. Wong 2021-01-05  486  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 34251 bytes --]

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

* [djwong-xfs:vectorized-scrub 154/283] fs/xfs/libxfs/xfs_inode_buf.c:477:27: sparse: sparse: dubious: x & !y
@ 2021-03-26  8:42 Dan Carpenter
  0 siblings, 0 replies; 2+ messages in thread
From: Dan Carpenter @ 2021-03-26  8:42 UTC (permalink / raw)
  To: kbuild

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

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git  vectorized-scrub
head:   13a296999ea49dd4cb16cab75c3aef5e691ed124
commit: 15b9a9194ac8364474c84f2077b2a1ab2c549444 [154/283] xfs: enforce metadata inode flag
config: x86_64-randconfig-s022-20210325 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.3-277-gc089cd2d-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git/commit/?id=15b9a9194ac8364474c84f2077b2a1ab2c549444 
        git remote add djwong-xfs https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git 
        git fetch --no-tags djwong-xfs vectorized-scrub
        git checkout 15b9a9194ac8364474c84f2077b2a1ab2c549444
        # save the attached .config to linux build tree
        make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=x86_64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

sparse warnings: (new ones prefixed by >>)
>> fs/xfs/libxfs/xfs_inode_buf.c:477:27: sparse: sparse: dubious: x & !y

vim +477 fs/xfs/libxfs/xfs_inode_buf.c

15b9a9194ac836 Darrick J. Wong 2021-01-05  428  xfs_failaddr_t
15b9a9194ac836 Darrick J. Wong 2021-01-05  429  xfs_dinode_verify_metaflag(
15b9a9194ac836 Darrick J. Wong 2021-01-05  430  	struct xfs_mount	*mp,
15b9a9194ac836 Darrick J. Wong 2021-01-05  431  	struct xfs_dinode	*dip,
15b9a9194ac836 Darrick J. Wong 2021-01-05  432  	uint16_t		mode,
15b9a9194ac836 Darrick J. Wong 2021-01-05  433  	uint16_t		flags,
15b9a9194ac836 Darrick J. Wong 2021-01-05  434  	uint64_t		flags2)
15b9a9194ac836 Darrick J. Wong 2021-01-05  435  {
15b9a9194ac836 Darrick J. Wong 2021-01-05  436  	if (!xfs_sb_version_hasmetadir(&mp->m_sb))
15b9a9194ac836 Darrick J. Wong 2021-01-05  437  		return __this_address;
15b9a9194ac836 Darrick J. Wong 2021-01-05  438  
15b9a9194ac836 Darrick J. Wong 2021-01-05  439  	/* V5 filesystem only */
15b9a9194ac836 Darrick J. Wong 2021-01-05  440  	if (dip->di_version < 3)
15b9a9194ac836 Darrick J. Wong 2021-01-05  441  		return __this_address;
15b9a9194ac836 Darrick J. Wong 2021-01-05  442  
15b9a9194ac836 Darrick J. Wong 2021-01-05  443  	/* V3 inode fields that are always zero */
15b9a9194ac836 Darrick J. Wong 2021-01-05  444  	if (dip->di_flushiter || dip->di_onlink)
15b9a9194ac836 Darrick J. Wong 2021-01-05  445  		return __this_address;
15b9a9194ac836 Darrick J. Wong 2021-01-05  446  
15b9a9194ac836 Darrick J. Wong 2021-01-05  447  	/* Metadata files can only be directories or regular files */
15b9a9194ac836 Darrick J. Wong 2021-01-05  448  	if (!S_ISDIR(mode) && !S_ISREG(mode))
15b9a9194ac836 Darrick J. Wong 2021-01-05  449  		return __this_address;
15b9a9194ac836 Darrick J. Wong 2021-01-05  450  
15b9a9194ac836 Darrick J. Wong 2021-01-05  451  	/* They must have zero access permissions */
15b9a9194ac836 Darrick J. Wong 2021-01-05  452  	if (mode & 0777)
15b9a9194ac836 Darrick J. Wong 2021-01-05  453  		return __this_address;
15b9a9194ac836 Darrick J. Wong 2021-01-05  454  
15b9a9194ac836 Darrick J. Wong 2021-01-05  455  	/* DMAPI event and state masks are zero */
15b9a9194ac836 Darrick J. Wong 2021-01-05  456  	if (dip->di_dmevmask || dip->di_dmstate)
15b9a9194ac836 Darrick J. Wong 2021-01-05  457  		return __this_address;
15b9a9194ac836 Darrick J. Wong 2021-01-05  458  
15b9a9194ac836 Darrick J. Wong 2021-01-05  459  	/* User, group, and project IDs must be zero */
15b9a9194ac836 Darrick J. Wong 2021-01-05  460  	if (dip->di_uid || dip->di_gid ||
15b9a9194ac836 Darrick J. Wong 2021-01-05  461  	    dip->di_projid_lo || dip->di_projid_hi)
15b9a9194ac836 Darrick J. Wong 2021-01-05  462  		return __this_address;
15b9a9194ac836 Darrick J. Wong 2021-01-05  463  
15b9a9194ac836 Darrick J. Wong 2021-01-05  464  	/* Immutable, sync, noatime, nodump, and nodefrag flags must be set */
15b9a9194ac836 Darrick J. Wong 2021-01-05  465  	if (!(flags & XFS_DIFLAG_IMMUTABLE))
15b9a9194ac836 Darrick J. Wong 2021-01-05  466  		return __this_address;
15b9a9194ac836 Darrick J. Wong 2021-01-05  467  	if (!(flags & XFS_DIFLAG_SYNC))
15b9a9194ac836 Darrick J. Wong 2021-01-05  468  		return __this_address;
15b9a9194ac836 Darrick J. Wong 2021-01-05  469  	if (!(flags & XFS_DIFLAG_NOATIME))
15b9a9194ac836 Darrick J. Wong 2021-01-05  470  		return __this_address;
15b9a9194ac836 Darrick J. Wong 2021-01-05  471  	if (!(flags & XFS_DIFLAG_NODUMP))
15b9a9194ac836 Darrick J. Wong 2021-01-05  472  		return __this_address;
15b9a9194ac836 Darrick J. Wong 2021-01-05  473  	if (!(flags & XFS_DIFLAG_NODEFRAG))
15b9a9194ac836 Darrick J. Wong 2021-01-05  474  		return __this_address;
15b9a9194ac836 Darrick J. Wong 2021-01-05  475  
15b9a9194ac836 Darrick J. Wong 2021-01-05  476  	/* Directories must have nosymlinks flags set */
15b9a9194ac836 Darrick J. Wong 2021-01-05 @477  	if (S_ISDIR(mode) & !(flags & XFS_DIFLAG_NOSYMLINKS))

Presumably this S_ISDIR() return bool so both && and & work.  I sometimes
see people using & instead of && and I don't normally ask about it
if both work fine.  I've always just assumed that & is faster.  :P

15b9a9194ac836 Darrick J. Wong 2021-01-05  478  		return __this_address;
15b9a9194ac836 Darrick J. Wong 2021-01-05  479  
15b9a9194ac836 Darrick J. Wong 2021-01-05  480  	/* dax flags2 must not be set */
15b9a9194ac836 Darrick J. Wong 2021-01-05  481  	if (flags2 & XFS_DIFLAG2_DAX)
15b9a9194ac836 Darrick J. Wong 2021-01-05  482  		return __this_address;
15b9a9194ac836 Darrick J. Wong 2021-01-05  483  
15b9a9194ac836 Darrick J. Wong 2021-01-05  484  	return NULL;
15b9a9194ac836 Darrick J. Wong 2021-01-05  485  }

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org 

_______________________________________________
kbuild mailing list -- kbuild(a)lists.01.org
To unsubscribe send an email to kbuild-leave(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 34251 bytes --]

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

end of thread, other threads:[~2021-03-26  8:42 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-26  5:33 [djwong-xfs:vectorized-scrub 154/283] fs/xfs/libxfs/xfs_inode_buf.c:477:27: sparse: sparse: dubious: x & !y kernel test robot
2021-03-26  8:42 Dan Carpenter

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.