Bläddra i källkod

[XFS] Add format checking to cmn_err and icmn_err

SGI-PV: 942243
SGI-Modid: xfs-linux:xfs-kern:198658a

Signed-off-by: Christoph Hellwig <hch@sgi.com>
Signed-off-by: Nathan Scott <nathans@sgi.com>
Christoph Hellwig 19 år sedan
förälder
incheckning
da1650a5d6
7 ändrade filer med 18 tillägg och 11 borttagningar
  1. 4 3
      fs/xfs/support/debug.h
  2. 1 1
      fs/xfs/xfs_bmap.c
  3. 5 2
      fs/xfs/xfs_ialloc.c
  4. 3 2
      fs/xfs/xfs_inode.c
  5. 3 1
      fs/xfs/xfs_log.c
  6. 1 1
      fs/xfs/xfs_mount.c
  7. 1 1
      fs/xfs/xfs_rw.c

+ 4 - 3
fs/xfs/support/debug.h

@@ -41,9 +41,10 @@
 #define CE_ALERT        1               /* alert        */
 #define CE_PANIC        0               /* panic        */
 
-extern void icmn_err(int, char *, va_list);
-/* PRINTFLIKE2 */
-extern void cmn_err(int, char *, ...);
+extern void icmn_err(int, char *, va_list)
+	__attribute__ ((format (printf, 2, 0)));
+extern void cmn_err(int, char *, ...)
+	__attribute__ ((format (printf, 2, 3)));
 
 #ifndef STATIC
 # define STATIC static

+ 1 - 1
fs/xfs/xfs_bmap.c

@@ -6131,7 +6131,7 @@ error0:
 		xfs_trans_brelse(NULL, bp);
 error_norelse:
 	cmn_err(CE_WARN, "%s: BAD after btree leaves for %d extents",
-		i, __FUNCTION__);
+		__FUNCTION__, i);
 	panic("%s: CORRUPTED BTREE OR SOMETHING", __FUNCTION__);
 	return;
 }

+ 5 - 2
fs/xfs/xfs_ialloc.c

@@ -957,8 +957,11 @@ xfs_difree(
 	agino = XFS_INO_TO_AGINO(mp, inode);
 	if (inode != XFS_AGINO_TO_INO(mp, agno, agino))  {
 		cmn_err(CE_WARN,
-			"xfs_difree: inode != XFS_AGINO_TO_INO() (%d != %d) on %s.  Returning EINVAL.",
-			inode, XFS_AGINO_TO_INO(mp, agno, agino), mp->m_fsname);
+			"xfs_difree: inode != XFS_AGINO_TO_INO() "
+			"(%llu != %llu) on %s.  Returning EINVAL.",
+			(unsigned long long)inode,
+			(unsigned long long)XFS_AGINO_TO_INO(mp, agno, agino),
+			mp->m_fsname);
 		ASSERT(0);
 		return XFS_ERROR(EINVAL);
 	}

+ 3 - 2
fs/xfs/xfs_inode.c

@@ -194,9 +194,10 @@ xfs_inotobp(
 	if ((imap.im_blkno + imap.im_len) >
 	    XFS_FSB_TO_BB(mp, mp->m_sb.sb_dblocks)) {
 		cmn_err(CE_WARN,
-	"xfs_inotobp: inode number (%d + %d) maps to a block outside the bounds "
+	"xfs_inotobp: inode number (%llu + %d) maps to a block outside the bounds "
 	"of the file system %s.  Returning EINVAL.",
-			imap.im_blkno, imap.im_len,mp->m_fsname);
+			(unsigned long long)imap.im_blkno,
+			imap.im_len, mp->m_fsname);
 		return XFS_ERROR(EINVAL);
 	}
 

+ 3 - 1
fs/xfs/xfs_log.c

@@ -3533,7 +3533,9 @@ xlog_verify_iclog(xlog_t	 *log,
 			}
 		}
 		if (clientid != XFS_TRANSACTION && clientid != XFS_LOG)
-			cmn_err(CE_WARN, "xlog_verify_iclog: invalid clientid %d op 0x%p offset 0x%x", clientid, ophead, field_offset);
+			cmn_err(CE_WARN, "xlog_verify_iclog: "
+				"invalid clientid %d op 0x%p offset 0x%lx",
+				clientid, ophead, (unsigned long)field_offset);
 
 		/* check length */
 		field_offset = (__psint_t)

+ 1 - 1
fs/xfs/xfs_mount.c

@@ -318,7 +318,7 @@ xfs_mount_validate_sb(
 		"XFS: Attempted to mount file system with blocksize %d bytes",
 			sbp->sb_blocksize);
 		cmn_err(CE_WARN,
-		"XFS: Only page-sized (%d) or less blocksizes currently work.",
+		"XFS: Only page-sized (%ld) or less blocksizes currently work.",
 			PAGE_SIZE);
 		return XFS_ERROR(ENOSYS);
 	}

+ 1 - 1
fs/xfs/xfs_rw.c

@@ -264,7 +264,7 @@ xfs_ioerror_alert(
 {
 	cmn_err(CE_ALERT,
  "I/O error in filesystem (\"%s\") meta-data dev %s block 0x%llx"
- "       (\"%s\") error %d buf count %u",
+ "       (\"%s\") error %d buf count %zd",
 		(!mp || !mp->m_fsname) ? "(fs name not set)" : mp->m_fsname,
 		XFS_BUFTARG_NAME(bp->pb_target),
 		(__uint64_t)blkno,