[bug report] statmount: add a new supported_mask field

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Jeff Layton,

Commit 945eaa26b049 ("statmount: add a new supported_mask field")
from Feb 6, 2025 (linux-next), leads to the following Smatch static
checker warning:

	fs/namespace.c:5640 do_statmount()
	warn: was expecting a 64 bit value instead of '~(1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048 | 4096 | 8192 | 16384)'

fs/namespace.c
    5630 
    5631         if (!err && s->mask & STATMOUNT_SUPPORTED_MASK) {
    5632                 s->sm.mask |= STATMOUNT_SUPPORTED_MASK;
                                       ^^^^^^^^^^^^^^^^^^^^^^^^

These are all declared as unsigned int but s->sm.mask is a u64.

    5633                 s->sm.supported_mask = STATMOUNT_SUPPORTED;
    5634         }
    5635 
    5636         if (err)
    5637                 return err;
    5638 
    5639         /* Are there bits in the return mask not present in STATMOUNT_SUPPORTED? */
--> 5640         WARN_ON_ONCE(~STATMOUNT_SUPPORTED & s->sm.mask);
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

This is fine for now because the high 32 bits aren't used.  I guess when
we add a ULL constant this warning will fix itself...  So maybe it's
fine.

    5641 
    5642         return 0;
    5643 }

regards,
dan carpenter




[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux