From: kernel test robot <rong.a.chen@intel.com>
To: kbuild-all@lists.01.org
Subject: [djwong-xfs:reserve-rt-metadata-space 153/219] fs/xfs/scrub/repair.c:1819:15: warning: %d in format string (no. 2) requires 'int' but the argument type is 'unsigned int'.
Date: Mon, 21 Dec 2020 08:20:17 +0800 [thread overview]
Message-ID: <20201221002017.GW67148@shao2-debian> (raw)
[-- Attachment #1: Type: text/plain, Size: 7899 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git reserve-rt-metadata-space
head: 207e1ccd65605924e87691251452a581587d26d2
commit: 2abf21a89e265202ca879cbca962109544b3a557 [153/219] xfs: move orphan files to the orphanage
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <rong.a.chen@intel.com>
"cppcheck warnings: (new ones prefixed by >>)"
>> fs/xfs/scrub/repair.c:1819:15: warning: %d in format string (no. 2) requires 'int' but the argument type is 'unsigned int'. [invalidPrintfArgType_sint]
xname.len = snprintf(fname, sizeof(fname), "%llu.%d",
^
fs/xfs/scrub/repair.c:270:6: warning: Uninitialized variable: freelen [uninitvar]
freelen >= aglen) {
^
vim +1819 fs/xfs/scrub/repair.c
2abf21a89e26520 Darrick J. Wong 2020-11-17 1782
2abf21a89e26520 Darrick J. Wong 2020-11-17 1783 /*
2abf21a89e26520 Darrick J. Wong 2020-11-17 1784 * Move the current file to the orphanage. The caller must not hold any locks
2abf21a89e26520 Darrick J. Wong 2020-11-17 1785 * on the orphanage and must not hold the ILOCK on sc->ip. sc->ip and
2abf21a89e26520 Darrick J. Wong 2020-11-17 1786 * sc->orphanage must not be joined to the transaction. The function returns
2abf21a89e26520 Darrick J. Wong 2020-11-17 1787 * with both inodes joined, ILOCKed, and dirty.
2abf21a89e26520 Darrick J. Wong 2020-11-17 1788 */
2abf21a89e26520 Darrick J. Wong 2020-11-17 1789 int
2abf21a89e26520 Darrick J. Wong 2020-11-17 1790 xrep_move_to_orphanage(
2abf21a89e26520 Darrick J. Wong 2020-11-17 1791 struct xfs_scrub *sc)
2abf21a89e26520 Darrick J. Wong 2020-11-17 1792 {
2abf21a89e26520 Darrick J. Wong 2020-11-17 1793 struct xfs_name xname;
2abf21a89e26520 Darrick J. Wong 2020-11-17 1794 unsigned char fname[MAXNAMELEN + 1];
2abf21a89e26520 Darrick J. Wong 2020-11-17 1795 struct xfs_inode *dp = sc->orphanage;
2abf21a89e26520 Darrick J. Wong 2020-11-17 1796 struct xfs_mount *mp = sc->mp;
2abf21a89e26520 Darrick J. Wong 2020-11-17 1797 xfs_ino_t ino;
2abf21a89e26520 Darrick J. Wong 2020-11-17 1798 unsigned int incr = 0;
2abf21a89e26520 Darrick J. Wong 2020-11-17 1799 unsigned int linkres, dotdotres;
2abf21a89e26520 Darrick J. Wong 2020-11-17 1800 int error;
2abf21a89e26520 Darrick J. Wong 2020-11-17 1801
2abf21a89e26520 Darrick J. Wong 2020-11-17 1802 /* No orphanage? We can't fix this. */
2abf21a89e26520 Darrick J. Wong 2020-11-17 1803 if (!sc->orphanage)
2abf21a89e26520 Darrick J. Wong 2020-11-17 1804 return -EFSCORRUPTED;
2abf21a89e26520 Darrick J. Wong 2020-11-17 1805
2abf21a89e26520 Darrick J. Wong 2020-11-17 1806 /* Try to grab the IOLOCK on the orphanage. */
2abf21a89e26520 Darrick J. Wong 2020-11-17 1807 error = xchk_ilock_inverted(sc->orphanage, XFS_IOLOCK_EXCL);
2abf21a89e26520 Darrick J. Wong 2020-11-17 1808 if (error)
2abf21a89e26520 Darrick J. Wong 2020-11-17 1809 return error;
2abf21a89e26520 Darrick J. Wong 2020-11-17 1810 sc->orphanage_ilock_flags |= XFS_IOLOCK_EXCL;
2abf21a89e26520 Darrick J. Wong 2020-11-17 1811
2abf21a89e26520 Darrick J. Wong 2020-11-17 1812 xname.name = fname;
2abf21a89e26520 Darrick J. Wong 2020-11-17 1813 xname.len = snprintf(fname, sizeof(fname), "%llu", sc->ip->i_ino);
2abf21a89e26520 Darrick J. Wong 2020-11-17 1814 xname.type = xfs_mode_to_ftype(VFS_I(sc->ip)->i_mode);
2abf21a89e26520 Darrick J. Wong 2020-11-17 1815
2abf21a89e26520 Darrick J. Wong 2020-11-17 1816 /* Make sure the filename is unique in the lost+found. */
2abf21a89e26520 Darrick J. Wong 2020-11-17 1817 error = xfs_dir_lookup(sc->tp, dp, &xname, &ino, NULL);
2abf21a89e26520 Darrick J. Wong 2020-11-17 1818 while (error == 0 && incr < 10000) {
2abf21a89e26520 Darrick J. Wong 2020-11-17 @1819 xname.len = snprintf(fname, sizeof(fname), "%llu.%d",
2abf21a89e26520 Darrick J. Wong 2020-11-17 1820 sc->ip->i_ino, ++incr);
2abf21a89e26520 Darrick J. Wong 2020-11-17 1821 error = xfs_dir_lookup(sc->tp, dp, &xname, &ino, NULL);
2abf21a89e26520 Darrick J. Wong 2020-11-17 1822 }
2abf21a89e26520 Darrick J. Wong 2020-11-17 1823 if (error == 0) {
2abf21a89e26520 Darrick J. Wong 2020-11-17 1824 /* We already have 10,000 entries in the orphanage? */
2abf21a89e26520 Darrick J. Wong 2020-11-17 1825 return -EFSCORRUPTED;
2abf21a89e26520 Darrick J. Wong 2020-11-17 1826 }
2abf21a89e26520 Darrick J. Wong 2020-11-17 1827 if (error != -ENOENT)
2abf21a89e26520 Darrick J. Wong 2020-11-17 1828 return error;
2abf21a89e26520 Darrick J. Wong 2020-11-17 1829
2abf21a89e26520 Darrick J. Wong 2020-11-17 1830 trace_xrep_move_orphanage(sc->ip, &xname, dp->i_ino);
2abf21a89e26520 Darrick J. Wong 2020-11-17 1831
2abf21a89e26520 Darrick J. Wong 2020-11-17 1832 /*
2abf21a89e26520 Darrick J. Wong 2020-11-17 1833 * Reserve enough space to add a directory entry to the orphanage and
2abf21a89e26520 Darrick J. Wong 2020-11-17 1834 * update the dotdot entry.
2abf21a89e26520 Darrick J. Wong 2020-11-17 1835 */
2abf21a89e26520 Darrick J. Wong 2020-11-17 1836 linkres = XFS_LINK_SPACE_RES(mp, xname.len);
2abf21a89e26520 Darrick J. Wong 2020-11-17 1837 dotdotres = XFS_RENAME_SPACE_RES(mp, 2);
2abf21a89e26520 Darrick J. Wong 2020-11-17 1838 error = xfs_trans_reserve_more(sc->tp, linkres + dotdotres, 0);
2abf21a89e26520 Darrick J. Wong 2020-11-17 1839 if (error)
2abf21a89e26520 Darrick J. Wong 2020-11-17 1840 return error;
2abf21a89e26520 Darrick J. Wong 2020-11-17 1841
2abf21a89e26520 Darrick J. Wong 2020-11-17 1842 xfs_lock_two_inodes(dp, XFS_ILOCK_EXCL, sc->ip, XFS_ILOCK_EXCL);
2abf21a89e26520 Darrick J. Wong 2020-11-17 1843 sc->ilock_flags |= XFS_ILOCK_EXCL;
2abf21a89e26520 Darrick J. Wong 2020-11-17 1844 sc->orphanage_ilock_flags |= XFS_ILOCK_EXCL;
2abf21a89e26520 Darrick J. Wong 2020-11-17 1845
2abf21a89e26520 Darrick J. Wong 2020-11-17 1846 xfs_trans_ijoin(sc->tp, dp, 0);
2abf21a89e26520 Darrick J. Wong 2020-11-17 1847 xfs_trans_ijoin(sc->tp, sc->ip, 0);
2abf21a89e26520 Darrick J. Wong 2020-11-17 1848
2abf21a89e26520 Darrick J. Wong 2020-11-17 1849 /*
2abf21a89e26520 Darrick J. Wong 2020-11-17 1850 * Create the new name in the orphanage, and bump the link count of
2abf21a89e26520 Darrick J. Wong 2020-11-17 1851 * the orphanage if we just added a directory.
2abf21a89e26520 Darrick J. Wong 2020-11-17 1852 */
2abf21a89e26520 Darrick J. Wong 2020-11-17 1853 error = xfs_dir_createname(sc->tp, dp, &xname, sc->ip->i_ino,
2abf21a89e26520 Darrick J. Wong 2020-11-17 1854 linkres);
2abf21a89e26520 Darrick J. Wong 2020-11-17 1855 if (error)
2abf21a89e26520 Darrick J. Wong 2020-11-17 1856 return error;
2abf21a89e26520 Darrick J. Wong 2020-11-17 1857
2abf21a89e26520 Darrick J. Wong 2020-11-17 1858 xfs_trans_ichgtime(sc->tp, dp, XFS_ICHGTIME_MOD | XFS_ICHGTIME_CHG);
2abf21a89e26520 Darrick J. Wong 2020-11-17 1859 if (S_ISDIR(VFS_I(sc->ip)->i_mode))
2abf21a89e26520 Darrick J. Wong 2020-11-17 1860 xfs_bumplink(sc->tp, dp);
2abf21a89e26520 Darrick J. Wong 2020-11-17 1861 xfs_trans_log_inode(sc->tp, dp, XFS_ILOG_CORE);
2abf21a89e26520 Darrick J. Wong 2020-11-17 1862
2abf21a89e26520 Darrick J. Wong 2020-11-17 1863 /* Replace the dotdot entry. */
2abf21a89e26520 Darrick J. Wong 2020-11-17 1864 return xfs_dir_replace(sc->tp, sc->ip, &xfs_name_dotdot, dp->i_ino,
2abf21a89e26520 Darrick J. Wong 2020-11-17 1865 dotdotres);
2abf21a89e26520 Darrick J. Wong 2020-11-17 1866 }
2abf21a89e26520 Darrick J. Wong 2020-11-17 1867
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
next reply other threads:[~2020-12-21 0:20 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-12-21 0:20 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2020-12-21 9:20 [djwong-xfs:reserve-rt-metadata-space 153/219] fs/xfs/scrub/repair.c:1819:15: warning: %d in format string (no. 2) requires 'int' but the argument type is 'unsigned int' kernel test robot
2020-12-21 7:35 kernel test robot
2020-12-19 15:59 kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20201221002017.GW67148@shao2-debian \
--to=rong.a.chen@intel.com \
--cc=kbuild-all@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.